comparison src/llvm.mk @ 6540:ff8c281debae

LLVM: Update to version 15.0.5. * src/llvm.mk: Update version and checksum. Download and extract tarball with cmake files. Disable building benchmarks. Use two spaces for indentation. Adjust for library name containing version suffix now.
author Markus Mützel <markus.muetzel@gmx.de>
date Sun, 20 Nov 2022 15:04:15 +0100
parents f062bdb4f0a3
children 8a4011fb95de
comparison
equal deleted inserted replaced
6539:6d05e05f9af0 6540:ff8c281debae
1 # This file is part of MXE. 1 # This file is part of MXE.
2 # See index.html for further information. 2 # See index.html for further information.
3 3
4 PKG := llvm 4 PKG := llvm
5 $(PKG)_IGNORE := 5 $(PKG)_IGNORE :=
6 $(PKG)_VERSION := 12.0.1 6 $(PKG)_VERSION := 15.0.5
7 $(PKG)_CHECKSUM := 619fe668e0972d11d0fa2db670a57a42d02fb8ca 7 $(PKG)_CHECKSUM := 9958ed0bdf9709833d4beb13ae954cc0fa6d3161
8 $(PKG)_SUBDIR := llvm-$($(PKG)_VERSION).src 8 $(PKG)_SUBDIR := llvm-$($(PKG)_VERSION).src
9 $(PKG)_FILE := llvm-$($(PKG)_VERSION).src.tar.xz 9 $(PKG)_FILE := llvm-$($(PKG)_VERSION).src.tar.xz
10 $(PKG)_URL := https://github.com/llvm/llvm-project/releases/download/llvmorg-$($(PKG)_VERSION)/$($(PKG)_FILE) 10 $(PKG)_URL := https://github.com/llvm/llvm-project/releases/download/llvmorg-$($(PKG)_VERSION)/$($(PKG)_FILE)
11 $(PKG)_DEPS := build-cmake build-ninja build-python 11 $(PKG)_DEPS := build-cmake build-ninja build-python
12 12
16 $(SED) -n 's,.*LLVM \([0-9][^<]*\).*,\1,p' | \ 16 $(SED) -n 's,.*LLVM \([0-9][^<]*\).*,\1,p' | \
17 head -1 17 head -1
18 endef 18 endef
19 19
20 ifeq ($(MXE_NATIVE_BUILD),yes) 20 ifeq ($(MXE_NATIVE_BUILD),yes)
21 ifeq ($(MXE_SYSTEM),gnu-linux) 21 ifeq ($(MXE_SYSTEM),gnu-linux)
22 define $(PKG)_BUILD 22 define $(PKG)_BUILD
23 mkdir '$(1)/.build' && cd '$(1)/.build' && cmake .. \ 23 # download archive with cmake files
24 -GNinja \ 24 if [ ! -f $(PKG_DIR)/cmake-$($(PKG)_VERSION).src.tar.xz ]; then \
25 $($(PKG)_CMAKE_FLAGS) \ 25 $(WGET) -N https://github.com/llvm/llvm-project/releases/download/llvmorg-$($(PKG)_VERSION)/cmake-$($(PKG)_VERSION).src.tar.xz \
26 $(CMAKE_CCACHE_FLAGS) \ 26 -O $(PKG_DIR)/cmake-$($(PKG)_VERSION).src.tar.xz; \
27 -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \ 27 fi
28 -DLLVM_BUILD_LLVM_DYLIB=ON \ 28 # extract archive with cmake files
29 -DLLVM_LINK_LLVM_DYLIB=ON \ 29 cd '$(1)/..' && \
30 -DLLVM_VERSION_SUFFIX= \ 30 xz -dc $(PKG_DIR)/cmake-$($(PKG)_VERSION).src.tar.xz | $(TAR) xf - && \
31 -DLLVM_TARGETS_TO_BUILD='X86' \ 31 mv cmake-$($(PKG)_VERSION).src cmake
32 -DLLVM_ENABLE_EH=ON \
33 -DLLVM_ENABLE_RTTI=ON \
34 -DLLVM_BUILD_EXAMPLES=OFF \
35 -DLLVM_INCLUDE_EXAMPLES=OFF \
36 -DLLVM_BUILD_TESTS=OFF \
37 -DLLVM_INCLUDE_TESTS=OFF \
38 -DLLVM_INCLUDE_GO_TESTS=OFF \
39 -DLLVM_INCLUDE_DOCS=OFF \
40 -DLLVM_BUILD_DOCS=OFF \
41 -DLLVM_ENABLE_DOXYGEN=OFF \
42 -DLLVM_ENABLE_BACKTRACES=OFF
43 32
44 cd '$(1)/.build' && DESTDIR=$(3) ninja -j $(JOBS) install 33 mkdir '$(1)/.build' && cd '$(1)/.build' && cmake .. \
45 endef 34 -GNinja \
46 else 35 $($(PKG)_CMAKE_FLAGS) \
47 define $(PKG)_BUILD 36 $(CMAKE_CCACHE_FLAGS) \
48 echo "unsupported LLVM configuration" 1>&2 37 -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
49 exit 1 38 -DLLVM_BUILD_LLVM_DYLIB=ON \
50 endef 39 -DLLVM_LINK_LLVM_DYLIB=ON \
51 endif 40 -DLLVM_VERSION_SUFFIX= \
41 -DLLVM_TARGETS_TO_BUILD='X86' \
42 -DLLVM_ENABLE_EH=ON \
43 -DLLVM_ENABLE_RTTI=ON \
44 -DLLVM_INCLUDE_BENCHMARKS=OFF \
45 -DLLVM_BUILD_EXAMPLES=OFF \
46 -DLLVM_INCLUDE_EXAMPLES=OFF \
47 -DLLVM_BUILD_TESTS=OFF \
48 -DLLVM_INCLUDE_TESTS=OFF \
49 -DLLVM_INCLUDE_GO_TESTS=OFF \
50 -DLLVM_INCLUDE_DOCS=OFF \
51 -DLLVM_BUILD_DOCS=OFF \
52 -DLLVM_ENABLE_DOXYGEN=OFF \
53 -DLLVM_ENABLE_BACKTRACES=OFF
54
55 cd '$(1)/.build' && DESTDIR=$(3) ninja -j $(JOBS) install
56 endef
57 else
58 define $(PKG)_BUILD
59 echo "unsupported LLVM configuration" 1>&2
60 exit 1
61 endef
62 endif
52 else 63 else
53 ifeq ($(ENABLE_WINDOWS_64),yes) 64 ifeq ($(ENABLE_WINDOWS_64),yes)
54 $(PKG)_SYSDEP_CMAKE_OPTIONS += \ 65 $(PKG)_SYSDEP_CMAKE_OPTIONS += \
55 -DLLVM_DEFAULT_TARGET_TRIPLE='x86_64-pc-win32' 66 -DLLVM_DEFAULT_TARGET_TRIPLE='x86_64-pc-win32'
56 else 67 else
57 $(PKG)_SYSDEP_CMAKE_OPTIONS += \ 68 $(PKG)_SYSDEP_CMAKE_OPTIONS += \
58 -DLLVM_DEFAULT_TARGET_TRIPLE='x86-pc-win32' 69 -DLLVM_DEFAULT_TARGET_TRIPLE='x86-pc-win32'
59 endif 70 endif
60 ifeq ($(USE_CCACHE),yes) 71 ifeq ($(USE_CCACHE),yes)
61 $(PKG)_CCACHE_OPTIONS += \ 72 $(PKG)_CCACHE_OPTIONS += \
62 -DLLVM_CCACHE_BUILD=ON 73 -DLLVM_CCACHE_BUILD=ON
63 endif 74 endif
64 75
65 define $(PKG)_BUILD 76 define $(PKG)_BUILD
66 mkdir '$(1)/.build' 77 # download archive with cmake files
67 cd '$(1)/.build' && 'cmake' .. \ 78 if [ ! -f $(PKG_DIR)/cmake-$($(PKG)_VERSION).src.tar.xz ]; then \
68 -GNinja \ 79 $(WGET) -N https://github.com/llvm/llvm-project/releases/download/llvmorg-$($(PKG)_VERSION)/cmake-$($(PKG)_VERSION).src.tar.xz \
69 $($(PKG)_CMAKE_FLAGS) \ 80 -O $(PKG_DIR)/cmake-$($(PKG)_VERSION).src.tar.xz; \
70 $(CMAKE_CCACHE_FLAGS) \ 81 fi
71 -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \ 82 # extract archive with cmake files
72 -DLLVM_BUILD_TOOLS=OFF \ 83 cd '$(1)/..' && \
73 -DLLVM_BUILD_LLVM_DYLIB=ON \ 84 xz -dc $(PKG_DIR)/cmake-$($(PKG)_VERSION).src.tar.xz | $(TAR) xf - && \
74 -DLLVM_LINK_LLVM_DYLIB=ON \ 85 mv cmake-$($(PKG)_VERSION).src cmake
75 -DLLVM_VERSION_SUFFIX= \
76 -DLLVM_TARGETS_TO_BUILD='X86' \
77 $($(PKG)_SYSDEP_CMAKE_OPTIONS) \
78 -DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE='$(CMAKE_NATIVE_TOOLCHAIN_FILE)'" \
79 -DLLVM_ENABLE_EH=ON \
80 -DLLVM_ENABLE_RTTI=ON \
81 -DLLVM_BUILD_EXAMPLES=OFF \
82 -DLLVM_INCLUDE_EXAMPLES=OFF \
83 -DLLVM_BUILD_TESTS=OFF \
84 -DLLVM_INCLUDE_TESTS=OFF \
85 -DLLVM_INCLUDE_GO_TESTS=OFF \
86 -DLLVM_ENABLE_BACKTRACES=OFF \
87 -DLLVM_INCLUDE_DOCS=OFF \
88 -DLLVM_BUILD_DOCS=OFF \
89 -DLLVM_ENABLE_DOXYGEN=OFF \
90 -DLLVM_ENABLE_OCAMLDOC=OFF \
91 -DLLVM_ENABLE_BINDINGS=OFF \
92 -DLLVM_ENABLE_SPHINX=OFF \
93 -DLLVM_BUILD_RUNTIME=OFF \
94 -DLLVM_BUILD_RUNTIMES=OFF \
95 -DLLVM_INCLUDE_RUNTIMES=OFF \
96 $($(PKG)_CCACHE_OPTIONS)
97 86
98 cd '$(1)/.build' && DESTDIR=$(3) ninja -j $(JOBS) llvm-config 87 # No way to pass this for native llvm-config when cross-compiling. Modify cmake file instead.
99 cd '$(1)/.build' && DESTDIR=$(3) ninja -j $(JOBS) install 88 $(SED) -i 's/\(option(LLVM_INCLUDE_BENCHMARKS.*\)ON/\1OFF/' '$(1)/CMakeLists.txt'
100 89
101 # create symlink for shared library so that llvm-config can find it 90 mkdir '$(1)/.build'
102 cd '$(3)/$(HOST_BINDIR)' && ln -s libLLVM.dll LLVM-$(word 1,$(subst ., ,$($(PKG)_VERSION))).dll 91 cd '$(1)/.build' && 'cmake' .. \
92 -GNinja \
93 $($(PKG)_CMAKE_FLAGS) \
94 $(CMAKE_CCACHE_FLAGS) \
95 -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
96 -DLLVM_BUILD_TOOLS=OFF \
97 -DLLVM_BUILD_LLVM_DYLIB=ON \
98 -DLLVM_LINK_LLVM_DYLIB=ON \
99 -DLLVM_VERSION_SUFFIX= \
100 -DLLVM_TARGETS_TO_BUILD='X86' \
101 $($(PKG)_SYSDEP_CMAKE_OPTIONS) \
102 -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DCMAKE_TOOLCHAIN_FILE="$(CMAKE_NATIVE_TOOLCHAIN_FILE)"' \
103 -DLLVM_ENABLE_EH=ON \
104 -DLLVM_ENABLE_RTTI=ON \
105 -DLLVM_BUILD_EXAMPLES=OFF \
106 -DLLVM_INCLUDE_EXAMPLES=OFF \
107 -DLLVM_BUILD_TESTS=OFF \
108 -DLLVM_INCLUDE_TESTS=OFF \
109 -DLLVM_INCLUDE_GO_TESTS=OFF \
110 -DLLVM_ENABLE_BACKTRACES=OFF \
111 -DLLVM_INCLUDE_DOCS=OFF \
112 -DLLVM_BUILD_DOCS=OFF \
113 -DLLVM_ENABLE_DOXYGEN=OFF \
114 -DLLVM_ENABLE_OCAMLDOC=OFF \
115 -DLLVM_ENABLE_BINDINGS=OFF \
116 -DLLVM_ENABLE_SPHINX=OFF \
117 -DLLVM_BUILD_RUNTIME=OFF \
118 -DLLVM_BUILD_RUNTIMES=OFF \
119 -DLLVM_INCLUDE_RUNTIMES=OFF \
120 $($(PKG)_CCACHE_OPTIONS)
103 121
104 # install native llvm-config in HOST_BINDIR because it won't find the libs otherwise 122 cd '$(1)/.build' && DESTDIR=$(3) ninja -j $(JOBS) llvm-config
105 $(INSTALL) -d '$(HOST_BINDIR)' 123 cd '$(1)/.build' && DESTDIR=$(3) ninja -j $(JOBS) install
106 $(INSTALL) -m755 '$(1)/.build/NATIVE/bin/llvm-config' '$(HOST_BINDIR)/$(MXE_TOOL_PREFIX)llvm-config' 124
107 endef 125 # create symlink for shared library so that llvm-config can find it
126 cd '$(3)/$(HOST_BINDIR)' && ln -s libLLVM-$(word 1,$(subst ., ,$($(PKG)_VERSION))).dll LLVM-$(word 1,$(subst ., ,$($(PKG)_VERSION))).dll
127
128 # install native llvm-config in HOST_BINDIR because it won't find the libs otherwise
129 $(INSTALL) -d '$(HOST_BINDIR)'
130 $(INSTALL) -m755 '$(1)/.build/NATIVE/bin/llvm-config' '$(HOST_BINDIR)/$(MXE_TOOL_PREFIX)llvm-config'
131 endef
108 endif 132 endif