#!/usr/bin/env bash PREFIX="${HOME}/opt/sh-elf-2.35-10.2.0" BINUTILS="binutils-2.35" GCC="gcc-10.2.0" export PATH="$PATH:${PREFIX}/bin" echo "export PATH=\"\$PATH:$PREFIX/bin\"" >> ${HOME}/.profile mkdir -p ${PREFIX} cd ${PREFIX} echo "Installing dependencies (sudoer password required)" sudo apt install libmpfr-dev libmpc-dev libgmp-dev libpng-dev libppl-dev flex g++ git texinfo echo "Downloading souces" curl "https://ftp.gnu.org/gnu/binutils/${BINUTILS}.tar.xz" -o "${BINUTILS}.tar.xz" curl "https://gcc.gnu.org/pub/gcc/releases/${GCC}/${GCC}.tar.xz" -o "${GCC}.tar.xz" echo "Extract sources" tar -xf ${BINUTILS}.tar.xz tar -xf ${GCC}.tar.xz echo "Create build directories" mkdir build-binutils build-gcc echo "Prepare binutils" cd ${PREFIX}/build-binutils ../${BINUTILS}/configure \ --prefix=${PREFIX} \ --target=sh3eb-elf \ --with-multilib-list=m3,m4-nofpu \ --program-prefix=sh-elf- \ --disable-nls \ --enable-libssp \ --enable-lto \ --disable-werror echo "Make binutils" make -j$(nproc) echo "Install binutils" make install echo "Prepare GCC" cd ${PREFIX}/build-gcc ../${GCC}/configure \ --prefix=${PREFIX} \ --target=sh3eb-elf \ --with-multilib-list=m3,m4-nofpu \ --program-prefix=sh-elf- \ --enable-languages=c,c++ \ --without-headers \ --with-newlib \ --disable-nls \ --enable-libssp \ --enable-lto \ --disable-werror echo "Make GCC" make -j$(nproc) all-gcc echo "Install GCC" make install-gcc echo "Compile libgcc" make -j$(nproc) all-target-libgcc echo "Install libgcc" make install-target-libgcc echo "End"