summaryrefslogtreecommitdiffstats
path: root/contrib/jenkins-osmo-bts-sysmo.sh
blob: 7870259d90c447c25b6139e08b126453d2ecc013 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/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 [ ! -e "$repo" ]; then
		set +x
		echo "MISSING REPOSITORY: $repo"
		echo "should be provided by the jenkins workspace"
		exit 1
	fi
	cd "$repo"
	git clean -dxf
	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
cd "$prefix_real"
tar cvzf "$base/osmo-bts-sysmo.build-${BUILD_NUMBER}.tgz" *