diff options
Diffstat (limited to 'docs/get_bin.sh')
| -rw-r--r-- | docs/get_bin.sh | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/docs/get_bin.sh b/docs/get_bin.sh new file mode 100644 index 000000000..725900bb9 --- /dev/null +++ b/docs/get_bin.sh @@ -0,0 +1,81 @@ +#!/bin/bash + +# --- Useful Variables --- # + +# This is the specific binutils version that will be downloaded +binutils=binutils-2.36 + +# Where the built files will end up. +# If this directory doesn't already exist it will be created automatically. +destFolder=./tools/binutils + +# The temporary folder name to work from. +tempFolder=build_temp + +# The prefix appended to the start of the built files. +prefix=mips64-elf- + +# Folder names within the binutils directory. +binFolder=binutils +ldFolder=ld +gasFolder=gas + +# How many threads to use with make (All of them) +threadCount=$(nproc --all) + +# --- Useful Macros --- # + +PRINT_STEP () { +echo "($1) ==== $2 ==== " +} + +INSTALL_FILE() { +cp ./$tempFolder/$binutils/$2/$1 $destFolder/$prefix$1 +echo "Installed mips64-elf-$1" +} + +RENAME_AND_INSTALL_FILE() { +cp ./$tempFolder/$binutils/$2/$1 $destFolder/$prefix$3 +echo "Installed mips64-elf-$3" +} + +# --- Script --- # + +# Make the destintation folder if it already doesn't exist. +mkdir -p $destFolder + +# Having a temp folder makes things easy to cleanup +#rm -Rf $tempFolder # This will remove the temp folder if it exists for some reason. +mkdir $tempFolder +cd $tempFolder + +PRINT_STEP 1 "DOWNLOADING BINUTILS FROM GNU.ORG" +wget ftp://ftp.gnu.org/gnu/binutils/$binutils.tar.xz + +PRINT_STEP 2 "EXTRACTING TAR FILE" +tar -xf $binutils.tar.xz + +PRINT_STEP 3 "CONFIGURING THE MAKEFILE" +cd $binutils + +# Credit goes to queueRAM for letting me know what the correct arguments are. +./configure --target=mips64-elf --prefix=/usr --with-sysroot=/usr/mips64-elf --with-gnu-as --with-gnu-ld --enable-64-bit-bfd --enable-multilib --enable-plugins --disable-gold --disable-nls --disable-shared --disable-werror + +PRINT_STEP 4 "MAKING BINUTILS" +make -j$threadCount + +cd ../.. + +PRINT_STEP 5 "INSTALLING BUILT FILES" + +# Add or remove programs here. +INSTALL_FILE ar $binFolder +INSTALL_FILE objcopy $binFolder +INSTALL_FILE objdump $binFolder +RENAME_AND_INSTALL_FILE as-new $gasFolder as +RENAME_AND_INSTALL_FILE ld-new $ldFolder ld + +PRINT_STEP 6 "CLEANING UP" +#rm -Rf $tempFolder + +PRINT_STEP - "DONE!" |
