Shifted some variables about to allow a better override from local.sh
[fw/cortex-toolchain] / summon-arm-toolchain
index fe322e115d211de8e67b2269166f954666e32fd9..03d5d4833dfa38a7bae451adad25e647bffed2f3 100755 (executable)
@@ -8,6 +8,8 @@
 # apt-get install flex bison libgmp3-dev libmpfr-dev libncurses5-dev \
 # libmpc-dev autoconf texinfo build-essential
 #
+# Or on Ubuntu Maverick give `apt-get build-dep gcc-4.5` a try.
+#
 
 # Stop if any command fails
 set -e
@@ -16,6 +18,10 @@ TARGET=arm-none-eabi         # Or: TARGET=arm-elf
 PREFIX=${HOME}/arm-none-eabi   # Install location of your final toolchain
 PARALLEL=                      # Or: PARALLEL="-j 5" for 4 CPUs
 DARWIN_OPT_PATH=/opt/local     # 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=0
 
 # For FSF GCC:
 GCCVERSION=4.5.1
@@ -37,13 +43,6 @@ LIBOPENSTM32=master
 LIBSTM32_EN=0
 LIBOPENSTM32_EN=0
 
-SUDO=
-SUMMON_DIR=$(pwd)
-SOURCES=${SUMMON_DIR}/sources
-STAMPS=${SUMMON_DIR}/stamps
-
-export PATH="${PREFIX}/bin:${PATH}"
-
 GCCFLAGS=
 GDBFLAGS=
 BINUTILFLAGS=
@@ -51,6 +50,25 @@ BINUTILFLAGS=
 # To default to the Cortex-M3:
 # GCCFLAGS="--with-arch=armv7-m --with-mode=thumb"
 
+# Pull in the local configuration, if any
+if [ -f local.sh ]; then
+    . ./local.sh
+fi
+
+MAKEFLAGS=${PARALLEL}
+TARFLAGS=v
+
+if [ ${QUIET} != 0 ]; then
+    TARFLAGS=
+    MAKEFLAGS="${MAKEFLAGS} -s"
+fi
+
+export PATH="${PREFIX}/bin:${PATH}"
+
+SUMMON_DIR=$(pwd)
+SOURCES=${SUMMON_DIR}/sources
+STAMPS=${SUMMON_DIR}/stamps
+
 # Fetch a versioned file from a URL
 function fetch {
     if [ ! -e ${STAMPS}/$1.fetch ]; then
@@ -71,13 +89,13 @@ function log {
 function unpack {
     log Unpacking $*
     # Use 'auto' mode decompression.  Replace with a switch if tar doesn't support -a
-    tar xvaf ${SOURCES}/$1.tar.*
+    tar xaf${TARFLAGS} ${SOURCES}/$1.tar.*
 }
 
 # Install a build
 function install {
     log $1
-    ${SUDO} make ${PARALLEL} $2 $3 $4 $5 $6 $7 $8
+    ${SUDO} make ${MAKEFLAGS} $2 $3 $4 $5 $6 $7 $8
 }
 
 case "$(uname)" in
@@ -171,7 +189,7 @@ if [ ! -e ${STAMPS}/${BINUTILS}.build ]; then
                            --disable-werror \
                           ${BINUTILFLAGS}
     log "Building ${BINUTILS}"
-    make ${PARALLEL}
+    make ${MAKEFLAGS}
     install ${BINUTILS} install
     cd ..
     log "Cleaning up ${BINUTILS}"
@@ -197,7 +215,7 @@ if [ ! -e ${STAMPS}/${GCC}-boot.build ]; then
                       --disable-werror \
                      ${GCCFLAGS}
     log "Building ${GCC}-boot"
-    make ${PARALLEL} all-gcc
+    make ${MAKEFLAGS} all-gcc
     install ${GCC}-boot install-gcc
     cd ..
     log "Cleaning up ${GCC}-boot"
@@ -219,7 +237,7 @@ if [ ! -e ${STAMPS}/${NEWLIB}.build ]; then
                          --disable-werror \
                          --disable-newlib-supplied-syscalls
     log "Building ${NEWLIB}"
-    make ${PARALLEL}
+    make ${MAKEFLAGS}
     install ${NEWLIB} install
     cd ..
     log "Cleaning up ${NEWLIB}"
@@ -245,7 +263,7 @@ if [ ! -e ${STAMPS}/${GCC}.build ]; then
                       --disable-werror \
                     ${GCCFLAGS}
     log "Building ${GCC}"
-    make ${PARALLEL}
+    make ${MAKEFLAGS}
     install ${GCC} install
     cd ..
     log "Cleaning up ${GCC}"
@@ -264,7 +282,7 @@ if [ ! -e ${STAMPS}/${GDB}.build ]; then
                       --disable-werror \
                      ${GDBFLAGS}
     log "Building ${GDB}"
-    make ${PARALLEL}
+    make ${MAKEFLAGS}
     install ${GDB} install
     cd ..
     log "Cleaning up ${GDB}"