tests: require @PRAGMA_COLUMNS@ with each @PRAGMA_SYSTEM_HEADER@
authorJim Meyering <meyering@redhat.com>
Tue, 5 Oct 2010 10:44:20 +0000 (12:44 +0200)
committerJim Meyering <meyering@redhat.com>
Tue, 5 Oct 2010 10:47:12 +0000 (12:47 +0200)
* Makefile (sc_pragma_columns): New syntax-check rule.

ChangeLog
Makefile

index f588069..edc7c8b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-10-05  Jim Meyering  <meyering@redhat.com>
+
+       tests: require @PRAGMA_COLUMNS@ with each @PRAGMA_SYSTEM_HEADER@
+       * Makefile (sc_pragma_columns): New syntax-check rule.
+
 2010-10-04  Bruno Haible  <bruno@clisp.org>
 
        gnulib-tool: Synthesize appropriate _LDFLAGS for a libtool library.
index 345e302..e40a77c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -15,6 +15,7 @@ info html dvi pdf:
 # Perform some platform independent checks on the gnulib code.
 check: \
   sc_prohibit_augmenting_PATH_via_TESTS_ENVIRONMENT                    \
+  sc_pragma_columns                                                    \
   sc_prefer_ac_check_funcs_once
 
 sc_prefer_ac_check_funcs_once:
@@ -32,6 +33,18 @@ sc_prohibit_augmenting_PATH_via_TESTS_ENVIRONMENT:
                 "  see <$$url>" 1>&2; exit 1; } || :                   \
        else :; fi
 
+sc_pragma_columns:
+       if test -d .git; then                                           \
+          git ls-files|grep '\.in\.h$$'                                        \
+              | xargs grep -l '^@PRAGMA_SYSTEM_HEADER@'                        \
+              | xargs grep -L '^@PRAGMA_COLUMNS@'                      \
+              | grep .                                                 \
+           && { printf '%s\n'                                          \
+                   'the files listed above use @PRAGMA_SYSTEM_HEADER@' \
+                   'without also using @PRAGMA_COLUMNS@' 1>&2;         \
+                exit 1; } || :;                                        \
+       else :; fi
+
 # Regenerate some files that are stored in the repository.
 regen: MODULES.html