Spdk/autobuild.sh
Jim Harris 1d90157262 Fix header file dependencies.
Move dependency includes into a new spdk.deps.mk file,
then include it at the end of Makefiles that build
source files.

Also add a test to autobuild.sh to confirm that
binaries are regenerated if we make after touching a
header file.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: If6a1905706a840f92cbdf3ace7fbdb27fe2de213
2015-09-28 09:07:04 -07:00

54 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
src=$(readlink -f $(dirname $0))
out=$PWD
MAKEFLAGS=${MAKEFLAGS:--j16}
DPDK_DIR=/usr/local/dpdk-2.1.0/x86_64-native-linuxapp-gcc
cd $src
./scripts/check_format.sh
scanbuild=''
if hash scan-build; then
scanbuild="scan-build -o $out/scan-build-tmp --status-bugs"
fi
make $MAKEFLAGS clean
fail=0
time $scanbuild make $MAKEFLAGS DPDK_DIR=$DPDK_DIR || fail=1
# 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`
touch lib/nvme/nvme_internal.h
make $MAKEFLAGS DPDK_DIR=$DPDK_DIR || fail=1
STAT2=`stat examples/nvme/identify/identify`
if [ "$STAT1" == "$STAT2" ]; then
fail=1
fi
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
if hash doxygen; then
(cd "$src"/doc; make $MAKEFLAGS)
mkdir -p "$out"/doc
for d in "$src"/doc/output.*; do
component=$(basename "$d" | sed -e 's/^output.//')
mv "$d"/html "$out"/doc/$component
rm -rf "$d"
done
fi
exit $fail