docs: Add Makefile rule to check syntax of manpages.
authorBen Pfaff <blp@nicira.com>
Wed, 24 Aug 2011 17:45:32 +0000 (10:45 -0700)
committerBen Pfaff <blp@nicira.com>
Wed, 24 Aug 2011 19:42:52 +0000 (12:42 -0700)
This should catch future nroff syntax errors immediately, instead of much
later.

Makefile.am
configure.ac
lib/automake.mk
m4/openvswitch.m4
ofproto/automake.mk
ovsdb/automake.mk
utilities/automake.mk

index 91218e1..2090501 100644 (file)
@@ -45,7 +45,8 @@ EXTRA_DIST = \
        REPORTING-BUGS \
        SubmittingPatches \
        WHY-OVS \
-       boot.sh
+       boot.sh \
+       $(MAN_FRAGMENTS)
 bin_PROGRAMS =
 sbin_PROGRAMS =
 bin_SCRIPTS =
@@ -57,6 +58,7 @@ dist_sbin_SCRIPTS =
 dist_scripts_SCRIPTS =
 INSTALL_DATA_LOCAL =
 man_MANS =
+MAN_FRAGMENTS =
 noinst_DATA =
 noinst_HEADERS =
 noinst_LIBRARIES =
@@ -148,6 +150,17 @@ rate-limit-check:
            exit 1; \
         fi
 
+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"; \
+       done; \
+       LANG=en_US.UTF-8 groff -w mac -w delim -w escape -w input -w missing -w tab -T utf8 -man -p -z $$manpages && touch $@
+CLEANFILES += manpage-check
+endif
+
 dist-hook: $(DIST_HOOKS)
 all-local: $(ALL_LOCAL)
 clean-local: $(CLEAN_LOCAL)
index 492c7bc..e03946a 100644 (file)
@@ -67,6 +67,7 @@ OVS_CHECK_VALGRIND
 OVS_CHECK_SOCKET_LIBS
 OVS_CHECK_LINKER_SECTIONS
 OVS_CHECK_XENSERVER_VERSION
+OVS_CHECK_GROFF
 
 OVS_ENABLE_OPTION([-Wall])
 OVS_ENABLE_OPTION([-Wno-sign-compare])
index d55465b..2f5b5fd 100644 (file)
@@ -236,7 +236,7 @@ EXTRA_DIST += \
        lib/dh4096.pem \
        lib/dirs.c.in
 
-EXTRA_DIST += \
+MAN_FRAGMENTS += \
        lib/common.man \
        lib/common-syn.man \
        lib/daemon.man \
index e9edc49..7aaf67a 100644 (file)
@@ -361,3 +361,15 @@ AC_DEFUN([OVS_CHECK_LINKER_SECTIONS],
    fi
    AM_CONDITIONAL(
      [USE_LINKER_SECTIONS], [test $ovs_cv_use_linker_sections = yes])])
+
+dnl Checks for groff.
+AC_DEFUN([OVS_CHECK_GROFF],
+  [AC_CACHE_CHECK(
+    [for groff],
+    [ovs_cv_groff],
+    [if (groff -v) >/dev/null 2>&1; then
+       ovs_cv_groff=yes
+     else
+       ovs_cv_groff=no
+     fi])
+   AM_CONDITIONAL([HAVE_GROFF], [test "$ovs_cv_groff" = yes])])
index df83aef..ae35b7f 100644 (file)
@@ -29,4 +29,4 @@ ofproto_libofproto_a_SOURCES = \
        ofproto/pinsched.c \
        ofproto/pinsched.h
 
-EXTRA_DIST += ofproto/ofproto-unixctl.man
+MAN_FRAGMENTS += ofproto/ofproto-unixctl.man
index 5c9a8fb..39bc65f 100644 (file)
@@ -29,7 +29,7 @@ ovsdb_libovsdb_a_SOURCES = \
        ovsdb/trigger.h \
        ovsdb/transaction.c \
        ovsdb/transaction.h
-EXTRA_DIST += \
+MAN_FRAGMENTS += \
        ovsdb/remote-active.man \
        ovsdb/remote-passive.man
 
index dc731bf..2cfdf8e 100644 (file)
@@ -32,11 +32,11 @@ EXTRA_DIST += \
        utilities/ovs-save \
        utilities/ovs-tcpundump.1.in \
        utilities/ovs-tcpundump.in \
-       utilities/ovs-vlan-bugs.man \
        utilities/ovs-vlan-test.in \
        utilities/ovs-vlan-bug-workaround.8.in \
        utilities/ovs-vlan-test.8.in \
        utilities/ovs-vsctl.8.in
+MAN_FRAGMENTS += utilities/ovs-vlan-bugs.man
 DISTCLEANFILES += \
        utilities/ovs-appctl.8 \
        utilities/ovs-ctl \