avoid parallel "make distcheck" failure due to two run-in-src/ rules
authorJim Meyering <meyering@redhat.com>
Thu, 23 Apr 2009 06:21:38 +0000 (08:21 +0200)
committerJim Meyering <meyering@redhat.com>
Thu, 23 Apr 2009 19:01:52 +0000 (21:01 +0200)
Move the check-AUTHORS rule from "syntax-check" to "check".
* maint.mk (local-checks-available): Remove check-AUTHORS.
(check-AUTHORS): Remove rule.
* src/Makefile.am (CLEANFILES): Add $(no_install__progs),
since they too are built sometimes.
(check-AUTHORS): Split a longer-than-80 sed command.
(../AUTHORS): Remove obsolete rule.

maint.mk
src/Makefile.am

index 8777a99..5ef1fe6 100644 (file)
--- a/maint.mk
+++ b/maint.mk
@@ -73,7 +73,7 @@ syntax-check-rules := $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' \
 
 local-checks-available = \
   $(syntax-check-rules) \
-  makefile-check check-AUTHORS
+  makefile-check
 .PHONY: $(local-checks-available)
 
 # Arrange to print the name of each syntax-checking rule just before running it.
@@ -483,10 +483,6 @@ update-NEWS-hash: NEWS
        perl -pi -e 's/^(old_NEWS_hash = ).*/$${1}'"$(NEWS_hash)/" \
          $(srcdir)/cfg.mk
 
-ALL_RECURSIVE_TARGETS += check-AUTHORS
-check-AUTHORS:
-       $(MAKE) -C src $@
-
 # 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.
index 9aaf739..be134be 100644 (file)
@@ -69,6 +69,10 @@ EXTRA_DIST = dcgen dircolors.hin tac-pipe.c \
 BUILT_SOURCES =
 CLEANFILES = $(SCRIPTS) su
 
+# Also remove these sometimes-built programs.
+# For example, even when excluded, they're built via check-AUTHORS.
+CLEANFILES += $(no_install__progs)
+
 AM_CPPFLAGS = -I$(top_srcdir)/lib
 
 noinst_LIBRARIES = libver.a
@@ -359,7 +363,7 @@ pm = progs-makefile
 pr = progs-readme
 # Ensure that the list of programs in README matches the list
 # of programs we can build.
-check: check-README check-duplicate-no-install
+check: check-README check-duplicate-no-install check-AUTHORS
 .PHONY: check-README
 check-README:
        rm -rf $(pr) $(pm)
@@ -394,36 +398,12 @@ check-AUTHORS: $(all_programs)
          fi;                                           \
          LC_ALL=en_US.UTF-8 ./$$exe --version          \
            | perl -0 -pi -e 's/,\n/, /gm'              \
-           |sed -n '/Written by /{ s//'"$$i"': /; s/,* and /, /; s/\.$$//; p; }'; \
+           | sed -n -e '/Written by /{ s//'"$$i"': /;' \
+                 -e 's/,* and /, /; s/\.$$//; p; }';   \
        done > $(au_actual)
        @sed -n '/^[^ ][^ ]*:/p' $(top_srcdir)/AUTHORS > $(au_dotdot)
        @diff $(au_actual) $(au_dotdot) && rm -f $(au_actual) $(au_dotdot)
 
-# Extract the list of authors from each file.
-sed_filter = s/^ *//;s/N_ (//;s/^"//;s/")*$$//
-# Sometimes the string is on the same line as the #define...
-s1 = '/^\#define AUTHORS \([^\\]\)/{;s//\1/;$(sed_filter);p;q;}'
-# Sometimes the string is on the backslash-continued line after the #define.
-s2 = '/^\#define AUTHORS \\\\/{;n;$(sed_filter);p;q;}'
-../AUTHORS: $(SOURCES)
-       rm -f $@-t
-       (                                               \
-         set -e;                                       \
-         echo "Here are the names of the programs in this package,";   \
-         echo "each followed by the name(s) of its author(s).";        \
-         echo;                                         \
-         for i in $(SOURCES); do                       \
-           a=`sed -n $(s1) $$i`;                       \
-           test "$$a" && :                             \
-             || a=`sed -n $(s2) $$i`;                  \
-           if test "$$a"; then                         \
-             prog=`echo $$i|sed 's/\.c$$//'`;          \
-             echo "$$prog: $$a";                       \
-           fi;                                         \
-         done | $(ASSORT) -u ) > $@-t
-       chmod a-w $@-t
-       mv $@-t $@
-
 # The following rule is not designed to be portable,
 # and relies on tools that not everyone has.