a35cecd8d74bfbf20b6f90539c9e34d72ce7dd81
[releng/builder.git] / jjb / opflex / opflex-build.sh
1 #!/bin/bash
2 # Build script for opflex
3
4 set -e
5 set -x
6
7 ROOT=/tmp/opflex-prefix
8
9 function cleanup {
10     if [ -d "$ROOT" ]; then rm -rf "$ROOT"; fi
11 }
12
13 # create dependency root prefix
14 cleanup
15 mkdir -p "$ROOT"
16 trap cleanup EXIT
17
18 tar -xz -C "$ROOT" --strip-components=2 -f libuv.tgz
19 tar -xz -C "$ROOT" --strip-components=2 -f rapidjson.tgz
20 tar -xz -C "$ROOT" --strip-components=2 -f openvswitch.tgz
21
22 export PATH="$ROOT/bin:$PATH"
23 export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$ROOT/lib"
24 export PKG_CONFIG_PATH="$ROOT/lib/pkgconfig"
25
26 # Move OpFlex artifacts to upload files directory
27 UPLOAD_FILES_PATH="$WORKSPACE/upload_files"
28 mkdir -p "$UPLOAD_FILES_PATH"
29
30 # build libopflex
31 pushd libopflex
32 ./autogen.sh
33 ./configure --prefix="$ROOT" \
34     --with-buildversion=$BUILD_NUMBER \
35     CPPFLAGS="-isystem $ROOT/include" \
36     CXXFLAGS="-Wall"
37 make -j8
38 if ! make check; then find . -name test-suite.log -exec cat {} \; && false; fi
39 make install
40 make dist
41 mv *.tar.gz "$UPLOAD_FILES_PATH"
42 popd
43
44 # build libmodelgbp
45 pushd genie
46 CLASSPATH=target/classes java org.opendaylight.opflex.genie.Genie
47 pushd target/libmodelgbp
48 bash autogen.sh
49 ./configure --prefix="$ROOT"
50 make -j2
51 make install
52 make dist
53 mv *.tar.gz "$UPLOAD_FILES_PATH"
54 popd
55 popd
56
57 # build agent-ovs
58 pushd agent-ovs
59 ./autogen.sh
60 ./configure --prefix="$ROOT" \
61     --with-buildversion=$BUILD_NUMBER \
62     CPPFLAGS="-isystem $ROOT/include" \
63     CXXFLAGS="-Wall"
64 make -j8
65 if ! make check; then find . -name test-suite.log -exec cat {} \; && false; fi
66 make dist
67 mv *.tar.gz "$UPLOAD_FILES_PATH"
68 popd