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