summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOxore <oxore@protonmail.com>2022-05-16 08:42:31 +0300
committerOxore <oxore@protonmail.com>2022-05-16 08:42:31 +0300
commit03715a204633964e52549c66f72d9a9d63088ba8 (patch)
treef5acda1efbb26ccad8058de8ce5a64615c74154d
Initial commit
-rw-r--r--.gitignore12
-rw-r--r--1-download.sh22
-rw-r--r--2-unpack.sh21
-rw-r--r--3-build-binutils.sh16
-rw-r--r--4-build-gcc-stage-1.sh16
-rw-r--r--5-build-newlib.sh17
-rw-r--r--common10
7 files changed, 114 insertions, 0 deletions
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