diff 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
line wrap: on
line diff
--- a/dev/llvm/llvm.sh	Sat Mar 30 13:12:34 2019 +0100
+++ b/dev/llvm/llvm.sh	Sat Mar 30 14:20:51 2019 +0100
@@ -21,8 +21,8 @@
 PKGLICENSE="MIT CUSTOM"
 PKGSUMMARY="low level virtual machine compiler infrastructure"
 PKGDOWNLOAD="http://releases.llvm.org/$PKGVERSION/$PKGNAME-$PKGVERSION.src.tar.xz"
-PKGDEPENDS="python/python lib/zlib"
-PKGOPTIONS="DOXYGEN SPHINX"
+PKGDEPENDS="python/python lib/zlib dev/ninja:build"
+PKGOPTIONS="DOXYGEN LIBCXX LLD SPHINX STATIC TARGETS"
 
 : ${CHOST:=$(uname -m)-linux-musl}
 : ${CC:=clang}
@@ -30,20 +30,42 @@
 : ${CXX:=clang++}
 : ${CXXFLAGS:=-O2}
 : ${DOXYGEN:=yes}
+: ${LIBCXX:=yes}
+: ${LLD:=yes}
 : ${SPHINX:=yes}
+: ${STATIC:=no}
+: ${TARGETS:=all}
+
+if [ "$LIBCXX" = "yes" ]; then
+	with_libcxx="-DLLVM_ENABLE_LIBCXX=On"
+else
+	with_libcxx="-DLLVM_ENABLE_LIBCXX=Off"
+fi
+
+if [ "$LLD" = "yes" ]; then
+	with_lld="-DLLVM_ENABLE_LLD=On"
+else
+	with_lld="-DLLVM_ENABLE_LLD=Off"
+fi
 
 if [ "$DOXYGEN" = "yes" ]; then
 	PKGDEPENDS="dev/doxygen $PKGDEPENDS"
-	with_doxygen="On"
+	with_doxygen="-DLLVM_ENABLE_DOXYGEN=On"
 else
-	with_doxygen="Off"
+	with_doxygen="-DLLVM_ENABLE_DOXYGEN=Off"
 fi
 
 if [ "$SPHINX" = "yes" ]; then
 	PKGDEPENDS="dev/sphinx $PKGDEPENDS"
-	with_sphinx="On"
+	with_sphinx="-DLLVM_ENABLE_SPHINX=On"
 else
-	with_sphinx="Off"
+	with_sphinx="-DLLVM_ENABLE_SPHINX=Off"
+fi
+
+if [ "$STATIC" = "yes" ]; then
+	with_static="-DLLVM_BUILD_LLVM_DYLIB=Off"
+else
+	with_static="-DLLVM_BUILD_LLVM_DYLIB=On"
 fi
 
 build()
@@ -55,21 +77,23 @@
 	mkdir build && pushd build
 	cmake .. \
 		-DCMAKE_BUILD_TYPE=Release \
-		-DBUILD_SHARED_LIBS=On \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DCMAKE_C_COMPILER="$CC" \
 		-DCMAKE_C_FLAGS="$CFLAGS" \
 		-DCMAKE_CXX_COMPILER="$CXX" \
 		-DCMAKE_CXX_FLAGS="$CXXFLAGS" \
-		-DLLVM_ENABLE_DOXYGEN=$with_doxygen \
 		-DLLVM_ENABLE_EH=On \
-		-DLLVM_ENABLE_LIBCXX=On \
-		-DLLVM_ENABLE_LLD=On \
 		-DLLVM_ENABLE_RTTI=On \
-		-DLLVM_ENABLE_SPHINX=$with_sphinx \
-		-DLLVM_HOST_TRIPLE=$CHOST
-	make
-	make install DESTDIR=$DESTDIR
+		-DLLVM_HOST_TRIPLE=$CHOST \
+		-DLLVM_TARGETS_TO_BUILD=$TARGETS \
+		$with_static \
+		$with_doxygen \
+		$with_libcxx \
+		$with_lld \
+		$with_sphinx \
+		-GNinja
+	ninja
+	DESTDIR=$DESTDIR ninja install
 	popd
 
 	popd