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