blob: ea92c063d95d923414e1d6ba79b219faed381756 [file] [log] [blame]
Zonr Chang932648d2010-10-13 22:23:56 +08001#
Stephen Hinesdb169182012-01-05 18:46:36 -08002# Copyright (C) 2010-2012 The Android Open Source Project
Zonr Chang932648d2010-10-13 22:23:56 +08003#
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 Liao77ed6142010-04-07 12:21:42 -070017LOCAL_PATH := $(call my-dir)
Logan Chien74396852011-07-12 15:50:26 +080018include $(LOCAL_PATH)/libbcc-config.mk
Logan35849002011-01-15 07:30:43 +080019
Shih-wei Liao77ed6142010-04-07 12:21:42 -070020
Logan Chien74396852011-07-12 15:50:26 +080021#=====================================================================
22# Whole Static Library to Be Linked In
23#=====================================================================
Logan35849002011-01-15 07:30:43 +080024
Logan Chien74396852011-07-12 15:50:26 +080025ifeq ($(libbcc_USE_DISASSEMBLER),1)
26libbcc_WHOLE_STATIC_LIBRARIES += libbccDisassembler
Logan35849002011-01-15 07:30:43 +080027endif
Logancf3e5212010-12-29 01:44:55 +080028
Logan Chien74396852011-07-12 15:50:26 +080029libbcc_WHOLE_STATIC_LIBRARIES += \
30 libbccExecutionEngine \
Stephen Hinesdb169182012-01-05 18:46:36 -080031 libbccHelper \
32 libbccTransforms
Logan Chien8d3b5e12011-07-12 16:19:21 +080033
Logan Chien74396852011-07-12 15:50:26 +080034
35#=====================================================================
Joseph Wen2ca6e572011-06-24 14:12:23 -070036# Calculate SHA1 checksum for libbcc.so and libRS.so
Logan Chien74396852011-07-12 15:50:26 +080037#=====================================================================
38
Joseph Wen2ca6e572011-06-24 14:12:23 -070039include $(CLEAR_VARS)
Logan Chien74396852011-07-12 15:50:26 +080040
Ying Wang26fea102011-07-05 15:12:25 -070041LOCAL_MODULE := libbcc.so.sha1
Joseph Wen2ca6e572011-06-24 14:12:23 -070042LOCAL_MODULE_TAGS := optional
43LOCAL_MODULE_CLASS := SHARED_LIBRARIES
44
Ying Wang26fea102011-07-05 15:12:25 -070045include $(BUILD_SYSTEM)/base_rules.mk
Logan Chien74396852011-07-12 15:50:26 +080046libbcc_SHA1_SRCS := \
47 $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/libbcc.so \
48 $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/libRS.so
Ying Wang0b486952011-07-01 13:37:01 -070049
Zonr Changb4db7222012-02-06 14:21:20 +080050libbcc_GEN_SHA1_STAMP := $(LOCAL_PATH)/tools/build/gen-sha1-stamp.py
Logan Chien6888aae2011-07-12 16:47:10 +080051
Ying Wang26fea102011-07-05 15:12:25 -070052$(LOCAL_BUILT_MODULE): PRIVATE_SHA1_SRCS := $(libbcc_SHA1_SRCS)
Logan Chien6888aae2011-07-12 16:47:10 +080053$(LOCAL_BUILT_MODULE): $(libbcc_SHA1_SRCS) $(libbcc_GEN_SHA1_STAMP)
Ying Wang0b486952011-07-01 13:37:01 -070054 $(hide) mkdir -p $(dir $@) && \
Logan Chien74396852011-07-12 15:50:26 +080055 $(libbcc_GEN_SHA1_STAMP) $@ $(PRIVATE_SHA1_SRCS)
Joseph Wen2ca6e572011-06-24 14:12:23 -070056
Logan Chien74396852011-07-12 15:50:26 +080057
58#=====================================================================
59# Device Shared Library libbcc
60#=====================================================================
61
Shih-wei Liao77ed6142010-04-07 12:21:42 -070062include $(CLEAR_VARS)
Iliyan Malchev97bd44d2011-03-14 14:02:14 -070063
Shih-wei Liao77ed6142010-04-07 12:21:42 -070064LOCAL_MODULE := libbcc
Zonr Chang932648d2010-10-13 22:23:56 +080065LOCAL_MODULE_TAGS := optional
Joseph Wen5de1adf2011-06-21 15:41:31 -070066LOCAL_MODULE_CLASS := SHARED_LIBRARIES
Shih-wei Liao77ed6142010-04-07 12:21:42 -070067
Logan Chienf68882e2011-07-18 19:11:39 +080068LOCAL_CFLAGS := $(libbcc_CFLAGS)
69LOCAL_C_INCLUDES := $(libbcc_C_INCLUDES)
70
71LOCAL_SRC_FILES := lib/ExecutionEngine/bcc.cpp
72
Logan Chien21392f02011-11-26 20:32:01 +080073LOCAL_WHOLE_STATIC_LIBRARIES := $(libbcc_WHOLE_STATIC_LIBRARIES)
74
75ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm x86))
76LOCAL_WHOLE_STATIC_LIBRARIES += libbccCompilerRT
77endif
Kenny Root34678ab2011-02-07 10:56:27 -080078
Stephen Hines36999622012-03-11 19:15:51 -070079LOCAL_STATIC_LIBRARIES += librsloader
Shih-wei Liaoddfd1ad2011-06-18 01:47:27 -070080
Logan35849002011-01-15 07:30:43 +080081ifeq ($(libbcc_USE_DISASSEMBLER),1)
Kenny Root34678ab2011-02-07 10:56:27 -080082 ifeq ($(TARGET_ARCH),arm)
83 LOCAL_STATIC_LIBRARIES += \
84 libLLVMARMDisassembler \
85 libLLVMARMAsmPrinter
86 else
Logan Chien21392f02011-11-26 20:32:01 +080087 ifeq ($(TARGET_ARCH),mips)
88 $(error "Disassembler is not available for MIPS architecture")
Kenny Root34678ab2011-02-07 10:56:27 -080089 else
Logan Chien21392f02011-11-26 20:32:01 +080090 ifeq ($(TARGET_ARCH),x86)
91 LOCAL_STATIC_LIBRARIES += \
92 libLLVMX86Disassembler
93 else
94 $(error Unsupported TARGET_ARCH $(TARGET_ARCH))
95 endif
Kenny Root34678ab2011-02-07 10:56:27 -080096 endif
97 endif
Shih-wei Liaocd61af32010-04-29 00:02:57 -070098endif
Shih-wei Liao77ed6142010-04-07 12:21:42 -070099
Logan Chien41cb7612011-07-12 16:12:03 +0800100ifeq ($(TARGET_ARCH),arm)
101 LOCAL_STATIC_LIBRARIES += \
102 libLLVMARMCodeGen \
Shih-wei Liaobb5df5c2011-07-19 05:15:11 -0700103 libLLVMARMDesc \
Logan Chien41cb7612011-07-12 16:12:03 +0800104 libLLVMARMInfo
105else
Logan Chien21392f02011-11-26 20:32:01 +0800106 ifeq ($(TARGET_ARCH), mips)
Logan Chien41cb7612011-07-12 16:12:03 +0800107 LOCAL_STATIC_LIBRARIES += \
Logan Chien21392f02011-11-26 20:32:01 +0800108 libLLVMMipsCodeGen \
109 libLLVMMipsAsmPrinter \
110 libLLVMMipsDesc \
111 libLLVMMipsInfo
Logan Chien41cb7612011-07-12 16:12:03 +0800112 else
Logan Chien21392f02011-11-26 20:32:01 +0800113 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
Logan Chien41cb7612011-07-12 16:12:03 +0800123 endif
124endif
125
126LOCAL_STATIC_LIBRARIES += \
127 libLLVMAsmPrinter \
128 libLLVMBitReader \
129 libLLVMSelectionDAG \
130 libLLVMCodeGen \
131 libLLVMLinker \
Logan Chien41cb7612011-07-12 16:12:03 +0800132 libLLVMScalarOpts \
133 libLLVMInstCombine \
134 libLLVMipo \
135 libLLVMipa \
136 libLLVMTransformUtils \
137 libLLVMAnalysis \
138 libLLVMTarget \
139 libLLVMMCParser \
140 libLLVMMC \
141 libLLVMCore \
142 libLLVMSupport
143
Stephen Hines569986d2012-03-09 19:58:45 -0800144LOCAL_SHARED_LIBRARIES := libbcinfo libdl libcutils libutils libstlport
Logan Chien41cb7612011-07-12 16:12:03 +0800145
Logan Chien21392f02011-11-26 20:32:01 +0800146# Modules that need get installed if and only if the target libbcc.so is
147# installed.
Ying Wang26fea102011-07-05 15:12:25 -0700148LOCAL_REQUIRED_MODULES := libclcore.bc libbcc.so.sha1
Ying Wang3ae8c2a2011-01-14 10:50:53 -0800149
Logan Chien21392f02011-11-26 20:32:01 +0800150# 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
Shih-wei Liao6d997122012-03-24 03:41:34 -0700159LOCAL_LDFLAGS += -Wl,--exclude-libs=libLLVMARMDisassembler:libLLVMARMAsmPrinter:libLLVMX86Disassembler:libLLVMX86AsmPrinter:libLLVMMCParser:libLLVMARMCodeGen:libLLVMARMDesc:libLLVMARMInfo:libLLVMSelectionDAG:libLLVMAsmPrinter:libLLVMCodeGen:libLLVMLinker:libLLVMTarget:libLLVMMC:libLLVMScalarOpts:libLLVMInstCombine:libLLVMipo:libLLVMipa:libLLVMTransformUtils:libLLVMAnalysis
Shih-wei Liaob8b7f2d2011-01-14 04:38:39 -0800160
Logan Chien48dc01d2011-07-13 18:12:06 +0800161# Generate build stamp (Build time + Build git revision + Build Semi SHA1)
162include $(LOCAL_PATH)/libbcc-gen-build-stamp.mk
163
Logan Chieneb567842011-07-14 19:58:42 +0800164include $(LIBBCC_ROOT_PATH)/libbcc-gen-config-from-mk.mk
Shih-wei Liao77ed6142010-04-07 12:21:42 -0700165include $(LLVM_ROOT_PATH)/llvm-device-build.mk
166include $(BUILD_SHARED_LIBRARY)
167
Logan Chien74396852011-07-12 15:50:26 +0800168
169#=====================================================================
170# Host Shared Library libbcc
171#=====================================================================
Logan Chien21392f02011-11-26 20:32:01 +0800172
Shih-wei Liao77ed6142010-04-07 12:21:42 -0700173include $(CLEAR_VARS)
174
175LOCAL_MODULE := libbcc
Zonr Chang932648d2010-10-13 22:23:56 +0800176LOCAL_MODULE_TAGS := optional
Joseph Wen5de1adf2011-06-21 15:41:31 -0700177LOCAL_MODULE_CLASS := SHARED_LIBRARIES
178LOCAL_IS_HOST_MODULE := true
Logan Chien74396852011-07-12 15:50:26 +0800179
Logan Chienf68882e2011-07-18 19:11:39 +0800180LOCAL_CFLAGS := $(libbcc_CFLAGS)
Andrew Hsieh1704c742011-11-20 20:43:36 -0800181LOCAL_CFLAGS += -D__HOST__
Logan Chienf68882e2011-07-18 19:11:39 +0800182LOCAL_C_INCLUDES := $(libbcc_C_INCLUDES)
183
184LOCAL_SRC_FILES := lib/ExecutionEngine/bcc.cpp
185
Logan Chien74396852011-07-12 15:50:26 +0800186LOCAL_WHOLE_STATIC_LIBRARIES += $(libbcc_WHOLE_STATIC_LIBRARIES)
Shih-wei Liao77ed6142010-04-07 12:21:42 -0700187
Stephen Hines36999622012-03-11 19:15:51 -0700188LOCAL_STATIC_LIBRARIES += librsloader
Shih-wei Liao77ed6142010-04-07 12:21:42 -0700189
Logan Chien41cb7612011-07-12 16:12:03 +0800190ifeq ($(libbcc_USE_DISASSEMBLER),1)
191 LOCAL_STATIC_LIBRARIES += \
192 libLLVMARMDisassembler \
193 libLLVMARMAsmPrinter \
194 libLLVMX86Disassembler \
195 libLLVMMCParser
196endif
197
Shih-wei Liaoa6ced2a2011-06-18 00:50:55 -0700198LOCAL_STATIC_LIBRARIES += \
Logan Chien41cb7612011-07-12 16:12:03 +0800199 libLLVMARMCodeGen \
Shih-wei Liaobb5df5c2011-07-19 05:15:11 -0700200 libLLVMARMDesc \
Logan Chien21392f02011-11-26 20:32:01 +0800201 libLLVMARMInfo
202
203LOCAL_STATIC_LIBRARIES += \
204 libLLVMMipsCodeGen \
205 libLLVMMipsAsmPrinter \
206 libLLVMMipsDesc \
207 libLLVMMipsInfo
208
209LOCAL_STATIC_LIBRARIES += \
Shih-wei Liaoa6ced2a2011-06-18 00:50:55 -0700210 libLLVMX86CodeGen \
Shih-wei Liaobb5df5c2011-07-19 05:15:11 -0700211 libLLVMX86Desc \
Shih-wei Liaoa6ced2a2011-06-18 00:50:55 -0700212 libLLVMX86AsmPrinter \
Logan Chien21392f02011-11-26 20:32:01 +0800213 libLLVMX86Info \
214 libLLVMX86Utils
215
216LOCAL_STATIC_LIBRARIES += \
Logan Chien41cb7612011-07-12 16:12:03 +0800217 libLLVMAsmPrinter \
Shih-wei Liaoa6ced2a2011-06-18 00:50:55 -0700218 libLLVMBitReader \
219 libLLVMSelectionDAG \
Shih-wei Liaoa6ced2a2011-06-18 00:50:55 -0700220 libLLVMCodeGen \
221 libLLVMLinker \
Shih-wei Liaoa6ced2a2011-06-18 00:50:55 -0700222 libLLVMScalarOpts \
223 libLLVMInstCombine \
224 libLLVMipo \
225 libLLVMipa \
226 libLLVMTransformUtils \
Shih-wei Liao34499f42011-06-20 22:40:45 -0700227 libLLVMAnalysis \
Logan Chien41cb7612011-07-12 16:12:03 +0800228 libLLVMTarget \
229 libLLVMMCParser \
230 libLLVMMC \
231 libLLVMCore \
Shih-wei Liaoa8833142011-06-20 13:58:54 -0700232 libLLVMSupport
Shih-wei Liaoa6ced2a2011-06-18 00:50:55 -0700233
Logan Chien21392f02011-11-26 20:32:01 +0800234LOCAL_STATIC_LIBRARIES += \
235 libcutils \
236 libutils
237
Stephen Hines569986d2012-03-09 19:58:45 -0800238LOCAL_SHARED_LIBRARIES := libbcinfo
239
Shih-wei Liao77ed6142010-04-07 12:21:42 -0700240LOCAL_LDLIBS := -ldl -lpthread
241
Logan Chien48dc01d2011-07-13 18:12:06 +0800242# Generate build stamp (Build time + Build git revision + Build Semi SHA1)
243include $(LOCAL_PATH)/libbcc-gen-build-stamp.mk
244
Logan Chieneb567842011-07-14 19:58:42 +0800245include $(LIBBCC_ROOT_PATH)/libbcc-gen-config-from-mk.mk
Shih-wei Liao77ed6142010-04-07 12:21:42 -0700246include $(LLVM_ROOT_PATH)/llvm-host-build.mk
247include $(BUILD_HOST_SHARED_LIBRARY)
248
Logan Chien74396852011-07-12 15:50:26 +0800249
250#=====================================================================
251# Include Subdirectories
252#=====================================================================
Shih-wei Liao77ed6142010-04-07 12:21:42 -0700253include $(call all-makefiles-under,$(LOCAL_PATH))