#!/bin/sh OS=`uname` HOSTARCH=`uname -m` if [ "x$ARCHES" = "x" ]; then echo need to specify architectures to build in the ARCHES environment variable echo ie. ARCHES=\"arm sh\" exit 1 fi # load GCCVER and BINVER . toolvers if [ ! -d binutils-$BINVER.patched ]; then echo extracting binutils-$BINVER.tar.bz2 rm -rf binutils-$BINVER tar xjf binutils-$BINVER.tar.bz2 || exit 1 echo patching binutils patch -d binutils-$BINVER -p1 < binutils-patch.txt || exit 1 rm -rf binutils-$BINVER.patched mv binutils-$BINVER binutils-$BINVER.patched fi if [ ! -d gcc-$GCCVER.patched ]; then echo extracting gcc-$GCCVER.tar.bz2 rm -rf gcc-$GCCVER tar xjf gcc-$GCCVER.tar.bz2 || exit 1 echo patching gcc patch -d gcc-$GCCVER -p1 < gcc-patch.txt || exit 1 rm -rf gcc-$GCCVER.patched mv gcc-$GCCVER gcc-$GCCVER.patched fi for ARCH in $ARCHES; do # INSTALLPATH=~/toolchains/$ARCH-elf-$GCCVER INSTALLPATH=`pwd`/$ARCH-elf-$GCCVER-$OS-$HOSTARCH BINBUILDPATH=build-binutils-$BINVER-$ARCH-$OS-$HOSTARCH GCCBUILDPATH=build-gcc-$GCCVER-$ARCH-$OS-$HOSTARCH export PATH=$INSTALLPATH/bin:$PATH if [ ! -f $BINBUILDPATH/built.txt ]; then (mkdir -p $BINBUILDPATH && cd $BINBUILDPATH && ../binutils-$BINVER.patched/configure --target=$ARCH-elf --prefix=$INSTALLPATH && gmake configure-host && gmake -j2 && gmake install && touch built.txt) fi if [ ! -f $GCCBUILDPATH/built.txt ]; then (mkdir -p $GCCBUILDPATH && cd $GCCBUILDPATH && ../gcc-$GCCVER.patched/configure --target=$ARCH-elf --prefix=$INSTALLPATH --enable-languages=c,c++ --disable-libssp && gmake configure-host && gmake -j2 && gmake install && touch built.txt) fi done