Android.mk revision 4a048eb11457407771e77039e169f6d38d64874e
1#
2# Copyright (C) 2011-2012 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17LOCAL_PATH := $(call my-dir)
18
19include $(CLEAR_VARS)
20LOCAL_MODULE := libclcore.bc
21LOCAL_MODULE_TAGS := optional
22LOCAL_MODULE_CLASS := SHARED_LIBRARIES
23
24# C source files for the library
25clcore_c_files := \
26    rs_allocation.c \
27    rs_cl.c \
28    rs_core.c \
29    rs_element.c \
30    rs_mesh.c \
31    rs_program.c \
32    rs_sample.c \
33    rs_sampler.c
34
35# Hand-written bitcode for the library
36clcore_ll_files := \
37    clamp.ll \
38    convert.ll \
39    matrix.ll \
40    pixel_packing.ll
41
42include $(BUILD_SYSTEM)/base_rules.mk
43
44clcore_CLANG := $(HOST_OUT_EXECUTABLES)/clang$(HOST_EXECUTABLE_SUFFIX)
45clcore_LLVM_LINK := $(HOST_OUT_EXECUTABLES)/llvm-link$(HOST_EXECUTABLE_SUFFIX)
46clcore_LLVM_LD := $(HOST_OUT_EXECUTABLES)/llvm-ld$(HOST_EXECUTABLE_SUFFIX)
47clcore_LLVM_AS := $(HOST_OUT_EXECUTABLES)/llvm-as$(HOST_EXECUTABLE_SUFFIX)
48clcore_LLVM_DIS := $(HOST_OUT_EXECUTABLES)/llvm-dis$(HOST_EXECUTABLE_SUFFIX)
49
50clcore_c_bc_files := $(patsubst %.c,%.bc, \
51    $(addprefix $(intermediates)/, $(clcore_c_files)))
52
53clcore_ll_bc_files := $(patsubst %.ll,%.bc, \
54    $(addprefix $(intermediates)/, $(clcore_ll_files)))
55
56$(clcore_c_bc_files): PRIVATE_INCLUDES := \
57    frameworks/base/libs/rs/scriptc \
58    external/clang/lib/Headers
59
60$(clcore_c_bc_files): $(intermediates)/%.bc: $(LOCAL_PATH)/%.c  $(clcore_CLANG)
61	@mkdir -p $(dir $@)
62	$(hide) $(clcore_CLANG) $(addprefix -I, $(PRIVATE_INCLUDES)) -MD -std=c99 -c -O3 -fno-builtin -emit-llvm -ccc-host-triple armv7-none-linux-gnueabi -fsigned-char $< -o $@
63
64$(clcore_ll_bc_files): $(intermediates)/%.bc: $(LOCAL_PATH)/%.ll $(clcore_LLVM_AS)
65	@mkdir -p $(dir $@)
66	$(hide) $(clcore_LLVM_AS) $< -o $@
67
68-include $(clcore_c_bc_files:%.bc=%.d)
69-include $(clcore_ll_bc_files:%.bc=%.d)
70
71$(LOCAL_BUILT_MODULE): PRIVATE_BC_FILES := $(clcore_c_bc_files) $(clcore_ll_bc_files)
72$(LOCAL_BUILT_MODULE): $(clcore_c_bc_files) $(clcore_ll_bc_files)
73$(LOCAL_BUILT_MODULE): $(clcore_LLVM_LINK) $(clcore_LLVM_LD)
74$(LOCAL_BUILT_MODULE): $(clcore_LLVM_AS) $(clcore_LLVM_DIS)
75	@mkdir -p $(dir $@)
76	$(hide) $(clcore_LLVM_LINK) $(PRIVATE_BC_FILES) -o $@
77