134 lines
2.6 KiB
Bash
Executable File
134 lines
2.6 KiB
Bash
Executable File
#!/bin/bash -e
|
|
|
|
if [ -e $HOME/Quinn ]
|
|
then
|
|
echo "${HOME}/Quinn exists!"
|
|
exit
|
|
fi
|
|
|
|
export MAKEFLAGS=-j$(nproc)
|
|
|
|
mkdir $HOME/Quinn
|
|
mkdir $HOME/Quinn/tools
|
|
mkdir $HOME/Quinn/sysroot
|
|
mkdir $HOME/Quinn/cross
|
|
mkdir $HOME/Quinn/src
|
|
|
|
cd $HOME/Quinn/tools
|
|
|
|
echo "Fetching Tools"
|
|
|
|
wget ftp://sourceware.org/pub/newlib/newlib-4.1.0.tar.gz
|
|
wget https://ftpmirror.gnu.org/gnu/binutils/binutils-2.40.tar.xz
|
|
wget https://ftpmirror.gnu.org/gnu/gcc/gcc-13.1.0/gcc-13.1.0.tar.xz
|
|
wget https://ftpmirror.gnu.org/gnu/grub/grub-2.06.tar.xz
|
|
|
|
echo "Fetching Quinn"
|
|
|
|
cd $HOME/Quinn/src
|
|
git clone https://git.quinnos.com/quinn-os/quinn-os.git
|
|
cd $HOME/Quinn/tools
|
|
|
|
echo "Building Tools"
|
|
|
|
tar xf binutils-2.40.tar.xz
|
|
mkdir binutils-build
|
|
cd binutils-build
|
|
|
|
../binutils-2.40/configure --target=i686-elf --prefix=$HOME/Quinn/cross --with-sysroot --disable-nls --disable-werror
|
|
make
|
|
make install
|
|
|
|
cd ..
|
|
|
|
export PATH=$HOME/Quinn/cross/bin:$PATH
|
|
|
|
tar xf gcc-13.1.0.tar.xz
|
|
|
|
cd gcc-13.1.0
|
|
contrib/download_prerequisites
|
|
cd ..
|
|
|
|
mkdir gcc-build
|
|
cd gcc-build
|
|
|
|
../gcc-13.1.0/configure --target=i686-elf --prefix=$HOME/Quinn/cross --disable-nls --enable-languages=c,c++ --without-headers
|
|
make all-gcc
|
|
make install-gcc
|
|
make all-target-libgcc
|
|
make install-target-libgcc
|
|
|
|
cd ..
|
|
|
|
rm -rf binutils-build
|
|
rm -rf gcc-build
|
|
|
|
echo "Building Quinn Tools"
|
|
|
|
tar xf newlib-4.1.0.tar.gz
|
|
|
|
cd newlib-4.1.0
|
|
patch -p1 < $HOME/Quinn/src/quinn-os/newlib-4.1.0.diff
|
|
cd ..
|
|
|
|
mkdir $HOME/Quinn/sysroot/usr
|
|
|
|
cp -r newlib-4.1.0/newlib/libc/include $HOME/Quinn/sysroot/usr
|
|
|
|
cd binutils-2.40
|
|
patch -p1 < $HOME/Quinn/src/quinn-os/binutils-2.40.diff
|
|
cd ..
|
|
|
|
mkdir binutils-build
|
|
cd binutils-build
|
|
../binutils-2.40/configure --target=i686-quinn --prefix=$HOME/Quinn/cross --with-sysroot=$HOME/Quinn/sysroot --disable-nls --disable-werror
|
|
make
|
|
make install
|
|
|
|
cd ..
|
|
rm -rf binutils-build
|
|
|
|
cd gcc-13.1.0
|
|
patch -p1 < $HOME/Quinn/src/quinn-os/gcc-13.1.0.diff
|
|
cd ..
|
|
|
|
mkdir gcc-build
|
|
|
|
cd gcc-build
|
|
|
|
../gcc-13.1.0/configure --target=i686-quinn --prefix=$HOME/Quinn/cross --disable-nls --enable-languages=c,c++ --with-sysroot=$HOME/Quinn/sysroot --with-newlib
|
|
make all-gcc
|
|
make install-gcc
|
|
make all-target-libgcc
|
|
make install-target-libgcc
|
|
|
|
cd ..
|
|
|
|
mkdir newlib-build
|
|
cd newlib-build
|
|
../newlib-4.1.0/configure --prefix=/usr --target=i686-quinn
|
|
make
|
|
make DESTDIR=$HOME/Quinn/sysroot install
|
|
|
|
cd ..
|
|
rm -rf newlib-build
|
|
|
|
cp -r $HOME/Quinn/sysroot/usr/i686-quinn/* $HOME/Quinn/sysroot/usr
|
|
|
|
cd gcc-build
|
|
make all-target-libstdc++-v3
|
|
make install-target-libstdc++-v3
|
|
|
|
cd ..
|
|
rm -rf gcc-build
|
|
|
|
tar xf grub-2.06.tar.xz
|
|
mkdir grub-build
|
|
cd grub-build
|
|
../grub-2.06/configure --prefix=$HOME/Quinn/tools/grub --disable-werror
|
|
make
|
|
make install
|
|
cd ..
|
|
rm -rf grub-build
|
|
echo "DONE!"
|