-#!/bin/bash -exu
+#!/bin/bash
#
# Copyright (C) 2015 Jonathan Rajotte-Julien <jonathan.rajotte-julien@efficios.com>
# Copyright (C) 2019 Michael Jeanson <mjeanson@efficios.com>
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+set -exu
-# do not exit immediately if any command fails
-set +e
+# Required variables
+WORKSPACE=${WORKSPACE:-}
+
+DEPS_INC="$WORKSPACE/deps/build/include"
+DEPS_LIB="$WORKSPACE/deps/build/lib"
+DEPS_PKGCONFIG="$DEPS_LIB/pkgconfig"
+DEPS_BIN="$WORKSPACE/deps/build/bin"
+
+export PATH="$DEPS_BIN:$PATH"
+export LD_LIBRARY_PATH="$DEPS_LIB:${LD_LIBRARY_PATH:-}"
+export PKG_CONFIG_PATH="$DEPS_PKGCONFIG"
+export CPPFLAGS="-I$DEPS_INC"
+export LDFLAGS="-L$DEPS_LIB"
SRCDIR="$WORKSPACE/src/$PROJECT_NAME"
TMPDIR="$WORKSPACE/tmp"
NPROC=$(nproc)
-export CFLAGS="-O0 -g -DDEBUG"
+export CFLAGS="-O0 -g"
+export CXXFLAGS="-O0 -g"
# Directory to archive the scan-build report
SCAN_BUILD_ARCHIVE="${WORKSPACE}/scan-build-archive"
export TMPDIR
+# Builds configured with '-Werror=missing-include-dirs' if this directory
+# doesn't exist
+mkdir -p "$DEPS_INC"
+
# temp directory to store the scan-build report
-SCAN_BUILD_TMPDIR=$( mktemp -d )
+SCAN_BUILD_TMPDIR=$(mktemp -d)
case "$PROJECT_NAME" in
babeltrace)
lttng-ust)
CONF_OPTS="--enable-java-agent-all --enable-python-agent"
BUILD_TYPE="autotools"
- export CLASSPATH="/usr/share/java/log4j-1.2.jar"
- ;;
-linux-rseq)
- CONF_OPTS=""
- BUILD_TYPE="linux-rseq"
+ export CLASSPATH="/usr/share/java/log4j-api.jar:/usr/share/java/log4j-core.jar:/usr/share/java/log4j-1.2.jar"
;;
*)
echo "Generic project, no configure options."
;;
esac
-# liburcu dependency
-if [ -d "$WORKSPACE/deps/liburcu" ]; then
- URCU_INCS="$WORKSPACE/deps/liburcu/build/include/"
- URCU_LIBS="$WORKSPACE/deps/liburcu/build/lib/"
-
- export CPPFLAGS="-I$URCU_INCS ${CPPFLAGS:-}"
- export LDFLAGS="-L$URCU_LIBS ${LDFLAGS:-}"
- export LD_LIBRARY_PATH="$URCU_LIBS:${LD_LIBRARY_PATH:-}"
-fi
-
-
-# lttng-ust dependency
-if [ -d "$WORKSPACE/deps/lttng-ust" ]; then
- UST_INCS="$WORKSPACE/deps/lttng-ust/build/include/"
- UST_LIBS="$WORKSPACE/deps/lttng-ust/build/lib/"
-
- export CPPFLAGS="-I$UST_INCS ${CPPFLAGS:-}"
- export LDFLAGS="-L$UST_LIBS ${LDFLAGS:-}"
- export LD_LIBRARY_PATH="$UST_LIBS:${LD_LIBRARY_PATH:-}"
-fi
-
if [ -d "$WORKSPACE/src/linux" ]; then
export KERNELDIR="$WORKSPACE/src/linux"
fi
cd "$SRCDIR"
# Build
-echo -e "\033[33;1mRunning Coverity Scan Analysis Tool...\033[0m"
case "$BUILD_TYPE" in
autotools)
# Prepare build dir for autotools based projects
scan-build -k -o "${SCAN_BUILD_TMPDIR}" make -j"$NPROC" V=1
;;
-linux-rseq)
- make defconfig
- make -j"$NPROC" prepare
- scan-build -k -o "${SCAN_BUILD_TMPDIR}" make -j"$NPROC" kernel/rseq.o kernel/do_on_cpu/core.o kernel/do_on_cpu/interpreter.o kernel/do_on_cpu/validate.o V=1
- ;;
*)
echo "Unsupported build type: $BUILD_TYPE"
exit 1