summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--maint.mk6
-rw-r--r--src/Makefile.am34
2 files changed, 8 insertions, 32 deletions
diff --git a/maint.mk b/maint.mk
index 8777a99af..5ef1fe62d 100644
--- 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.
diff --git a/src/Makefile.am b/src/Makefile.am
index 9aaf73979..be134be01 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -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.