From 03715a204633964e52549c66f72d9a9d63088ba8 Mon Sep 17 00:00:00 2001 From: Oxore Date: Mon, 16 May 2022 08:42:31 +0300 Subject: Initial commit --- .gitignore | 12 ++++++++++++ 1-download.sh | 22 ++++++++++++++++++++++ 2-unpack.sh | 21 +++++++++++++++++++++ 3-build-binutils.sh | 16 ++++++++++++++++ 4-build-gcc-stage-1.sh | 16 ++++++++++++++++ 5-build-newlib.sh | 17 +++++++++++++++++ common | 10 ++++++++++ 7 files changed, 114 insertions(+) create mode 100644 .gitignore create mode 100644 1-download.sh create mode 100644 2-unpack.sh create mode 100644 3-build-binutils.sh create mode 100644 4-build-gcc-stage-1.sh create mode 100644 5-build-newlib.sh create mode 100644 common diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7c88aa7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +*.gz +*.bz2 +*.xz +*.tar +*.zip +build/ +unpacked/ +download/ +prefix/ +prefix-*-toolchain/ +prefix-*/ +*-toolchain/ diff --git a/1-download.sh b/1-download.sh new file mode 100644 index 0000000..d0cd8f4 --- /dev/null +++ b/1-download.sh @@ -0,0 +1,22 @@ +#!/bin/sh +set -e +source ./common + +mkdir -p download +[ ! -f download/binutils-$binutils_ver.tar.xz ] && \ + wget http://mirror.tochlab.net/pub/gnu/binutils/binutils-$binutils_ver.tar.xz -P download +[ ! -f download/newlib-$newlib_ver.tar.gz ] && \ + wget ftp://sourceware.org/pub/newlib/newlib-$newlib_ver.tar.gz -P download +[ ! -f download/gcc-$gcc_ver.tar.xz ] && \ + wget http://mirror.tochlab.net/pub/gnu/gcc/gcc-$gcc_ver/gcc-$gcc_ver.tar.xz -P download +[ ! -f download/mpfr-$mpfr_ver.tar.xz ] && \ + wget http://mirror.tochlab.net/pub/gnu/mpfr/mpfr-$mpfr_ver.tar.xz -P download +[ ! -f download/gmp-$gmp_ver.tar.xz ] && \ + wget http://mirror.tochlab.net/pub/gnu/gmp/gmp-$gmp_ver.tar.xz -P download +[ ! -f download/mpc-$mpc_ver.tar.gz ] && \ + wget http://mirror.tochlab.net/pub/gnu/mpc/mpc-$mpc_ver.tar.gz -P download +[ ! -f download/isl-$isl_ver.tar.bz2 ] && \ + wget ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-$isl_ver.tar.bz2 -P download +[ ! -f download/cloog-$cloog_ver.tar.gz ] && \ + wget ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-$cloog_ver.tar.gz -P download +echo Done downloading diff --git a/2-unpack.sh b/2-unpack.sh new file mode 100644 index 0000000..b0feab7 --- /dev/null +++ b/2-unpack.sh @@ -0,0 +1,21 @@ +#!/bin/sh +source ./common +set -e + +function unpack() { + if [ ! -d unpacked/$1 ]; then + echo Unpacking $1.$2 + tar xf download/$1.$2 -C unpacked + fi +} + +mkdir -p unpacked +unpack binutils-$binutils_ver tar.xz +unpack newlib-$newlib_ver tar.gz +unpack gcc-$gcc_ver tar.xz +unpack mpfr-$mpfr_ver tar.xz +unpack gmp-$gmp_ver tar.xz +unpack mpc-$mpc_ver tar.gz +unpack isl-$isl_ver tar.bz2 +unpack cloog-$cloog_ver tar.gz +echo Done Unpacking diff --git a/3-build-binutils.sh b/3-build-binutils.sh new file mode 100644 index 0000000..1a7ee8a --- /dev/null +++ b/3-build-binutils.sh @@ -0,0 +1,16 @@ +#!/bin/sh +set -e +source ./common + +mkdir -p build/binutils-$binutils_ver +cd build/binutils-$binutils_ver +echo "Configuring binutils-${binutils_ver}" +../../unpacked/binutils-$binutils_ver/configure --prefix=$prefix_dir --target=$target --disable-multilib >configure.log 2>&1 +if [ ! $? ]; then less configure.log; exit; fi +echo "Building binutils-$binutils_ver" +make -j10 >build.log 2>&1 +if [ ! $? ]; then less build.log; exit; fi +echo "Installing binutils-$binutils_ver" +make install >install.log 2>&1 +if [ ! $? ]; then less install.log; exit; fi +echo Done with binutils-$binutils_ver diff --git a/4-build-gcc-stage-1.sh b/4-build-gcc-stage-1.sh new file mode 100644 index 0000000..40577ec --- /dev/null +++ b/4-build-gcc-stage-1.sh @@ -0,0 +1,16 @@ +#!/bin/sh +set -e +source ./common + +mkdir -p build/gcc-$gcc_ver +cd build/gcc-$gcc_ver +echo "Configuring gcc-${gcc_ver} (stage 1)" +../../unpacked/gcc-$gcc_ver/configure --prefix=$prefix_dir --target=$target --disable-multilib --enable-languages=c,c++ >configure.log 2>&1 +if [ ! $? ]; then less configure.log; exit; fi +echo "Building gcc-$gcc_ver (stage 1)" +make -j10 all-gcc >build.log 2>&1 +if [ ! $? ]; then less build.log; exit; fi +echo "Installing gcc-$gcc_ver (stage 1)" +make install-gcc >install.log 2>&1 +if [ ! $? ]; then less install.log; exit; fi +echo "Done with gcc-$gcc_ver (stage 1)" diff --git a/5-build-newlib.sh b/5-build-newlib.sh new file mode 100644 index 0000000..f4f6d50 --- /dev/null +++ b/5-build-newlib.sh @@ -0,0 +1,17 @@ +#!/bin/sh +set -e +source ./common +export PATH="$prefix_dir/bin:${PATH:+:${PATH}}" + +mkdir -p build/newlib-$newlib_ver +cd build/newlib-$newlib_ver +echo "Configuring newlib-${newlib_ver}" +../../unpacked/newlib-$newlib_ver/configure --prefix=$prefix_dir --target=$target >configure.log 2>&1 +if [ ! $? ]; then less configure.log; exit; fi +echo "Building newlib-$newlib_ver" +make -j10 >build.log 2>&1 +if [ ! $? ]; then less build.log; exit; fi +echo "Installing newlib-$newlib_ver" +make install >install.log 2>&1 +if [ ! $? ]; then less install.log; exit; fi +echo "Done with newlib-$newlib_ver" diff --git a/common b/common new file mode 100644 index 0000000..32d1272 --- /dev/null +++ b/common @@ -0,0 +1,10 @@ +binutils_ver=2.38 +gcc_ver=12.1.0 +newlib_ver=4.2.0.20211231 +mpfr_ver=4.1.0 +gmp_ver=6.2.1 +mpc_ver=1.2.1 +isl_ver=0.24 +cloog_ver=0.18.1 +target=mips-elf +prefix_dir=$(pwd)/preix-${target}-toolchain -- cgit v1.2.3