From: Jim Meyering Date: Sun, 21 Dec 2008 16:37:22 +0000 (+0100) Subject: maint.mk: enforce the "include first" rule X-Git-Tag: v7.1~87 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=317d2c6384839f43d8dd472dc1961fcf21ec181d;p=thirdparty%2Fcoreutils.git maint.mk: enforce the "include first" rule * maint.mk (sc_require_config_h_first): New rule. * .x-sc_require_config_h_first: New file. --- diff --git a/.x-sc_require_config_h_first b/.x-sc_require_config_h_first new file mode 100644 index 0000000000..727bb8ead0 --- /dev/null +++ b/.x-sc_require_config_h_first @@ -0,0 +1,9 @@ +^lib/buffer-lcm\.c$ +^src/false\.c$ +^src/lbracket\.c$ +^src/ls-dir\.c$ +^src/ls-ls\.c$ +^src/ls-vdir\.c$ +^src/tac-pipe\.c$ +^src/uname-arch\.c$ +^src/uname-uname\.c$ diff --git a/maint.mk b/maint.mk index cb3c6a56d6..7a9649e102 100644 --- a/maint.mk +++ b/maint.mk @@ -191,6 +191,21 @@ sc_require_config_h: else :; \ fi +# You must include before including any other header file. +sc_require_config_h_first: + @if $(VC_LIST_EXCEPT) | grep '\.c$$' > /dev/null; then \ + fail=0; \ + for i in $$($(VC_LIST_EXCEPT) | grep '\.c$$'); do \ + grep '^# *include\>' $$i | sed 1q \ + | grep '^# *include ' > /dev/null \ + || { echo $$i; fail=1; }; \ + done; \ + test $$fail = 1 && \ + { echo '$(ME): the above files include some other header' \ + 'before ' 1>&2; exit 1; } || :; \ + else :; \ + fi + # To use this "command" macro, you must first define two shell variables: # h: the header, enclosed in <> or "" # re: a regular expression that matches IFF something provided by $h is used.