blob: fff83dc98071426f145b960128a146799a3f6838 [file] [log] [blame]
Stephen Hines7de4ee92013-02-27 21:49:16 -08001LOCAL_PATH:= $(call my-dir)
2
3llvm_pre_static_libraries := \
4 libLLVMLinker \
5 libLLVMipo \
Stephen Hinesebe69fe2015-03-23 12:10:34 -07006 libLLVMDebugInfoDWARF \
7 libLLVMDebugInfoPDB \
Stephen Hines9dbeb692013-05-03 13:11:35 -07008 libLLVMIRReader \
Stephen Hines7de4ee92013-02-27 21:49:16 -08009 libLLVMBitWriter \
10 libLLVMBitReader
11
12llvm_arm_static_libraries := \
13 libLLVMARMCodeGen \
14 libLLVMARMAsmParser \
15 libLLVMARMAsmPrinter \
16 libLLVMARMInfo \
Stephen Hines227a4a42013-02-28 22:26:45 -080017 libLLVMARMDesc \
18 libLLVMARMDisassembler
Stephen Hines7de4ee92013-02-27 21:49:16 -080019
20llvm_x86_static_libraries := \
21 libLLVMX86CodeGen \
22 libLLVMX86Info \
23 libLLVMX86Desc \
24 libLLVMX86AsmParser \
25 libLLVMX86AsmPrinter \
Stephen Hines227a4a42013-02-28 22:26:45 -080026 libLLVMX86Utils \
27 libLLVMX86Disassembler
Stephen Hines7de4ee92013-02-27 21:49:16 -080028
29llvm_mips_static_libraries := \
30 libLLVMMipsCodeGen \
31 libLLVMMipsInfo \
32 libLLVMMipsDesc \
33 libLLVMMipsAsmParser \
Stephen Hines227a4a42013-02-28 22:26:45 -080034 libLLVMMipsAsmPrinter \
35 libLLVMMipsDisassembler
Stephen Hines7de4ee92013-02-27 21:49:16 -080036
Chris Wailes7cfe7b82014-06-04 15:16:35 -070037llvm_aarch64_static_libraries := \
38 libLLVMAArch64CodeGen \
39 libLLVMAArch64Info \
40 libLLVMAArch64Desc \
41 libLLVMAArch64AsmParser \
42 libLLVMAArch64AsmPrinter \
43 libLLVMAArch64Utils \
44 libLLVMAArch64Disassembler
Tim Murray8aa5ce82014-03-07 13:15:57 -080045
Stephen Hines7de4ee92013-02-27 21:49:16 -080046llvm_post_static_libraries := \
47 libLLVMAsmPrinter \
48 libLLVMSelectionDAG \
49 libLLVMCodeGen \
Stephen Hinesb497f3f2013-03-25 00:08:26 -070050 libLLVMObject \
Stephen Hines7de4ee92013-02-27 21:49:16 -080051 libLLVMScalarOpts \
52 libLLVMInstCombine \
53 libLLVMInstrumentation \
Stephen Hines2123c1c2013-03-05 23:29:52 -080054 libLLVMTransformObjCARC \
Stephen Hines7de4ee92013-02-27 21:49:16 -080055 libLLVMTransformUtils \
56 libLLVMipa \
57 libLLVMAnalysis \
58 libLLVMTarget \
Stephen Hines37ed9c12014-12-01 14:51:49 -080059 libLLVMMCDisassembler \
Stephen Hines7de4ee92013-02-27 21:49:16 -080060 libLLVMMC \
61 libLLVMMCParser \
62 libLLVMCore \
Stephen Hines7de4ee92013-02-27 21:49:16 -080063 libLLVMAsmParser \
Stephen Hinesead8d022013-08-07 19:25:16 -070064 libLLVMOption \
Stephen Hines7de4ee92013-02-27 21:49:16 -080065 libLLVMSupport \
Stephen Hinesdce4a402014-05-29 02:49:00 -070066 libLLVMVectorize \
Tong Shen07711a92014-09-19 11:59:15 -070067 libLLVMProfileData
Stephen Hines7de4ee92013-02-27 21:49:16 -080068
Todd Fialaba309b02013-10-18 15:22:40 -070069llvm_host_static_libraries := \
70 libLLVMExecutionEngine \
Todd Fialaba309b02013-10-18 15:22:40 -070071 libLLVMRuntimeDyld \
Stephen Hinesebe69fe2015-03-23 12:10:34 -070072 libLLVMMCJIT \
73 libLLVMOrcJIT
Todd Fialaba309b02013-10-18 15:22:40 -070074
Stephen Hines5ed52572013-09-06 16:55:14 -070075ifeq (true,$(FORCE_BUILD_LLVM_COMPONENTS))
Stephen Hines7de4ee92013-02-27 21:49:16 -080076# HOST LLVM shared library build
77include $(CLEAR_VARS)
78LOCAL_IS_HOST_MODULE := true
79
80LOCAL_MODULE:= libLLVM
81
82LOCAL_MODULE_TAGS := optional
83
84# Host build pulls in all ARM, Mips, X86 components.
85LOCAL_WHOLE_STATIC_LIBRARIES := \
86 $(llvm_pre_static_libraries) \
87 $(llvm_arm_static_libraries) \
88 $(llvm_x86_static_libraries) \
89 $(llvm_mips_static_libraries) \
Chris Wailes7cfe7b82014-06-04 15:16:35 -070090 $(llvm_aarch64_static_libraries) \
Todd Fialaba309b02013-10-18 15:22:40 -070091 $(llvm_host_static_libraries) \
Stephen Hines7de4ee92013-02-27 21:49:16 -080092 $(llvm_post_static_libraries)
93
94ifeq ($(HOST_OS),windows)
95 LOCAL_LDLIBS := -limagehlp -lpsapi
96else
97 LOCAL_LDLIBS := -ldl -lpthread
98endif
99
100include $(LLVM_HOST_BUILD_MK)
101include $(BUILD_HOST_SHARED_LIBRARY)
Stephen Hines5ed52572013-09-06 16:55:14 -0700102endif
Stephen Hines7de4ee92013-02-27 21:49:16 -0800103
Colin Crossb7325c32014-02-04 16:26:26 -0800104ifeq (,$(filter $(TARGET_ARCH),$(LLVM_SUPPORTED_ARCH)))
105$(warning TODO $(TARGET_ARCH): Enable llvm build)
106endif
107
Stephen Hines36b56882014-04-23 16:57:46 -0700108ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
Stephen Hines7de4ee92013-02-27 21:49:16 -0800109# DEVICE LLVM shared library build
110include $(CLEAR_VARS)
111
112LOCAL_MODULE:= libLLVM
113
114LOCAL_MODULE_TAGS := optional
115
116# Device build selectively pulls in ARM, Mips, X86 components.
117LOCAL_WHOLE_STATIC_LIBRARIES := \
118 $(llvm_pre_static_libraries)
119
Colin Crossb7325c32014-02-04 16:26:26 -0800120LOCAL_WHOLE_STATIC_LIBRARIES_arm += $(llvm_arm_static_libraries)
121LOCAL_WHOLE_STATIC_LIBRARIES_x86 += $(llvm_x86_static_libraries)
122LOCAL_WHOLE_STATIC_LIBRARIES_x86_64 += $(llvm_x86_static_libraries)
123LOCAL_WHOLE_STATIC_LIBRARIES_mips += $(llvm_mips_static_libraries)
Duane Sand10c02dd2014-06-04 13:07:53 -0700124LOCAL_WHOLE_STATIC_LIBRARIES_mips64 += $(llvm_mips_static_libraries)
Colin Crossefe6bad2014-06-04 18:30:13 -0700125LOCAL_WHOLE_STATIC_LIBRARIES_arm64 += $(llvm_aarch64_static_libraries)
126LOCAL_WHOLE_STATIC_LIBRARIES_arm64 += $(llvm_arm_static_libraries)
Stephen Hines7de4ee92013-02-27 21:49:16 -0800127
Tim Murrayb86aaa72014-10-15 14:05:57 -0700128ifeq ($(BUILD_ARM_FOR_X86),true)
129LOCAL_WHOLE_STATIC_LIBRARIES_x86 += $(llvm_arm_static_libraries)
130LOCAL_WHOLE_STATIC_LIBRARIES_x86_64 += $(llvm_arm_static_libraries)
131endif
132
Stephen Hines7de4ee92013-02-27 21:49:16 -0800133LOCAL_WHOLE_STATIC_LIBRARIES += $(llvm_post_static_libraries)
134
135#LOCAL_LDLIBS := -ldl -lpthread
Stephen Hines36b56882014-04-23 16:57:46 -0700136LOCAL_SHARED_LIBRARIES := libcutils libdl libc++
Stephen Hines7de4ee92013-02-27 21:49:16 -0800137
138include $(LLVM_DEVICE_BUILD_MK)
139include $(BUILD_SHARED_LIBRARY)
Tim Murrayd2ba5442013-03-06 10:12:07 -0800140
Stephen Hines36b56882014-04-23 16:57:46 -0700141endif