diff --git a/llvm-17.0.6-0.build.sh b/llvm-17.0.6-0.build.sh new file mode 100755 index 0000000..f48bb11 --- /dev/null +++ b/llvm-17.0.6-0.build.sh @@ -0,0 +1,83 @@ +#! /bin/bash + +PKG=llvm +VERSION=17.0.6 +BUILD=0 + +PREFIX=/pkg/$PKG-$VERSION-$BUILD +if [ -n "$TESTING" ]; then PREFIX=/dev/shm/$PKG-$VERSION-$BUILD ; fi + +set -xe +umask 022 + +BUILD_TMPDIR=/dev/shm/$PKG-$VERSION-$BUILD.build.tmp +test -d $BUILD_TMPDIR && ( chmod -R u+rwx $BUILD_TMPDIR || true ; rm -rf $BUILD_TMPDIR ) +mkdir -p $BUILD_TMPDIR/home +export TMPDIR=$BUILD_TMPDIR +export HOME=$BUILD_TMPDIR/home + +exec $PREFIX/profile <<-EOF + PATH=$PREFIX/bin:\$PATH + export LD_LIBRARY_PATH=$PREFIX/lib\${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH} + if [ -d $PREFIX/.compatlibs ]; then export LD_LIBRARY_PATH=$PREFIX/.compatlibs\${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH} ; fi +EOF +. $PREFIX/profile + +export MAKEFLAGS="-j $(nproc)" + +BUILDDIR=$PREFIX/build + +mkdir -p $BUILDDIR +cd $BUILDDIR + +test -e llvmorg-$VERSION.tar.gz || wget https://github.com/llvm/llvm-project/archive/refs/tags/llvmorg-$VERSION.tar.gz +test -d llvm-$VERSION || (mkdir llvm-$VERSION; tar xvf llvmorg-$VERSION.tar.gz -C llvm-$VERSION --strip-components 1) +cd llvm-$VERSION + +mkdir -p build_llvm +cmake \ + -S llvm \ + -B build_llvm \ + -G Ninja \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_BUILD_TYPE=Debug \ + -DLLVM_BUILD_LLVM_DYLIB=ON \ + -DLLVM_BUILD_TESTS=ON \ + -DLLVM_ENABLE_RTTI=ON \ + -DLLVM_INSTALL_UTILS=ON \ + -DLLVM_LINK_LLVM_DYLIB=ON \ + -DLLVM_TARGETS_TO_BUILD="all" \ + -Wno-dev + +ninja -v -C build_llvm +ninja -v -C build_llvm install + +mkdir -p build_clang +cmake \ + -S clang \ + -B build_clang \ + -G Ninja \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_CXX_COMPILER=/usr/bin/clang++ \ + -DCMAKE_BUILD_TYPE=Release \ + -DLLVM_INCLUDE_TESTS=OFF \ + -Wno-dev + +ninja -v -C build_clang +ninja -v -C build_clang install + +mkdir -p build_lld +cmake \ + -S lld \ + -B build_lld \ + -G Ninja \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release + +ninja -v -C build_lld +ninja -v -C build_lld install + +exit