diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..b7623ef --- /dev/null +++ b/build.sh @@ -0,0 +1,68 @@ +#!/usr/bin/env bash + +set -euo pipefail + +umask 022 + +export LC_ALL="POSIX" + +export TARGET="x86_64-axe-linux-gnu" + +export MAKEFLAGS="-j$(nproc)" + +export SYSROOT="$PWD/sysroot" + +export PROJDIR="$PWD" + +export SOURCES="$SYSROOT/sources" + +export CROSS="$SYSROOT/cross" + +export PATH="$CROSS/bin:/usr/bin:/usr/sbin" + +export CONFIG_SITE="$SYSROOT/usr/share/config.site" + +BINUTILS_VERSION=2.45.1 +BINUTILS_URL=https://mirror.ufs.ac.za/gnu/binutils/binutils-$BINUTILS_VERSION.tar.xz + + +if [ ! -d "$SYSROOT" ]; then + mkdir -p "$SYSROOT"/{etc,cross,sources,usr,dev,proc,sys,run} + mkdir -p "$SYSROOT"/usr/{bin,sbin,lib,include} + + for directory in bin sbin lib; do + ln -fs "usr/$directory" "$SYSROOT/$directory" + done +fi + +fetch() { + wget -N -c --show-progress -q -P "$SOURCES" $1 +} + + +bootstrap_binutils() { + fetch $BINUTILS_URL + + cd "$SOURCES" + tar xf binutils-$BINUTILS_VERSION.tar.xz + cd binutils-$BINUTILS_VERSION + + mkdir -p build + cd build + + ../configure \ + --prefix="$CROSS" \ + --with-sysroot="$SYSROOT" \ + --target="$TARGET" \ + --disable-nls \ + --enable-gprofng=no \ + --disable-werror \ + --enable-new-dtags \ + --enable-default-hash-style=gnu + + make + make install +} + + +bootstrap_binutils \ No newline at end of file