Pass --disable-werror to openocd.
[fw/cortex-toolchain] / summon-arm-toolchain
index 3554547..558f314 100755 (executable)
@@ -36,6 +36,8 @@ LIBSTM32_EN=0
 LIBOPENSTM32_EN=1
 # Make the gcc default to Cortex-M3
 DEFAULT_TO_CORTEX_M3=0
+# Override automatic detection of cpus to compile on
+CPUS=
 
 ##############################################################################
 # Parsing command line parameters
@@ -73,6 +75,9 @@ while [ $# -gt 0 ]; do
                DEFAULT_TO_CORTEX_M3=*)
                DEFAULT_TO_CORTEX_M3=$(echo $1 | sed 's,^DEFAULT_TO_CORTEX_M3=,,')
                ;;
+               CPUS=*)
+               CPUS=$(echo $1 | sed 's,^CPUS=,,')
+               ;;
                *)
                echo "Unknown parameter: $1"
                exit 1
@@ -93,6 +98,7 @@ echo "OOCD_EN=$OOCD_EN"
 echo "LIBSTM32_EN=$LIBSTM32_EN"
 echo "LIBOPENSTM32_EN=$LIBOPENSTM32_EN"
 echo "DEFAULT_TO_CORTEX_M3=$DEFAULT_TO_CORTEX_M3"
+echo "CPUS=$CPUS"
 
 ##############################################################################
 # Version and download url settings section
@@ -110,9 +116,9 @@ else
        GCCURL=http://launchpad.net/gcc-linaro/4.5/${GCCRELEASE}/+download/${GCC}.tar.bz2
 fi
 
-BINUTILS=binutils-2.21
+BINUTILS=binutils-2.21.1
 NEWLIB=newlib-1.19.0
-GDB=gdb-7.2
+GDB=gdb-7.3.1
 OOCD=master
 LIBCMSIS=v1.10-3
 LIBSTM32=v3.0.0-2
@@ -123,12 +129,18 @@ LIBOPENSTM32=master
 # Flags section
 ##############################################################################
 
-if which getconf > /dev/null; then
-       CPUS=$(getconf _NPROCESSORS_ONLN)
+if [ "x${CPUS}" == "x" ]; then
+       if which getconf > /dev/null; then
+               CPUS=$(getconf _NPROCESSORS_ONLN)
+       else
+               CPUS=1
+       fi
+
+       PARALLEL=-j$((CPUS + 1))
 else
-       CPUS=1
+       PARALLEL=-j${CPUS}
 fi
-PARALLEL=-j$((CPUS + 1))
+
 echo "${CPUS} cpu's detected running make with '${PARALLEL}' flag"
 
 GDBFLAGS=
@@ -184,6 +196,10 @@ case "$(uname)" in
                  --with-libiconv-prefix=${DARWIN_OPT_PATH}"
        OOCD_CFLAGS="-I/opt/mine/include -I/opt/local/include"
        OOCD_LDFLAGS="-L/opt/mine/lib -L/opt/local/lib"
+       if gcc --version | grep llvm-gcc > /dev/null ; then
+               echo "Found you are using llvm gcc, switching to clang for gcc compile."
+               GCC_CC=clang
+       fi
        ;;
        CYGWIN*)
        echo "Found CygWin that means Windows most likely."
@@ -203,8 +219,7 @@ esac
 function fetch {
     if [ ! -e ${STAMPS}/$1.fetch ]; then
         log "Downloading $1 sources..."
-        wget -c --no-passive-ftp $2
-        touch ${STAMPS}/$1.fetch
+        wget -c --no-passive-ftp $2 && touch ${STAMPS}/$1.fetch
     fi
 }
 
@@ -323,14 +338,14 @@ if [ ! -e ${STAMPS}/${BINUTILS}.build ]; then
     cd build
     log "Configuring ${BINUTILS}"
     ../${BINUTILS}/configure --target=${TARGET} \
-                           --prefix=${PREFIX} \
-                           --enable-interwork \
-                           --enable-multilib \
-                           --with-gnu-as \
-                           --with-gnu-ld \
-                           --disable-nls \
-                           --disable-werror \
-                          ${BINUTILFLAGS}
+                             --prefix=${PREFIX} \
+                             --enable-interwork \
+                             --enable-multilib \
+                             --with-gnu-as \
+                             --with-gnu-ld \
+                             --disable-nls \
+                             --disable-werror \
+                             ${BINUTILFLAGS}
     log "Building ${BINUTILS}"
     make ${MAKEFLAGS}
     install ${BINUTILS} install
@@ -357,6 +372,12 @@ if [ ! -e ${STAMPS}/${GCC}-${NEWLIB}.build ]; then
     fi
 
     cd build
+    if [ "X${GCC_CC}" != "X" ] ; then
+           export GLOBAL_CC=${CC}
+           log "Overriding the default compiler with: \"${GCC_CC}\""
+           export CC=${GCC_CC}
+    fi
+
     log "Configuring ${GCC} and ${NEWLIB}"
     ../${GCC}/configure --target=${TARGET} \
                       --prefix=${PREFIX} \
@@ -383,6 +404,13 @@ if [ ! -e ${STAMPS}/${GCC}-${NEWLIB}.build ]; then
     install ${GCC} install
     cd ..
     log "Cleaning up ${GCC} and ${NEWLIB}"
+
+    if [ "X${GCC_CC}" != "X" ] ; then
+           unset CC
+           CC=${GLOBAL_CC}
+           unset GLOBAL_CC
+    fi
+
     touch ${STAMPS}/${GCC}-${NEWLIB}.build
     rm -rf build/* ${GCC} ${NEWLIB}
 fi
@@ -414,6 +442,7 @@ if [ ! -e ${STAMPS}/openocd-${OOCD}.build ]; then
     CFLAGS="${CFLAGS} ${OOCD_CFLAGS}" \
     LDFLAGS="${LDFLAGS} ${OOCD_LDFLAGS}" \
     ../openocd-${OOCD}/configure --enable-maintainer-mode \
+                                --disable-werror \
                                 --prefix=${PREFIX} \
                                 --enable-dummy \
                                 --enable-ft2232_libftdi \