diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-08-29 17:37:35 +0200 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2012-08-30 15:22:00 +0200 |
commit | b842b88381ee4b73fcb356d841bcaa830efe12ee (patch) | |
tree | 72e746e89d605af6efa957b4529d747eb06624f1 /cfg.mk | |
parent | 44547edd7ca7db128df2666fbb3f080f205582db (diff) | |
download | coreutils-b842b88381ee4b73fcb356d841bcaa830efe12ee.tar.xz |
maint: move man-related syntax checks in cfg.mk
This is more natural, now that the top-level Makefile has access to
all the variables and rules once defined only in 'man/Makefile.am'
* man/local.mk (all_programs, sc_option_desc_uppercase,
sc_man_file_correlation check-x-vs-1, check-programs-vs-x): Move
from here ...
* cfg.mk: ... to here. Adjust some comments in the process.
Diffstat (limited to 'cfg.mk')
-rw-r--r-- | cfg.mk | 50 |
1 files changed, 45 insertions, 5 deletions
@@ -166,16 +166,56 @@ sc_long_lines: sed -e "s|^|$$file:|" -e '$(FILTER_LONG_LINES)'; \ done | grep . && { msg="$$halt" $(_sc_say_and_exit) } || : -# Option descriptions should not start with a capital letter +# Option descriptions should not start with a capital letter. # One could grep source directly as follows: # grep -E " {2,6}-.*[^.] [A-Z][a-z]" $$($(VC_LIST_EXCEPT) | grep '\.c$$') # but that would miss descriptions not on the same line as the -option. ALL_RECURSIVE_TARGETS += sc_option_desc_uppercase -sc_option_desc_uppercase: all_programs - -# Ensure all man/*.[1x] files are present +.PHONY: sc_option_desc_uppercase +sc_option_desc_uppercase: + @grep '^\\fB\\-' -A1 *.1 | LC_ALL=C grep '\.1.[A-Z][a-z]' && \ + { echo 1>&2 '$@: found initial capitals in --help'; \ + exit 1; } || :; +sc_option_desc_uppercase: $(dist_man1_MANS) \ + $(NO_INSTALL_PROGS_DEFAULT:%=%.1) \ + all_programs + +# Ensure all man/*.[1x] files are present. ALL_RECURSIVE_TARGETS += sc_man_file_correlation -sc_man_file_correlation: all_programs +.PHONY: sc_man_file_correlation +sc_man_file_correlation: check-x-vs-1 check-programs-vs-x + +# Ensure that for each .x file in the 'man/' subdirectory, there is a +# corresponding .1 file in the definition of $(dist_man1_MANS). +# But since that expansion usually lacks programs like arch and hostname, +# add them here manually. +.PHONY: check-x-vs-1 +check-x-vs-1: + @PATH=./src$(PATH_SEPARATOR)$$PATH; export PATH; \ + t=$@-t; \ + (cd $(srcdir)/man && ls -1 *.x) \ + | sed 's/\.x$$//' | $(ASSORT) > $$t; \ + (echo $(dist_man1_MANS) $(NO_INSTALL_PROGS_DEFAULT) \ + | tr -s ' ' '\n' | sed 's/\.1$$//') \ + | $(ASSORT) -u | diff - $$t || { rm $$t; exit 1; }; \ + rm $$t + +all_programs = \ + (cd ./src && MAKEFLAGS= $(MAKE) -s all_programs.list) \ + | grep -v '\[' + +# Ensure that for each .x file in the 'man/' subdirectory, there is a +# corresponding coreutils program. +.PHONY: check-programs-vs-x +check-programs-vs-x: all_programs + @status=0; \ + for p in dummy `$(all_programs)`; do \ + test $$p = dummy && continue; \ + test $$p = ginstall && p=install || : ; \ + test -f $(srcdir)/man/$$p.x \ + || { echo missing $$p.x 1>&2; status=1; }; \ + done; \ + exit $$status # Ensure that the end of each release's section is marked by two empty lines. sc_NEWS_two_empty_lines: |