X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=scripts%2Flttng-ust%2Fscan-build.sh;h=39933e3e58fd8e771a96b96da3c713e03ec33eb0;hb=944a6c86f6eab1c0b3d65c2f3f771764851baf05;hp=e67305a49e9daccfef821e08e4ac505f62bf613f;hpb=2b68721ab3a069c3763abf5746a7a8823d804791;p=lttng-ci.git diff --git a/scripts/lttng-ust/scan-build.sh b/scripts/lttng-ust/scan-build.sh index e67305a..39933e3 100755 --- a/scripts/lttng-ust/scan-build.sh +++ b/scripts/lttng-ust/scan-build.sh @@ -1,6 +1,7 @@ #!/bin/sh -exu # # Copyright (C) 2015 - Jonathan Rajotte-Julien +# 2016 - Michael Jeanson # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,49 +19,67 @@ # do not exit immediately if any command fails set +e - -# temp directory to store the scan-build report -SCAN_BUILD_TMPDIR=$( mktemp -d /tmp/scan-build.XXXXXX ) - -# directory to use for archiving the scan-build report + +SRCDIR="$WORKSPACE/src/lttng-ust" +TMPDIR="$WORKSPACE/tmp" +PREFIX="$WORKSPACE/build" + +# Directory to archive the scan-build report SCAN_BUILD_ARCHIVE="${WORKSPACE}/scan-build-archive" -# Create build directory -rm -rf $WORKSPACE/build -mkdir -p $WORKSPACE/build +# Create build and tmp directories +rm -rf "$PREFIX" "$TMPDIR" +mkdir -p "$PREFIX" "$TMPDIR" + +export TMPDIR + +# temp directory to store the scan-build report +SCAN_BUILD_TMPDIR=$( mktemp -d ) + +# liburcu +URCU_INCS="$WORKSPACE/deps/liburcu/build/include/" +URCU_LIBS="$WORKSPACE/deps/liburcu/build/lib/" export CFLAGS="-O0 -g -DDEBUG" -PREFIX="$WORKSPACE/build" +export CPPFLAGS="-I$URCU_INCS" +export LDFLAGS="-L$URCU_LIBS" +export LD_LIBRARY_PATH="$URCU_LIBS:${LD_LIBRARY_PATH:-}" + +# Enter the source directory +cd "$SRCDIR" +# Run bootstrap in the source directory prior to configure ./bootstrap + + ./configure --prefix=$PREFIX -make clean + # generate the scan-build report scan-build -k -o ${SCAN_BUILD_TMPDIR} make - + # get the directory name of the report created by scan-build SCAN_BUILD_REPORT=$( find ${SCAN_BUILD_TMPDIR} -maxdepth 1 -not -empty -not -name `basename ${SCAN_BUILD_TMPDIR}` ) rc=$? - + if [ -z "${SCAN_BUILD_REPORT}" ]; then echo ">>> No new bugs identified." echo ">>> No scan-build report has been generated" else echo ">>> New scan-build report generated in ${SCAN_BUILD_REPORT}" - + if [ ! -d "${SCAN_BUILD_ARCHIVE}" ]; then echo ">>> Creating scan-build archive directory" - install -d -o jenkins -g jenkins -m 0755 "${SCAN_BUILD_ARCHIVE}" + mkdir "${SCAN_BUILD_ARCHIVE}" else echo ">>> Removing any previous scan-build reports from ${SCAN_BUILD_ARCHIVE}" - rm -f ${SCAN_BUILD_ARCHIVE}/* + rm -f "${SCAN_BUILD_ARCHIVE}/*" fi - + echo ">>> Archiving scan-build report to ${SCAN_BUILD_ARCHIVE}" mv ${SCAN_BUILD_REPORT}/* ${SCAN_BUILD_ARCHIVE}/ - + echo ">>> Removing any temporary files and directories" rm -rf "${SCAN_BUILD_TMPDIR}" fi - + exit ${rc}