Android.mk revision 4a048eb11457407771e77039e169f6d38d64874e
177643ba4fb6e93037940294a03149e68c353b4faYing Wang#
285b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hines# Copyright (C) 2011-2012 The Android Open Source Project
377643ba4fb6e93037940294a03149e68c353b4faYing Wang#
477643ba4fb6e93037940294a03149e68c353b4faYing Wang# Licensed under the Apache License, Version 2.0 (the "License");
577643ba4fb6e93037940294a03149e68c353b4faYing Wang# you may not use this file except in compliance with the License.
677643ba4fb6e93037940294a03149e68c353b4faYing Wang# You may obtain a copy of the License at
777643ba4fb6e93037940294a03149e68c353b4faYing Wang#
877643ba4fb6e93037940294a03149e68c353b4faYing Wang#      http://www.apache.org/licenses/LICENSE-2.0
977643ba4fb6e93037940294a03149e68c353b4faYing Wang#
1077643ba4fb6e93037940294a03149e68c353b4faYing Wang# Unless required by applicable law or agreed to in writing, software
1177643ba4fb6e93037940294a03149e68c353b4faYing Wang# distributed under the License is distributed on an "AS IS" BASIS,
1277643ba4fb6e93037940294a03149e68c353b4faYing Wang# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1377643ba4fb6e93037940294a03149e68c353b4faYing Wang# See the License for the specific language governing permissions and
1477643ba4fb6e93037940294a03149e68c353b4faYing Wang# limitations under the License.
1577643ba4fb6e93037940294a03149e68c353b4faYing Wang#
1677643ba4fb6e93037940294a03149e68c353b4faYing Wang
1777643ba4fb6e93037940294a03149e68c353b4faYing WangLOCAL_PATH := $(call my-dir)
1877643ba4fb6e93037940294a03149e68c353b4faYing Wang
1977643ba4fb6e93037940294a03149e68c353b4faYing Wanginclude $(CLEAR_VARS)
2077643ba4fb6e93037940294a03149e68c353b4faYing WangLOCAL_MODULE := libclcore.bc
2177643ba4fb6e93037940294a03149e68c353b4faYing WangLOCAL_MODULE_TAGS := optional
2277643ba4fb6e93037940294a03149e68c353b4faYing WangLOCAL_MODULE_CLASS := SHARED_LIBRARIES
2377643ba4fb6e93037940294a03149e68c353b4faYing Wang
2485b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hines# C source files for the library
2585b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hinesclcore_c_files := \
264a048eb11457407771e77039e169f6d38d64874eAlex Sakhartchouk    rs_allocation.c \
2777643ba4fb6e93037940294a03149e68c353b4faYing Wang    rs_cl.c \
288e7b2839549af7aa96da2ba503238a245e08c2b3Alex Sakhartchouk    rs_core.c \
294a048eb11457407771e77039e169f6d38d64874eAlex Sakhartchouk    rs_element.c \
304a048eb11457407771e77039e169f6d38d64874eAlex Sakhartchouk    rs_mesh.c \
314a048eb11457407771e77039e169f6d38d64874eAlex Sakhartchouk    rs_program.c \
324a048eb11457407771e77039e169f6d38d64874eAlex Sakhartchouk    rs_sample.c \
334a048eb11457407771e77039e169f6d38d64874eAlex Sakhartchouk    rs_sampler.c
3477643ba4fb6e93037940294a03149e68c353b4faYing Wang
3585b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hines# Hand-written bitcode for the library
3685b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hinesclcore_ll_files := \
375bc951cd1b1e504e19c8625fcab00712c123484bJason Sams    clamp.ll \
385bc951cd1b1e504e19c8625fcab00712c123484bJason Sams    convert.ll \
39f7ab3778dfe2be557fb457fdc842408fb9a2a261Jason Sams    matrix.ll \
40f7ab3778dfe2be557fb457fdc842408fb9a2a261Jason Sams    pixel_packing.ll
4177643ba4fb6e93037940294a03149e68c353b4faYing Wang
4277643ba4fb6e93037940294a03149e68c353b4faYing Wanginclude $(BUILD_SYSTEM)/base_rules.mk
4377643ba4fb6e93037940294a03149e68c353b4faYing Wang
4477643ba4fb6e93037940294a03149e68c353b4faYing Wangclcore_CLANG := $(HOST_OUT_EXECUTABLES)/clang$(HOST_EXECUTABLE_SUFFIX)
4577643ba4fb6e93037940294a03149e68c353b4faYing Wangclcore_LLVM_LINK := $(HOST_OUT_EXECUTABLES)/llvm-link$(HOST_EXECUTABLE_SUFFIX)
4692686fed0265dcb48c6e857830879b36be892416Shih-wei Liaoclcore_LLVM_LD := $(HOST_OUT_EXECUTABLES)/llvm-ld$(HOST_EXECUTABLE_SUFFIX)
4760307ed7acbee1cce27551334e2b35839e47aee8Stephen Hinesclcore_LLVM_AS := $(HOST_OUT_EXECUTABLES)/llvm-as$(HOST_EXECUTABLE_SUFFIX)
4860307ed7acbee1cce27551334e2b35839e47aee8Stephen Hinesclcore_LLVM_DIS := $(HOST_OUT_EXECUTABLES)/llvm-dis$(HOST_EXECUTABLE_SUFFIX)
4977643ba4fb6e93037940294a03149e68c353b4faYing Wang
5085b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hinesclcore_c_bc_files := $(patsubst %.c,%.bc, \
5185b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hines    $(addprefix $(intermediates)/, $(clcore_c_files)))
5277643ba4fb6e93037940294a03149e68c353b4faYing Wang
5385b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hinesclcore_ll_bc_files := $(patsubst %.ll,%.bc, \
5485b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hines    $(addprefix $(intermediates)/, $(clcore_ll_files)))
5585b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hines
5685b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hines$(clcore_c_bc_files): PRIVATE_INCLUDES := \
57dce5985ff48ec9cbf20c4483c43980b73776c033Ying Wang    frameworks/base/libs/rs/scriptc \
58dce5985ff48ec9cbf20c4483c43980b73776c033Ying Wang    external/clang/lib/Headers
59dce5985ff48ec9cbf20c4483c43980b73776c033Ying Wang
6085b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hines$(clcore_c_bc_files): $(intermediates)/%.bc: $(LOCAL_PATH)/%.c  $(clcore_CLANG)
6177643ba4fb6e93037940294a03149e68c353b4faYing Wang	@mkdir -p $(dir $@)
62f7d573d03c76eb32be372cb7391fa39d3cc349e3Stephen Hines	$(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 $@
630e570cb2c49ba66caa171a8e97158016bceed08eYing Wang
6485b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hines$(clcore_ll_bc_files): $(intermediates)/%.bc: $(LOCAL_PATH)/%.ll $(clcore_LLVM_AS)
6585b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hines	@mkdir -p $(dir $@)
6685b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hines	$(hide) $(clcore_LLVM_AS) $< -o $@
6785b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hines
6885b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hines-include $(clcore_c_bc_files:%.bc=%.d)
6985b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hines-include $(clcore_ll_bc_files:%.bc=%.d)
7077643ba4fb6e93037940294a03149e68c353b4faYing Wang
7185b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hines$(LOCAL_BUILT_MODULE): PRIVATE_BC_FILES := $(clcore_c_bc_files) $(clcore_ll_bc_files)
7285b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hines$(LOCAL_BUILT_MODULE): $(clcore_c_bc_files) $(clcore_ll_bc_files)
7385b860c2e503d6b7401fbc96dffc71e65c2c2d70Stephen Hines$(LOCAL_BUILT_MODULE): $(clcore_LLVM_LINK) $(clcore_LLVM_LD)
7460307ed7acbee1cce27551334e2b35839e47aee8Stephen Hines$(LOCAL_BUILT_MODULE): $(clcore_LLVM_AS) $(clcore_LLVM_DIS)
7577643ba4fb6e93037940294a03149e68c353b4faYing Wang	@mkdir -p $(dir $@)
7677643ba4fb6e93037940294a03149e68c353b4faYing Wang	$(hide) $(clcore_LLVM_LINK) $(PRIVATE_BC_FILES) -o $@
77