Mercurial > mxe-octave
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 |