mirror of
https://github.com/xomboverlord/buildtools.git
synced 2026-01-11 18:33:17 +01:00
136 lines
3.5 KiB
Bash
Executable File
136 lines
3.5 KiB
Bash
Executable File
OSNAME=xomb
|
|
|
|
BINUTILS_VER=2.20
|
|
GCC_VER=4.4.3
|
|
GMP_VER=5.0.1
|
|
MPFR_VER=2.4.2
|
|
NEWLIB_VER=1.18.0
|
|
|
|
export TARGET=x86_64-pc-${OSNAME}
|
|
export PREFIX=`pwd`/local
|
|
|
|
# Fix patches with osname
|
|
PERLCMD="s/{{OSNAME}}/${OSNAME}/g"
|
|
perl -pi -e $PERLCMD *.patch
|
|
perl -pi -e $PERLCMD gcc-files/gcc/config/os.h
|
|
|
|
mkdir -p build
|
|
mkdir -p local
|
|
cd build
|
|
|
|
WFLAGS=-c
|
|
|
|
export PATH=$PREFIX/bin:$PATH
|
|
|
|
# Fetch each package
|
|
|
|
echo "FETCH BINUTILS"
|
|
wget $WFLAGS http://ftp.gnu.org/gnu/binutils/binutils-${BINUTILS_VER}.tar.gz
|
|
tar -xf binutils-${BINUTILS_VER}.tar.gz
|
|
|
|
echo "FETCH GCC"
|
|
wget $WFLAGS http://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/gcc-core-${GCC_VER}.tar.gz
|
|
tar -xf gcc-core-${GCC_VER}.tar.gz
|
|
wget $WFLAGS http://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/gcc-g++-${GCC_VER}.tar.gz
|
|
tar -xf gcc-g++-${GCC_VER}.tar.gz
|
|
wget $WFLAGS http://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/gcc-fortran-${GCC_VER}.tar.gz
|
|
tar -xf gcc-fortran-${GCC_VER}.tar.gz
|
|
|
|
echo "FETCH GMP"
|
|
wget $WFLAGS http://ftp.gnu.org/gnu/gmp/gmp-${GMP_VER}.tar.gz
|
|
tar -xf gmp-${GMP_VER}.tar.gz
|
|
|
|
echo "FETCH MPFR"
|
|
wget $WFLAGS http://ftp.gnu.org/gnu/mpfr/mpfr-${MPFR_VER}.tar.gz
|
|
tar -xf mpfr-${MPFR_VER}.tar.gz
|
|
|
|
echo "FETCH NEWLIB"
|
|
wget $WFLAGS ftp://sources.redhat.com/pub/newlib/newlib-${NEWLIB_VER}.tar.gz
|
|
tar -xf newlib-${NEWLIB_VER}.tar.gz
|
|
|
|
# Patch and push new code into each package
|
|
|
|
echo "PATCH BINUTILS"
|
|
patch -p0 -d binutils-${BINUTILS_VER} < ../binutils.patch || exit
|
|
cp ../binutils-files/ld/emulparams/os_x86_64.sh binutils-${BINUTILS_VER}/ld/emulparams/.
|
|
|
|
echo "PATCH GCC"
|
|
patch -p0 -d gcc-${GCC_VER} < ../gcc.patch || exit
|
|
cp ../gcc-files/gcc/config/os.h gcc-${GCC_VER}/gcc/config/${OSNAME}.h
|
|
|
|
echo "PATCH NEWLIB"
|
|
patch -p0 -d newlib-${NEWLIB_VER} < ../newlib.patch || exit
|
|
mkdir -p newlib-${NEWLIB_VER}/newlib/libc/sys/${OSNAME}
|
|
cp -r ../newlib-files/* newlib-${NEWLIB_VER}/newlib/libc/sys/${OSNAME}/.
|
|
|
|
echo "MAKE OBJECT DIRECTORIES"
|
|
mkdir -p binutils-obj
|
|
mkdir -p gcc-obj
|
|
mkdir -p newlib-obj
|
|
mkdir -p gmp-obj
|
|
mkdir -p mpfr-obj
|
|
|
|
# Compile all packages
|
|
|
|
echo "COMPILE BINUTILS"
|
|
cd binutils-obj
|
|
../binutils-${BINUTILS_VER}/configure --target=$TARGET --prefix=$PREFIX || exit
|
|
make || exit
|
|
make install || exit
|
|
cd ..
|
|
|
|
echo "COMPILE GMP"
|
|
cd gmp-obj
|
|
../gmp-${GMP_VER}/configure --prefix=$PREFIX --disable-shared || exit
|
|
make || exit
|
|
make check || exit
|
|
make install || exit
|
|
cd ..
|
|
|
|
echo "COMPILE MPFR"
|
|
cd mpfr-obj
|
|
../mpfr-${MPFR_VER}/configure --prefix=$PREFIX --with-gmp=$PREFIX --disable-shared
|
|
make || exit
|
|
make check || exit
|
|
make install || exit
|
|
cd ..
|
|
|
|
echo "AUTOCONF GCC"
|
|
cd gcc-${GCC_VER}/libstdc++-v3
|
|
#autoconf || exit
|
|
cd ../..
|
|
|
|
echo "COMPILE GCC"
|
|
cd gcc-obj
|
|
../gcc-${GCC_VER}/configure --target=$TARGET --prefix=$PREFIX --enable-languages=c,c++ --disable-libssp --with-gmp=$PREFIX --with-mpfr=$PREFIX --disable-nls --with-newlib || exit
|
|
#../gcc-${GCC_VER}/configure --target=$TARGET --prefix=$PREFIX --enable-languages=c,c++,fortran --disable-libssp --with-gmp=$PREFIX --with-mpfr=$PREFIX --disable-nls --with-newlib || exit
|
|
make all-gcc || exit
|
|
make install-gcc || exit
|
|
cd ..
|
|
|
|
echo "AUTOCONF NEWLIB-XOMB"
|
|
cd newlib-${NEWLIB_VER}/newlib/libc/sys
|
|
autoconf || exit
|
|
cd ${OSNAME}
|
|
autoreconf || exit
|
|
cd ../../../../..
|
|
|
|
echo "CONFIGURE NEWLIB"
|
|
cd newlib-obj
|
|
../newlib-${NEWLIB_VER}/configure --target=$TARGET --prefix=$PREFIX --with-gmp=$PREFIX --with-mpfr=$PREFIX || exit
|
|
|
|
echo "COMPILE NEWLIB"
|
|
make || exit
|
|
make install || exit
|
|
cd ..
|
|
|
|
echo "PASS-2 COMPILE GCC"
|
|
cd gcc-obj
|
|
#make all-target-libgcc
|
|
#make install-target-libgcc
|
|
make all-target-libstdc++-v3 || exit
|
|
make install-target-libstdc++-v3 || exit
|
|
make || exit
|
|
make install || exit
|
|
cd ..
|