From 6d35c32629ea5796dab7712e0d2643a372f25b3b Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Wed, 18 May 2016 17:50:16 -0400 Subject: [PATCH] liburcu: checkout sources in a subdirectory Signed-off-by: Michael Jeanson --- jobs/liburcu.yaml | 6 ++++- scripts/liburcu/build.sh | 35 +++++++++++++++---------- scripts/liburcu/scan-build.sh | 48 ++++++++++++++++++++++------------- 3 files changed, 56 insertions(+), 33 deletions(-) diff --git a/jobs/liburcu.yaml b/jobs/liburcu.yaml index 1fb1e07..aebd680 100644 --- a/jobs/liburcu.yaml +++ b/jobs/liburcu.yaml @@ -43,6 +43,7 @@ browser-url: https://github.com/{github_user}/{github_name} branches: - origin/{version} + basedir: src/liburcu triggers: - pollscm: @@ -112,7 +113,7 @@ builders: - shell: | rm -f liburcu-cppcheck.xml - cppcheck --enable=all --xml --xml-version=2 $WORKSPACE 2> liburcu-cppcheck.xml + cppcheck --enable=all --xml --xml-version=2 $WORKSPACE/src/liburcu 2> liburcu-cppcheck.xml publishers: - archive: @@ -170,6 +171,9 @@ publishers: - workspace-cleanup + - archive: + artifacts: 'analysis-results.tgz,cov-int/**' + allow-empty: false ## Project diff --git a/scripts/liburcu/build.sh b/scripts/liburcu/build.sh index 806371a..996e7f1 100755 --- a/scripts/liburcu/build.sh +++ b/scripts/liburcu/build.sh @@ -1,6 +1,7 @@ #!/bin/bash -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 @@ -33,12 +34,16 @@ vergt() { } -# Create build directory -rm -rf $WORKSPACE/build -mkdir -p $WORKSPACE/build - +SRCDIR="$WORKSPACE/src/liburcu" +TMPDIR="$WORKSPACE/tmp" PREFIX="$WORKSPACE/build" +# Create build and tmp directories +rm -rf "$PREFIX" "$TMPDIR" +mkdir -p "$PREFIX" "$TMPDIR" + +export TMPDIR + # Set platform variables case "$arch" in solaris10) @@ -84,7 +89,10 @@ tls_fallback) esac -# Run bootstrap prior to configure +# Enter the source directory +cd "$SRCDIR" + +# Run bootstrap in the source directory prior to configure ./bootstrap # Get source version from configure script @@ -98,14 +106,14 @@ eval `grep '^PACKAGE_VERSION=' ./configure` # # Make sure to move to the build_path and configure # before continuing -BUILD_PATH=$WORKSPACE +BUILD_PATH=$SRCDIR case "$build" in oot) echo "Out of tree build" BUILD_PATH=$WORKSPACE/oot mkdir -p $BUILD_PATH cd $BUILD_PATH - MAKE=$MAKE CFLAGS="$CFLAGS" $WORKSPACE/configure --prefix=$PREFIX $CONF_OPTS + MAKE=$MAKE CFLAGS="$CFLAGS" $SRCDIR/configure --prefix=$PREFIX $CONF_OPTS ;; dist) @@ -113,7 +121,7 @@ dist) BUILD_PATH=`mktemp -d` # Initial configure and generate tarball - MAKE=$MAKE ./configure + MAKE=$MAKE $SRCDIR/configure $MAKE dist mkdir -p $BUILD_PATH @@ -126,9 +134,8 @@ dist) MAKE=$MAKE CFLAGS="$CFLAGS" $BUILD_PATH/configure --prefix=$PREFIX $CONF_OPTS ;; *) - BUILD_PATH=$WORKSPACE - echo "Standard tree build" - MAKE=$MAKE CFLAGS="$CFLAGS" $WORKSPACE/configure --prefix=$PREFIX $CONF_OPTS + echo "Standard in-tree build" + MAKE=$MAKE CFLAGS="$CFLAGS" $BUILD_PATH/configure --prefix=$PREFIX $CONF_OPTS ;; esac @@ -148,14 +155,14 @@ $MAKE clean # Cleanup rpath in executables and shared libraries #find $WORKSPACE/build/bin -type f -perm -0500 -exec chrpath --delete {} \; -find $WORKSPACE/build/lib -name "*.so" -exec chrpath --delete {} \; +find $PREFIX/lib -name "*.so" -exec chrpath --delete {} \; # Remove libtool .la files -find $WORKSPACE/build/lib -name "*.la" -exec rm -f {} \; +find $PREFIX/lib -name "*.la" -exec rm -f {} \; # Cleanup temp directory of dist build if [ "$build" = "dist" ]; then - cd $WORKSPACE + cd $SRCDIR rm -rf $BUILD_PATH fi diff --git a/scripts/liburcu/scan-build.sh b/scripts/liburcu/scan-build.sh index e67305a..e4237ee 100755 --- a/scripts/liburcu/scan-build.sh +++ b/scripts/liburcu/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,60 @@ # 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/liburcu" +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 ) export CFLAGS="-O0 -g -DDEBUG" -PREFIX="$WORKSPACE/build" +# 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} -- 2.34.1