rendered paste body#!/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"