comparison src/llvm.mk @ 4510:140689282d54

llvm: Update to version 5.0.
author John W. Eaton <jwe@octave.org>
date Mon, 16 Oct 2017 20:26:32 -0400
parents 13be64f9f16d
children d73575e7de22
comparison
equal deleted inserted replaced
4509:3d2263062bbd 4510:140689282d54
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 := 3.3 6 $(PKG)_VERSION := 5.0.0
7 $(PKG)_CHECKSUM := c6c22d5593419e3cb47cbcf16d967640e5cce133 7 $(PKG)_CHECKSUM := 7b0fd212ecc38461e392cbdcbe6a1d4944138a04
8 $(PKG)_SUBDIR := llvm-$($(PKG)_VERSION).src 8 $(PKG)_SUBDIR := llvm-$($(PKG)_VERSION).src
9 $(PKG)_FILE := llvm-$($(PKG)_VERSION).src.tar.gz 9 $(PKG)_FILE := llvm-$($(PKG)_VERSION).src.tar.xz
10 $(PKG)_URL := http://llvm.org/releases/$($(PKG)_VERSION)/$($(PKG)_FILE) 10 $(PKG)_URL := http://releases.llvm.org/$($(PKG)_VERSION)/$($(PKG)_FILE)
11 $(PKG)_DEPS := 11 $(PKG)_DEPS :=
12 ifeq ($(MXE_SYSTEM),msvc)
13 $(PKG)_DEPS += libffi
14 endif
15 12
16 define $(PKG)_UPDATE 13 define $(PKG)_UPDATE
17 $(WGET) -q -O- 'http://llvm.org/releases/download.html' | \ 14 $(WGET) -q -O- 'http://releases/llvm.org/download.html' | \
18 grep 'Download LLVM' | \ 15 grep 'Download LLVM' | \
19 $(SED) -n 's,.*\([0-9]\.[0-9]\).*,\1,p' | \ 16 $(SED) -n 's,.*\([0-9]\.[0-9]\).*,\1,p' | \
20 head -1 17 head -1
21 endef 18 endef
22 19
23 ifeq ($(MXE_NATIVE_MINGW_BUILD),yes) 20 ifeq ($(MXE_NATIVE_BUILD),yes)
24 ifeq ($(MXE_SYSTEM),msvc) 21 ifeq ($(MXE_SYSTEM),gnu-linux)
25 define $(PKG)_BUILD 22 define $(PKG)_BUILD
26 mkdir '$(1)/.build' 23 mkdir '$(1)/.build' && cd '$(1)/.build' && cmake .. \
27 cd '$(1)/.build' && cmake \ 24 $($(PKG)_CMAKE_FLAGS) \
28 -G "NMake Makefiles" \ 25 -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
29 -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \ 26 -DLLVM_BUILD_LLVM_DYLIB=On \
30 -DBUILD_SHARED_LIBS=OFF \ 27 -DLLVM_LINK_LLVM_DYLIB=On \
31 -DLLVM_TARGETS_TO_BUILD="X86" \ 28 -DLLVM_VERSION_SUFFIX= \
32 -DLLVM_ENABLE_FFI=ON \ 29 -DLLVM_TARGETS_TO_BUILD='X86' \
33 "-DFFI_INCLUDE_DIR=$(HOST_LIBDIR)/libffi-$(libffi_VERSION)/include" \ 30 -DLLVM_BUILD_EXAMPLES=Off \
34 -DLLVM_REQUIRES_EH=ON \ 31 -DLLVM_INCLUDE_EXAMPLES=Off \
35 ../ 32 -DLLVM_BUILD_TESTS=Off \
36 sed -i '/^ echo "/ {s/echo "/echo /;s/" >>/ >>/;}' \ 33 -DLLVM_INCLUDE_TESTS=Off \
37 '$(1)/.build/tools/llvm-config/CMakeFiles/llvm-config.dir/build.make' 34 -DLLVM_ENABLE_BACKTRACES=Off
38 cd '$(1)/.build' && \ 35
39 env -u MAKE -u MAKEFLAGS nmake && \ 36 $(MAKE) -C '$(1)/.build' -j '$(JOBS)' install DESTDIR='$(3)'
40 env -u MAKE -u MAKEFLAGS nmake DESTDIR='$(3)' install 37 endef
41 endef 38 else
39 echo "unsupported LLVM configuration" && 1>&2
40 exit 1
41 endif
42 else 42 else
43 define $(PKG)_BUILD 43 echo "unsupported LLVM configuration" 1>&2 && exit 1
44 mkdir '$(1)/build'
45 cd '$(1)/build' && ../configure \
46 $(CONFIGURE_CPPFLAGS) $(CONFIGURE_LDFLAGS) \
47 $(HOST_AND_BUILD_CONFIGURE_OPTIONS) \
48 --enable-targets='host-only' \
49 --disable-docs \
50 $(ENABLE_SHARED_OR_STATIC) \
51 --prefix='$(HOST_PREFIX)'
52
53 PATH='$(HOST_BINDIR):$(PATH)' $(MAKE) -C '$(1)/build' -j $(JOBS) install DESTDIR='$(3)'
54
55 # create import lib for the dll
56 $(if $(filter yes, $(BUILD_SHARED)),
57 cd '$(1)/build/tools/llvm-shlib/Release+Asserts' && \
58 $(MXE_DLLTOOL) \
59 --dllname "LLVM-`$(3)$(HOST_BINDIR)/llvm-config --version`.dll" \
60 --def "LLVM-`$(3)$(HOST_BINDIR)/llvm-config --version`.def" \
61 --output-lib "libLLVM-`$(3)$(HOST_BINDIR)/llvm-config --version`.a"
62 $(INSTALL) -d "$(3)$(HOST_LIBDIR)"
63 cd '$(1)/build/tools/llvm-shlib/Release+Asserts' && \
64 $(INSTALL) -m644 \
65 "libLLVM-`$(3)$(HOST_BINDIR)/llvm-config --version`.a" \
66 "$(3)$(HOST_LIBDIR)"
67 )
68 endef
69 endif 44 endif
70 else
71 define $(PKG)_BUILD
72 mkdir '$(1)/build'
73 cd '$(1)/build' && ../configure \
74 $(CONFIGURE_CPPFLAGS) $(CONFIGURE_LDFLAGS) \
75 $(HOST_AND_BUILD_CONFIGURE_OPTIONS) \
76 --enable-targets='x86' \
77 --disable-docs \
78 $(ENABLE_SHARED_OR_STATIC) \
79 --prefix='$(HOST_PREFIX)'
80
81 $(MAKE) -C '$(1)/build' -j $(JOBS)
82 $(MAKE) -C '$(1)/build' -j 1 install DESTDIR='$(3)'
83
84 if [ $(MXE_NATIVE_BUILD) = no ]; then \
85 $(INSTALL) -d '$(3)$(BUILD_TOOLS_PREFIX)/bin'; \
86 $(INSTALL) -m755 '$(3)$(HOST_BINDIR)/llvm-config-host' '$(3)$(BUILD_TOOLS_PREFIX)/bin/llvm-config'; \
87 fi
88
89 # create import lib for the dll
90 if [ $(MXE_SYSTEM) = mingw -a $(BUILD_SHARED) = yes ]; then \
91 cd '$(1)/build/tools/llvm-shlib/Release+Asserts' && \
92 $(MXE_DLLTOOL) \
93 --dllname "LLVM-`$(3)$(BUILD_TOOLS_PREFIX)/bin/llvm-config --version`.dll" \
94 --def "LLVM-`$(3)$(BUILD_TOOLS_PREFIX)/bin/llvm-config --version`.def" \
95 --output-lib "libLLVM-`$(3)$(BUILD_TOOLS_PREFIX)/bin/llvm-config --version`.a"; \
96 $(INSTALL) -d "$(3)$(HOST_LIBDIR)"; \
97 cd '$(1)/build/tools/llvm-shlib/Release+Asserts' && \
98 $(INSTALL) -m644 \
99 "libLLVM-`$(3)$(BUILD_TOOLS_PREFIX)/bin/llvm-config --version`.a" \
100 "$(3)$(HOST_LIBDIR)"; \
101 fi
102
103 endef
104 endif