build-avr-binutils 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #!/bin/bash
  2. # http://www.nongnu.org/avr-libc/user-manual/install_tools.html
  3. # Stop on errors
  4. set -e
  5. if [ ! -f .prereq ];then ./prerequise.sh;fi
  6. source avr-file-names
  7. # Figure out which version of the patch to use
  8. OLD_PATCH_CUTOFF="2.32"
  9. OLD_PATCH_CUTOFF_MAJ=${OLD_PATCH_CUTOFF%%.*}
  10. OLD_PATCH_CUTOFF_MIN=${OLD_PATCH_CUTOFF#*.}
  11. BINUTILS_VER=${NAME_BINUTILS#binutils-}
  12. BINUTILS_VER_MAJ=${BINUTILS_VER%%.*}
  13. BINUTILS_VER_MIN_TMP=${BINUTILS_VER#*.}
  14. BINUTILS_VER_MIN=${BINUTILS_VER_MIN_TMP%.*}
  15. if [ $BINUTILS_VER_MAJ -eq "1" ]; then
  16. echo "ERROR: Binutils version 1.xx is too old -- use at least version 2.xx"
  17. exit 1;
  18. fi
  19. if [ $BINUTILS_VER_MAJ -gt $OLD_PATCH_CUTOFF_MAJ ] || \
  20. ( [ $BINUTILS_VER_MAJ -eq $OLD_PATCH_CUTOFF_MAJ ] && [ $BINUTILS_VER_MIN -gt $OLD_PATCH_CUTOFF_MIN ] ) ; then
  21. NAME_BINUTILS_SIZE_PATCH="avr-binutils-size-2.33.patch";
  22. else
  23. NAME_BINUTILS_SIZE_PATCH="avr-binutils-size-2.32.patch";
  24. fi
  25. TIME_START=$(date +%s)
  26. makeDir()
  27. {
  28. rm -rf "$1/"
  29. mkdir -p "$1"
  30. }
  31. echo "Downloading sources..."
  32. if [ ! -f $NAME_BINUTILS.tar.xz ]; then
  33. wget http://wareck.free.fr/cross_compilation/avr_toolchain/$NAME_BINUTILS.tar.xz
  34. fi
  35. # Make AVR-Binutils
  36. NAME_BINUTILS_BLD=${NAME_BINUTILS}_bld
  37. echo "Making Binutils in $NAME_BINUTILS_BLD..."
  38. echo "Extracting..."
  39. rm -rf $NAME_BINUTILS/
  40. tar xJf $NAME_BINUTILS.tar.xz
  41. # Patch the size function
  42. cd $NAME_BINUTILS/binutils
  43. patch -p 1 < ../../pack/$NAME_BINUTILS_SIZE_PATCH
  44. cd ../..
  45. makeDir $NAME_BINUTILS_BLD
  46. cd $NAME_BINUTILS_BLD
  47. ../$NAME_BINUTILS/configure --prefix=$PREFIX --target=avr --disable-nls
  48. make -j $JOBCOUNT
  49. sudo make install-strip
  50. cd ..
  51. TIME_END=$(date +%s)
  52. TIME_RUN=$(($TIME_END - $TIME_START))
  53. echo ""
  54. echo "Done in $TIME_RUN seconds"
  55. exit 0