jjb: liburcu: prepare for ubuntu jammy upgrade
[lttng-ci.git] / scripts / lttng-ust / build.sh
index acae6016d62b878549a28ab4a9f0e285e48749a1..7341b0c63347581246859a193141babebb0f37be 100755 (executable)
@@ -89,6 +89,8 @@ conf=${conf:-}
 build=${build:-}
 cc=${cc:-}
 
+# Controls if the tests are run
+LTTNG_UST_RUN_TESTS="${LTTNG_UST_RUN_TESTS:=yes}"
 
 DEPS_INC="$WORKSPACE/deps/build/include"
 DEPS_LIB="$WORKSPACE/deps/build/lib"
@@ -118,49 +120,17 @@ gcc)
     export CC=gcc
     export CXX=g++
     ;;
-gcc-4.8)
-    export CC=gcc-4.8
-    export CXX=g++-4.8
-    ;;
-gcc-5)
-    export CC=gcc-5
-    export CXX=g++-5
-    ;;
-gcc-6)
-    export CC=gcc-6
-    export CXX=g++-6
-    ;;
-gcc-7)
-    export CC=gcc-7
-    export CXX=g++-7
-    ;;
-gcc-8)
-    export CC=gcc-8
-    export CXX=g++-8
+gcc-*)
+    export CC=gcc-${cc#gcc-}
+    export CXX=g++-${cc#gcc-}
     ;;
 clang)
     export CC=clang
     export CXX=clang++
     ;;
-clang-3.9)
-    export CC=clang-3.9
-    export CXX=clang++-3.9
-    ;;
-clang-4.0)
-    export CC=clang-4.0
-    export CXX=clang++-4.0
-    ;;
-clang-5.0)
-    export CC=clang-5.0
-    export CXX=clang++-5.0
-    ;;
-clang-6.0)
-    export CC=clang-6.0
-    export CXX=clang++-6.0
-    ;;
-clang-7)
-    export CC=clang-7
-    export CXX=clang++-7
+clang-*)
+    export CC=clang-${cc#clang-}
+    export CXX=clang++-${cc#clang-}
     ;;
 *)
     if [ "x$cc" != "x" ]; then
@@ -176,7 +146,7 @@ fi
 
 # Set platform variables
 case "$arch" in
-freebsd)
+freebsd*)
     export MAKE=gmake
     export TAR=tar
     export NPROC="getconf _NPROCESSORS_ONLN"
@@ -185,6 +155,7 @@ freebsd)
     export PYTHON="python3"
     export PYTHON_CONFIG="python3-config"
     export CLASSPATH='/usr/local/share/java/classes/*'
+    export JAVA_HOME='/usr/local/openjdk11'
     ;;
 
 *)
@@ -193,7 +164,7 @@ freebsd)
     export NPROC=nproc
     export PYTHON="python3"
     export PYTHON_CONFIG="python3-config"
-    export CLASSPATH='/usr/share/java/*'
+    export CLASSPATH='/usr/share/java/log4j-api.jar:/usr/share/java/log4j-core.jar:/usr/share/java/log4j-1.2.jar'
     ;;
 esac
 
@@ -211,6 +182,15 @@ cd "$SRCDIR"
 eval "$(grep '^PACKAGE_VERSION=' ./configure)"
 PACKAGE_VERSION=${PACKAGE_VERSION//\-pre*/}
 
+# Gerrit will trigger build on FreeBSD regardless of the branch, exit
+# successfuly when the version is < 2.13.
+if [[ $arch == freebsd* ]] && verlt "$PACKAGE_VERSION" "2.13"; then
+    mkdir -p "$WORKSPACE/tap/no-log"
+    echo "1..1" > "$WORKSPACE/tap/no-log/tests.log"
+    echo "ok 1 - FreeBSD build unsupported in < 2.13" >> "$WORKSPACE/tap/no-log/tests.log"
+    exit 0
+fi
+
 # Set configure options and environment variables for each build
 # configuration.
 CONF_OPTS=("--prefix=$PREFIX")
@@ -228,6 +208,11 @@ agents)
     echo "Java and Python agents configuration"
 
     CONF_OPTS+=("--enable-java-agent-all" "--enable-jni-interface" "--enable-python-agent")
+
+    # Explicitly add '--enable-java-agent-log4j2', it's not part of '-all' in stable 2.12/2.13
+    if verlt "$PACKAGE_VERSION" "2.14"; then
+           CONF_OPTS+=("--enable-java-agent-log4j2")
+    fi
     ;;
 
 debug-rcu)
@@ -264,7 +249,7 @@ dist)
 
     # Run configure and generate the tar file
     # in the source directory
-    ./configure || failed_configure
+    ./configure --enable-jni-interface || failed_configure
     $MAKE dist
 
     # Create and enter a temporary build directory
@@ -287,7 +272,7 @@ oot-dist)
     cd "$builddir"
 
     # Run configure out of tree and generate the tar file
-    "$SRCDIR/configure" || failed_configure
+    "$SRCDIR/configure" --enable-jni-interface || failed_configure
     $MAKE dist
 
     dist_srcdir="$(mktemp -d)"
@@ -322,16 +307,18 @@ $MAKE install DESTDIR="$WORKSPACE"
 
 # Run tests, don't fail now, we want to run the archiving steps
 failed_tests=0
-$MAKE --keep-going check || failed_tests=1
+if [ "$LTTNG_UST_RUN_TESTS" = "yes" ]; then
+    $MAKE --keep-going check || failed_tests=1
 
-# Copy tap logs for the jenkins tap parser before cleaning the build dir
-rsync -a --exclude 'test-suite.log' --include '*/' --include '*.log' --exclude='*' tests/ "$WORKSPACE/tap"
+    # Copy tap logs for the jenkins tap parser before cleaning the build dir
+    rsync -a --exclude 'test-suite.log' --include '*/' --include '*.log' --exclude='*' tests/ "$WORKSPACE/tap"
 
-# The test suite prior to 2.8 did not produce TAP logs
-if verlt "$PACKAGE_VERSION" "2.8"; then
-    mkdir -p "$WORKSPACE/tap/no-log"
-    echo "1..1" > "$WORKSPACE/tap/no-log/tests.log"
-    echo "ok 1 - Test suite doesn't support logging" >> "$WORKSPACE/tap/no-log/tests.log"
+    # The test suite prior to 2.8 did not produce TAP logs
+    if verlt "$PACKAGE_VERSION" "2.8"; then
+        mkdir -p "$WORKSPACE/tap/no-log"
+        echo "1..1" > "$WORKSPACE/tap/no-log/tests.log"
+        echo "ok 1 - Test suite doesn't support logging" >> "$WORKSPACE/tap/no-log/tests.log"
+    fi
 fi
 
 # Clean the build directory
This page took 0.032867 seconds and 4 git commands to generate.