61 lines
1.4 KiB
Bash
Executable File

#!/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 ..