X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=summon-arm-toolchain;h=7cb10a51724bbf2884042e632d1c131d7a89f3ef;hb=489cef87de9710f56d804b19dc9ec5ae5c57001b;hp=c36e03eac18b8512d5cd818a89f2f5ba73e2582a;hpb=52a03c4d4a084a90e38d3a973134679175142bdb;p=summon-arm-toolchain.git diff --git a/summon-arm-toolchain b/summon-arm-toolchain index c36e03e..7cb10a5 100755 --- a/summon-arm-toolchain +++ b/summon-arm-toolchain @@ -4,6 +4,7 @@ # adapted for r0ket development by # Matthias Rampke +# requires Homebrew # Stop if any command fails set -e @@ -15,15 +16,14 @@ set -e TARGET=arm-eabi # Or: TARGET=arm-elf PREFIX=${HOME}/arm # Install location of your final toolchain PARALLEL= # Or: PARALLEL="-j 5" for 4 CPUs -DARWIN_CELLAR=$(brew --cellar) # Path in which MacPorts or Fink is installed # Set to 'sudo' if you need superuser privileges while installing SUDO='' # Set to 1 to be quieter while running -QUIET=1 +QUIET=0 # Set to 1 to use linaro gcc instead of the FSF gcc USE_LINARO=1 # Set to 1 to enable building of OpenOCD -OOCD_EN=1 +OOCD_EN=0 # Set to 1 to build libstm32 provided by ST LIBSTM32_EN=0 # Set to 1 to build libopenstm32 an open source library for stm32 @@ -38,13 +38,15 @@ if [ ${USE_LINARO} == 0 ] ; then # For FSF GCC: GCCVERSION=4.5.1 GCC=gcc-${GCCVERSION} + GCCDIR=${GCC} GCCURL=http://ftp.gnu.org/gnu/gcc/${GCC}/${GCC}.tar.gz else # For the Linaro GCC: GCCRELEASE=4.6-2011.07 - GCCVERSION=${GCCRELEASE} - GCC=gcc-linaro-${GCCVERSION} - GCCURL=http://launchpad.net/gcc-linaro/4.5/${GCCRELEASE}/+download/${GCC}.tar.bz2 + GCCVERSION=4.6-2011.07-0 + GCC=gcc-linaro-${GCCRELEASE} + GCCDIR=gcc-linaro-${GCCVERSION} + GCCURL=http://launchpad.net/gcc-linaro/4.6/${GCCRELEASE}/+download/gcc-linaro-${GCCRELEASE}.tar.bz2 fi BINUTILS=binutils-2.21 @@ -116,37 +118,24 @@ case "$(uname)" in echo "Found Darwin OS." # darwin dependencies - DARWINDEPS="gnutar mpfr libmpc gmp" + DARWINDEPS="wget mpfr libmpc gmp" DARWINDEPSCOUNT=4 - GCCFLAGS="${GCCFLAGS} \ - --with-gmp=${DARWIN_OPT_PATH} \ - --with-mpfr=${DARWIN_OPT_PATH} \ - --with-mpc=${DARWIN_OPT_PATH} \ - -with-libiconv-prefix=${DARWIN_OPT_PATH}" - - echo "Attempting to automatically check if common dependencies are installed on your system" - if ! which port > /dev/null; then - echo "MacPorts not installed." + echo "Installing dependencies ..." + if ! which brew > /dev/null; then + echo "Homebrew not installed." else - pc=`port installed ${DARWINDEPS} | wc -l | tr -d " "` - if [ ${pc} -lt $[${DARWINDEPSCOUNT}+1] ]; - then - echo "Something is missing, do you want to install everything needed?" - echo "(You need super user rights to do this.)" - - if [ read = "y" || read = "yes" ]; - then - sudo port install ${DARWINDEPS} - fi - else - echo "Found: "${DARWINDEPS}"!" - fi + brew install ${DARWINDEPS} | (grep -v '^Warning: Formula already installed: ' || true) fi + GCCFLAGS="${GCCFLAGS} \ + --with-gmp=$(brew --prefix gmp) \ + --with-mpfr=$(brew --prefix mpfr) \ + --with-mpc=$(brew --prefix mpc) + -with-libiconv-prefix=$(brew --prefix libiconv)" + TAR=gnutar - --with-libiconv-prefix=${DARWIN_OPT_PATH}" OOCD_CFLAGS="-m32 -I/opt/mine/include -I/opt/local/include" OOCD_LDFLAGS="-L/opt/mine/lib -L/opt/local/lib" ;; @@ -168,7 +157,7 @@ esac function fetch { if [ ! -e ${STAMPS}/$1.fetch ]; then log "Downloading $1 sources..." - wget -c --no-passive-ftp $2 + wget -c $2 touch ${STAMPS}/$1.fetch fi } @@ -309,7 +298,7 @@ if [ ! -e ${STAMPS}/${GCC}-boot.build ]; then unpack ${GCC} boot cd build log "Configuring ${GCC}-boot" - ../${GCC}/configure --target=${TARGET} \ + ../${GCCDIR}/configure --target=${TARGET} \ --prefix=${PREFIX} \ --enable-interwork \ --enable-multilib \ @@ -329,7 +318,7 @@ if [ ! -e ${STAMPS}/${GCC}-boot.build ]; then cd .. log "Cleaning up ${GCC}-boot" touch ${STAMPS}/${GCC}-boot.build - rm -rf build/* ${GCC} + rm -rf build/* ${GCCDIR} fi if [ ! -e ${STAMPS}/${NEWLIB}.build ]; then @@ -360,7 +349,7 @@ if [ ! -e ${STAMPS}/${GCC}.build ]; then unpack ${GCC} cd build log "Configuring ${GCC}" - ../${GCC}/configure --target=${TARGET} \ + ../${GCCDIR}/configure --target=${TARGET} \ --prefix=${PREFIX} \ --enable-interwork \ --enable-multilib \ @@ -379,7 +368,7 @@ if [ ! -e ${STAMPS}/${GCC}.build ]; then cd .. log "Cleaning up ${GCC}" touch ${STAMPS}/${GCC}.build - rm -rf build/* ${GCC} + rm -rf build/* ${GCCDIR} fi if [ ! -e ${STAMPS}/${GDB}.build ]; then