Introduce build script for arm-none-eabi cross-compilations
This is a necessary step to use libosmocore-arm dep in OsmocomBB.
After this patch is submitted the "./contrib/jenkins.sh" line in
libosmocore jenkins jobs [1][2] needs to be replaced with:
if [[ "$JOB_NAME" == *"arch=arm-none-eabi,label=linux_amd64_debian8"* ]]
then
./contrib/jenkins-arm.sh
else
# (FreeBSD && debian8)_amd64 builds
./contrib/jenkins.sh
fi
Furthermore, the "arch" matrix-build axis has to be created,
holding "arm-none-eabi". Following combination filter is
necessary to skip cross-compilations on FreeBSD buildslave:
!(arch=="arm-none-eabi" && label=="FreeBSD_amd64")
[1] https://jenkins.osmocom.org/jenkins/job/libosmocore/
[2] https://jenkins.osmocom.org/jenkins/job/libosmocore-gerrit/
Change-Id: I9e07fb9e60830dbd585f22d9c658c46252ce399f
diff --git a/contrib/jenkins-arm.sh b/contrib/jenkins-arm.sh
new file mode 100755
index 0000000..e279821
--- /dev/null
+++ b/contrib/jenkins-arm.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+set -ex
+
+./contrib/verify_value_string_arrays_are_terminated.py $(find . -name "*.[hc]")
+
+autoreconf --install --force
+./configure --enable-static --enable-sanitize \
+ --prefix=/usr/local/arm-none-eabi \
+ --host=arm-none-eabi \
+ --enable-embedded \
+ --disable-shared \
+ CFLAGS="-Os -ffunction-sections -fdata-sections -nostartfiles -nodefaultlibs"
+
+$MAKE $PARALLEL_MAKE \
+ || cat-testlogs.sh
+
+# verify build in dir other than source tree
+rm -rf *
+git checkout .
+autoreconf --install --force
+mkdir builddir
+cd builddir
+
+../configure --enable-static \
+ --prefix=/usr/local/arm-none-eabi \
+ --host=arm-none-eabi \
+ --enable-embedded \
+ --disable-shared \
+ CFLAGS="-Os -ffunction-sections -fdata-sections -nostartfiles -nodefaultlibs"
+
+$MAKE $PARALLEL_MAKE \
+ || cat-testlogs.sh