218 lines
5.6 KiB
Bash
218 lines
5.6 KiB
Bash
#!/bin/sh
|
|
TARGET=mips-elf
|
|
PREFIX=$(pwd)/install
|
|
|
|
SRC_BINUTILS=binutils-2.24
|
|
SRC_GCC=gcc-4.9.2
|
|
SRC_NEWLIB=newlib-1.20.0
|
|
SRC_GMP=gmp-4.3.2
|
|
SRC_MPFR=mpfr-3.1.2
|
|
SRC_MPC=mpc-1.0.1
|
|
SRC_GDB=gdb-7.12
|
|
|
|
# ---------------------------------------------------------------
|
|
# 10. Binutils bauen und installieren
|
|
# ---------------------------------------------------------------
|
|
if [ ! -e $SRC_BINUTILS.tar.bz2 ]; then
|
|
echo Downloading $SRC_BINUTILS
|
|
wget ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/ftp.gnu.org/binutils/$SRC_BINUTILS.tar.bz2 || exit 1
|
|
else
|
|
echo Skipped downloading $SRC_BINUTILS
|
|
fi
|
|
|
|
if [ ! -e ./$SRC_BINUTILS ]; then
|
|
echo Unpacking $SRC_BINUTILS
|
|
tar -xjf $SRC_BINUTILS.tar.bz2 || exit 1
|
|
else
|
|
echo Skipped unpacking $SRC_BINUTILS
|
|
fi
|
|
|
|
if [ ! -e ./$SRC_BINUTILS-build ]; then
|
|
echo Building $SRC_BINUTILS
|
|
mkdir -p $SRC_BINUTILS-build
|
|
cd $SRC_BINUTILS-build
|
|
../$SRC_BINUTILS/configure --target=$TARGET --prefix=$PREFIX || exit 1
|
|
make -j4 || exit 1
|
|
make install || exit 1
|
|
cd ..
|
|
else
|
|
echo $SRC_BINUTILS is already built.
|
|
fi
|
|
|
|
# ---------------------------------------------------------------
|
|
# 20. GMP bauen und installieren
|
|
# ---------------------------------------------------------------
|
|
if [ ! -e $SRC_GMP.tar.bz2 ]; then
|
|
echo Downloading $SRC_GMP
|
|
wget http://ftp.sunet.se/pub/gnu/gmp/$SRC_GMP.tar.bz2 || exit 1
|
|
else
|
|
echo Skipped downloading $SRC_GMP
|
|
fi
|
|
|
|
if [ ! -e ./$SRC_GMP ]; then
|
|
echo Unpacking $SRC_GMP
|
|
tar -xjf $SRC_GMP.tar.bz2 || exit 1
|
|
else
|
|
echo Skipped unpacking $SRC_GMP
|
|
fi
|
|
|
|
if [ ! -e ./$SRC_GMP-build ]; then
|
|
echo Building $SRC_GMP
|
|
mkdir -p $SRC_GMP-build
|
|
cd $SRC_GMP-build
|
|
../$SRC_GMP/configure --prefix=$PREFIX || exit 1
|
|
make -j4 || exit 1
|
|
make check || exit 1
|
|
make install || exit 1
|
|
cd ..
|
|
else
|
|
echo $SRC_GMP is already built.
|
|
fi
|
|
|
|
# ---------------------------------------------------------------
|
|
# 30. MPFR bauen und installieren
|
|
# ---------------------------------------------------------------
|
|
if [ ! -e $SRC_MPFR.tar.bz2 ]; then
|
|
echo Downloading $SRC_MPFR
|
|
wget http://www.mpfr.org/mpfr-current/$SRC_MPFR.tar.bz2 || exit 1
|
|
else
|
|
echo Skipped downloading $SRC_MPFR
|
|
fi
|
|
|
|
if [ ! -e ./$SRC_MPFR ]; then
|
|
echo Unpacking $SRC_MPFR
|
|
tar -xjf $SRC_MPFR.tar.bz2 || exit 1
|
|
else
|
|
echo Skipped unpacking $SRC_MPFR
|
|
fi
|
|
|
|
if [ ! -e ./$SRC_MPFR-build ]; then
|
|
echo Building $SRC_MPFR
|
|
mkdir -p $SRC_MPFR-build
|
|
cd $SRC_MPFR-build
|
|
../$SRC_MPFR/configure --prefix=$PREFIX --with-gmp=$PREFIX || exit 1
|
|
make -j4 || exit 1
|
|
make check || exit 1
|
|
make install || exit 1
|
|
cd ..
|
|
else
|
|
echo $SRC_MPFR is already built.
|
|
fi
|
|
|
|
# ---------------------------------------------------------------
|
|
# 31. MPC bauen und installieren
|
|
# ---------------------------------------------------------------
|
|
if [ ! -e $SRC_MPC.tar.gz ]; then
|
|
echo Downloading $SRC_MPC
|
|
wget ftp://ftp.gnu.org/gnu/mpc/$SRC_MPC.tar.gz || exit 1
|
|
else
|
|
echo Skipped downloading $SRC_MPC
|
|
fi
|
|
|
|
if [ ! -e ./$SRC_MPC ]; then
|
|
echo Unpacking $SRC_MPC
|
|
tar -xzf $SRC_MPC.tar.gz || exit 1
|
|
else
|
|
echo Skipped unpacking $SRC_MPC
|
|
fi
|
|
|
|
if [ ! -e ./$SRC_MPC-build ]; then
|
|
echo Building $SRC_MPC
|
|
mkdir -p $SRC_MPC-build
|
|
cd $SRC_MPC-build
|
|
../$SRC_MPC/configure --prefix=$PREFIX --with-gmp=$PREFIX --with-mpfr=$PREFIX || exit 1
|
|
make -j4 || exit 1
|
|
make check || exit 1
|
|
make install || exit 1
|
|
cd ..
|
|
else
|
|
echo $SRC_MPC is already built.
|
|
fi
|
|
|
|
# ---------------------------------------------------------------
|
|
# 40. GCC & newlib bauen und installieren
|
|
# ---------------------------------------------------------------
|
|
if [ ! -e $SRC_NEWLIB.tar.gz ]; then
|
|
echo Downloading $SRC_NEWLIB
|
|
wget ftp://sources.redhat.com/pub/newlib/$SRC_NEWLIB.tar.gz || exit 1
|
|
else
|
|
echo Skipped downloading $SRC_NEWLIB
|
|
fi
|
|
|
|
if [ ! -e ./$SRC_NEWLIB ]; then
|
|
echo Unpacking $SRC_NEWLIB
|
|
tar -xzf $SRC_NEWLIB.tar.gz || exit 1
|
|
if [ -e $SRC_NEWLIB-jens.patch ]; then
|
|
echo Patching $SRC_NEWLIB
|
|
patch -p0 < $SRC_NEWLIB-jens.patch || exit 1
|
|
fi
|
|
else
|
|
echo Skipped unpacking $SRC_NEWLIB
|
|
fi
|
|
|
|
if [ ! -e $SRC_GCC.tar.bz2 ]; then
|
|
echo Downloading $SRC_GCC
|
|
wget ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/ftp.gnu.org/gcc/$SRC_GCC/$SRC_GCC.tar.bz2 || exit 1
|
|
else
|
|
echo Skipped downloading $SRC_GCC
|
|
fi
|
|
|
|
if [ ! -e ./$SRC_GCC ]; then
|
|
echo Unpacking $SRC_GCC
|
|
tar -xjf $SRC_GCC.tar.bz2 || exit 1
|
|
cd ./$SRC_GCC
|
|
ln -sf ../$SRC_NEWLIB/newlib/ .
|
|
cd ..
|
|
else
|
|
echo Skipped unpacking $SRC_GCC
|
|
fi
|
|
|
|
if [ ! -e ./$SRC_GCC-build ]; then
|
|
echo Building $SRC_GCC
|
|
mkdir -p $SRC_GCC-build
|
|
cd $SRC_GCC-build
|
|
../$SRC_GCC/configure --target=$TARGET --prefix=$PREFIX --with-gmp=$PREFIX --with-mpfr=$PREFIX --with-mpc=$PREFIX --with-float=soft --with-newlib --verbose --enable-languages="c,c++" --with-gnu-as --with-gnu-ld || exit 1
|
|
make -j4 all || exit 1
|
|
make info || exit 1
|
|
make install || exit 1
|
|
cd ..
|
|
echo $PREFIX/lib >local.conf
|
|
echo $PREFIX/$TARGET/lib >>local.conf
|
|
sudo mv local.conf /etc/ld.so.conf.d/local.conf
|
|
sudo ldconfig
|
|
else
|
|
echo $SRC_GCC is already built.
|
|
fi
|
|
|
|
# ---------------------------------------------------------------
|
|
# 50. GDB bauen und installieren
|
|
# ---------------------------------------------------------------
|
|
if [ ! -e $SRC_GDB.tar.xz ]; then
|
|
echo Downloading $SRC_GDB
|
|
wget ftp://ftp.gnu.org/gnu/gdb/$SRC_GDB.tar.xz || exit 1
|
|
else
|
|
echo Skipped downloading $SRC_GDB
|
|
fi
|
|
|
|
if [ ! -e ./$SRC_GDB ]; then
|
|
echo Unpacking $SRC_GDB
|
|
tar -xJf $SRC_GDB.tar.xz || exit 1
|
|
else
|
|
echo Skipped unpacking $SRC_GDB
|
|
fi
|
|
|
|
if [ ! -e ./$SRC_GDB-build ]; then
|
|
echo Building $SRC_GDB
|
|
mkdir -p $SRC_GDB-build
|
|
cd $SRC_GDB-build
|
|
../$SRC_GDB/configure --target=$TARGET --prefix=$PREFIX || exit 1
|
|
make || exit 1
|
|
make install || exit 1
|
|
cd ..
|
|
else
|
|
echo $SRC_GDB is already built.
|
|
fi
|
|
|
|
echo Finished building toolchain.
|
|
|