xref: /OK3568_Linux_fs/buildroot/package/llvm/llvm.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun################################################################################
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# llvm
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun################################################################################
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun# LLVM, Clang and lld should be version bumped together
8*4882a593SmuzhiyunLLVM_VERSION = 9.0.1
9*4882a593SmuzhiyunLLVM_SITE = https://github.com/llvm/llvm-project/releases/download/llvmorg-$(LLVM_VERSION)
10*4882a593SmuzhiyunLLVM_SOURCE = llvm-$(LLVM_VERSION).src.tar.xz
11*4882a593SmuzhiyunLLVM_LICENSE = Apache-2.0 with exceptions
12*4882a593SmuzhiyunLLVM_LICENSE_FILES = LICENSE.TXT
13*4882a593SmuzhiyunLLVM_CPE_ID_VENDOR = llvm
14*4882a593SmuzhiyunLLVM_SUPPORTS_IN_SOURCE_BUILD = NO
15*4882a593SmuzhiyunLLVM_INSTALL_STAGING = YES
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun# LLVM >= 9.0 can use python3 to build.
18*4882a593SmuzhiyunHOST_LLVM_DEPENDENCIES = host-python3
19*4882a593SmuzhiyunLLVM_DEPENDENCIES = host-llvm
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun# LLVM >= 9.0 will soon require C++14 support, building llvm 8.x using a
22*4882a593Smuzhiyun# toolchain using gcc < 5.1 gives an error but actually still works. Setting
23*4882a593Smuzhiyun# this option makes it still build with gcc >= 4.8.
24*4882a593Smuzhiyun# https://reviews.llvm.org/D57264
25*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON
26*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun# Don't build clang libcxx libcxxabi lldb compiler-rt lld polly as llvm subprojects
29*4882a593Smuzhiyun# This flag assumes that projects are checked out side-by-side and not nested
30*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_PROJECTS=""
31*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_ENABLE_PROJECTS=""
32*4882a593Smuzhiyun
33*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_CCACHE_BUILD=$(if $(BR2_CCACHE),ON,OFF)
34*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_CCACHE_BUILD=$(if $(BR2_CCACHE),ON,OFF)
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun# This option prevents AddLLVM.cmake from adding $ORIGIN/../lib to
37*4882a593Smuzhiyun# binaries. Otherwise, llvm-config (host variant installed in STAGING)
38*4882a593Smuzhiyun# will try to use target's libc.
39*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DCMAKE_INSTALL_RPATH="$(HOST_DIR)/lib"
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun# Get target architecture
42*4882a593SmuzhiyunLLVM_TARGET_ARCH = $(call qstrip,$(BR2_PACKAGE_LLVM_TARGET_ARCH))
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun# Build backend for target architecture. This include backends like AMDGPU.
45*4882a593SmuzhiyunLLVM_TARGETS_TO_BUILD = $(LLVM_TARGET_ARCH)
46*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(LLVM_TARGETS_TO_BUILD))"
47*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(LLVM_TARGETS_TO_BUILD))"
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun# LLVM target to use for native code generation. This is required for JIT generation.
50*4882a593Smuzhiyun# It must be set to LLVM_TARGET_ARCH for host and target, otherwise we get
51*4882a593Smuzhiyun# "No available targets are compatible for this triple" with llvmpipe when host
52*4882a593Smuzhiyun# and target architectures are different.
53*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_TARGET_ARCH=$(LLVM_TARGET_ARCH)
54*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_TARGET_ARCH=$(LLVM_TARGET_ARCH)
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun# Build AMDGPU backend
57*4882a593Smuzhiyun# We need to build AMDGPU backend for both host and target because
58*4882a593Smuzhiyun# llvm-config --targets built (host variant installed in STAGING) will
59*4882a593Smuzhiyun# output only $(LLVM_TARGET_ARCH) if not, and mesa3d won't build as
60*4882a593Smuzhiyun# it thinks AMDGPU backend is not installed on the target.
61*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LLVM_AMDGPU),y)
62*4882a593SmuzhiyunLLVM_TARGETS_TO_BUILD += AMDGPU
63*4882a593Smuzhiyunendif
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun# Build BPF backend
66*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LLVM_BPF),y)
67*4882a593SmuzhiyunLLVM_TARGETS_TO_BUILD += BPF
68*4882a593Smuzhiyunendif
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun# Use native llvm-tblgen from host-llvm (needed for cross-compilation)
71*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_TABLEGEN=$(HOST_DIR)/bin/llvm-tblgen
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun# Use native llvm-config from host-llvm (needed for cross-compilation)
74*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_CONFIG_PATH=$(HOST_DIR)/bin/llvm-config
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun# BUILD_SHARED_LIBS has a misleading name. It is in fact an option for
77*4882a593Smuzhiyun# LLVM developers to build all LLVM libraries as separate shared libraries.
78*4882a593Smuzhiyun# For normal use of LLVM, it is recommended to build a single
79*4882a593Smuzhiyun# shared library, which is achieved by BUILD_SHARED_LIBS=OFF and
80*4882a593Smuzhiyun# LLVM_BUILD_LLVM_DYLIB=ON.
81*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DBUILD_SHARED_LIBS=OFF
82*4882a593SmuzhiyunLLVM_CONF_OPTS += -DBUILD_SHARED_LIBS=OFF
83*4882a593Smuzhiyun
84*4882a593Smuzhiyun# Generate libLLVM.so. This library contains a default set of LLVM components
85*4882a593Smuzhiyun# that can be overwritten with "LLVM_DYLIB_COMPONENTS". The default contains
86*4882a593Smuzhiyun# most of LLVM and is defined in "tools/llvm-shlib/CMakelists.txt".
87*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_BUILD_LLVM_DYLIB=ON
88*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_BUILD_LLVM_DYLIB=ON
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun# LLVM_BUILD_LLVM_DYLIB to ON. We need to enable this option for the
91*4882a593Smuzhiyun# host as llvm-config for the host will be used in STAGING_DIR by packages
92*4882a593Smuzhiyun# linking against libLLVM and if this option is not selected, then llvm-config
93*4882a593Smuzhiyun# does not work properly. For example, it assumes that LLVM is built statically
94*4882a593Smuzhiyun# and cannot find libLLVM.so.
95*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_LINK_LLVM_DYLIB=ON
96*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_LINK_LLVM_DYLIB=ON
97*4882a593Smuzhiyun
98*4882a593SmuzhiyunLLVM_CONF_OPTS += -DCMAKE_CROSSCOMPILING=1
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun# Disabled for the host since no host-libedit.
101*4882a593Smuzhiyun# Fall back to "Simple fgets-based implementation" of llvm line editor.
102*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_LIBEDIT=OFF
103*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_ENABLE_LIBEDIT=OFF
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun# We want to install llvm libraries and modules.
106*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_INSTALL_TOOLCHAIN_ONLY=OFF
107*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_INSTALL_TOOLCHAIN_ONLY=OFF
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun# We build from a release archive without vcs files.
110*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_APPEND_VC_REV=OFF
111*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_APPEND_VC_REV=OFF
112*4882a593Smuzhiyun
113*4882a593Smuzhiyun# No backtrace package in Buildroot.
114*4882a593Smuzhiyun# https://documentation.backtrace.io
115*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_BACKTRACES=OFF
116*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_ENABLE_BACKTRACES=OFF
117*4882a593Smuzhiyun
118*4882a593Smuzhiyun# Enable signal handlers overrides support.
119*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DENABLE_CRASH_OVERRIDES=ON
120*4882a593SmuzhiyunLLVM_CONF_OPTS += -DENABLE_CRASH_OVERRIDES=ON
121*4882a593Smuzhiyun
122*4882a593Smuzhiyun# Disable ffi for now.
123*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_FFI=OFF
124*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_ENABLE_FFI=OFF
125*4882a593Smuzhiyun
126*4882a593Smuzhiyun# Disable terminfo database (needs ncurses libtinfo.so)
127*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_TERMINFO=OFF
128*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_ENABLE_TERMINFO=OFF
129*4882a593Smuzhiyun
130*4882a593Smuzhiyun# Enable thread support
131*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_THREADS=ON
132*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_ENABLE_THREADS=ON
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun# Enable optional host-zlib support for LLVM Machine Code (llvm-mc) to add
135*4882a593Smuzhiyun# compression/uncompression capabilities.
136*4882a593Smuzhiyun# Not needed on the target.
137*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_ZLIB=ON
138*4882a593SmuzhiyunHOST_LLVM_DEPENDENCIES += host-zlib
139*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_ENABLE_ZLIB=OFF
140*4882a593Smuzhiyun
141*4882a593Smuzhiyun# libxml2 can be disabled as it is used for LLVM Windows builds where COFF
142*4882a593Smuzhiyun# files include manifest info
143*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_LIBXML2=OFF
144*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_ENABLE_LIBXML2=OFF
145*4882a593Smuzhiyun
146*4882a593Smuzhiyun# Disable optional Z3Prover since there is no such package in Buildroot.
147*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_Z3_SOLVER=OFF
148*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_ENABLE_Z3_SOLVER=OFF
149*4882a593Smuzhiyun
150*4882a593Smuzhiyun# We don't use llvm for static only build, so enable PIC
151*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_PIC=ON
152*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_ENABLE_PIC=ON
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun# Default is Debug build, which requires considerably more disk space and
155*4882a593Smuzhiyun# build time. Release build is selected for host and target because the linker
156*4882a593Smuzhiyun# can run out of memory in Debug mode.
157*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DCMAKE_BUILD_TYPE=Release
158*4882a593SmuzhiyunLLVM_CONF_OPTS += -DCMAKE_BUILD_TYPE=Release
159*4882a593Smuzhiyun
160*4882a593Smuzhiyun# Disable C++1y (ISO C++ 2014 standard)
161*4882a593Smuzhiyun# Disable C++1z (ISO C++ 2017 standard)
162*4882a593Smuzhiyun# Compile llvm with the C++11 (ISO C++ 2011 standard) which is the fallback.
163*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += \
164*4882a593Smuzhiyun	-DLLVM_ENABLE_CXX1Y=OFF \
165*4882a593Smuzhiyun	-DLLVM_ENABLE_CXX1Z=OFF
166*4882a593SmuzhiyunLLVM_CONF_OPTS += \
167*4882a593Smuzhiyun	-DLLVM_ENABLE_CXX1Y=OFF \
168*4882a593Smuzhiyun	-DLLVM_ENABLE_CXX1Z=OFF
169*4882a593Smuzhiyun
170*4882a593Smuzhiyun# Disabled, requires sys/ndir.h header
171*4882a593Smuzhiyun# Disable debug in module
172*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += \
173*4882a593Smuzhiyun	-DLLVM_ENABLE_MODULES=OFF \
174*4882a593Smuzhiyun	-DLLVM_ENABLE_MODULE_DEBUGGING=OFF
175*4882a593SmuzhiyunLLVM_CONF_OPTS += \
176*4882a593Smuzhiyun	-DLLVM_ENABLE_MODULES=OFF \
177*4882a593Smuzhiyun	-DLLVM_ENABLE_MODULE_DEBUGGING=OFF
178*4882a593Smuzhiyun
179*4882a593Smuzhiyun# Don't change the standard library to libc++.
180*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_LIBCXX=OFF
181*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_ENABLE_LIBCXX=OFF
182*4882a593Smuzhiyun
183*4882a593Smuzhiyun# Don't use lld as a linker.
184*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_LLD=OFF
185*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_ENABLE_LLD=OFF
186*4882a593Smuzhiyun
187*4882a593Smuzhiyun# Generate code for the target. LLVM selects a target by looking at the
188*4882a593Smuzhiyun# toolchain tuple
189*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_DEFAULT_TARGET_TRIPLE=$(GNU_TARGET_NAME)
190*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_DEFAULT_TARGET_TRIPLE=$(GNU_TARGET_NAME)
191*4882a593Smuzhiyun
192*4882a593Smuzhiyun# LLVM_HOST_TRIPLE has a misleading name, it is in fact the triple of the
193*4882a593Smuzhiyun# system where llvm is going to run on. We need to specify triple for native
194*4882a593Smuzhiyun# code generation on the target.
195*4882a593Smuzhiyun# This solves "No available targets are compatible for this triple" with llvmpipe
196*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_HOST_TRIPLE=$(GNU_TARGET_NAME)
197*4882a593Smuzhiyun
198*4882a593Smuzhiyun# Building the Go and OCaml bindings is yet unsupported.
199*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += \
200*4882a593Smuzhiyun	-DLLVM_ENABLE_BINDINGS=OFF
201*4882a593Smuzhiyun
202*4882a593Smuzhiyun# Builds a release host tablegen that gets used during the LLVM build.
203*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_OPTIMIZED_TABLEGEN=ON
204*4882a593Smuzhiyun
205*4882a593Smuzhiyun# Keep llvm utility binaries for the host. llvm-tblgen is built anyway as
206*4882a593Smuzhiyun# CMakeLists.txt has add_subdirectory(utils/TableGen) unconditionally.
207*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += \
208*4882a593Smuzhiyun	-DLLVM_BUILD_UTILS=ON \
209*4882a593Smuzhiyun	-DLLVM_INCLUDE_UTILS=ON \
210*4882a593Smuzhiyun	-DLLVM_INSTALL_UTILS=ON
211*4882a593SmuzhiyunLLVM_CONF_OPTS += \
212*4882a593Smuzhiyun	-DLLVM_BUILD_UTILS=OFF \
213*4882a593Smuzhiyun	-DLLVM_INCLUDE_UTILS=OFF \
214*4882a593Smuzhiyun	-DLLVM_INSTALL_UTILS=OFF
215*4882a593Smuzhiyun
216*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += \
217*4882a593Smuzhiyun	-DLLVM_INCLUDE_TOOLS=ON \
218*4882a593Smuzhiyun	-DLLVM_BUILD_TOOLS=ON
219*4882a593Smuzhiyun
220*4882a593Smuzhiyun# We need to activate LLVM_INCLUDE_TOOLS, otherwise it does not generate
221*4882a593Smuzhiyun# libLLVM.so
222*4882a593SmuzhiyunLLVM_CONF_OPTS += \
223*4882a593Smuzhiyun	-DLLVM_INCLUDE_TOOLS=ON \
224*4882a593Smuzhiyun	-DLLVM_BUILD_TOOLS=OFF
225*4882a593Smuzhiyun
226*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LLVM_RTTI),y)
227*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_RTTI=ON
228*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_ENABLE_RTTI=ON
229*4882a593Smuzhiyunelse
230*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_RTTI=OFF
231*4882a593SmuzhiyunLLVM_CONF_OPTS += -DLLVM_ENABLE_RTTI=OFF
232*4882a593Smuzhiyunendif
233*4882a593Smuzhiyun
234*4882a593Smuzhiyun# Compiler-rt not in the source tree.
235*4882a593Smuzhiyun# llvm runtime libraries are not in the source tree.
236*4882a593Smuzhiyun# Polly is not in the source tree.
237*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += \
238*4882a593Smuzhiyun	-DLLVM_BUILD_EXTERNAL_COMPILER_RT=OFF \
239*4882a593Smuzhiyun	-DLLVM_BUILD_RUNTIME=OFF \
240*4882a593Smuzhiyun	-DLLVM_INCLUDE_RUNTIMES=OFF \
241*4882a593Smuzhiyun	-DLLVM_POLLY_BUILD=OFF
242*4882a593SmuzhiyunLLVM_CONF_OPTS += \
243*4882a593Smuzhiyun	-DLLVM_BUILD_EXTERNAL_COMPILER_RT=OFF \
244*4882a593Smuzhiyun	-DLLVM_BUILD_RUNTIME=OFF \
245*4882a593Smuzhiyun	-DLLVM_INCLUDE_RUNTIMES=OFF \
246*4882a593Smuzhiyun	-DLLVM_POLLY_BUILD=OFF
247*4882a593Smuzhiyun
248*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += \
249*4882a593Smuzhiyun	-DLLVM_ENABLE_WARNINGS=ON \
250*4882a593Smuzhiyun	-DLLVM_ENABLE_PEDANTIC=ON \
251*4882a593Smuzhiyun	-DLLVM_ENABLE_WERROR=OFF
252*4882a593SmuzhiyunLLVM_CONF_OPTS += \
253*4882a593Smuzhiyun	-DLLVM_ENABLE_WARNINGS=ON \
254*4882a593Smuzhiyun	-DLLVM_ENABLE_PEDANTIC=ON \
255*4882a593Smuzhiyun	-DLLVM_ENABLE_WERROR=OFF
256*4882a593Smuzhiyun
257*4882a593SmuzhiyunHOST_LLVM_CONF_OPTS += \
258*4882a593Smuzhiyun	-DLLVM_BUILD_EXAMPLES=OFF \
259*4882a593Smuzhiyun	-DLLVM_BUILD_DOCS=OFF \
260*4882a593Smuzhiyun	-DLLVM_BUILD_TESTS=OFF \
261*4882a593Smuzhiyun	-DLLVM_ENABLE_DOXYGEN=OFF \
262*4882a593Smuzhiyun	-DLLVM_ENABLE_OCAMLDOC=OFF \
263*4882a593Smuzhiyun	-DLLVM_ENABLE_SPHINX=OFF \
264*4882a593Smuzhiyun	-DLLVM_INCLUDE_EXAMPLES=OFF \
265*4882a593Smuzhiyun	-DLLVM_INCLUDE_DOCS=OFF \
266*4882a593Smuzhiyun	-DLLVM_INCLUDE_GO_TESTS=OFF \
267*4882a593Smuzhiyun	-DLLVM_INCLUDE_TESTS=OFF
268*4882a593SmuzhiyunLLVM_CONF_OPTS += \
269*4882a593Smuzhiyun	-DLLVM_BUILD_EXAMPLES=OFF \
270*4882a593Smuzhiyun	-DLLVM_BUILD_DOCS=OFF \
271*4882a593Smuzhiyun	-DLLVM_BUILD_TESTS=OFF \
272*4882a593Smuzhiyun	-DLLVM_ENABLE_DOXYGEN=OFF \
273*4882a593Smuzhiyun	-DLLVM_ENABLE_OCAMLDOC=OFF \
274*4882a593Smuzhiyun	-DLLVM_ENABLE_SPHINX=OFF \
275*4882a593Smuzhiyun	-DLLVM_INCLUDE_EXAMPLES=OFF \
276*4882a593Smuzhiyun	-DLLVM_INCLUDE_DOCS=OFF \
277*4882a593Smuzhiyun	-DLLVM_INCLUDE_GO_TESTS=OFF \
278*4882a593Smuzhiyun	-DLLVM_INCLUDE_TESTS=OFF
279*4882a593Smuzhiyun
280*4882a593Smuzhiyun# Copy llvm-config (host variant) to STAGING_DIR
281*4882a593Smuzhiyun# llvm-config (host variant) returns include and lib directories
282*4882a593Smuzhiyun# for the host if it's installed in host/bin:
283*4882a593Smuzhiyun# output/host/bin/llvm-config --includedir
284*4882a593Smuzhiyun# output/host/include
285*4882a593Smuzhiyun# When installed in STAGING_DIR, llvm-config returns include and lib
286*4882a593Smuzhiyun# directories from STAGING_DIR.
287*4882a593Smuzhiyun# output/staging/usr/bin/llvm-config --includedir
288*4882a593Smuzhiyun# output/staging/usr/include
289*4882a593Smuzhiyundefine HOST_LLVM_COPY_LLVM_CONFIG_TO_STAGING_DIR
290*4882a593Smuzhiyun	$(INSTALL) -D -m 0755 $(HOST_DIR)/bin/llvm-config \
291*4882a593Smuzhiyun		$(STAGING_DIR)/usr/bin/llvm-config
292*4882a593Smuzhiyunendef
293*4882a593SmuzhiyunHOST_LLVM_POST_INSTALL_HOOKS = HOST_LLVM_COPY_LLVM_CONFIG_TO_STAGING_DIR
294*4882a593Smuzhiyun
295*4882a593Smuzhiyun# By default llvm-tblgen is built and installed on the target but it is
296*4882a593Smuzhiyun# not necessary. Also erase LLVMHello.so from /usr/lib
297*4882a593Smuzhiyundefine LLVM_DELETE_LLVM_TBLGEN_TARGET
298*4882a593Smuzhiyun	rm -f $(TARGET_DIR)/usr/bin/llvm-tblgen $(TARGET_DIR)/usr/lib/LLVMHello.so
299*4882a593Smuzhiyunendef
300*4882a593SmuzhiyunLLVM_POST_INSTALL_TARGET_HOOKS = LLVM_DELETE_LLVM_TBLGEN_TARGET
301*4882a593Smuzhiyun
302*4882a593Smuzhiyun$(eval $(cmake-package))
303*4882a593Smuzhiyun$(eval $(host-cmake-package))
304