mittos65/toolchain/build-toolchain.sh

63 lines
1.1 KiB
Bash
Executable File

#!/bin/sh -e
apk --update add build-base
apk add gmp-dev mpfr-dev mpc1-dev
apk add make
apk add grub-bios xorriso
apk add python3 git rsync
rm -rf /var/cache/apk/*
target=x86_64-elf
SYSROOT=/opt/sysroot
binutils=binutils-2.37
gcc=gcc-11.2.0
mkdir -p /opt/external
cd /opt/external
[ -d musl ] || git clone --depth=1 git://git.musl-libc.org/musl
cd musl
git reset --hard
git pull
cat > config.mak << EOF
ARCH=x86_64
prefix=${SYSROOT}/usr
includedir=\$(prefix)/include
EOF
make install-headers
# Build binutils
cd /opt
wget http://ftp.gnu.org/gnu/binutils/${binutils}.tar.gz
tar -xf ${binutils}.tar.gz
mkdir binutils-build && cd binutils-build
../${binutils}/configure \
--target=${target} \
--disable-nls \
--disable-werror \
--with-sysroot=${SYSROOT}
make -j 4
make install
# Build gcc and libgcc
cd /opt
wget http://ftp.gnu.org/gnu/gcc/${gcc}/${gcc}.tar.gz
tar -xf ${gcc}.tar.gz
mkdir gcc-build && cd gcc-build
../${gcc}/configure \
--target=${target} \
--disable-nls \
--enable-languages=c \
--with-sysroot=${SYSROOT}
make all-gcc all-target-libgcc -j 4
make install-gcc install-target-libgcc
apk del build-base
cd /
rm -rf /opt