OSDN Git Service

android: conditionally add LLVM_TARGET(AMDGPU) in device configs
[android-x86/external-llvm.git] / shared_llvm.mk
1 LOCAL_PATH:= $(call my-dir)
2
3 llvm_pre_static_libraries := \
4   libLLVMLinker \
5   libLLVMipo \
6   libLLVMDebugInfoDWARF \
7   libLLVMDebugInfoPDB \
8   libLLVMSymbolize \
9   libLLVMIRReader \
10   libLLVMBitWriter \
11   libLLVMBitReader
12
13 llvm_arm_static_libraries := \
14   libLLVMARMCodeGen \
15   libLLVMARMAsmParser \
16   libLLVMARMAsmPrinter \
17   libLLVMARMInfo \
18   libLLVMARMDesc \
19   libLLVMARMDisassembler
20
21 llvm_x86_static_libraries := \
22   libLLVMX86CodeGen \
23   libLLVMX86Info \
24   libLLVMX86Desc \
25   libLLVMX86AsmParser \
26   libLLVMX86AsmPrinter \
27   libLLVMX86Utils \
28   libLLVMX86Disassembler
29
30 ifneq ($(filter radeonsi,$(BOARD_GPU_DRIVERS)),)
31 llvm_x86_static_libraries += \
32   libLLVMAMDGPUCodeGen \
33   libLLVMAMDGPUInfo \
34   libLLVMAMDGPUDesc \
35   libLLVMAMDGPUAsmParser \
36   libLLVMAMDGPUAsmPrinter \
37   libLLVMAMDGPUUtils \
38   libLLVMExecutionEngine \
39   libLLVMMCJIT \
40   libLLVMRuntimeDyld
41 endif
42
43 llvm_mips_static_libraries := \
44   libLLVMMipsCodeGen \
45   libLLVMMipsInfo \
46   libLLVMMipsDesc \
47   libLLVMMipsAsmParser \
48   libLLVMMipsAsmPrinter \
49   libLLVMMipsDisassembler
50
51 llvm_aarch64_static_libraries := \
52   libLLVMAArch64CodeGen \
53   libLLVMAArch64Info \
54   libLLVMAArch64Desc \
55   libLLVMAArch64AsmParser \
56   libLLVMAArch64AsmPrinter \
57   libLLVMAArch64Utils \
58   libLLVMAArch64Disassembler
59
60 llvm_post_static_libraries := \
61   libLLVMAsmPrinter \
62   libLLVMSelectionDAG \
63   libLLVMCodeGen \
64   libLLVMObject \
65   libLLVMScalarOpts \
66   libLLVMInstCombine \
67   libLLVMInstrumentation \
68   libLLVMTransformObjCARC \
69   libLLVMTransformUtils \
70   libLLVMAnalysis \
71   libLLVMTarget \
72   libLLVMMCDisassembler \
73   libLLVMMC \
74   libLLVMMCParser \
75   libLLVMCore \
76   libLLVMAsmParser \
77   libLLVMOption \
78   libLLVMSupport \
79   libLLVMVectorize \
80   libLLVMProfileData \
81   libLLVMLibDriver
82
83 llvm_host_static_libraries := \
84   libLLVMExecutionEngine \
85   libLLVMRuntimeDyld \
86   libLLVMMCJIT \
87   libLLVMOrcJIT
88
89 # HOST LLVM shared library build
90 include $(CLEAR_VARS)
91 LOCAL_IS_HOST_MODULE := true
92
93 LOCAL_MODULE:= libLLVM
94
95 LOCAL_MODULE_TAGS := optional
96
97 # Host build pulls in all ARM, Mips, X86 components.
98 LOCAL_WHOLE_STATIC_LIBRARIES := \
99   $(llvm_pre_static_libraries) \
100   $(llvm_arm_static_libraries) \
101   $(llvm_x86_static_libraries) \
102   $(llvm_mips_static_libraries) \
103   $(llvm_aarch64_static_libraries) \
104   $(llvm_host_static_libraries) \
105   $(llvm_post_static_libraries)
106
107 LOCAL_LDLIBS_windows := -limagehlp -lpsapi -lole32
108 LOCAL_LDLIBS_darwin := -ldl -lpthread
109 LOCAL_LDLIBS_linux := -ldl -lpthread
110
111 # Use prebuilts for linux and darwin unless
112 # FORCE_BUILD_LLVM_COMPONENTS is true
113 ifneq (true,$(FORCE_BUILD_LLVM_COMPONENTS))
114 LOCAL_MODULE_HOST_OS := windows
115 else
116 LOCAL_MODULE_HOST_OS := darwin linux windows
117 endif
118
119 include $(LLVM_HOST_BUILD_MK)
120 include $(BUILD_HOST_SHARED_LIBRARY)
121
122 ifeq (,$(filter $(TARGET_ARCH),$(LLVM_SUPPORTED_ARCH)))
123 $(warning TODO $(TARGET_ARCH): Enable llvm build)
124 endif
125
126 ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
127 # DEVICE LLVM shared library build
128 include $(CLEAR_VARS)
129
130 LOCAL_MODULE:= libLLVM
131
132 LOCAL_MODULE_TAGS := optional
133
134 # Device build selectively pulls in ARM, Mips, X86 components.
135 LOCAL_WHOLE_STATIC_LIBRARIES := \
136   $(llvm_pre_static_libraries)
137
138 LOCAL_WHOLE_STATIC_LIBRARIES_arm += $(llvm_arm_static_libraries)
139 LOCAL_WHOLE_STATIC_LIBRARIES_x86 += $(llvm_x86_static_libraries)
140 LOCAL_WHOLE_STATIC_LIBRARIES_x86_64 += $(llvm_x86_static_libraries)
141 LOCAL_WHOLE_STATIC_LIBRARIES_mips += $(llvm_mips_static_libraries)
142 LOCAL_WHOLE_STATIC_LIBRARIES_mips64 += $(llvm_mips_static_libraries)
143 LOCAL_WHOLE_STATIC_LIBRARIES_arm64 += $(llvm_aarch64_static_libraries)
144 LOCAL_WHOLE_STATIC_LIBRARIES_arm64 += $(llvm_arm_static_libraries)
145
146 ifeq ($(BUILD_ARM_FOR_X86),true)
147 LOCAL_WHOLE_STATIC_LIBRARIES_x86 += $(llvm_arm_static_libraries)
148 LOCAL_WHOLE_STATIC_LIBRARIES_x86 += $(llvm_aarch64_static_libraries)
149 LOCAL_WHOLE_STATIC_LIBRARIES_x86_64 += $(llvm_arm_static_libraries)
150 LOCAL_WHOLE_STATIC_LIBRARIES_x86_64 += $(llvm_aarch64_static_libraries)
151 endif
152
153 LOCAL_WHOLE_STATIC_LIBRARIES += $(llvm_post_static_libraries)
154
155 include $(LLVM_DEVICE_BUILD_MK)
156 include $(BUILD_SHARED_LIBRARY)
157
158 endif