blob: 263a567a04044ea41b5ebbfa555c70e038a33e42 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
# -*-makefile-*-
#
# Copyright (C) 2019 by Michael Olbrich <m.olbrich@pengutronix.de>
#
# See CREDITS for details about who has contributed to this project.
#
# For further information about the PTXdist project and license conditions
# see the README file.
#
#
# We provide this package
#
CROSS_PACKAGES-$(PTXCONF_CROSS_LLVM) += cross-llvm
#
# Paths and names
#
CROSS_LLVM_VERSION := $(call remove_quotes,$(PTXCONF_CROSS_LLVM_VERSION))
CROSS_LLVM_MD5 := $(call remove_quotes,$(PTXCONF_CROSS_LLVM_MD5))
CROSS_LLVM := llvm-$(CROSS_LLVM_VERSION)
CROSS_LLVM_SUFFIX := src.tar.xz
CROSS_LLVM_URL := https://releases.llvm.org/$(CROSS_LLVM_VERSION)/$(CROSS_LLVM).$(CROSS_LLVM_SUFFIX)
CROSS_LLVM_SOURCE := $(SRCDIR)/$(CROSS_LLVM).$(CROSS_LLVM_SUFFIX)
CROSS_LLVM_DIR := $(CROSS_BUILDDIR)/$(CROSS_LLVM)
CROSS_LLVM_LICENSE := $(call remove_quotes,$(PTXCONF_CROSS_LLVM_LICENSE))
CROSS_LLVM_LICENSE_FILES := $(call remove_quotes,$(PTXCONF_CROSS_LLVM_LICENSE_FILES))
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
CROSS_LLVM_HOST_ARCH := X86
ifdef PTXCONF_ARCH_ARM
CROSS_LLVM_TARGET_ARCH := ARM
endif
ifdef PTXCONF_ARCH_ARM64
CROSS_LLVM_TARGET_ARCH := AArch64
endif
ifdef PTXCONF_ARCH_X86_64
CROSS_LLVM_TARGET_ARCH := X86
endif
ifdef PTXCONF_ARCH_I386
CROSS_LLVM_TARGET_ARCH := X86
endif
ifdef PTXCONF_ARCH_MIPS
CROSS_LLVM_TARGET_ARCH := Mips
endif
ifdef PTXCONF_ARCH_POWERPC
CROSS_LLVM_TARGET_ARCH := PowerPC
endif
ifdef PTXCONF_CROSS_LLVM
ifndef CROSS_LLVM_TARGET_ARCH
$(error Unsupported LLVM architecture $(PTXCONF_ARCH))
endif
endif
CROSS_LLVM_TARGETS_TO_BUILD := \
$(CROSS_LLVM_HOST_ARCH) \
$(CROSS_LLVM_TARGET_ARCH) \
BPF
#
# cmake
#
CROSS_LLVM_CONF_TOOL := cmake
CROSS_LLVM_CONF_OPT := \
$(HOST_CMAKE_OPT) \
-G Ninja \
-DCMAKE_INSTALL_PREFIX=$(PTXCONF_PREFIX_CROSS) \
-DLLVM_DEFAULT_TARGET_TRIPLE=x86_64-pc-linux-gnu \
-DLLVM_ENABLE_BINDINGS=OFF \
-DLLVM_ENABLE_FFI=OFF \
-DLLVM_ENABLE_LIBEDIT=OFF \
-DLLVM_ENABLE_LIBPFM=OFF \
-DLLVM_ENABLE_LIBXML2=OFF \
-DLLVM_ENABLE_RTTI=ON \
-DLLVM_INSTALL_UTILS=OFF \
-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON \
-DLLVM_LINK_LLVM_DYLIB=ON \
-DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(CROSS_LLVM_TARGETS_TO_BUILD))" \
-DLLVM_TARGET_ARCH=host \
-DLLVM_USE_PERF=ON
CROSS_LLVM_LDFLAGS := \
-Wl,-rpath,$$ORIGIN/../lib
# vim: syntax=make
|