[ovs-dev] [PATCH] Makefile.am: Add a build check that every .c file #includes <config.h>.

Ben Pfaff blp at nicira.com
Thu Dec 6 19:26:05 UTC 2012


This can find mysterious build problems.

Signed-off-by: Ben Pfaff <blp at nicira.com>
---
 Makefile.am |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index e2e0aa4..08cf395 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -169,6 +169,20 @@ CLEANFILES += distfiles
 endif
 .PHONY: dist-hook-git
 
+# Check that every .c file includes <config.h>.
+ALL_LOCAL += config-h-check
+config-h-check:
+	@cd $(srcdir); \
+	if test -e .git && (git --version) >/dev/null 2>&1 && \
+	   git grep -L '#include <config\.h>' `git ls-files | grep '\.c$$' | \
+               grep -vE '^datapath|^lib/sflow'`; \
+	then \
+	    echo "See above for list of violations of the rule that"; \
+	    echo "every C source file must #include <config.h>."; \
+	    exit 1; \
+	fi
+.PHONY: config-h-check
+
 # Check that "struct vlog_ratelimit" is always declared "static".
 ALL_LOCAL += rate-limit-check
 rate-limit-check:
-- 
1.7.2.5




More information about the dev mailing list