#!/bin/bash -exu
#
# Copyright (C) 2015 - Jonathan Rajotte-Julien <jonathan.rajotte-julien@efficios.com>
+# 2016 - Michael Jeanson <mjeanson@efficios.com>
#
# 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
}
-# 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)
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
#
# 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)
BUILD_PATH=`mktemp -d`
# Initial configure and generate tarball
- MAKE=$MAKE ./configure
+ MAKE=$MAKE $SRCDIR/configure
$MAKE dist
mkdir -p $BUILD_PATH
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
# 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
#!/bin/sh -exu
#
# Copyright (C) 2015 - Jonathan Rajotte-Julien <jonathan.rajotte-julien@efficios.com>
+# 2016 - Michael Jeanson <mjeanson@efficios.com>
#
# 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
# 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}