aboutsummaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2016-07-11 17:10:49 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2016-07-12 00:44:18 +0200
commitde0acd2ff2cde071d8d0c6818658107d97c24cd1 (patch)
tree59e1c2517790fa6b55e35f625ec6e21ea03b9b28 /contrib
parentf706d6c06529c6c6fc2284ce9348a7058653b321 (diff)
jenkins.sh: fix, remove code dup
Have a bash function to build each dependency with the same commands. There is a tradeoff: having each dependency build with the same function means you can't easily tweak one of the dependencies. OTOH having a unified function means a) more readable script, b) that we're sure not to forget some steps and c) no need to do the same edit n times. Set the PKG_CONFIG_PATH globally. Also a tradeoff: if a future addition wouldn't need the same PKG_CONFIG_PATH, this would make things ugly. But that is actually quite unlikely, and the readability improvement is substantial. Use env variables to remember local paths. That means we always are sure to cd to the same absolute base path, which a 'cd ..' can't guarantee; also, we avoid possible typos for e.g. "$deps/install". Build sysmocom/sctp branch of libosmo-netif, as needed for libosmo-sccp's sysmocom/iu branch. Build aper-prefix branch of asn1c, as needed by 'regen'. 'make regen' first, to generate the .c from asn1, needed by the build. Change-Id: Ia7b4b9788b9c951f8be00cc5ae72a9c0a776fe64
Diffstat (limited to 'contrib')
-rwxr-xr-xcontrib/jenkins.sh103
1 files changed, 45 insertions, 58 deletions
diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh
index 5c7317a..608e4cd 100755
--- a/contrib/jenkins.sh
+++ b/contrib/jenkins.sh
@@ -2,63 +2,50 @@
set -ex
-rm -rf deps/install
-mkdir deps || true
-cd deps
-osmo-deps.sh libosmocore
-
-cd libosmocore
-autoreconf --install --force
-./configure --prefix=$PWD/../install
-$MAKE $PARALLEL_MAKE install
-
-cd ../
-osmo-deps.sh libosmo-abis
-cd libosmo-abis
-autoreconf --install --force
-PKG_CONFIG_PATH=$PWD/../install/lib/pkgconfig:$PKG_CONFIG_PATH ./configure --prefix=$PWD/../install
-PKG_CONFIG_PATH=$PWD/..//install/lib/pkgconfig:$PKG_CONFIG_PATH $MAKE $PARALLEL_MAKE install
-
-cd ../
-osmo-deps.sh libosmo-netif
-cd libosmo-netif
-autoreconf --install --force
-PKG_CONFIG_PATH=$PWD/../install/lib/pkgconfig:$PKG_CONFIG_PATH ./configure --prefix=$PWD/../install
-PKG_CONFIG_PATH=$PWD/..//install/lib/pkgconfig:$PKG_CONFIG_PATH $MAKE $PARALLEL_MAKE install
-
-cd ../
-rm -rf libosmo-sccp
-git clone git://git.osmocom.org/libosmo-sccp
-cd libosmo-sccp
-git checkout sysmocom/iu
-autoreconf --install --force
-PKG_CONFIG_PATH=$PWD/../install/lib/pkgconfig:$PKG_CONFIG_PATH ./configure --prefix=$PWD/../install
-PKG_CONFIG_PATH=$PWD/..//install/lib/pkgconfig:$PKG_CONFIG_PATH $MAKE $PARALLEL_MAKE install
-
-cd ../
-rm -rf asn1c
-git clone git://git.osmocom.org/asn1c
-cd asn1c
-git checkout aper-prefix
-autoreconf --install --force
-PKG_CONFIG_PATH=$PWD/../install/lib/pkgconfig:$PKG_CONFIG_PATH ./configure --prefix=$PWD/../install
-PKG_CONFIG_PATH=$PWD/..//install/lib/pkgconfig:$PKG_CONFIG_PATH $MAKE $PARALLEL_MAKE install
-
-cd ../
-osmo-deps.sh libasn1c
-cd libasn1c
-autoreconf --install --force
-PKG_CONFIG_PATH=$PWD/../install/lib/pkgconfig:$PKG_CONFIG_PATH ./configure --prefix=$PWD/../install
-PKG_CONFIG_PATH=$PWD/..//install/lib/pkgconfig:$PKG_CONFIG_PATH $MAKE $PARALLEL_MAKE install
-
-
-cd ../../
+base="$PWD"
+deps="$base/deps"
+inst="$deps/install"
+
+mkdir "$deps" || true
+rm -rf "$inst"
+
+build_dep() {
+ project="$1"
+ branch="$2"
+ if [ -z "$project" ]; then
+ echo "internal failure"
+ exit 1
+ fi
+ cd "$deps"
+ rm -rf "$project"
+ osmo-deps.sh "$project"
+ cd "$project"
+ if [ -n "$branch" ]; then
+ git checkout "$branch"
+ fi
+ autoreconf --install --force
+ ./configure --prefix="$inst"
+ $MAKE $PARALLEL_MAKE install
+}
+
+build_dep libosmocore
+
+# All below builds want this PKG_CONFIG_PATH
+export PKG_CONFIG_PATH="$inst/lib/pkgconfig:$PKG_CONFIG_PATH"
+
+build_dep libosmo-abis
+build_dep libosmo-netif sysmocom/sctp
+build_dep libosmo-sccp sysmocom/iu
+build_dep libasn1c
+
+# the asn1c binary is used by the 'regen' target below
+build_dep asn1c aper-prefix
+
+cd "$base"
autoreconf --install --force
-PKG_CONFIG_PATH=$PWD/deps/install/lib/pkgconfig:$PKG_CONFIG_PATH ./configure
-PKG_CONFIG_PATH=$PWD/deps/install/lib/pkgconfig:$PKG_CONFIG_PATH $MAKE $PARALLEL_MAKE
-PKG_CONFIG_PATH=$PWD/deps/install/lib/pkgconfig:$PKG_CONFIG_PATH LD_LIBRARY_PATH=$PWD/deps/install/lib $MAKE check
+./configure
+PATH="$inst/bin:$PATH" $MAKE $PARALLEL_MAKE -C src regen
+$MAKE $PARALLEL_MAKE
+LD_LIBRARY_PATH="$inst/lib" $MAKE check
# distcheck is broken
-#PKG_CONFIG_PATH=$PWD/deps/install/lib/pkgconfig:$PKG_CONFIG_PATH LD_LIBRARY_PATH=$PWD/deps/install/lib $MAKE distcheck
-PATH=$PWD/deps/install/bin:$PATH PKG_CONFIG_PATH=$PWD/deps/install/lib/pkgconfig:$PKG_CONFIG_PATH $MAKE $PARALLEL_MAKE -C src regen
-PKG_CONFIG_PATH=$PWD/deps/install/lib/pkgconfig:$PKG_CONFIG_PATH $MAKE $PARALLEL_MAKE
-PKG_CONFIG_PATH=$PWD/deps/install/lib/pkgconfig:$PKG_CONFIG_PATH LD_LIBRARY_PATH=$PWD/deps/install/lib $MAKE check
+#LD_LIBRARY_PATH=$PWD/deps/install/lib $MAKE distcheck