#!/bin/bash
BINUTILS_VERSION="2.33.1"
GCC_VERSION="9.2.0"
PARALLEL=4
PREFIX="$HOME"
PATH="$PREFIX/bin:$PATH"
TARGET=x86_64-elf
# if there's old builds lying around
rm -rf build-binutils.sh build-binutils binutils-${BINUTILS_VERSION}
rm -rf build-gcc.sh build-gcc gcc-${GCC_VERSION}
mkdir -p "$PREFIX/src"
cd "$PREFIX/src"
wget -q https://ftp.gnu.org/gnu/binutils/binutils-${BINUTILS_VERSION}.tar.gz
wget -q https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/gcc-${GCC_VERSION}.tar.gz
tar zxf binutils-${BINUTILS_VERSION}.tar.gz
tar zxf gcc-${GCC_VERSION}.tar.gz
rm binutils-${BINUTILS_VERSION}.tar.gz gcc-${GCC_VERSION}.tar.gz
### binutils
cd $PREFIX/src
mkdir build-binutils
cd build-binutils
../binutils-${BINUTILS_VERSION}/configure --target=$TARGET --prefix="$PREFIX" --disable-nls --disable-werror --with-sysroot
#../binutils-${BINUTILS_VERSION}/configure --prefix="$PREFIX" --disable-nls --disable-werror
make -j $PARALLEL
make install
cd $PREFIX/src
#rm -rf build-binutils.sh build-binutils binutils-${BINUTILS_VERSION}
### GCC
cd $PREFIX/src
mkdir build-gcc
cd build-gcc
../gcc-${GCC_VERSION}/configure --target=$TARGET --prefix="$PREFIX" --disable-nls --enable-languages=c,c++
#../gcc-${GCC_VERSION}/configure --prefix="$PREFIX" --disable-nls --enable-languages=c,c++ --disable-multilib
make -j $PARALLEL all-gcc
make -j $PARALLEL all-target-libgcc
make install-gcc
make install-target-libgcc
cd $PREFIX/src
#rm -rf build-gcc.sh build-gcc gcc-${GCC_VERSION}
Comments