summaryrefslogtreecommitdiff
path: root/top
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2010-04-07 13:45:59 +0200
committerJim Meyering <meyering@redhat.com>2010-04-07 13:45:59 +0200
commitbfffe408f8b375fd0989266bd8c01580be26d1a8 (patch)
tree622831c61c50bb0e5688cec6e48fe3f2118ddde7 /top
parent09623ecdfe4710cc9e89e6c7463f3bcc4027bfd8 (diff)
downloadgnulib-bfffe408f8b375fd0989266bd8c01580be26d1a8.tar.gz
maint.mk: add a PATH crosschecking syntax-check rule
* top/maint.mk (sc_cross_check_PATH_usage_in_tests): New rule. Useful if you use a test like the one in help-version (coreutils, diffutils, grep, gzip) that ensures $(VERSION) matches what is printed by prog --version.
Diffstat (limited to 'top')
-rw-r--r--top/maint.mk20
1 files changed, 20 insertions, 0 deletions
diff --git a/top/maint.mk b/top/maint.mk
index 3038680e3e..5854f9a2cd 100644
--- a/top/maint.mk
+++ b/top/maint.mk
@@ -849,6 +849,26 @@ sc_copyright_check:
halt='out of date copyright in $(texi); update it' \
$(_sc_search_regexp)
+# If tests/help-version exists and seems to be new enough, assume that its
+# use of init.sh and path_prepend_ is correct, and ensure that every other
+# use of init.sh is identical.
+# This is useful because help-version cross-checks prog --version
+# with $(VERSION), which verifies that its path_prepend_ invocation
+# sets PATH correctly. This is an inexpensive way to ensure that
+# the other init.sh-using tests also get it right.
+_hv_file ?= $(srcdir)/tests/help-version
+_hv_regex ?= ^ *\. [^ ]*/init\.sh
+sc_cross_check_PATH_usage_in_tests:
+ @if grep -l 'VERSION mismatch' $(_hv_file) >/dev/null \
+ && grep -lE '$(_hv_regex)' $(_hv_file) >/dev/null; then \
+ good=$$(grep -E '$(_hv_regex)' < $(_hv_file)); \
+ grep -LFx "$$good" \
+ $$(grep -lE '$(_hv_regex)' $$($(VC_LIST_EXCEPT))) \
+ | grep . && \
+ { echo "$(ME): the above files use path_prepend_ inconsistently" \
+ 1>&2; exit 1; } || :; \
+ fi
+
# #if HAVE_... will evaluate to false for any non numeric string.
# That would be flagged by using -Wundef, however gnulib currently
# tests many undefined macros, and so we can't enable that option.