:: commit 354094537ed69e10cdf8482fb07d58b2ff93b673

mintsuki <mintsuki@protonmail.com> — 2022-06-25 03:27

parents: dd53b47963

build: Pull make_toolchain.sh on bootstrap

diff --git a/.gitignore b/.gitignore
index 0d439ae7..b9d2c5a5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,7 @@
 /toolchain-files
 /limine-efi
 /freestanding_headers
+/make_toolchain.sh
 /ovmf*
 *.o
 *.d
diff --git a/bootstrap b/bootstrap
index 671cc4f4..c788483e 100755
--- a/bootstrap
+++ b/bootstrap
@@ -11,6 +11,7 @@ cd "$srcdir"
 [ -d stivale ] || git clone https://github.com/stivale/stivale.git
 [ -d libgcc-binaries ] || git clone https://github.com/mintsuki/libgcc-binaries.git
 [ -d limine-efi ] || git clone https://github.com/limine-bootloader/limine-efi.git
+[ -f make_toolchain.sh ] || curl -o make_toolchain.sh https://gist.github.com/mintsuki/50fca7022e09f241e40809168662493d/raw/c7eb3dd24100da888893dcee6e8d6b577613b577/make_toolchain.sh
 
 automake_libdir="$(automake --print-libdir)"
 
diff --git a/make_toolchain.sh b/make_toolchain.sh
deleted file mode 100755
index f025cccb..00000000
--- a/make_toolchain.sh
+++ /dev/null
@@ -1,85 +0,0 @@
-#! /bin/sh
-
-set -ex
-
-srcdir="$(dirname "$0")"
-test -z "$srcdir" && srcdir=.
-
-cd "$srcdir"
-
-if [ -z "$TARGET" ]; then
-    set +x
-    echo "TARGET not specified"
-    exit 1
-fi
-
-TARGET=$TARGET-elf
-BINUTILSVERSION=2.38
-GCCVERSION=12.1.0
-
-if command -v gmake; then
-    export MAKE=gmake
-else
-    export MAKE=make
-fi
-
-if command -v gtar; then
-    export TAR=gtar
-else
-    export TAR=tar
-fi
-
-export CFLAGS="-O2 -pipe"
-
-unset CC
-unset CXX
-
-if [ "$(uname)" = "OpenBSD" ]; then
-    # OpenBSD has an awfully ancient GCC which fails to build our toolchain.
-    # Force clang/clang++.
-    export CC="clang"
-    export CXX="clang++"
-fi
-
-mkdir -p toolchain && cd toolchain
-PREFIX="$(pwd -P)"
-
-export MAKEFLAGS="-j$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || psrinfo -tc 2>/dev/null || echo 1)"
-
-export PATH="$PREFIX/bin:$PATH"
-
-if [ ! -f binutils-$BINUTILSVERSION.tar.gz ]; then
-    curl -o binutils-$BINUTILSVERSION.tar.gz https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILSVERSION.tar.gz
-fi
-if [ ! -f gcc-$GCCVERSION.tar.gz ]; then
-    curl -o gcc-$GCCVERSION.tar.gz https://ftp.gnu.org/gnu/gcc/gcc-$GCCVERSION/gcc-$GCCVERSION.tar.gz
-fi
-
-rm -rf build
-mkdir build
-cd build
-
-$TAR -zxf ../binutils-$BINUTILSVERSION.tar.gz
-$TAR -zxf ../gcc-$GCCVERSION.tar.gz
-
-mkdir build-binutils
-cd build-binutils
-../binutils-$BINUTILSVERSION/configure CFLAGS="$CFLAGS" CXXFLAGS="$CFLAGS"  --target=$TARGET --prefix="$PREFIX" --with-sysroot --disable-nls --disable-werror
-$MAKE
-$MAKE install
-cd ..
-
-cd gcc-$GCCVERSION
-sed 's|http://gcc.gnu|https://gcc.gnu|g' < contrib/download_prerequisites > dp.sed
-mv dp.sed contrib/download_prerequisites
-chmod +x contrib/download_prerequisites
-./contrib/download_prerequisites --no-verify
-cd ..
-mkdir build-gcc
-cd build-gcc
-../gcc-$GCCVERSION/configure CFLAGS="$CFLAGS" CXXFLAGS="$CFLAGS" --target=$TARGET --prefix="$PREFIX" --disable-nls --enable-languages=c --without-headers
-$MAKE all-gcc
-$MAKE all-target-libgcc
-$MAKE install-gcc
-$MAKE install-target-libgcc
-cd ..
tab: 248 wrap: offon