1 LOCAL_PATH:= $(call my-dir)
3 llvm_pre_static_libraries := \
6 libLLVM70DebugInfoDWARF \
7 libLLVM70DebugInfoPDB \
9 libLLVM70DebugInfoMSF \
10 libLLVM70DebugInfoCodeView \
16 llvm_arm_static_libraries := \
18 libLLVM70ARMAsmParser \
19 libLLVM70ARMAsmPrinter \
22 libLLVM70ARMDisassembler \
25 llvm_x86_static_libraries := \
29 libLLVM70X86AsmParser \
30 libLLVM70X86AsmPrinter \
32 libLLVM70X86Disassembler
34 ifneq ($(filter radeonsi,$(BOARD_GPU_DRIVERS)),)
35 llvm_x86_static_libraries += \
36 libLLVM70AMDGPUCodeGen \
39 libLLVM70AMDGPUAsmParser \
40 libLLVM70AMDGPUAsmPrinter \
44 llvm_mips_static_libraries := \
45 libLLVM70MipsCodeGen \
48 libLLVM70MipsAsmParser \
49 libLLVM70MipsAsmPrinter \
50 libLLVM70MipsDisassembler
52 llvm_aarch64_static_libraries := \
53 libLLVM70AArch64CodeGen \
54 libLLVM70AArch64Info \
55 libLLVM70AArch64Desc \
56 libLLVM70AArch64AsmParser \
57 libLLVM70AArch64AsmPrinter \
58 libLLVM70AArch64Utils \
59 libLLVM70AArch64Disassembler
61 llvm_post_static_libraries := \
63 libLLVM70SelectionDAG \
67 libLLVM70InstCombine \
68 libLLVM70Instrumentation \
69 libLLVM70TransformObjCARC \
70 libLLVM70TransformUtils \
73 libLLVM70MCDisassembler \
81 libLLVM70ProfileData \
85 llvm_host_static_libraries := \
86 libLLVM70ExecutionEngine \
87 libLLVM70RuntimeDyld \
91 llvm_device_static_libraries := \
92 libLLVM70ExecutionEngine \
93 libLLVM70RuntimeDyld \
96 # HOST LLVM shared library build
98 LOCAL_IS_HOST_MODULE := true
100 LOCAL_MODULE:= libLLVM70
102 LOCAL_MODULE_TAGS := optional
104 # Host build pulls in all ARM, Mips, X86 components.
105 LOCAL_WHOLE_STATIC_LIBRARIES := \
106 $(llvm_pre_static_libraries) \
107 $(llvm_arm_static_libraries) \
108 $(llvm_x86_static_libraries) \
109 $(llvm_mips_static_libraries) \
110 $(llvm_aarch64_static_libraries) \
111 $(llvm_host_static_libraries) \
112 $(llvm_post_static_libraries)
114 LOCAL_LDLIBS_windows := -limagehlp -lpsapi -lole32
115 LOCAL_LDLIBS_darwin := -ldl -lpthread
116 LOCAL_LDLIBS_linux := -ldl -lpthread
118 # Use prebuilts for linux and darwin unless
119 # FORCE_BUILD_LLVM_COMPONENTS is true
120 ifneq (true,$(FORCE_BUILD_LLVM_COMPONENTS))
121 LOCAL_MODULE_HOST_OS := windows
123 LOCAL_MODULE_HOST_OS := darwin linux windows
126 include $(LLVM70_HOST_BUILD_MK)
127 include $(BUILD_HOST_SHARED_LIBRARY)
129 ifeq (,$(filter $(TARGET_ARCH),$(LLVM70_SUPPORTED_ARCH)))
130 $(warning TODO $(TARGET_ARCH): Enable llvm build)
133 ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
134 # DEVICE LLVM shared library build
135 include $(CLEAR_VARS)
137 LOCAL_MODULE:= libLLVM70
139 LOCAL_MODULE_TAGS := optional
141 # Device build selectively pulls in ARM, Mips, X86 components.
142 LOCAL_WHOLE_STATIC_LIBRARIES := \
143 $(llvm_pre_static_libraries)
145 LOCAL_WHOLE_STATIC_LIBRARIES_arm += $(llvm_arm_static_libraries)
146 LOCAL_WHOLE_STATIC_LIBRARIES_x86 += $(llvm_x86_static_libraries)
147 LOCAL_WHOLE_STATIC_LIBRARIES_x86_64 += $(llvm_x86_static_libraries)
148 LOCAL_WHOLE_STATIC_LIBRARIES_mips += $(llvm_mips_static_libraries)
149 LOCAL_WHOLE_STATIC_LIBRARIES_mips64 += $(llvm_mips_static_libraries)
150 LOCAL_WHOLE_STATIC_LIBRARIES_arm64 += $(llvm_aarch64_static_libraries)
151 LOCAL_WHOLE_STATIC_LIBRARIES_arm64 += $(llvm_arm_static_libraries)
153 ifeq ($(BUILD_ARM_FOR_X86),true)
154 LOCAL_WHOLE_STATIC_LIBRARIES_x86 += $(llvm_arm_static_libraries)
155 LOCAL_WHOLE_STATIC_LIBRARIES_x86 += $(llvm_aarch64_static_libraries)
156 LOCAL_WHOLE_STATIC_LIBRARIES_x86_64 += $(llvm_arm_static_libraries)
157 LOCAL_WHOLE_STATIC_LIBRARIES_x86_64 += $(llvm_aarch64_static_libraries)
160 LOCAL_WHOLE_STATIC_LIBRARIES += \
161 $(llvm_device_static_libraries) \
162 $(llvm_post_static_libraries)
164 LOCAL_MODULE_CLASS := SHARED_LIBRARIES
165 LOCAL_EXPORT_C_INCLUDE_DIRS := \
166 $(LOCAL_PATH)/include \
167 $(LOCAL_PATH)/device/include \
168 $(call local-generated-sources-dir)
170 include $(LLVM70_DEVICE_BUILD_MK)
171 include $(LLVM70_GEN_ATTRIBUTES_MK)
172 include $(LLVM70_GEN_INTRINSICS_MK)
173 include $(BUILD_SHARED_LIBRARY)