Android.mk revision c989dcec0385c20a9174a8ed536e0d304c29a2e2
1# 2# Copyright (C) 2010-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) 18include $(LOCAL_PATH)/libbcc-config.mk 19 20 21#===================================================================== 22# Whole Static Library to Be Linked In 23#===================================================================== 24 25ifeq ($(libbcc_USE_DISASSEMBLER),1) 26libbcc_WHOLE_STATIC_LIBRARIES += libbccDisassembler 27endif 28 29libbcc_WHOLE_STATIC_LIBRARIES += \ 30 libbccExecutionEngine \ 31 libbccHelper \ 32 libbccTransforms 33 34 35#===================================================================== 36# Calculate SHA1 checksum for libbcc.so and libRS.so 37#===================================================================== 38 39include $(CLEAR_VARS) 40 41LOCAL_MODULE := libbcc.so.sha1 42LOCAL_MODULE_TAGS := optional 43LOCAL_MODULE_CLASS := SHARED_LIBRARIES 44 45include $(BUILD_SYSTEM)/base_rules.mk 46libbcc_SHA1_SRCS := \ 47 $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/libbcc.so \ 48 $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/libRS.so 49 50libbcc_GEN_SHA1_STAMP := $(LOCAL_PATH)/tools/build/gen-sha1-stamp.py 51 52$(LOCAL_BUILT_MODULE): PRIVATE_SHA1_SRCS := $(libbcc_SHA1_SRCS) 53$(LOCAL_BUILT_MODULE): $(libbcc_SHA1_SRCS) $(libbcc_GEN_SHA1_STAMP) 54 $(hide) mkdir -p $(dir $@) && \ 55 $(libbcc_GEN_SHA1_STAMP) $@ $(PRIVATE_SHA1_SRCS) 56 57 58#===================================================================== 59# Device Shared Library libbcc 60#===================================================================== 61 62include $(CLEAR_VARS) 63 64LOCAL_MODULE := libbcc 65LOCAL_MODULE_TAGS := optional 66LOCAL_MODULE_CLASS := SHARED_LIBRARIES 67 68LOCAL_CFLAGS := $(libbcc_CFLAGS) 69LOCAL_C_INCLUDES := $(libbcc_C_INCLUDES) 70 71LOCAL_SRC_FILES := lib/ExecutionEngine/bcc.cpp 72 73LOCAL_WHOLE_STATIC_LIBRARIES := $(libbcc_WHOLE_STATIC_LIBRARIES) 74 75ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm x86)) 76LOCAL_WHOLE_STATIC_LIBRARIES += libbccCompilerRT 77endif 78 79LOCAL_STATIC_LIBRARIES += librsloader 80 81ifeq ($(libbcc_USE_DISASSEMBLER),1) 82 ifeq ($(TARGET_ARCH),arm) 83 LOCAL_STATIC_LIBRARIES += \ 84 libLLVMARMDisassembler \ 85 libLLVMARMAsmPrinter 86 else 87 ifeq ($(TARGET_ARCH),mips) 88 $(error "Disassembler is not available for MIPS architecture") 89 else 90 ifeq ($(TARGET_ARCH),x86) 91 LOCAL_STATIC_LIBRARIES += \ 92 libLLVMX86Disassembler 93 else 94 $(error Unsupported TARGET_ARCH $(TARGET_ARCH)) 95 endif 96 endif 97 endif 98endif 99 100ifeq ($(TARGET_ARCH),arm) 101 LOCAL_STATIC_LIBRARIES += \ 102 libLLVMARMCodeGen \ 103 libLLVMARMDesc \ 104 libLLVMARMInfo 105else 106 ifeq ($(TARGET_ARCH), mips) 107 LOCAL_STATIC_LIBRARIES += \ 108 libLLVMMipsCodeGen \ 109 libLLVMMipsAsmPrinter \ 110 libLLVMMipsDesc \ 111 libLLVMMipsInfo 112 else 113 ifeq ($(TARGET_ARCH),x86) # We don't support x86-64 right now 114 LOCAL_STATIC_LIBRARIES += \ 115 libLLVMX86CodeGen \ 116 libLLVMX86Desc \ 117 libLLVMX86Info \ 118 libLLVMX86Utils \ 119 libLLVMX86AsmPrinter 120 else 121 $(error Unsupported TARGET_ARCH $(TARGET_ARCH)) 122 endif 123 endif 124endif 125 126LOCAL_STATIC_LIBRARIES += \ 127 libLLVMAsmPrinter \ 128 libLLVMBitReader \ 129 libLLVMSelectionDAG \ 130 libLLVMCodeGen \ 131 libLLVMLinker \ 132 libLLVMScalarOpts \ 133 libLLVMInstCombine \ 134 libLLVMipo \ 135 libLLVMipa \ 136 libLLVMTransformUtils \ 137 libLLVMAnalysis \ 138 libLLVMTarget \ 139 libLLVMMCParser \ 140 libLLVMMC \ 141 libLLVMCore \ 142 libLLVMSupport 143 144LOCAL_SHARED_LIBRARIES := libbcinfo libdl libutils libcutils libstlport 145 146# Modules that need get installed if and only if the target libbcc.so is 147# installed. 148LOCAL_REQUIRED_MODULES := libclcore.bc libbcc.so.sha1 149 150# Link-Time Optimization on libbcc.so 151# 152# -Wl,--exclude-libs=ALL only applies to library archives. It would hide most 153# of the symbols in this shared library. As a result, it reduced the size of 154# libbcc.so by about 800k in 2010. 155# 156# Note that libLLVMBitReader:libLLVMCore:libLLVMSupport are used by 157# pixelflinger2. 158 159LOCAL_LDFLAGS += -Wl,--exclude-libs=libLLVMARMDisassembler:libLLVMARMAsmPrinter:libLLVMX86Disassembler:libLLVMX86AsmPrinter:libLLVMMCParser:libLLVMARMCodeGen:libLLVMARMDesc:libLLVMARMInfo:libLLVMSelectionDAG:libLLVMAsmPrinter:libLLVMCodeGen:libLLVMLinker:libLLVMTarget:libLLVMMC:libLLVMScalarOpts:libLLVMInstCombine:libLLVMipo:libLLVMipa:libLLVMTransformUtils:libLLVMAnalysis 160 161# Generate build stamp (Build time + Build git revision + Build Semi SHA1) 162include $(LOCAL_PATH)/libbcc-gen-build-stamp.mk 163 164include $(LIBBCC_ROOT_PATH)/libbcc-gen-config-from-mk.mk 165include $(LLVM_ROOT_PATH)/llvm-device-build.mk 166include $(BUILD_SHARED_LIBRARY) 167 168 169#===================================================================== 170# Host Shared Library libbcc 171#===================================================================== 172 173include $(CLEAR_VARS) 174 175LOCAL_MODULE := libbcc 176LOCAL_MODULE_TAGS := optional 177LOCAL_MODULE_CLASS := SHARED_LIBRARIES 178LOCAL_IS_HOST_MODULE := true 179 180LOCAL_CFLAGS := $(libbcc_CFLAGS) 181LOCAL_CFLAGS += -D__HOST__ 182LOCAL_C_INCLUDES := $(libbcc_C_INCLUDES) 183 184LOCAL_SRC_FILES := lib/ExecutionEngine/bcc.cpp 185 186LOCAL_WHOLE_STATIC_LIBRARIES += $(libbcc_WHOLE_STATIC_LIBRARIES) 187 188LOCAL_STATIC_LIBRARIES += librsloader 189 190ifeq ($(libbcc_USE_DISASSEMBLER),1) 191 LOCAL_STATIC_LIBRARIES += \ 192 libLLVMARMDisassembler \ 193 libLLVMARMAsmPrinter \ 194 libLLVMX86Disassembler \ 195 libLLVMMCParser 196endif 197 198LOCAL_STATIC_LIBRARIES += \ 199 libLLVMARMCodeGen \ 200 libLLVMARMDesc \ 201 libLLVMARMInfo 202 203LOCAL_STATIC_LIBRARIES += \ 204 libLLVMMipsCodeGen \ 205 libLLVMMipsAsmPrinter \ 206 libLLVMMipsDesc \ 207 libLLVMMipsInfo 208 209LOCAL_STATIC_LIBRARIES += \ 210 libLLVMX86CodeGen \ 211 libLLVMX86Desc \ 212 libLLVMX86AsmPrinter \ 213 libLLVMX86Info \ 214 libLLVMX86Utils 215 216LOCAL_STATIC_LIBRARIES += \ 217 libLLVMAsmPrinter \ 218 libLLVMBitReader \ 219 libLLVMSelectionDAG \ 220 libLLVMCodeGen \ 221 libLLVMLinker \ 222 libLLVMScalarOpts \ 223 libLLVMInstCombine \ 224 libLLVMipo \ 225 libLLVMipa \ 226 libLLVMTransformUtils \ 227 libLLVMAnalysis \ 228 libLLVMTarget \ 229 libLLVMMCParser \ 230 libLLVMMC \ 231 libLLVMCore \ 232 libLLVMSupport 233 234LOCAL_STATIC_LIBRARIES += \ 235 libutils \ 236 libcutils 237 238LOCAL_SHARED_LIBRARIES := libbcinfo 239 240LOCAL_LDLIBS := -ldl -lpthread 241 242# Generate build stamp (Build time + Build git revision + Build Semi SHA1) 243include $(LOCAL_PATH)/libbcc-gen-build-stamp.mk 244 245include $(LIBBCC_ROOT_PATH)/libbcc-gen-config-from-mk.mk 246include $(LLVM_ROOT_PATH)/llvm-host-build.mk 247include $(BUILD_HOST_SHARED_LIBRARY) 248 249 250#===================================================================== 251# Include Subdirectories 252#===================================================================== 253include $(call all-makefiles-under,$(LOCAL_PATH)) 254