1150a70be696f5a93446bb0c5da558699103520e6Stephen Hines#
27cd4c49d575478b2380f129dcd376a4e5e37939cStephen Hines# Copyright (C) 2011-2012 The Android Open Source Project
3150a70be696f5a93446bb0c5da558699103520e6Stephen Hines#
4150a70be696f5a93446bb0c5da558699103520e6Stephen Hines# Licensed under the Apache License, Version 2.0 (the "License");
5150a70be696f5a93446bb0c5da558699103520e6Stephen Hines# you may not use this file except in compliance with the License.
6150a70be696f5a93446bb0c5da558699103520e6Stephen Hines# You may obtain a copy of the License at
7150a70be696f5a93446bb0c5da558699103520e6Stephen Hines#
8150a70be696f5a93446bb0c5da558699103520e6Stephen Hines#      http://www.apache.org/licenses/LICENSE-2.0
9150a70be696f5a93446bb0c5da558699103520e6Stephen Hines#
10150a70be696f5a93446bb0c5da558699103520e6Stephen Hines# Unless required by applicable law or agreed to in writing, software
11150a70be696f5a93446bb0c5da558699103520e6Stephen Hines# distributed under the License is distributed on an "AS IS" BASIS,
12150a70be696f5a93446bb0c5da558699103520e6Stephen Hines# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13150a70be696f5a93446bb0c5da558699103520e6Stephen Hines# See the License for the specific language governing permissions and
14150a70be696f5a93446bb0c5da558699103520e6Stephen Hines# limitations under the License.
15150a70be696f5a93446bb0c5da558699103520e6Stephen Hines#
16150a70be696f5a93446bb0c5da558699103520e6Stephen Hines
17150a70be696f5a93446bb0c5da558699103520e6Stephen Hineslocal_cflags_for_libbcinfo := -Wall -Wno-unused-parameter -Werror
18150a70be696f5a93446bb0c5da558699103520e6Stephen Hinesifneq ($(TARGET_BUILD_VARIANT),eng)
19150a70be696f5a93446bb0c5da558699103520e6Stephen Hineslocal_cflags_for_libbcinfo += -D__DISABLE_ASSERTS
20150a70be696f5a93446bb0c5da558699103520e6Stephen Hinesendif
21150a70be696f5a93446bb0c5da558699103520e6Stephen Hines
22150a70be696f5a93446bb0c5da558699103520e6Stephen HinesLOCAL_PATH := $(call my-dir)
23150a70be696f5a93446bb0c5da558699103520e6Stephen Hines
24e109434cfd2bc24d324506238483c1ecd587e228Stephen Hinesinclude frameworks/compile/slang/rs_version.mk
25e109434cfd2bc24d324506238483c1ecd587e228Stephen Hineslocal_cflags_for_libbcinfo += $(RS_VERSION_DEFINE)
26e109434cfd2bc24d324506238483c1ecd587e228Stephen Hines
27932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hineslibbcinfo_SRC_FILES := \
28932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hines  BitcodeTranslator.cpp \
29825b9aed7c01b050b2ee474327458b8958a28f39Stephen Hines  BitcodeWrapper.cpp \
30932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hines  MetadataExtractor.cpp
31932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hines
328dbca8e957dab1db77dffbe10c14c54d4b439be6Stephen Hineslibbcinfo_C_INCLUDES := \
338dbca8e957dab1db77dffbe10c14c54d4b439be6Stephen Hines  $(LOCAL_PATH)/../include \
348dbca8e957dab1db77dffbe10c14c54d4b439be6Stephen Hines  $(LOCAL_PATH)/../../slang
358dbca8e957dab1db77dffbe10c14c54d4b439be6Stephen Hines
3616c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hineslibbcinfo_STATIC_LIBRARIES := \
377cd4c49d575478b2380f129dcd376a4e5e37939cStephen Hines  libLLVMWrap \
38932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hines  libLLVMBitReader_2_7 \
398dbca8e957dab1db77dffbe10c14c54d4b439be6Stephen Hines  libLLVMBitReader_3_0 \
408dbca8e957dab1db77dffbe10c14c54d4b439be6Stephen Hines  libLLVMBitWriter_3_2
4116c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hines
42150a70be696f5a93446bb0c5da558699103520e6Stephen HinesLLVM_ROOT_PATH := external/llvm
43150a70be696f5a93446bb0c5da558699103520e6Stephen Hines
4471df05005d8cbc15b4c288ff643be243af0c7b88Colin Crossifeq ($(TARGET_ARCH),arm64)
4571df05005d8cbc15b4c288ff643be243af0c7b88Colin Cross$(info TODOArm64: $(LOCAL_PATH)/Android.mk Enable build of libbcinfo device shared library)
4671df05005d8cbc15b4c288ff643be243af0c7b88Colin Crossendif
4771df05005d8cbc15b4c288ff643be243af0c7b88Colin Cross
4871df05005d8cbc15b4c288ff643be243af0c7b88Colin Crossifeq ($(TARGET_ARCH),mips64)
4971df05005d8cbc15b4c288ff643be243af0c7b88Colin Cross$(info TODOMips64: $(LOCAL_PATH)/Android.mk Enable build of libbcinfo device shared library)
5071df05005d8cbc15b4c288ff643be243af0c7b88Colin Crossendif
51ad7d4c3a3d412b406b1841ded077fdca91d49b84Ashok Bhat
52c6e6ee4392390c0888f808220adf33334e1f64a4Tim Murrayifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
53150a70be696f5a93446bb0c5da558699103520e6Stephen Hinesinclude $(CLEAR_VARS)
54150a70be696f5a93446bb0c5da558699103520e6Stephen Hines
55150a70be696f5a93446bb0c5da558699103520e6Stephen HinesLOCAL_MODULE := libbcinfo
56150a70be696f5a93446bb0c5da558699103520e6Stephen HinesLOCAL_MODULE_CLASS := SHARED_LIBRARIES
57150a70be696f5a93446bb0c5da558699103520e6Stephen HinesLOCAL_MODULE_TAGS := optional
58150a70be696f5a93446bb0c5da558699103520e6Stephen Hines
5916c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_SRC_FILES := $(libbcinfo_SRC_FILES)
60150a70be696f5a93446bb0c5da558699103520e6Stephen Hines
61150a70be696f5a93446bb0c5da558699103520e6Stephen HinesLOCAL_CFLAGS += $(local_cflags_for_libbcinfo)
62150a70be696f5a93446bb0c5da558699103520e6Stephen Hines
6316c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_C_INCLUDES := $(libbcinfo_C_INCLUDES)
64150a70be696f5a93446bb0c5da558699103520e6Stephen Hines
654b778721adc9789411c2f2911578dab4d1d7c7b6Stephen HinesLOCAL_STATIC_LIBRARIES := $(libbcinfo_STATIC_LIBRARIES)
6652031f202ce4598dd499938fe82db94032c10a53Stephen HinesLOCAL_SHARED_LIBRARIES := libLLVM libcutils liblog
67150a70be696f5a93446bb0c5da558699103520e6Stephen Hines
68150a70be696f5a93446bb0c5da558699103520e6Stephen Hinesinclude $(LLVM_ROOT_PATH)/llvm-device-build.mk
69150a70be696f5a93446bb0c5da558699103520e6Stephen Hinesinclude $(BUILD_SHARED_LIBRARY)
70c6e6ee4392390c0888f808220adf33334e1f64a4Tim Murrayendif
7116c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hines
728d01bd8b61482f83539a7dbcec38df9a2e5a6c56Ying Wang# Don't build for unbundled branches
738d01bd8b61482f83539a7dbcec38df9a2e5a6c56Ying Wangifeq (,$(TARGET_BUILD_APPS))
748d01bd8b61482f83539a7dbcec38df9a2e5a6c56Ying Wang
7516c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hinesinclude $(CLEAR_VARS)
7616c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hines
7716c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_MODULE := libbcinfo
7816c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_MODULE_CLASS := SHARED_LIBRARIES
7916c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_MODULE_TAGS := optional
8016c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_IS_HOST_MODULE := true
8116c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hines
8216c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_SRC_FILES := $(libbcinfo_SRC_FILES)
8316c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hines
8416c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_CFLAGS += $(local_cflags_for_libbcinfo)
8516c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hines
8616c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_C_INCLUDES := $(libbcinfo_C_INCLUDES)
8716c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hines
8816c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_STATIC_LIBRARIES += $(libbcinfo_STATIC_LIBRARIES)
892edf6d63b4a99faab9644e42f28e85f23a98913bYing WangLOCAL_STATIC_LIBRARIES += libcutils liblog
90ba8d7ceb2f0f920ae82afc2c91db625534482e15Stephen HinesLOCAL_SHARED_LIBRARIES += libLLVM
9116c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hines
9248cd745480738c026312931877ecb8ebecb1c64eStephen Hinesifndef USE_MINGW
9316c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_LDLIBS := -ldl -lpthread
9448cd745480738c026312931877ecb8ebecb1c64eStephen Hinesendif
9516c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hines
9616c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hinesinclude $(LLVM_ROOT_PATH)/llvm-host-build.mk
9716c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hinesinclude $(BUILD_HOST_SHARED_LIBRARY)
9816c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hines
996297382734716a572100f5a395b3df1b2b98908dTim Murrayendif # don't build for unbundled branches
1006297382734716a572100f5a395b3df1b2b98908dTim Murray
101932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hines#=====================================================================
102932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hines# Include Subdirectories
103932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hines#=====================================================================
104932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hinesinclude $(call all-makefiles-under,$(LOCAL_PATH))
105