Mercurial > mxe-octave
comparison src/llvm.mk @ 5597:f367e764ca55
LLVM: Enable exception handling (bug #59599).
* src/llvm.mk: Update download URL. Add build dependency. Enable exception
handling. Minor clean-up.
* src/llvm-1-llvm-config.patch: Fixes for cross-compiling.
* src/mingw-llvm-1-config.patch: Remove patch.
* dist-files.mk: Update list of files.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Sat, 05 Dec 2020 20:56:44 +0100 |
parents | b0d42d306e96 |
children | 9722214b6722 |
comparison
equal
deleted
inserted
replaced
5596:f62e01947a77 | 5597:f367e764ca55 |
---|---|
5 $(PKG)_IGNORE := | 5 $(PKG)_IGNORE := |
6 $(PKG)_VERSION := 7.1.0 | 6 $(PKG)_VERSION := 7.1.0 |
7 $(PKG)_CHECKSUM := d43bfea58a35e058b93a6af36a728cfc64add33d | 7 $(PKG)_CHECKSUM := d43bfea58a35e058b93a6af36a728cfc64add33d |
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://releases.llvm.org/$($(PKG)_VERSION)/$($(PKG)_FILE) | 10 $(PKG)_URL := https://github.com/llvm/llvm-project/releases/download/llvmorg-$($(PKG)_VERSION)/$($(PKG)_FILE) |
11 $(PKG)_DEPS := | 11 $(PKG)_DEPS := build-python |
12 | 12 |
13 define $(PKG)_UPDATE | 13 define $(PKG)_UPDATE |
14 wget -q -O- 'http://releases.llvm.org/download.html?' | \ | 14 wget -q -O- 'http://releases.llvm.org/download.html?' | \ |
15 grep 'Download LLVM' | \ | 15 grep 'Download LLVM' | \ |
16 $(SED) -n 's,.*LLVM \([0-9][^<]*\).*,\1,p' | \ | 16 $(SED) -n 's,.*LLVM \([0-9][^<]*\).*,\1,p' | \ |
22 define $(PKG)_BUILD | 22 define $(PKG)_BUILD |
23 mkdir '$(1)/.build' && cd '$(1)/.build' && cmake .. \ | 23 mkdir '$(1)/.build' && cd '$(1)/.build' && cmake .. \ |
24 $($(PKG)_CMAKE_FLAGS) \ | 24 $($(PKG)_CMAKE_FLAGS) \ |
25 $(CMAKE_CCACHE_FLAGS) \ | 25 $(CMAKE_CCACHE_FLAGS) \ |
26 -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \ | 26 -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \ |
27 -DLLVM_BUILD_LLVM_DYLIB=On \ | 27 -DLLVM_BUILD_LLVM_DYLIB=ON \ |
28 -DLLVM_LINK_LLVM_DYLIB=On \ | 28 -DLLVM_LINK_LLVM_DYLIB=ON \ |
29 -DLLVM_VERSION_SUFFIX= \ | 29 -DLLVM_VERSION_SUFFIX= \ |
30 -DLLVM_TARGETS_TO_BUILD='X86' \ | 30 -DLLVM_TARGETS_TO_BUILD='X86' \ |
31 -DLLVM_BUILD_EXAMPLES=Off \ | 31 -DLLVM_ENABLE_EH=ON \ |
32 -DLLVM_INCLUDE_EXAMPLES=Off \ | 32 -DLLVM_ENABLE_RTTI=ON \ |
33 -DLLVM_BUILD_TESTS=Off \ | 33 -DLLVM_BUILD_EXAMPLES=OFF \ |
34 -DLLVM_INCLUDE_TESTS=Off \ | 34 -DLLVM_INCLUDE_EXAMPLES=OFF \ |
35 -DLLVM_BUILD_TESTS=OFF \ | |
36 -DLLVM_INCLUDE_TESTS=OFF \ | |
35 -DLLVM_INCLUDE_GO_TESTS=OFF \ | 37 -DLLVM_INCLUDE_GO_TESTS=OFF \ |
36 -DLLVM_INCLUDE_DOCS=OFF \ | 38 -DLLVM_INCLUDE_DOCS=OFF \ |
37 -DLLVM_BUILD_DOCS=OFF \ | 39 -DLLVM_BUILD_DOCS=OFF \ |
38 -DLLVM_ENABLE_DOXYGEN=OFF \ | 40 -DLLVM_ENABLE_DOXYGEN=OFF \ |
39 -DLLVM_ENABLE_BACKTRACES=Off | 41 -DLLVM_ENABLE_BACKTRACES=OFF |
40 | 42 |
41 $(MAKE) -C '$(1)/.build' -j '$(JOBS)' install DESTDIR='$(3)' | 43 $(MAKE) -C '$(1)/.build' -j '$(JOBS)' install DESTDIR='$(3)' |
42 endef | 44 endef |
43 else | 45 else |
44 define $(PKG)_BUILD | 46 define $(PKG)_BUILD |
46 exit 1 | 48 exit 1 |
47 endef | 49 endef |
48 endif | 50 endif |
49 else | 51 else |
50 ifeq ($(ENABLE_WINDOWS_64),yes) | 52 ifeq ($(ENABLE_WINDOWS_64),yes) |
51 ## WTF, setting LLVM_TARGETS_TO_BUILD to X64_64 doesn't work here? | |
52 $(PKG)_SYSDEP_CMAKE_OPTIONS += \ | 53 $(PKG)_SYSDEP_CMAKE_OPTIONS += \ |
53 -DLLVM_DEFAULT_TARGET_TRIPLE='x86_64-pc-win32' \ | 54 -DLLVM_DEFAULT_TARGET_TRIPLE='x86_64-pc-win32' |
54 -DLLVM_TARGETS_TO_BUILD='X86' | |
55 else | 55 else |
56 $(PKG)_SYSDEP_CMAKE_OPTIONS += \ | 56 $(PKG)_SYSDEP_CMAKE_OPTIONS += \ |
57 -DLLVM_DEFAULT_TARGET_TRIPLE='x86-pc-win32' \ | 57 -DLLVM_DEFAULT_TARGET_TRIPLE='x86-pc-win32' |
58 -DLLVM_TARGETS_TO_BUILD='X86' | |
59 endif | 58 endif |
60 ifeq ($(USE_CCACHE),yes) | 59 ifeq ($(USE_CCACHE),yes) |
61 $(PKG)_CCACHE_OPTIONS += \ | 60 $(PKG)_CCACHE_OPTIONS += \ |
62 -DLLVM_CCACHE_BUILD=On | 61 -DLLVM_CCACHE_BUILD=ON |
63 endif | 62 endif |
64 | 63 |
65 define $(PKG)_BUILD | 64 define $(PKG)_BUILD |
66 mkdir '$(1)/.build' | 65 mkdir '$(1)/.build' |
67 cd '$(1)/.build' && 'cmake' .. \ | 66 cd '$(1)/.build' && 'cmake' .. \ |
68 $($(PKG)_CMAKE_FLAGS) \ | 67 $($(PKG)_CMAKE_FLAGS) \ |
69 $(CMAKE_CCACHE_FLAGS) \ | 68 $(CMAKE_CCACHE_FLAGS) \ |
70 -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \ | 69 -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \ |
71 -DLLVM_BUILD_TOOLS=OFF \ | 70 -DLLVM_BUILD_TOOLS=OFF \ |
72 -DLLVM_BUILD_LLVM_DYLIB=On \ | 71 -DLLVM_BUILD_LLVM_DYLIB=ON \ |
73 -DLLVM_LINK_LLVM_DYLIB=On \ | 72 -DLLVM_LINK_LLVM_DYLIB=ON \ |
74 -DLLVM_VERSION_SUFFIX= \ | 73 -DLLVM_VERSION_SUFFIX= \ |
74 -DLLVM_TARGETS_TO_BUILD='X86' \ | |
75 $($(PKG)_SYSDEP_CMAKE_OPTIONS) \ | 75 $($(PKG)_SYSDEP_CMAKE_OPTIONS) \ |
76 -DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE='$(CMAKE_NATIVE_TOOLCHAIN_FILE)'" \ | 76 -DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE='$(CMAKE_NATIVE_TOOLCHAIN_FILE)'" \ |
77 -DLLVM_BUILD_EXAMPLES=Off \ | 77 -DLLVM_ENABLE_EH=ON \ |
78 -DLLVM_INCLUDE_EXAMPLES=Off \ | 78 -DLLVM_ENABLE_RTTI=ON \ |
79 -DLLVM_BUILD_TESTS=Off \ | 79 -DLLVM_BUILD_EXAMPLES=OFF \ |
80 -DLLVM_INCLUDE_TESTS=Off \ | 80 -DLLVM_INCLUDE_EXAMPLES=OFF \ |
81 -DLLVM_BUILD_TESTS=OFF \ | |
82 -DLLVM_INCLUDE_TESTS=OFF \ | |
81 -DLLVM_INCLUDE_GO_TESTS=OFF \ | 83 -DLLVM_INCLUDE_GO_TESTS=OFF \ |
82 -DLLVM_ENABLE_BACKTRACES=Off \ | 84 -DLLVM_ENABLE_BACKTRACES=OFF \ |
83 -DLLVM_INCLUDE_DOCS=OFF \ | 85 -DLLVM_INCLUDE_DOCS=OFF \ |
84 -DLLVM_BUILD_DOCS=OFF \ | 86 -DLLVM_BUILD_DOCS=OFF \ |
85 -DLLVM_ENABLE_DOXYGEN=OFF \ | 87 -DLLVM_ENABLE_DOXYGEN=OFF \ |
86 -DLLVM_ENABLE_OCAMLDOC=OFF \ | 88 -DLLVM_ENABLE_OCAMLDOC=OFF \ |
87 -DLLVM_ENABLE_BINDINGS=OFF \ | 89 -DLLVM_ENABLE_BINDINGS=OFF \ |
99 | 101 |
100 # create symlink for shared library so that llvm-config can find it | 102 # create symlink for shared library so that llvm-config can find it |
101 cd '$(3)/$(HOST_BINDIR)' && ln -s LLVM.dll LLVM-$(word 1,$(subst ., ,$($(PKG)_VERSION))).$(word 2,$(subst ., ,$($(PKG)_VERSION))).dll | 103 cd '$(3)/$(HOST_BINDIR)' && ln -s LLVM.dll LLVM-$(word 1,$(subst ., ,$($(PKG)_VERSION))).$(word 2,$(subst ., ,$($(PKG)_VERSION))).dll |
102 | 104 |
103 # install native llvm-config in HOST_BINDIR because it won't find the libs otherwise | 105 # install native llvm-config in HOST_BINDIR because it won't find the libs otherwise |
104 # FIXME: Some of the configuration flags are hard coded into llvm-config with a patch. | |
105 # If the configuration flags are changed, the patch might have to be adapted. | |
106 $(INSTALL) -d '$(HOST_BINDIR)' | 106 $(INSTALL) -d '$(HOST_BINDIR)' |
107 $(INSTALL) -m755 '$(1)/.build/NATIVE/bin/llvm-config' '$(HOST_BINDIR)/$(MXE_TOOL_PREFIX)llvm-config' | 107 $(INSTALL) -m755 '$(1)/.build/NATIVE/bin/llvm-config' '$(HOST_BINDIR)/$(MXE_TOOL_PREFIX)llvm-config' |
108 endef | 108 endef |
109 endif | 109 endif |