| #!/bin/bash |
| |
| OS=`uname` |
| HOSTARCH=`uname -m` |
| ARCHSUFFIX=.xz |
| |
| 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${ARCHSUFFIX} |
| rm -rf binutils-$BINVER |
| tar xf binutils-$BINVER.tar${ARCHSUFFIX} || 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${ARCHSUFFIX} |
| rm -rf gcc-$GCCVER |
| tar xf gcc-$GCCVER.tar${ARCHSUFFIX} || exit 1 |
| echo patching gcc |
| patch -d gcc-$GCCVER -p1 < gcc-patch.txt || exit 1 |
| |
| cd gcc-$GCCVER |
| tar xf ../gmp-* |
| tar xf ../mpc-* |
| tar xf ../mpfr-* |
| ln -sf gmp-* gmp |
| ln -sf mpc-* mpc |
| ln -sf mpfr-* mpfr |
| cd .. |
| |
| 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 && |
| make configure-host && |
| make -j32 && |
| make 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 && |
| make configure-host && |
| make -j32 && |
| make install && |
| touch built.txt) |
| fi |
| done |