blob: b7efb52d2d872cf37ef2899796f8870b7e2f7199 [file] [log] [blame]
#!/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