Improve manpage checking rule.
authorBen Pfaff <blp@nicira.com>
Wed, 26 Oct 2011 23:11:32 +0000 (16:11 -0700)
committerBen Pfaff <blp@nicira.com>
Wed, 26 Oct 2011 23:11:32 +0000 (16:11 -0700)
The coverage of the previous version of this rule was incomplete because
$(MANS) does not include $(noinst_man_MANS).   (Also, $(MANS) is
undocumented.)  Writing it out as the list of manpages variables that
Open vSwitch uses is better.

Also, the previous version of the rule didn't actually signal an error
when warnings appeared.  It looks like troff doesn't have a way to indicate
warnings as part of its exit status, so instead we grep the output for
"warning".

Makefile.am

index d7144282dd30ce4056815f36cef6c7f10b086dab..401d23ad6341b6c93e8e6e8588eb19b905f3c208 100644 (file)
@@ -154,12 +154,14 @@ rate-limit-check:
 
 if HAVE_GROFF
 ALL_LOCAL += manpage-check
-manpage-check: $(MANS) $(MAN_FRAGMENTS)
-       @manpages=; \
-       for d in $(MANS); do \
-               manpages="$$manpages `test -f $$d || echo $(VPATH)/`$$d"; \
+manpage-check: $(man_MANS) $(dist_man_MANS) $(noinst_man_MANS)
+       @error=false; \
+       for manpage in $?; do \
+               LANG=en_US.UTF-8 groff -w mac -w delim -w escape -w input -w missing -w tab -T ascii -man -p -z $$manpage >$@.tmp 2>&1; \
+               if grep warning: $@.tmp; then error=:; fi; \
+               rm -f $@.tmp; \
        done; \
-       LANG=en_US.UTF-8 groff -w mac -w delim -w escape -w input -w missing -w tab -T ascii -man -p -z $$manpages && touch $@
+       if $$error; then exit 1; else echo touch $@; touch $@; fi
 CLEANFILES += manpage-check
 endif