OSDN Git Service

717e1b15482194d3aad78caefcffd5629d0df8ff
[android-x86/external-llvm.git] / shared_llvm.mk
1 LOCAL_PATH:= $(call my-dir)
2
3 llvm_pre_static_libraries := \
4   libLLVM90Linker \
5   libLLVM90ipo \
6   libLLVM90DebugInfoDWARF \
7   libLLVM90DebugInfoPDB \
8   libLLVM90Symbolize \
9   libLLVM90DebugInfoMSF \
10   libLLVM90DebugInfoCodeView \
11   libLLVM90Demangle \
12   libLLVM90IRReader \
13   libLLVM90BitWriter \
14   libLLVM90BitReader \
15   libLLVM90GlobalISel
16
17 llvm_arm_static_libraries := \
18   libLLVM90ARMCodeGen \
19   libLLVM90ARMAsmParser \
20   libLLVM90ARMInfo \
21   libLLVM90ARMDesc \
22   libLLVM90ARMDisassembler \
23   libLLVM90ARMUtils
24
25 llvm_x86_static_libraries := \
26   libLLVM90X86CodeGen \
27   libLLVM90X86Info \
28   libLLVM90X86Desc \
29   libLLVM90X86AsmParser \
30   libLLVM90X86Utils \
31   libLLVM90X86Disassembler
32
33 ifneq ($(filter radeonsi,$(BOARD_GPU_DRIVERS)),)
34 llvm_x86_static_libraries += \
35   libLLVM90AMDGPUCodeGen \
36   libLLVM90AMDGPUInfo \
37   libLLVM90AMDGPUDesc \
38   libLLVM90AMDGPUAsmParser \
39   libLLVM90AMDGPUUtils \
40   libLLVM90AMDGPUDisassembler
41 endif
42
43 llvm_mips_static_libraries := \
44   libLLVM90MipsCodeGen \
45   libLLVM90MipsInfo \
46   libLLVM90MipsDesc \
47   libLLVM90MipsAsmParser \
48   libLLVM90MipsDisassembler
49
50 llvm_aarch64_static_libraries := \
51   libLLVM90AArch64CodeGen \
52   libLLVM90AArch64Info \
53   libLLVM90AArch64Desc \
54   libLLVM90AArch64AsmParser \
55   libLLVM90AArch64Utils \
56   libLLVM90AArch64Disassembler
57
58 llvm_post_static_libraries := \
59   libLLVM90AsmPrinter \
60   libLLVM90SelectionDAG \
61   libLLVM90CodeGen \
62   libLLVM90Object \
63   libLLVM90ScalarOpts \
64   libLLVM90AggressiveInstCombine \
65   libLLVM90InstCombine \
66   libLLVM90Instrumentation \
67   libLLVM90TransformObjCARC \
68   libLLVM90TransformUtils \
69   libLLVM90Analysis \
70   libLLVM90Target \
71   libLLVM90MCDisassembler \
72   libLLVM90MC \
73   libLLVM90MCParser \
74   libLLVM90Core \
75   libLLVM90AsmParser \
76   libLLVM90Option \
77   libLLVM90Support \
78   libLLVM90Vectorize \
79   libLLVM90ProfileData \
80   libLLVM90LibDriver \
81   libLLVM90BinaryFormat \
82   libLLVM90Coroutines
83
84 llvm_host_static_libraries := \
85   libLLVM90ExecutionEngine \
86   libLLVM90RuntimeDyld \
87   libLLVM90MCJIT \
88   libLLVM90OrcJIT
89
90 llvm_device_static_libraries := \
91   libLLVM90ExecutionEngine \
92   libLLVM90RuntimeDyld \
93   libLLVM90MCJIT
94
95 # HOST LLVM shared library build
96 include $(CLEAR_VARS)
97 LOCAL_IS_HOST_MODULE := true
98
99 LOCAL_MODULE:= libLLVM90
100
101 LOCAL_MODULE_TAGS := optional
102
103 # Host build pulls in all ARM, Mips, X86 components.
104 LOCAL_WHOLE_STATIC_LIBRARIES := \
105   $(llvm_pre_static_libraries) \
106   $(llvm_arm_static_libraries) \
107   $(llvm_x86_static_libraries) \
108   $(llvm_mips_static_libraries) \
109   $(llvm_aarch64_static_libraries) \
110   $(llvm_host_static_libraries) \
111   $(llvm_post_static_libraries)
112
113 LOCAL_LDLIBS_windows := -limagehlp -lpsapi -lole32
114 LOCAL_LDLIBS_darwin := -ldl -lpthread
115 LOCAL_LDLIBS_linux := -ldl -lpthread
116
117 # Use prebuilts for linux and darwin unless
118 # FORCE_BUILD_LLVM_COMPONENTS is true
119 ifneq (true,$(FORCE_BUILD_LLVM_COMPONENTS))
120 LOCAL_MODULE_HOST_OS := linux
121 else
122 LOCAL_MODULE_HOST_OS := linux
123 endif
124
125 include $(LLVM90_HOST_BUILD_MK)
126 include $(BUILD_HOST_SHARED_LIBRARY)
127
128 ifeq (,$(filter $(TARGET_ARCH),$(LLVM90_SUPPORTED_ARCH)))
129 $(warning TODO $(TARGET_ARCH): Enable llvm build)
130 endif
131
132 ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
133 # DEVICE LLVM shared library build
134 include $(CLEAR_VARS)
135
136 LOCAL_MODULE:= libLLVM90
137
138 LOCAL_MODULE_TAGS := optional
139
140 # Device build selectively pulls in ARM, Mips, X86 components.
141 LOCAL_WHOLE_STATIC_LIBRARIES := \
142   $(llvm_pre_static_libraries)
143
144 LOCAL_WHOLE_STATIC_LIBRARIES_arm += $(llvm_arm_static_libraries)
145 LOCAL_WHOLE_STATIC_LIBRARIES_x86 += $(llvm_x86_static_libraries)
146 LOCAL_WHOLE_STATIC_LIBRARIES_x86_64 += $(llvm_x86_static_libraries)
147 LOCAL_WHOLE_STATIC_LIBRARIES_mips += $(llvm_mips_static_libraries)
148 LOCAL_WHOLE_STATIC_LIBRARIES_mips64 += $(llvm_mips_static_libraries)
149 LOCAL_WHOLE_STATIC_LIBRARIES_arm64 += $(llvm_aarch64_static_libraries)
150 LOCAL_WHOLE_STATIC_LIBRARIES_arm64 += $(llvm_arm_static_libraries)
151
152 ifeq ($(BUILD_ARM_FOR_X86),true)
153 LOCAL_WHOLE_STATIC_LIBRARIES_x86 += $(llvm_arm_static_libraries)
154 LOCAL_WHOLE_STATIC_LIBRARIES_x86 += $(llvm_aarch64_static_libraries)
155 LOCAL_WHOLE_STATIC_LIBRARIES_x86_64 += $(llvm_arm_static_libraries)
156 LOCAL_WHOLE_STATIC_LIBRARIES_x86_64 += $(llvm_aarch64_static_libraries)
157 endif
158
159 LOCAL_WHOLE_STATIC_LIBRARIES += \
160   $(llvm_device_static_libraries) \
161   $(llvm_post_static_libraries)
162
163 LOCAL_MODULE_CLASS := SHARED_LIBRARIES
164 LOCAL_EXPORT_C_INCLUDE_DIRS := \
165   $(LOCAL_PATH)/include \
166   $(LOCAL_PATH)/device/include \
167   $(call local-generated-sources-dir)
168
169 include $(LLVM90_DEVICE_BUILD_MK)
170 include $(LLVM90_GEN_ATTRIBUTES_MK)
171 include $(LLVM90_GEN_INTRINSICS_MK)
172 include $(BUILD_SHARED_LIBRARY)
173
174 endif