jenkins: add dispatcher script

Similar to the way we test osmo-bts, add simple dispatcher script which
calls appropriate test depending on a given parameter. This will allow
to simplify the job description. While at it, also rename jenkins-arm.sh
-> jenkins_arm.sh to match the OsmoBTS.

The older scripts are preserved for compatibility and shall be removed
once we update job description in osmo-ci.

Change-Id: I2955e866bce4f000a53369bd601a346c36c82468
diff --git a/contrib/jenkins_amd64.sh b/contrib/jenkins_amd64.sh
new file mode 100755
index 0000000..d336f0a
--- /dev/null
+++ b/contrib/jenkins_amd64.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+# jenkins build helper script for libosmocore. This is how we build on jenkins.osmocom.org
+
+. $(dirname "$0")/jenkins_common.sh
+
+ENABLE_SANITIZE="--enable-sanitize"
+
+if [ "x$label" = "xFreeBSD_amd64" ]; then
+        ENABLE_SANITIZE=""
+fi
+
+src_dir="$PWD"
+build() {
+    build_dir="$1"
+
+    prep_build "$src_dir" "$build_dir"
+
+    "$src_dir"/configure --enable-static $ENABLE_SANITIZE CFLAGS="-Werror" CPPFLAGS="-Werror"
+    $MAKE V=1 $PARALLEL_MAKE check \
+        || cat-testlogs.sh
+}
+
+# verify build in dir other than source tree
+build builddir
+# verify build in source tree
+build .
+
+# do distcheck only once, which is fine from built source tree, since distcheck
+# is well separated from the source tree state.
+$MAKE distcheck \
+    || cat-testlogs.sh
+
+osmo-clean-workspace.sh
diff --git a/contrib/jenkins_arch.sh b/contrib/jenkins_arch.sh
new file mode 100755
index 0000000..bac9278
--- /dev/null
+++ b/contrib/jenkins_arch.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+# this is a dispatcher script which will call the arch-specific
+# script based on the arch specified as command line argument
+
+arch="$1"
+
+if [ "x$arch" == "x" ]; then
+	echo "Error: You have to specify the architecture as first argument, e.g. $0 amd64"
+	exit 2
+fi
+
+if [ ! -d "./contrib" ]; then
+  echo "Run ./contrib/jenkins_arch.sh from the root of the libosmocore tree"
+  exit 1
+fi
+
+set -x -e
+
+case "$arch" in
+
+  amd64)
+    ./contrib/jenkins_amd64.sh
+  ;;
+
+  arch)
+    ./contrib/jenkins_arch.sh
+  ;;
+
+  *)
+    set +x
+    echo "Unexpected architecture '$arch'"
+  ;;
+esac
diff --git a/contrib/jenkins_arm.sh b/contrib/jenkins_arm.sh
new file mode 100755
index 0000000..acdbe3c
--- /dev/null
+++ b/contrib/jenkins_arm.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+. $(dirname "$0")/jenkins_common.sh
+
+src_dir="$PWD"
+build() {
+    build_dir="$1"
+
+    prep_build "$src_dir" "$build_dir"
+
+    "$src_dir"/configure --enable-static \
+	--prefix=/usr/local/arm-none-eabi \
+	--host=arm-none-eabi \
+	--enable-embedded \
+	--disable-doxygen \
+	--disable-shared \
+	CFLAGS="-Os -ffunction-sections -fdata-sections -nostartfiles -nodefaultlibs -Werror"
+
+    $MAKE $PARALLEL_MAKE \
+        || cat-testlogs.sh
+}
+
+# verify build in dir other than source tree
+build builddir
+# verify build in source tree
+build .
+
+osmo-clean-workspace.sh