2015-09-21 14:48:40 -07:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
2015-10-08 12:40:44 -07:00
|
|
|
rootdir=$(readlink -f $(dirname $0))
|
|
|
|
source "$rootdir/scripts/autotest_common.sh"
|
2015-09-21 14:48:40 -07:00
|
|
|
|
2015-10-02 17:11:56 -07:00
|
|
|
out=$PWD
|
2015-09-21 14:48:40 -07:00
|
|
|
|
2015-10-05 10:54:32 -07:00
|
|
|
umask 022
|
|
|
|
|
2015-10-08 12:40:44 -07:00
|
|
|
cd $rootdir
|
2015-09-21 14:48:40 -07:00
|
|
|
|
2016-12-16 10:14:48 -07:00
|
|
|
date -u
|
|
|
|
git describe --tags
|
|
|
|
|
2015-10-08 12:40:44 -07:00
|
|
|
timing_enter autobuild
|
|
|
|
|
2017-03-30 12:06:49 -07:00
|
|
|
./configure $config_params
|
|
|
|
|
2015-10-08 12:40:44 -07:00
|
|
|
timing_enter check_format
|
2017-06-29 14:38:10 -07:00
|
|
|
if [ $SPDK_RUN_CHECK_FORMAT -eq 1 ]; then
|
|
|
|
./scripts/check_format.sh
|
|
|
|
fi
|
2015-10-08 12:40:44 -07:00
|
|
|
timing_exit check_format
|
2015-09-23 08:52:44 -07:00
|
|
|
|
2016-01-19 11:36:50 +08:00
|
|
|
timing_enter build_kmod
|
2017-06-29 14:33:32 -07:00
|
|
|
if [ $SPDK_BUILD_IOAT_KMOD -eq 1 ]; then
|
|
|
|
./scripts/build_kmod.sh build
|
|
|
|
fi
|
2016-01-19 11:36:50 +08:00
|
|
|
timing_exit build_kmod
|
|
|
|
|
2015-09-21 14:48:40 -07:00
|
|
|
scanbuild=''
|
2017-05-31 16:48:02 -07:00
|
|
|
if [ $SPDK_RUN_SCANBUILD -eq 1 ] && hash scan-build; then
|
2015-09-22 16:20:35 -07:00
|
|
|
scanbuild="scan-build -o $out/scan-build-tmp --status-bugs"
|
2015-09-21 14:48:40 -07:00
|
|
|
fi
|
2017-05-31 16:48:02 -07:00
|
|
|
echo $scanbuild
|
2015-10-02 17:11:56 -07:00
|
|
|
$MAKE $MAKEFLAGS clean
|
2015-10-08 12:40:44 -07:00
|
|
|
|
|
|
|
timing_enter scanbuild_make
|
2015-09-22 16:20:35 -07:00
|
|
|
fail=0
|
2017-03-30 12:06:49 -07:00
|
|
|
time $scanbuild $MAKE $MAKEFLAGS || fail=1
|
2017-02-15 13:16:48 -07:00
|
|
|
if [ $fail -eq 1 ]; then
|
|
|
|
if [ -d $out/scan-build-tmp ]; then
|
|
|
|
scanoutput=$(ls -1 $out/scan-build-tmp/)
|
|
|
|
mv $out/scan-build-tmp/$scanoutput $out/scan-build
|
|
|
|
rm -rf $out/scan-build-tmp
|
|
|
|
chmod -R a+rX $out/scan-build
|
|
|
|
fi
|
|
|
|
exit 1
|
|
|
|
else
|
|
|
|
rm -rf $out/scan-build-tmp
|
|
|
|
fi
|
2015-10-08 12:40:44 -07:00
|
|
|
timing_exit scanbuild_make
|
2015-09-21 14:48:40 -07:00
|
|
|
|
2017-06-20 10:22:21 -07:00
|
|
|
# Check for generated files that are not listed in .gitignore
|
|
|
|
if [ `git status --porcelain | wc -l` -ne 0 ]; then
|
|
|
|
echo "Generated files missing from .gitignore:"
|
|
|
|
git status --porcelain
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2015-09-25 13:29:39 -07:00
|
|
|
# Check that header file dependencies are working correctly by
|
|
|
|
# capturing a binary's stat data before and after touching a
|
|
|
|
# header file and re-making.
|
|
|
|
STAT1=`stat examples/nvme/identify/identify`
|
2015-11-02 18:37:15 -07:00
|
|
|
sleep 1
|
2015-09-25 13:29:39 -07:00
|
|
|
touch lib/nvme/nvme_internal.h
|
2017-03-30 12:06:49 -07:00
|
|
|
$MAKE $MAKEFLAGS
|
2015-09-25 13:29:39 -07:00
|
|
|
STAT2=`stat examples/nvme/identify/identify`
|
|
|
|
|
|
|
|
if [ "$STAT1" == "$STAT2" ]; then
|
2017-02-15 13:16:48 -07:00
|
|
|
echo "Header dependency check failed"
|
|
|
|
exit 1
|
2015-09-25 13:29:39 -07:00
|
|
|
fi
|
|
|
|
|
2015-09-21 14:48:40 -07:00
|
|
|
|
2015-10-08 12:40:44 -07:00
|
|
|
timing_enter doxygen
|
2017-05-01 17:38:42 -07:00
|
|
|
if [ $SPDK_BUILD_DOC -eq 1 ] && hash doxygen; then
|
2017-03-03 09:41:17 -07:00
|
|
|
(cd "$rootdir"/doc; $MAKE $MAKEFLAGS) &> "$out"/doxygen.log
|
2017-04-28 15:49:03 -07:00
|
|
|
if hash pdflatex; then
|
|
|
|
(cd "$rootdir"/doc/output/latex && $MAKE $MAKEFLAGS) &>> "$out"/doxygen.log
|
|
|
|
fi
|
2015-09-21 14:48:40 -07:00
|
|
|
mkdir -p "$out"/doc
|
2016-03-25 09:54:24 -07:00
|
|
|
mv "$rootdir"/doc/output/html "$out"/doc
|
2017-04-28 15:49:03 -07:00
|
|
|
if [ -f "$rootdir"/doc/output/latex/refman.pdf ]; then
|
2017-05-01 18:12:29 -07:00
|
|
|
mv "$rootdir"/doc/output/latex/refman.pdf "$out"/doc/spdk.pdf
|
2017-04-28 15:49:03 -07:00
|
|
|
fi
|
2016-03-25 09:54:24 -07:00
|
|
|
rm -rf "$rootdir"/doc/output
|
2015-09-21 14:48:40 -07:00
|
|
|
fi
|
2015-10-08 12:40:44 -07:00
|
|
|
timing_exit doxygen
|
|
|
|
|
|
|
|
timing_exit autobuild
|