• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1LOCAL_PATH:= $(call my-dir)
2
3llvm_pre_static_libraries := \
4  libLLVMLinker \
5  libLLVMipo \
6  libLLVMDebugInfoDWARF \
7  libLLVMDebugInfoPDB \
8  libLLVMIRReader \
9  libLLVMBitWriter \
10  libLLVMBitReader
11
12llvm_arm_static_libraries := \
13  libLLVMARMCodeGen \
14  libLLVMARMAsmParser \
15  libLLVMARMAsmPrinter \
16  libLLVMARMInfo \
17  libLLVMARMDesc \
18  libLLVMARMDisassembler
19
20llvm_x86_static_libraries := \
21  libLLVMX86CodeGen \
22  libLLVMX86Info \
23  libLLVMX86Desc \
24  libLLVMX86AsmParser \
25  libLLVMX86AsmPrinter \
26  libLLVMX86Utils \
27  libLLVMX86Disassembler
28
29llvm_mips_static_libraries := \
30  libLLVMMipsCodeGen \
31  libLLVMMipsInfo \
32  libLLVMMipsDesc \
33  libLLVMMipsAsmParser \
34  libLLVMMipsAsmPrinter \
35  libLLVMMipsDisassembler
36
37llvm_aarch64_static_libraries := \
38  libLLVMAArch64CodeGen \
39  libLLVMAArch64Info \
40  libLLVMAArch64Desc \
41  libLLVMAArch64AsmParser \
42  libLLVMAArch64AsmPrinter \
43  libLLVMAArch64Utils \
44  libLLVMAArch64Disassembler
45
46llvm_post_static_libraries := \
47  libLLVMAsmPrinter \
48  libLLVMSelectionDAG \
49  libLLVMCodeGen \
50  libLLVMObject \
51  libLLVMScalarOpts \
52  libLLVMInstCombine \
53  libLLVMInstrumentation \
54  libLLVMTransformObjCARC \
55  libLLVMTransformUtils \
56  libLLVMipa \
57  libLLVMAnalysis \
58  libLLVMTarget \
59  libLLVMMCDisassembler \
60  libLLVMMC \
61  libLLVMMCParser \
62  libLLVMCore \
63  libLLVMAsmParser \
64  libLLVMOption \
65  libLLVMSupport \
66  libLLVMVectorize \
67  libLLVMProfileData
68
69llvm_host_static_libraries := \
70  libLLVMExecutionEngine \
71  libLLVMRuntimeDyld \
72  libLLVMMCJIT \
73  libLLVMOrcJIT
74
75ifeq (true,$(FORCE_BUILD_LLVM_COMPONENTS))
76# 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) \
90  $(llvm_aarch64_static_libraries) \
91  $(llvm_host_static_libraries) \
92  $(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)
102endif
103
104ifeq (,$(filter $(TARGET_ARCH),$(LLVM_SUPPORTED_ARCH)))
105$(warning TODO $(TARGET_ARCH): Enable llvm build)
106endif
107
108ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
109# 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
120LOCAL_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)
124LOCAL_WHOLE_STATIC_LIBRARIES_mips64 += $(llvm_mips_static_libraries)
125LOCAL_WHOLE_STATIC_LIBRARIES_arm64 += $(llvm_aarch64_static_libraries)
126LOCAL_WHOLE_STATIC_LIBRARIES_arm64 += $(llvm_arm_static_libraries)
127
128ifeq ($(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
133LOCAL_WHOLE_STATIC_LIBRARIES += $(llvm_post_static_libraries)
134
135#LOCAL_LDLIBS := -ldl -lpthread
136LOCAL_SHARED_LIBRARIES := libcutils libdl libc++
137
138include $(LLVM_DEVICE_BUILD_MK)
139include $(BUILD_SHARED_LIBRARY)
140
141endif
142