Build environment
Change-Id: I1625f5ccf69d3cb78033439c411df419b9916cb3
diff --git a/.jenkins.d/20-build.sh b/.jenkins.d/20-build.sh
new file mode 100755
index 0000000..de9d590
--- /dev/null
+++ b/.jenkins.d/20-build.sh
@@ -0,0 +1,50 @@
+#!/usr/bin/env bash
+set -e
+
+JDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+source "$JDIR"/util.sh
+
+set -x
+
+git submodule init
+git submodule sync
+git submodule update
+
+# Cleanup
+sudo ./waf -j1 --color=yes distclean
+
+if [[ "$JOB_NAME" != *"limited-build" ]]; then
+ # Configure/build in optimized mode with tests
+ ./waf -j1 --color=yes configure --with-tests
+ ./waf -j1 --color=yes build
+
+ # Cleanup
+ sudo ./waf -j1 --color=yes distclean
+
+ # Configure/build in optimized mode without tests
+ ./waf -j1 --color=yes configure
+ ./waf -j1 --color=yes build
+
+ # Cleanup
+ sudo ./waf -j1 --color=yes distclean
+fi
+
+# Configure/build in debug mode with tests and without precompiled headers
+if [[ "$JOB_NAME" == *"code-coverage" ]]; then
+ COVERAGE="--with-coverage"
+elif ! has OSX-10.9 $NODE_LABELS && ! has OSX-10.11 $NODE_LABELS; then
+ ASAN="--with-sanitizer=address"
+fi
+./waf -j1 --color=yes configure --debug --with-tests $COVERAGE $ASAN
+./waf -j1 --color=yes build
+
+# (tests will be run against debug version)
+
+# Install
+sudo ./waf -j1 --color=yes install
+
+if has Linux $NODE_LABELS; then
+ sudo ldconfig
+elif has FreeBSD $NODE_LABELS; then
+ sudo ldconfig -a
+fi