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
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
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
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
# 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=
--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."
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
}
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
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} \
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
CFLAGS="${CFLAGS} ${OOCD_CFLAGS}" \
LDFLAGS="${LDFLAGS} ${OOCD_LDFLAGS}" \
../openocd-${OOCD}/configure --enable-maintainer-mode \
+ --disable-werror \
--prefix=${PREFIX} \
--enable-dummy \
--enable-ft2232_libftdi \