#!/bin/sh # First install the following commands: # * gcc # * make # * bison # * flex # * texi2any (texinfo package) # * wget # And the following libraries: # * gmp (libgmp-dev) # * mpc (libmpc-dev) # * mpfr (libmpfr-dev) BINUTILS_VERSION="2.35" GCC_VERSION="10.2.0" export PREFIX="$PWD/i686-elf-gcc" export PATH="$PWD/i686-elf-gcc/bin:$PATH" TARGET="i686-elf" if [ -e "i686-elf-gcc" ]; then echo "Exiting since installation directory already present" exit 0 fi # Download archives. if [ ! -f binutils-$BINUTILS_VERSION.tar.xz ]; then wget "https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS_VERSION.tar.xz" fi if [ ! -f gcc-$GCC_VERSION.tar.xz ]; then wget "https://ftp.gnu.org/gnu/gcc/gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.xz" fi # Extract archives. tar xJf binutils-$BINUTILS_VERSION.tar.xz tar xJf gcc-$GCC_VERSION.tar.xz # Build binutils. rm -rf "build-binutils" mkdir "build-binutils" cd "build-binutils" ../binutils-$BINUTILS_VERSION/configure \ --target="$TARGET" --prefix="$PREFIX" --with-sysroot --disable-nls \ --disable-werror make make install cd .. # Build gcc. rm -rf "build-gcc" mkdir "build-gcc" cd "build-gcc" ../gcc-$GCC_VERSION/configure \ --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 ..