comparison dev/llvm/llvm.sh @ 367:8c3b3f637811

dev/llvm: add more options to improve bootstrapping
author David Demelier <markand@malikania.fr>
date Sat, 30 Mar 2019 14:20:51 +0100
parents 819d906b465d
children 619e7d852f60
comparison
equal deleted inserted replaced
366:17a538fc8c8a 367:8c3b3f637811
19 PKGVERSION=8.0.0 19 PKGVERSION=8.0.0
20 PKGREVISION=1 20 PKGREVISION=1
21 PKGLICENSE="MIT CUSTOM" 21 PKGLICENSE="MIT CUSTOM"
22 PKGSUMMARY="low level virtual machine compiler infrastructure" 22 PKGSUMMARY="low level virtual machine compiler infrastructure"
23 PKGDOWNLOAD="http://releases.llvm.org/$PKGVERSION/$PKGNAME-$PKGVERSION.src.tar.xz" 23 PKGDOWNLOAD="http://releases.llvm.org/$PKGVERSION/$PKGNAME-$PKGVERSION.src.tar.xz"
24 PKGDEPENDS="python/python lib/zlib" 24 PKGDEPENDS="python/python lib/zlib dev/ninja:build"
25 PKGOPTIONS="DOXYGEN SPHINX" 25 PKGOPTIONS="DOXYGEN LIBCXX LLD SPHINX STATIC TARGETS"
26 26
27 : ${CHOST:=$(uname -m)-linux-musl} 27 : ${CHOST:=$(uname -m)-linux-musl}
28 : ${CC:=clang} 28 : ${CC:=clang}
29 : ${CFLAGS:=-O2} 29 : ${CFLAGS:=-O2}
30 : ${CXX:=clang++} 30 : ${CXX:=clang++}
31 : ${CXXFLAGS:=-O2} 31 : ${CXXFLAGS:=-O2}
32 : ${DOXYGEN:=yes} 32 : ${DOXYGEN:=yes}
33 : ${LIBCXX:=yes}
34 : ${LLD:=yes}
33 : ${SPHINX:=yes} 35 : ${SPHINX:=yes}
36 : ${STATIC:=no}
37 : ${TARGETS:=all}
38
39 if [ "$LIBCXX" = "yes" ]; then
40 with_libcxx="-DLLVM_ENABLE_LIBCXX=On"
41 else
42 with_libcxx="-DLLVM_ENABLE_LIBCXX=Off"
43 fi
44
45 if [ "$LLD" = "yes" ]; then
46 with_lld="-DLLVM_ENABLE_LLD=On"
47 else
48 with_lld="-DLLVM_ENABLE_LLD=Off"
49 fi
34 50
35 if [ "$DOXYGEN" = "yes" ]; then 51 if [ "$DOXYGEN" = "yes" ]; then
36 PKGDEPENDS="dev/doxygen $PKGDEPENDS" 52 PKGDEPENDS="dev/doxygen $PKGDEPENDS"
37 with_doxygen="On" 53 with_doxygen="-DLLVM_ENABLE_DOXYGEN=On"
38 else 54 else
39 with_doxygen="Off" 55 with_doxygen="-DLLVM_ENABLE_DOXYGEN=Off"
40 fi 56 fi
41 57
42 if [ "$SPHINX" = "yes" ]; then 58 if [ "$SPHINX" = "yes" ]; then
43 PKGDEPENDS="dev/sphinx $PKGDEPENDS" 59 PKGDEPENDS="dev/sphinx $PKGDEPENDS"
44 with_sphinx="On" 60 with_sphinx="-DLLVM_ENABLE_SPHINX=On"
45 else 61 else
46 with_sphinx="Off" 62 with_sphinx="-DLLVM_ENABLE_SPHINX=Off"
63 fi
64
65 if [ "$STATIC" = "yes" ]; then
66 with_static="-DLLVM_BUILD_LLVM_DYLIB=Off"
67 else
68 with_static="-DLLVM_BUILD_LLVM_DYLIB=On"
47 fi 69 fi
48 70
49 build() 71 build()
50 { 72 {
51 rm -rf $PKGNAME-$PKGVERSION.src 73 rm -rf $PKGNAME-$PKGVERSION.src
53 pushd $PKGNAME-$PKGVERSION.src 75 pushd $PKGNAME-$PKGVERSION.src
54 76
55 mkdir build && pushd build 77 mkdir build && pushd build
56 cmake .. \ 78 cmake .. \
57 -DCMAKE_BUILD_TYPE=Release \ 79 -DCMAKE_BUILD_TYPE=Release \
58 -DBUILD_SHARED_LIBS=On \
59 -DCMAKE_INSTALL_PREFIX=/usr \ 80 -DCMAKE_INSTALL_PREFIX=/usr \
60 -DCMAKE_C_COMPILER="$CC" \ 81 -DCMAKE_C_COMPILER="$CC" \
61 -DCMAKE_C_FLAGS="$CFLAGS" \ 82 -DCMAKE_C_FLAGS="$CFLAGS" \
62 -DCMAKE_CXX_COMPILER="$CXX" \ 83 -DCMAKE_CXX_COMPILER="$CXX" \
63 -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ 84 -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
64 -DLLVM_ENABLE_DOXYGEN=$with_doxygen \
65 -DLLVM_ENABLE_EH=On \ 85 -DLLVM_ENABLE_EH=On \
66 -DLLVM_ENABLE_LIBCXX=On \
67 -DLLVM_ENABLE_LLD=On \
68 -DLLVM_ENABLE_RTTI=On \ 86 -DLLVM_ENABLE_RTTI=On \
69 -DLLVM_ENABLE_SPHINX=$with_sphinx \ 87 -DLLVM_HOST_TRIPLE=$CHOST \
70 -DLLVM_HOST_TRIPLE=$CHOST 88 -DLLVM_TARGETS_TO_BUILD=$TARGETS \
71 make 89 $with_static \
72 make install DESTDIR=$DESTDIR 90 $with_doxygen \
91 $with_libcxx \
92 $with_lld \
93 $with_sphinx \
94 -GNinja
95 ninja
96 DESTDIR=$DESTDIR ninja install
73 popd 97 popd
74 98
75 popd 99 popd
76 rm -rf $PKGNAME-$PKGVERSION.src 100 rm -rf $PKGNAME-$PKGVERSION.src
77 } 101 }