From 02008c9d791f997d11a41ff96d398a0d5741b032 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20P=C3=B6chtrager?= Date: Thu, 27 Aug 2020 13:51:17 +0200 Subject: [PATCH] build_clang: Fix mirror annoyances --- build_clang.sh | 47 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 13 deletions(-) diff --git a/build_clang.sh b/build_clang.sh index e70c49a..551d732 100755 --- a/build_clang.sh +++ b/build_clang.sh @@ -18,8 +18,6 @@ mkdir -p $BUILD_DIR source $BASE_DIR/tools/trap_exit.sh -MIRROR="https://releases.llvm.org" - if [ -z "$CLANG_VERSION" ]; then CLANG_VERSION=9.0.0 fi @@ -30,6 +28,37 @@ fi require cmake +LLVM_PKG="" +CLANG_PKG="" + +function set_package_link() +{ + pushd $BUILD_DIR &>/dev/null + download https://releases.llvm.org/download.html &>/dev/null + if [[ $(file download.html) == *gzip* ]]; then + mv download.html download.html.gz + require gzip + gzip -d download.html.gz + fi + links=$(cat download.html | grep -Po '(?<=href=")[^"]*' | grep -v "\.sig") + rm -f download.html + LLVM_PKG=$(echo "$links" | grep "llvm-$CLANG_VERSION.src" | head -n 1 || true) + CLANG_PKG=$(echo "$links" | grep -E "(clang|cfe)-$CLANG_VERSION.src" | head -n 1 || true) + if [ -n "$LLVM_PKG" ] && [[ $LLVM_PKG != https* ]]; then + LLVM_PKG="https://releases.llvm.org/$LLVM_PKG" + CLANG_PKG="https://releases.llvm.org/$CLANG_PKG" + fi + popd &>/dev/null +} + +set_package_link + +if [ -z "$LLVM_PKG" ] || [ -z "$CLANG_PKG" ]; then + echo "Release $CLANG_VERSION not found!" 1>&2 + exit 1 +fi + + function warn_if_installed() { set +e @@ -48,6 +77,7 @@ if [ $PLATFORM != "Darwin" -a $PLATFORM != "FreeBSD" ]; then warn_if_installed llvm-config llvm fi + echo "Building Clang/LLVM $CLANG_VERSION may take a long time." echo "Installation Prefix: $INSTALLPREFIX" @@ -59,22 +89,12 @@ fi pushd $TARBALL_DIR &>/dev/null -if [ -z "$PKGCOMPRESSOR" ]; then - PKGCOMPRESSOR="tar.xz" - [ $CLANG_VERSION == "3.4.2" ] && PKGCOMPRESSOR="tar.gz" -fi - -LLVM_PKG="$MIRROR/${CLANG_VERSION}/" -LLVM_PKG+="llvm-${CLANG_VERSION}.src.${PKGCOMPRESSOR}" - -CLANG_PKG="$MIRROR/${CLANG_VERSION}/" -CLANG_PKG+="cfe-${CLANG_VERSION}.src.${PKGCOMPRESSOR}" - download $LLVM_PKG download $CLANG_PKG popd &>/dev/null + pushd $BUILD_DIR &>/dev/null echo "cleaning up ..." @@ -94,6 +114,7 @@ echo "" popd &>/dev/null + function build() { stage=$1