basekernel/i686-elf-tools.sh

64 lines
1.3 KiB
Bash
Raw Normal View History

2024-10-14 23:41:46 +02:00
#!/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"