redoing project, starting with incremental updates
This commit is contained in:
68
build.sh
Executable file
68
build.sh
Executable file
@@ -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
|
||||
Reference in New Issue
Block a user