maint.mk: makefile_at_at_check extend and clean up
authorJim Meyering <meyering@redhat.com>
Mon, 25 Apr 2011 08:24:20 +0000 (10:24 +0200)
committerJim Meyering <meyering@redhat.com>
Mon, 25 Apr 2011 08:24:31 +0000 (10:24 +0200)
* top/maint.mk (sc_makefile_at_at_check): Check *.mk files
in addition to */Makefile.am.
Exempt legitimate uses of @VAR@ notation, e.g.,
MAKEINFO = env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= @MAKEINFO@
Remove obsolete coreutils-specific comment.
Prompted by discussion here:
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/26074

ChangeLog
top/maint.mk

index c9aa54d86f58ffa2d9901ef0773f67e002c9fcc4..65ed4a015fdb6fe8d67c7a42611ddaafebb5f1a8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2011-04-25  Jim Meyering  <meyering@redhat.com>
+
+       maint.mk: makefile_at_at_check extend and clean up
+       * top/maint.mk (sc_makefile_at_at_check): Check *.mk files
+       in addition to */Makefile.am.
+       Exempt legitimate uses of @VAR@ notation, e.g.,
+       MAKEINFO = env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= @MAKEINFO@
+       Remove obsolete coreutils-specific comment.
+       Prompted by discussion here:
+       http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/26074
+
 2011-04-24  Paul Eggert  <eggert@cs.ucla.edu>
 
        strtoul: remove dependency on strtol
index 07a7773b9fe7b73400bd724c1922f5aecd32e495..47cb44ee2686988fbacb6b74b9e678f246f05880 100644 (file)
@@ -942,16 +942,23 @@ update-NEWS-hash: NEWS
 # Ensure that we use only the standard $(VAR) notation,
 # not @...@ in Makefile.am, now that we can rely on automake
 # to emit a definition for each substituted variable.
-# We use perl rather than "grep -nE ..." to exempt a single
-# use of an @...@-delimited variable name in src/Makefile.am.
+# However, there is still one case in which @VAR@ use is not just
+# legitimate, but actually required: when augmenting an automake-defined
+# variable with a prefix.  For example, gettext uses this:
+# MAKEINFO = env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= @MAKEINFO@
+# otherwise, makeinfo would put German or French (current locale)
+# navigation hints in the otherwise-English documentation.
+#
 # Allow the package to add exceptions via a hook in cfg.mk;
 # for example, @PRAGMA_SYSTEM_HEADER@ can be permitted by
 # setting this to ' && !/PRAGMA_SYSTEM_HEADER/'.
 _makefile_at_at_check_exceptions ?=
 sc_makefile_at_at_check:
-       @perl -ne '/\@[A-Z_0-9]+\@/'$(_makefile_at_at_check_exceptions) \
+       @perl -ne '/\@[A-Z_0-9]+\@/'                                    \
+          -e ' && !/([A-Z_0-9]+)\s+=.*\@\1\@$$/'                       \
+          -e ''$(_makefile_at_at_check_exceptions)                     \
          -e 'and (print "$$ARGV:$$.: $$_"), $$m=1; END {exit !$$m}'    \
-           $$($(VC_LIST_EXCEPT) | grep -E '(^|/)Makefile\.am$$')       \
+           $$($(VC_LIST_EXCEPT) | grep -E '(^|/)(Makefile\.am|[^/]+\.mk)$$') \
          && { echo '$(ME): use $$(...), not @...@' 1>&2; exit 1; } || :
 
 news-check: NEWS