osmo-gsm-tester/contrib/jenkins-build-osmo-bts-sysm...

75 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
set -e -x
deps="
libosmocore
libosmo-abis
osmo-bts
"
base="$PWD"
rm -f "$base/osmo-bts-sysmo.*.tgz"
have_repo() {
repo="$1"
cd "$base"
if [ ! -d "$repo" ]; then
git clone "git://git.osmocom.org/$repo" "$repo"
fi
cd "$repo"
git clean -dxf
git fetch origin
git reset --hard origin/master
git rev-parse HEAD
cd "$base"
}
for dep in $deps; do
have_repo "$dep"
done
# for gsm_data_shared.h
have_repo openbsc
. /opt/poky/1.5.4/environment-setup-armv5te-poky-linux-gnueabi
# Cross-compilation: all installations need to be put in the sysmo SDK sysroot
export DESTDIR=/opt/poky/1.5.4/sysroots/armv5te-poky-linux-gnueabi
prefix_base="/usr/local/jenkins-build"
prefix_base_real="$DESTDIR$prefix_base"
rm -rf "$prefix_base_real"
prefix="$prefix_base/inst-osmo-bts-sysmo"
prefix_real="$DESTDIR$prefix"
mkdir -p "$prefix_real"
for dep in $deps; do
cd "$base/$dep"
rm -rf *
git checkout .
echo "$(git rev-parse HEAD) $dep" >> "$prefix_real/osmo-bts-sysmo_git_hashes.txt"
autoreconf -fi
config_opts=""
case "$dep" in
'libosmocore') config_opts="--disable-pcsc" ;;
'osmo-bts') config_opts="--enable-sysmocom-bts --with-openbsc=$base/openbsc/openbsc/include" ;;
esac
./configure --prefix="$prefix" $CONFIGURE_FLAGS $config_opts
make -j8
make install
done
# build the archive that is going to be copied to the tester and then to the BTS
rm "$base"/*.tgz "$base"/*.md5 || true
cd "$prefix_real"
this="osmo-bts-sysmo.build-${BUILD_NUMBER}"
tar="${this}.tgz"
tar czf "$base/$tar" *
cd "$base"
md5sum "$tar" > "${this}.md5"