64 lines
1.3 KiB
Bash
64 lines
1.3 KiB
Bash
|
#!/bin/sh
|
||
|
|
||
|
GCC="gcc-8.2.0"
|
||
|
BINUTILS="binutils-2.31.1"
|
||
|
GDB="gdb-9.1"
|
||
|
|
||
|
CURRDIR=`pwd`
|
||
|
PREFIX=$CURRDIR/cross
|
||
|
WORKDIR=`mktemp -d`
|
||
|
|
||
|
echo "Installing cross-compiler to $PREFIX"
|
||
|
echo "Building in directory $WORKDIR"
|
||
|
|
||
|
cd "$WORKDIR"
|
||
|
|
||
|
# get and extract sources
|
||
|
|
||
|
if [ ! -d $BINUTILS ]
|
||
|
then
|
||
|
curl --insecure -O https://ftp.gnu.org/gnu/binutils/$BINUTILS.tar.gz
|
||
|
tar -zxf $BINUTILS.tar.gz
|
||
|
fi
|
||
|
|
||
|
if [ ! -d $GCC ]
|
||
|
then
|
||
|
curl --insecure -O https://ftp.gnu.org/gnu/gcc/$GCC/$GCC.tar.gz
|
||
|
tar -zxf $GCC.tar.gz
|
||
|
fi
|
||
|
|
||
|
if [ ! -d $GDB ]
|
||
|
then
|
||
|
curl --insecure -O http://ftp.gnu.org/gnu/gdb/$GDB.tar.gz
|
||
|
tar -zxf $GDB.tar.gz
|
||
|
fi
|
||
|
|
||
|
# build and install libtools
|
||
|
cd $BINUTILS
|
||
|
./configure --prefix="$PREFIX" --target=i686-elf --disable-nls --disable-werror --with-sysroot
|
||
|
make && make install
|
||
|
cd ..
|
||
|
|
||
|
# download gcc prerequisites
|
||
|
cd $GCC
|
||
|
./contrib/download_prerequisites
|
||
|
cd ..
|
||
|
|
||
|
# build and install gcc
|
||
|
mkdir $GCC-elf-objs
|
||
|
cd $GCC-elf-objs
|
||
|
../$GCC/configure --prefix="$PREFIX" --target=i686-elf --disable-nls --enable-languages=c --without-headers
|
||
|
make all-gcc && make all-target-libgcc && make install-gcc && make install-target-libgcc
|
||
|
cd ..
|
||
|
|
||
|
# build and install GDB
|
||
|
mkdir ${GDB}-build
|
||
|
cd ${GDB}-build
|
||
|
../${GDB}/configure --prefix="$PREFIX" --target=i686-elf
|
||
|
make && make install
|
||
|
cd ..
|
||
|
|
||
|
cd "$CURRDIR"
|
||
|
rm -rf "$WORKDIR"
|
||
|
|