#!/bin/bash BINUTILS_VER=2.18.50 GCC_VER=4.3.0 NEWLIB_VER=1.16.0 GMP_VER=4.2.2 MPFR_VER=2.3.1 GDB_VER=6.7.1 TARGET_DIR=/home/Shared/BuildSystems TARGET=m68k-elf HOST=linux-x86_64 echo " - Downloading necessary packages" mkdir -p $TARGET_DIR/source cd $TARGET_DIR/source wget http://www.mpfr.org/mpfr-current/mpfr-$MPFR_VER.tar.bz2 wget http://ftp.sunet.se/pub/gnu/gmp/gmp-$GMP_VER.tar.bz2 wget ftp://ftp.sunet.se/pub/gnu/gcc/releases/gcc-$GCC_VER/gcc-$GCC_VER.tar.bz2 wget ftp://ftp.sunet.se/pub/gnu/binutils/binutils-$BINUTILS_VER.tar.bz2 echo " - Extracting packages" tar -xfh mpfr-$MPFR_VER.tar.bz2 tar -xfh gmp-$GMP_VER.tar.bz2 tar -xfh gcc-$GCC_VER.tar.bz2 tar -xfh binutils-$BINUTILS_VER.tar.bz2 echo " - Creating prerequisite library aliases" cd $TARGET_DIR/source/gcc-$GCC_VER ln -s ../newlib-$NEWLIB_VER/newlib . ln -s ../newlib-$NEWLIB_VER/libgloss . export target=$TARGET export host_prefix=$TARGET_DIR/bin/$HOST/ export cross_prefix=$host_prefix/tools/$TARGET export i=$cross_prefix/bin echo " - Building GMP (prerequisite)" mkdir -p $TARGET_DIR/gen/$HOST/gmp-$GMP_VER cd $TARGET_DIR/gen/$HOST/gmp-$GMP_VER ../../../source/gmp-$GMP_VER/configure --prefix=$host_prefix make make install make clean echo " - Building MPFR (prerequisite)" mkdir -p $TARGET_DIR/gen/$HOST/mpfr-$MPFR_VER cd $TARGET_DIR/gen/$HOST/mpfr-$MPFR_VER ../../../source/mpfr-$MPFR_VER/configure --prefix=$host_prefix make make check make install make clean echo " - Building toolchain" mkdir -p $TARGET_DIR/gen/$HOST/$TARGET/binutils-$BINUTILS_VER cd $TARGET_DIR/gen/$HOST/$TARGET/binutils-$BINUTILS_VER ../../../../source/binutils-$BINUTILS_VER/configure --target=$target --prefix=$cross_prefix make make install make clean echo " - Building GCC" mkdir -p $TARGET_DIR/gen/$HOST/$TARGET/gcc-$GCC_VER cd $TARGET_DIR/gen/$HOST/$TARGET/gcc-$GCC_VER ../../../../source/gcc-$GCC_VER/configure --target=$target --prefix=$cross_prefix --enable-languages=c --with-newlib --enable-newlib-io-long-long --with-gnu-as --with-gnu-ld --with-gmp --with-mpfr make "CFLAGS = -DREENTRANT_SYSCALLS_PROVIDED"