diff --git a/autobuild.sh b/autobuild.sh index c7c9035aa..a406b87e7 100755 --- a/autobuild.sh +++ b/autobuild.sh @@ -21,6 +21,18 @@ 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 diff --git a/examples/nvme/identify/Makefile b/examples/nvme/identify/Makefile index 5bd342731..3365d15df 100644 --- a/examples/nvme/identify/Makefile +++ b/examples/nvme/identify/Makefile @@ -58,5 +58,4 @@ $(APP) : $(OBJS) $(SPDK_LIBS) clean : $(Q)rm -f $(OBJS) *.d $(APP) - - +include $(SPDK_ROOT_DIR)/mk/spdk.deps.mk diff --git a/examples/nvme/perf/Makefile b/examples/nvme/perf/Makefile index dab315719..63b349533 100644 --- a/examples/nvme/perf/Makefile +++ b/examples/nvme/perf/Makefile @@ -58,4 +58,4 @@ $(APP) : $(OBJS) $(SPDK_LIBS) clean : $(Q)rm -f $(OBJS) *.d $(APP) - +include $(SPDK_ROOT_DIR)/mk/spdk.deps.mk diff --git a/lib/memory/Makefile b/lib/memory/Makefile index e03249fef..08af0cb71 100644 --- a/lib/memory/Makefile +++ b/lib/memory/Makefile @@ -53,3 +53,4 @@ clean : $(LIB) : $(OBJS) $(Q)ar crDs $(LIB) $(OBJS) +include $(SPDK_ROOT_DIR)/mk/spdk.deps.mk diff --git a/lib/nvme/Makefile b/lib/nvme/Makefile index 77bdf2004..f98883b34 100644 --- a/lib/nvme/Makefile +++ b/lib/nvme/Makefile @@ -51,3 +51,4 @@ clean : libspdk_nvme.a : $(OBJS) $(Q)ar crDs libspdk_nvme.a $(OBJS) +include $(SPDK_ROOT_DIR)/mk/spdk.deps.mk diff --git a/lib/util/Makefile b/lib/util/Makefile index 02d0c5de8..dbfa74269 100644 --- a/lib/util/Makefile +++ b/lib/util/Makefile @@ -51,3 +51,4 @@ clean : libspdk_util.a : $(OBJS) $(Q)ar crDs libspdk_util.a $(OBJS) +include $(SPDK_ROOT_DIR)/mk/spdk.deps.mk diff --git a/mk/nvme.unittest.mk b/mk/nvme.unittest.mk index a2d95df0e..addfaa5c1 100644 --- a/mk/nvme.unittest.mk +++ b/mk/nvme.unittest.mk @@ -64,3 +64,5 @@ clean: @sed -e 's/.*://' -e 's/\\$$//' < $*.d.tmp | fmt -1 | \ sed -e 's/^ *//' -e 's/$$/:/' >> $*.d @rm -f $*.d.tmp + +include $(SPDK_ROOT_DIR)/mk/spdk.deps.mk diff --git a/mk/spdk.common.mk b/mk/spdk.common.mk index 26860c3dc..70d3249ed 100644 --- a/mk/spdk.common.mk +++ b/mk/spdk.common.mk @@ -60,10 +60,6 @@ CFLAGS += $(COMMON_CFLAGS) -Wno-pointer-sign -std=gnu11 MAKEFLAGS += --no-print-directory -.PRECIOUS: $(OBJS) - --include $(OBJS:.o=.d) - %.o : %.c @echo " CC $@" $(Q)$(CC) $(CFLAGS) -c $< diff --git a/mk/spdk.deps.mk b/mk/spdk.deps.mk new file mode 100644 index 000000000..237d7f904 --- /dev/null +++ b/mk/spdk.deps.mk @@ -0,0 +1,3 @@ +.PRECIOUS: $(OBJS) + +-include $(OBJS:.o=.d) diff --git a/test/lib/memory/Makefile b/test/lib/memory/Makefile index 9612072c9..cd608de73 100644 --- a/test/lib/memory/Makefile +++ b/test/lib/memory/Makefile @@ -46,3 +46,5 @@ vtophys: vtophys.o $(OBJS) clean: $(Q)rm -f vtophys vtophys.o *.d + +include $(SPDK_ROOT_DIR)/mk/spdk.deps.mk diff --git a/test/lib/nvme/aer/Makefile b/test/lib/nvme/aer/Makefile index 688432c07..8e1b0a42b 100644 --- a/test/lib/nvme/aer/Makefile +++ b/test/lib/nvme/aer/Makefile @@ -57,3 +57,5 @@ $(APP) : $(OBJS) $(SPDK_LIBS) clean : $(Q)rm -f $(OBJS) *.d $(APP) + +include $(SPDK_ROOT_DIR)/mk/spdk.deps.mk