41 lines
958 B
Bash
Executable file
41 lines
958 B
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
if which i686-elf-gcc && which i686-elf-as; then
|
|
echo "Cross Compiler Already Built"
|
|
echo "Exiting"
|
|
exit
|
|
fi
|
|
|
|
mkdir opt
|
|
cd opt
|
|
|
|
CCFLAGS="-j 8"
|
|
PREFIX="$PWD"
|
|
TARGET="i686-elf"
|
|
|
|
# binutils
|
|
curl -o binutils.tar.xz https://sourceware.org/pub/binutils/snapshots/binutils-2.40.90.tar.xz
|
|
tar -xf binutils.tar.xz
|
|
cd binutils-2.40.90
|
|
mkdir build-binutils
|
|
cd build-binutils
|
|
../configure --target=$TARGET --prefix=$PREFIX --with-sysroot --disable-nls --disable-werror
|
|
make $CCFLAGS
|
|
make $CCFLAGS install
|
|
|
|
# gcc
|
|
curl -o gcc.tar.xz https://mirrorservice.org/sites/sourceware.org/pub/gcc/snapshots/LATEST-12/gcc-12-20240322.tar.xz
|
|
tar -xf gcc.tar.xz
|
|
cd gcc-12-20240322
|
|
mkdir build-gcc
|
|
cd build-gcc
|
|
../configure --target=$TARGET --prefix=$PREFIX --disable-nls --enable-languages=c,c++ --without-headers
|
|
make $CCFLAGS all-gcc
|
|
make $CCFLAGS all-target-libgcc
|
|
make $CCFLAGS install-gcc
|
|
make $CCFLAGS install-target-libgcc
|
|
|
|
echo "All done :)"
|
|
|
|
|