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 | |
Carl Shapiro | 105a9d2 | 2010-04-13 17:53:26 -0700 | [diff] [blame] | 17 | ifneq ($(TARGET_SIMULATOR),true) |
| 18 | |
Shih-wei Liao | 77ed614 | 2010-04-07 12:21:42 -0700 | [diff] [blame] | 19 | LOCAL_PATH := $(call my-dir) |
Logan | 3584900 | 2011-01-15 07:30:43 +0800 | [diff] [blame] | 20 | |
Shih-wei Liao | 210a1ef | 2010-09-07 17:06:38 -0700 | [diff] [blame] | 21 | LLVM_ROOT_PATH := external/llvm |
Shih-wei Liao | 77ed614 | 2010-04-07 12:21:42 -0700 | [diff] [blame] | 22 | |
Logan | 3584900 | 2011-01-15 07:30:43 +0800 | [diff] [blame] | 23 | # Extract Configuration from Cache.h |
Shih-wei Liao | bc5ed67 | 2010-11-24 01:53:02 -0800 | [diff] [blame] | 24 | |
Logan | 3584900 | 2011-01-15 07:30:43 +0800 | [diff] [blame] | 25 | libbcc_GET_CONFIG = $(shell cat "$(LOCAL_PATH)/Config.h" | \ |
| 26 | grep "^\#define $1 [01]$$" | \ |
| 27 | cut -d ' ' -f 3) |
| 28 | |
| 29 | libbcc_USE_CACHE := $(call libbcc_GET_CONFIG,USE_CACHE) |
| 30 | libbcc_USE_DISASSEMBLER := $(call libbcc_GET_CONFIG,USE_DISASSEMBLER) |
| 31 | libbcc_USE_DISASSEMBLER_FILE := $(call libbcc_GET_CONFIG,USE_DISASSEMBLER_FILE) |
| 32 | libbcc_USE_LIBBCC_SHA1SUM := $(call libbcc_GET_CONFIG,USE_LIBBCC_SHA1SUM) |
| 33 | |
| 34 | # Source Files |
Shih-wei Liao | cd61af3 | 2010-04-29 00:02:57 -0700 | [diff] [blame] | 35 | |
Logan | cf3e521 | 2010-12-29 01:44:55 +0800 | [diff] [blame] | 36 | libbcc_SRC_FILES := \ |
Logan | 45e84be | 2011-02-28 05:40:11 +0800 | [diff] [blame] | 37 | lib/ExecutionEngine/bcc.cpp \ |
Shih-wei Liao | 67d8f37 | 2011-01-16 22:48:35 -0800 | [diff] [blame] | 38 | lib/CodeGen/CodeEmitter.cpp \ |
| 39 | lib/CodeGen/CodeMemoryManager.cpp \ |
Logan | 45e84be | 2011-02-28 05:40:11 +0800 | [diff] [blame] | 40 | lib/ExecutionEngine/Compiler.cpp \ |
| 41 | lib/ExecutionEngine/ContextManager.cpp \ |
| 42 | lib/ExecutionEngine/FileHandle.cpp \ |
| 43 | lib/ExecutionEngine/Runtime.c \ |
| 44 | lib/ExecutionEngine/RuntimeStub.c \ |
| 45 | lib/ExecutionEngine/Script.cpp \ |
| 46 | lib/ExecutionEngine/ScriptCompiled.cpp \ |
| 47 | lib/ExecutionEngine/SourceInfo.cpp |
Logan | 3584900 | 2011-01-15 07:30:43 +0800 | [diff] [blame] | 48 | |
| 49 | ifeq ($(libbcc_USE_CACHE),1) |
| 50 | libbcc_SRC_FILES += \ |
Logan | 45e84be | 2011-02-28 05:40:11 +0800 | [diff] [blame] | 51 | lib/ExecutionEngine/CacheReader.cpp \ |
| 52 | lib/ExecutionEngine/CacheWriter.cpp \ |
| 53 | lib/ExecutionEngine/ScriptCached.cpp \ |
| 54 | lib/ExecutionEngine/Sha1Helper.cpp \ |
Logan | cf3e521 | 2010-12-29 01:44:55 +0800 | [diff] [blame] | 55 | helper/sha1.c |
Logan | 3584900 | 2011-01-15 07:30:43 +0800 | [diff] [blame] | 56 | endif |
Logan | cf3e521 | 2010-12-29 01:44:55 +0800 | [diff] [blame] | 57 | |
Shih-wei Liao | 52fb1e9 | 2011-01-14 06:59:51 -0800 | [diff] [blame] | 58 | # |
Shih-wei Liao | 77ed614 | 2010-04-07 12:21:42 -0700 | [diff] [blame] | 59 | # Shared library for target |
| 60 | # ======================================================== |
| 61 | include $(CLEAR_VARS) |
Iliyan Malchev | 97bd44d | 2011-03-14 14:02:14 -0700 | [diff] [blame^] | 62 | |
Shih-wei Liao | 77ed614 | 2010-04-07 12:21:42 -0700 | [diff] [blame] | 63 | LOCAL_MODULE := libbcc |
Zonr Chang | 932648d | 2010-10-13 22:23:56 +0800 | [diff] [blame] | 64 | LOCAL_MODULE_TAGS := optional |
Logan | 61cb230 | 2010-11-27 14:18:26 +0800 | [diff] [blame] | 65 | LOCAL_SRC_FILES := \ |
Kenny Root | 34678ab | 2011-02-07 10:56:27 -0800 | [diff] [blame] | 66 | $(libbcc_SRC_FILES) |
Shih-wei Liao | 77ed614 | 2010-04-07 12:21:42 -0700 | [diff] [blame] | 67 | |
Kenny Root | 34678ab | 2011-02-07 10:56:27 -0800 | [diff] [blame] | 68 | ifeq ($(TARGET_ARCH),arm) |
| 69 | LOCAL_SRC_FILES += \ |
| 70 | runtime/lib/arm/adddf3vfp.S \ |
| 71 | runtime/lib/arm/addsf3vfp.S \ |
| 72 | runtime/lib/arm/divdf3vfp.S \ |
| 73 | runtime/lib/arm/divsf3vfp.S \ |
| 74 | runtime/lib/arm/eqdf2vfp.S \ |
| 75 | runtime/lib/arm/eqsf2vfp.S \ |
| 76 | runtime/lib/arm/extendsfdf2vfp.S \ |
| 77 | runtime/lib/arm/fixdfsivfp.S \ |
| 78 | runtime/lib/arm/fixsfsivfp.S \ |
| 79 | runtime/lib/arm/fixunsdfsivfp.S \ |
| 80 | runtime/lib/arm/fixunssfsivfp.S \ |
| 81 | runtime/lib/arm/floatsidfvfp.S \ |
| 82 | runtime/lib/arm/floatsisfvfp.S \ |
| 83 | runtime/lib/arm/floatunssidfvfp.S \ |
| 84 | runtime/lib/arm/floatunssisfvfp.S \ |
| 85 | runtime/lib/arm/gedf2vfp.S \ |
| 86 | runtime/lib/arm/gesf2vfp.S \ |
| 87 | runtime/lib/arm/gtdf2vfp.S \ |
| 88 | runtime/lib/arm/gtsf2vfp.S \ |
| 89 | runtime/lib/arm/ledf2vfp.S \ |
| 90 | runtime/lib/arm/lesf2vfp.S \ |
| 91 | runtime/lib/arm/ltdf2vfp.S \ |
| 92 | runtime/lib/arm/ltsf2vfp.S \ |
| 93 | runtime/lib/arm/muldf3vfp.S \ |
| 94 | runtime/lib/arm/mulsf3vfp.S \ |
| 95 | runtime/lib/arm/nedf2vfp.S \ |
| 96 | runtime/lib/arm/negdf2vfp.S \ |
| 97 | runtime/lib/arm/negsf2vfp.S \ |
| 98 | runtime/lib/arm/nesf2vfp.S \ |
| 99 | runtime/lib/arm/subdf3vfp.S \ |
| 100 | runtime/lib/arm/subsf3vfp.S \ |
| 101 | runtime/lib/arm/truncdfsf2vfp.S \ |
| 102 | runtime/lib/arm/unorddf2vfp.S \ |
| 103 | runtime/lib/arm/unordsf2vfp.S |
| 104 | else |
| 105 | ifeq ($(TARGET_ARCH),x86) # We don't support x86-64 right now |
| 106 | LOCAL_SRC_FILES += \ |
| 107 | runtime/lib/i386/ashldi3.S \ |
| 108 | runtime/lib/i386/ashrdi3.S \ |
| 109 | runtime/lib/i386/divdi3.S \ |
| 110 | runtime/lib/i386/floatdidf.S \ |
| 111 | runtime/lib/i386/floatdisf.S \ |
| 112 | runtime/lib/i386/floatdixf.S \ |
| 113 | runtime/lib/i386/floatundidf.S \ |
| 114 | runtime/lib/i386/floatundisf.S \ |
| 115 | runtime/lib/i386/floatundixf.S \ |
| 116 | runtime/lib/i386/lshrdi3.S \ |
| 117 | runtime/lib/i386/moddi3.S \ |
| 118 | runtime/lib/i386/muldi3.S \ |
| 119 | runtime/lib/i386/udivdi3.S \ |
| 120 | runtime/lib/i386/umoddi3.S |
| 121 | else |
| 122 | $(error Unsupported TARGET_ARCH $(TARGET_ARCH)) |
| 123 | endif |
| 124 | endif |
| 125 | |
| 126 | ifeq ($(TARGET_ARCH),arm) |
| 127 | LOCAL_STATIC_LIBRARIES := \ |
| 128 | libLLVMARMCodeGen \ |
| 129 | libLLVMARMInfo |
| 130 | else |
| 131 | ifeq ($(TARGET_ARCH),x86) # We don't support x86-64 right now |
| 132 | LOCAL_STATIC_LIBRARIES := \ |
| 133 | libLLVMX86CodeGen \ |
Shih-wei Liao | dbadbf4 | 2011-03-11 07:50:20 -0800 | [diff] [blame] | 134 | libLLVMX86Info \ |
| 135 | libLLVMX86Utils |
Kenny Root | 34678ab | 2011-02-07 10:56:27 -0800 | [diff] [blame] | 136 | else |
| 137 | $(error Unsupported TARGET_ARCH $(TARGET_ARCH)) |
| 138 | endif |
| 139 | endif |
| 140 | |
| 141 | LOCAL_STATIC_LIBRARIES += \ |
Logan | 61cb230 | 2010-11-27 14:18:26 +0800 | [diff] [blame] | 142 | libLLVMBitReader \ |
| 143 | libLLVMSelectionDAG \ |
| 144 | libLLVMAsmPrinter \ |
| 145 | libLLVMCodeGen \ |
| 146 | libLLVMLinker \ |
| 147 | libLLVMJIT \ |
| 148 | libLLVMTarget \ |
| 149 | libLLVMMC \ |
| 150 | libLLVMScalarOpts \ |
| 151 | libLLVMInstCombine \ |
| 152 | libLLVMipo \ |
| 153 | libLLVMipa \ |
| 154 | libLLVMTransformUtils \ |
| 155 | libLLVMCore \ |
| 156 | libLLVMSupport \ |
Logan | 61cb230 | 2010-11-27 14:18:26 +0800 | [diff] [blame] | 157 | libLLVMAnalysis |
Shih-wei Liao | 77ed614 | 2010-04-07 12:21:42 -0700 | [diff] [blame] | 158 | |
Shih-wei Liao | 7c5a5f7 | 2010-11-08 01:59:13 -0800 | [diff] [blame] | 159 | LOCAL_SHARED_LIBRARIES := libdl libcutils libutils libstlport |
Shih-wei Liao | 77ed614 | 2010-04-07 12:21:42 -0700 | [diff] [blame] | 160 | |
Logan | 61cb230 | 2010-11-27 14:18:26 +0800 | [diff] [blame] | 161 | LOCAL_C_INCLUDES := \ |
Logan | 45e84be | 2011-02-28 05:40:11 +0800 | [diff] [blame] | 162 | $(LOCAL_PATH)/lib/ExecutionEngine \ |
Shih-wei Liao | 67d8f37 | 2011-01-16 22:48:35 -0800 | [diff] [blame] | 163 | $(LOCAL_PATH)/lib/CodeGen \ |
Logan | 8b77a77 | 2010-12-21 09:11:01 +0800 | [diff] [blame] | 164 | $(LOCAL_PATH)/helper \ |
Logan | c439523 | 2010-11-27 18:54:17 +0800 | [diff] [blame] | 165 | $(LOCAL_PATH)/include \ |
| 166 | $(LOCAL_PATH) |
Shih-wei Liao | 77ed614 | 2010-04-07 12:21:42 -0700 | [diff] [blame] | 167 | |
Logan | 3584900 | 2011-01-15 07:30:43 +0800 | [diff] [blame] | 168 | ifeq ($(libbcc_USE_DISASSEMBLER),1) |
Kenny Root | 34678ab | 2011-02-07 10:56:27 -0800 | [diff] [blame] | 169 | ifeq ($(TARGET_ARCH),arm) |
| 170 | LOCAL_STATIC_LIBRARIES += \ |
| 171 | libLLVMARMDisassembler \ |
| 172 | libLLVMARMAsmPrinter |
| 173 | else |
| 174 | ifeq ($(TARGET_ARCH),x86) |
| 175 | LOCAL_STATIC_LIBRARIES += \ |
| 176 | libLLVMX86Disassembler \ |
Logan Chien | c4ea07f | 2011-03-09 17:27:50 +0800 | [diff] [blame] | 177 | libLLVMX86AsmPrinter |
Kenny Root | 34678ab | 2011-02-07 10:56:27 -0800 | [diff] [blame] | 178 | else |
| 179 | $(error Unsupported TARGET_ARCH $(TARGET_ARCH)) |
| 180 | endif |
| 181 | endif |
| 182 | LOCAL_STATIC_LIBRARIES += \ |
| 183 | libLLVMMCParser \ |
| 184 | $(LOCAL_STATIC_LIBRARIES) |
Shih-wei Liao | cd61af3 | 2010-04-29 00:02:57 -0700 | [diff] [blame] | 185 | endif |
Shih-wei Liao | 77ed614 | 2010-04-07 12:21:42 -0700 | [diff] [blame] | 186 | |
Ying Wang | 77643ba | 2011-01-18 22:24:26 -0800 | [diff] [blame] | 187 | # This makes libclcore.bc get installed if and only if the target libbcc.so is installed. |
| 188 | LOCAL_REQUIRED_MODULES := libclcore.bc |
Ying Wang | 3ae8c2a | 2011-01-14 10:50:53 -0800 | [diff] [blame] | 189 | |
Shih-wei Liao | b8b7f2d | 2011-01-14 04:38:39 -0800 | [diff] [blame] | 190 | # -Wl,--exclude-libs=ALL would hide most of the symbols in the shared library |
| 191 | # and reduces the size of libbcc.so by about 800k. |
| 192 | # As libLLVMBitReader:libLLVMCore:libLLVMSupport are used by pixelflinger2, |
| 193 | # use below instead. |
Logan Chien | c4ea07f | 2011-03-09 17:27:50 +0800 | [diff] [blame] | 194 | LOCAL_LDFLAGS += -Wl,--exclude-libs=libLLVMARMDisassembler:libLLVMARMAsmPrinter:libLLVMX86Disassembler:libLLVMX86AsmPrinter:libLLVMMCParser:libLLVMARMCodeGen: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] | 195 | |
Shih-wei Liao | 77ed614 | 2010-04-07 12:21:42 -0700 | [diff] [blame] | 196 | include $(LLVM_ROOT_PATH)/llvm-device-build.mk |
| 197 | include $(BUILD_SHARED_LIBRARY) |
| 198 | |
| 199 | # Shared library for host |
| 200 | # ======================================================== |
| 201 | include $(CLEAR_VARS) |
| 202 | |
| 203 | LOCAL_MODULE := libbcc |
Zonr Chang | 932648d | 2010-10-13 22:23:56 +0800 | [diff] [blame] | 204 | LOCAL_MODULE_TAGS := optional |
Logan | 61cb230 | 2010-11-27 14:18:26 +0800 | [diff] [blame] | 205 | LOCAL_SRC_FILES := \ |
Logan | cf3e521 | 2010-12-29 01:44:55 +0800 | [diff] [blame] | 206 | $(libbcc_SRC_FILES) \ |
Logan | 2f789f3 | 2011-02-28 05:21:17 +0800 | [diff] [blame] | 207 | helper/DebugHelper.c |
Shih-wei Liao | 77ed614 | 2010-04-07 12:21:42 -0700 | [diff] [blame] | 208 | |
Logan | 61cb230 | 2010-11-27 14:18:26 +0800 | [diff] [blame] | 209 | LOCAL_STATIC_LIBRARIES := \ |
| 210 | libcutils \ |
Jeff Brown | 937a0bc | 2011-01-26 23:20:14 -0800 | [diff] [blame] | 211 | libutils \ |
Logan | 61cb230 | 2010-11-27 14:18:26 +0800 | [diff] [blame] | 212 | libLLVMX86CodeGen \ |
| 213 | libLLVMX86Info \ |
Shih-wei Liao | 6228f9d | 2011-03-11 10:09:48 -0800 | [diff] [blame] | 214 | libLLVMX86Utils \ |
Shih-wei Liao | 9b96b18 | 2011-03-11 11:15:17 -0800 | [diff] [blame] | 215 | libLLVMX86AsmPrinter \ |
Logan | 61cb230 | 2010-11-27 14:18:26 +0800 | [diff] [blame] | 216 | libLLVMARMCodeGen \ |
| 217 | libLLVMARMInfo \ |
| 218 | libLLVMBitReader \ |
| 219 | libLLVMSelectionDAG \ |
| 220 | libLLVMAsmPrinter \ |
| 221 | libLLVMMCParser \ |
| 222 | libLLVMCodeGen \ |
| 223 | libLLVMLinker \ |
| 224 | libLLVMJIT \ |
| 225 | libLLVMTarget \ |
| 226 | libLLVMMC \ |
| 227 | libLLVMScalarOpts \ |
| 228 | libLLVMInstCombine \ |
| 229 | libLLVMipo \ |
| 230 | libLLVMipa \ |
| 231 | libLLVMTransformUtils \ |
| 232 | libLLVMCore \ |
| 233 | libLLVMSupport \ |
Logan | 61cb230 | 2010-11-27 14:18:26 +0800 | [diff] [blame] | 234 | libLLVMAnalysis |
Shih-wei Liao | 77ed614 | 2010-04-07 12:21:42 -0700 | [diff] [blame] | 235 | |
| 236 | LOCAL_LDLIBS := -ldl -lpthread |
| 237 | |
Logan | 61cb230 | 2010-11-27 14:18:26 +0800 | [diff] [blame] | 238 | LOCAL_C_INCLUDES := \ |
Logan | 45e84be | 2011-02-28 05:40:11 +0800 | [diff] [blame] | 239 | $(LOCAL_PATH)/lib/ExecutionEngine \ |
Shih-wei Liao | 67d8f37 | 2011-01-16 22:48:35 -0800 | [diff] [blame] | 240 | $(LOCAL_PATH)/lib/CodeGen \ |
Logan | 8b77a77 | 2010-12-21 09:11:01 +0800 | [diff] [blame] | 241 | $(LOCAL_PATH)/helper \ |
Logan | c439523 | 2010-11-27 18:54:17 +0800 | [diff] [blame] | 242 | $(LOCAL_PATH)/include \ |
| 243 | $(LOCAL_PATH) |
Shih-wei Liao | 77ed614 | 2010-04-07 12:21:42 -0700 | [diff] [blame] | 244 | |
Shih-wei Liao | e64c287 | 2010-10-25 13:44:53 -0700 | [diff] [blame] | 245 | # definitions for LLVM |
Kenny Root | 34678ab | 2011-02-07 10:56:27 -0800 | [diff] [blame] | 246 | LOCAL_CFLAGS += -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -DDEBUG_CODEGEN=1 |
| 247 | |
| 248 | ifeq ($(TARGET_ARCH),arm) |
| 249 | LOCAL_CFLAGS += -DFORCE_ARM_CODEGEN=1 |
| 250 | else |
| 251 | ifeq ($(TARGET_ARCH),x86) |
| 252 | LOCAL_CFLAGS += -DFORCE_X86_CODEGEN=1 |
| 253 | else |
| 254 | $(error Unsupported TARGET_ARCH $(TARGET_ARCH)) |
| 255 | endif |
| 256 | endif |
Shih-wei Liao | e64c287 | 2010-10-25 13:44:53 -0700 | [diff] [blame] | 257 | |
Logan | 3584900 | 2011-01-15 07:30:43 +0800 | [diff] [blame] | 258 | ifeq ($(libbcc_USE_DISASSEMBLER),1) |
Logan | 61cb230 | 2010-11-27 14:18:26 +0800 | [diff] [blame] | 259 | LOCAL_STATIC_LIBRARIES := \ |
| 260 | libLLVMARMDisassembler \ |
| 261 | libLLVMARMAsmPrinter \ |
Kenny Root | 34678ab | 2011-02-07 10:56:27 -0800 | [diff] [blame] | 262 | libLLVMX86Disassembler \ |
Logan | 61cb230 | 2010-11-27 14:18:26 +0800 | [diff] [blame] | 263 | libLLVMMCParser \ |
| 264 | $(LOCAL_STATIC_LIBRARIES) |
Shih-wei Liao | cd61af3 | 2010-04-29 00:02:57 -0700 | [diff] [blame] | 265 | endif |
| 266 | |
Shih-wei Liao | 77ed614 | 2010-04-07 12:21:42 -0700 | [diff] [blame] | 267 | include $(LLVM_ROOT_PATH)/llvm-host-build.mk |
| 268 | include $(BUILD_HOST_SHARED_LIBRARY) |
| 269 | |
| 270 | # Build children |
| 271 | # ======================================================== |
Shih-wei Liao | 77ed614 | 2010-04-07 12:21:42 -0700 | [diff] [blame] | 272 | include $(call all-makefiles-under,$(LOCAL_PATH)) |
Carl Shapiro | 105a9d2 | 2010-04-13 17:53:26 -0700 | [diff] [blame] | 273 | |
Shih-wei Liao | 800e9c2 | 2010-04-18 16:08:16 -0700 | [diff] [blame] | 274 | endif # TARGET_SIMULATOR != true |