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
176297382734716a572100f5a395b3df1b2b98908dTim Murray# Don't build for unbundled branches
186297382734716a572100f5a395b3df1b2b98908dTim Murrayifeq (,$(TARGET_BUILD_APPS))
196297382734716a572100f5a395b3df1b2b98908dTim Murray
20150a70be696f5a93446bb0c5da558699103520e6Stephen Hineslocal_cflags_for_libbcinfo := -Wall -Wno-unused-parameter -Werror
21150a70be696f5a93446bb0c5da558699103520e6Stephen Hinesifneq ($(TARGET_BUILD_VARIANT),eng)
22150a70be696f5a93446bb0c5da558699103520e6Stephen Hineslocal_cflags_for_libbcinfo += -D__DISABLE_ASSERTS
23150a70be696f5a93446bb0c5da558699103520e6Stephen Hinesendif
24150a70be696f5a93446bb0c5da558699103520e6Stephen Hines
25932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hinesifeq "REL" "$(PLATFORM_VERSION_CODENAME)"
26932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hines  BCINFO_API_VERSION := $(PLATFORM_SDK_VERSION)
27932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hineselse
28932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hines  # Increment by 1 whenever this is not a final release build, since we want to
29932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hines  # be able to see the RS version number change during development.
30932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hines  # See build/core/version_defaults.mk for more information about this.
31932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hines  BCINFO_API_VERSION := "(1 + $(PLATFORM_SDK_VERSION))"
32932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hinesendif
33932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hineslocal_cflags_for_libbcinfo += -DBCINFO_API_VERSION=$(BCINFO_API_VERSION)
34932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hines
35150a70be696f5a93446bb0c5da558699103520e6Stephen HinesLOCAL_PATH := $(call my-dir)
36150a70be696f5a93446bb0c5da558699103520e6Stephen Hines
37932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hineslibbcinfo_SRC_FILES := \
38932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hines  BitcodeTranslator.cpp \
39825b9aed7c01b050b2ee474327458b8958a28f39Stephen Hines  BitcodeWrapper.cpp \
40932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hines  MetadataExtractor.cpp
41932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hines
428dbca8e957dab1db77dffbe10c14c54d4b439be6Stephen Hineslibbcinfo_C_INCLUDES := \
438dbca8e957dab1db77dffbe10c14c54d4b439be6Stephen Hines  $(LOCAL_PATH)/../include \
448dbca8e957dab1db77dffbe10c14c54d4b439be6Stephen Hines  $(LOCAL_PATH)/../../slang
458dbca8e957dab1db77dffbe10c14c54d4b439be6Stephen Hines
4616c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hineslibbcinfo_STATIC_LIBRARIES := \
477cd4c49d575478b2380f129dcd376a4e5e37939cStephen Hines  libLLVMWrap \
48932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hines  libLLVMBitReader_2_7 \
498dbca8e957dab1db77dffbe10c14c54d4b439be6Stephen Hines  libLLVMBitReader_3_0 \
508dbca8e957dab1db77dffbe10c14c54d4b439be6Stephen Hines  libLLVMBitWriter_3_2
5116c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hines
52150a70be696f5a93446bb0c5da558699103520e6Stephen HinesLLVM_ROOT_PATH := external/llvm
53150a70be696f5a93446bb0c5da558699103520e6Stephen Hines
54150a70be696f5a93446bb0c5da558699103520e6Stephen Hinesinclude $(CLEAR_VARS)
55150a70be696f5a93446bb0c5da558699103520e6Stephen Hines
56150a70be696f5a93446bb0c5da558699103520e6Stephen HinesLOCAL_MODULE := libbcinfo
57150a70be696f5a93446bb0c5da558699103520e6Stephen HinesLOCAL_MODULE_CLASS := SHARED_LIBRARIES
58150a70be696f5a93446bb0c5da558699103520e6Stephen HinesLOCAL_MODULE_TAGS := optional
59150a70be696f5a93446bb0c5da558699103520e6Stephen Hinesintermediates := $(local-intermediates-dir)
60150a70be696f5a93446bb0c5da558699103520e6Stephen Hines
6116c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_SRC_FILES := $(libbcinfo_SRC_FILES)
62150a70be696f5a93446bb0c5da558699103520e6Stephen Hines
63150a70be696f5a93446bb0c5da558699103520e6Stephen HinesLOCAL_CFLAGS += $(local_cflags_for_libbcinfo)
64150a70be696f5a93446bb0c5da558699103520e6Stephen Hines
6516c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_C_INCLUDES := $(libbcinfo_C_INCLUDES)
66150a70be696f5a93446bb0c5da558699103520e6Stephen Hines
674b778721adc9789411c2f2911578dab4d1d7c7b6Stephen HinesLOCAL_STATIC_LIBRARIES := $(libbcinfo_STATIC_LIBRARIES)
682edf6d63b4a99faab9644e42f28e85f23a98913bYing WangLOCAL_SHARED_LIBRARIES := libLLVM libcutils liblog libstlport
69150a70be696f5a93446bb0c5da558699103520e6Stephen Hines
70150a70be696f5a93446bb0c5da558699103520e6Stephen Hinesinclude $(LLVM_ROOT_PATH)/llvm-device-build.mk
71150a70be696f5a93446bb0c5da558699103520e6Stephen Hinesinclude $(BUILD_SHARED_LIBRARY)
7216c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hines
7316c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hinesinclude $(CLEAR_VARS)
7416c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hines
7516c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_MODULE := libbcinfo
7616c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_MODULE_CLASS := SHARED_LIBRARIES
7716c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_MODULE_TAGS := optional
7816c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_IS_HOST_MODULE := true
7916c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hines
8016c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_SRC_FILES := $(libbcinfo_SRC_FILES)
8116c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hines
8216c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_CFLAGS += $(local_cflags_for_libbcinfo)
8316c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hines
8416c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_C_INCLUDES := $(libbcinfo_C_INCLUDES)
8516c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hines
8616c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_STATIC_LIBRARIES += $(libbcinfo_STATIC_LIBRARIES)
872edf6d63b4a99faab9644e42f28e85f23a98913bYing WangLOCAL_STATIC_LIBRARIES += libcutils liblog
88ba8d7ceb2f0f920ae82afc2c91db625534482e15Stephen HinesLOCAL_SHARED_LIBRARIES += libLLVM
8916c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hines
9048cd745480738c026312931877ecb8ebecb1c64eStephen Hinesifndef USE_MINGW
9116c9b3674960eef4fda4955694bf186af4cfd5c0Stephen HinesLOCAL_LDLIBS := -ldl -lpthread
9248cd745480738c026312931877ecb8ebecb1c64eStephen Hinesendif
9316c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hines
9416c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hinesinclude $(LLVM_ROOT_PATH)/llvm-host-build.mk
9516c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hinesinclude $(BUILD_HOST_SHARED_LIBRARY)
9616c9b3674960eef4fda4955694bf186af4cfd5c0Stephen Hines
976297382734716a572100f5a395b3df1b2b98908dTim Murrayendif # don't build for unbundled branches
986297382734716a572100f5a395b3df1b2b98908dTim Murray
99932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hines#=====================================================================
100932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hines# Include Subdirectories
101932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hines#=====================================================================
102932bc6e35bcef7adff05d890a9dcc7212426fb6aStephen Hinesinclude $(call all-makefiles-under,$(LOCAL_PATH))
103