]> git.proxmox.com Git - mirror_iproute2.git/commitdiff
Makefile: check manpages for syntax errors
authorLuca Boccassi <bluca@debian.org>
Sat, 12 Jan 2019 12:28:56 +0000 (12:28 +0000)
committerStephen Hemminger <stephen@networkplumber.org>
Mon, 14 Jan 2019 16:01:51 +0000 (08:01 -0800)
Pass the same parameters Lintian uses in Debian.

$ make check
<...>
Checking manpages for syntax errors...
<standard input>:48: warning: macro `Q' not defined
Error in tc-taprio.8
Makefile:27: recipe for target 'check' failed

Signed-off-by: Luca Boccassi <bluca@debian.org>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Makefile
man/Makefile
man/man3/Makefile
man/man7/Makefile
man/man8/Makefile

index a513cf38ae6949b4457796d085ab6d8ca227cd7a..48f469b0d0a85626b9ac2f36d61fece865c57737 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -115,6 +115,12 @@ distclean: clobber
 
 check: all
        cd testsuite && $(MAKE) && $(MAKE) alltests
+       @if command -v man >/dev/null 2>&1; then \
+               echo "Checking manpages for syntax errors..."; \
+               $(MAKE) -C man check; \
+       else \
+               echo "man not installed, skipping checks for syntax errors."; \
+       fi
 
 cscope:
        cscope -b -q -R -Iinclude -sip -slib -smisc -snetem -stc
index 6b095ee4664746c92e5ac86eb82e2f024fe522bd..0c759dd2f950eff293fcc67896d6c975911f080a 100644 (file)
@@ -2,14 +2,19 @@
 INSTALL=install
 INSTALLDIR=install -m 0755 -d
 INSTALLMAN=install -m 0644
+# Pass the same parameters as Lintian uses on Debian.
+MAN_CHECK=LC_ALL=en_US.UTF-8 MANROFFSEQ='' MANWIDTH=80 man --warnings \
+       --encoding=UTF-8 --local-file --troff-device=utf8 --ditroff
+# Hide man output, count and print errors.
+MAN_REDIRECT=2>&1 >/dev/null | tee /dev/fd/2 | wc -l
 
 SUBDIRS = man3 man7 man8
 
-all clean install:
+all clean install check:
        @for subdir in $(SUBDIRS); do $(MAKE) -C $$subdir $@ || exit $$?; done
 
 distclean: clean
 
-.PHONY: install clean distclean
+.PHONY: install clean distclean check
 
 .EXPORT_ALL_VARIABLES:
index e3d3e60782cadd42bfc659255cda52589bd08d21..1732be266155ef299ca406362a5c8afc3d738341 100644 (file)
@@ -11,4 +11,8 @@ install:
        $(INSTALLDIR) $(DESTDIR)$(MANDIR)/man3
        $(INSTALLMAN) $(MAN3PAGES) $(DESTDIR)$(MANDIR)/man3
 
-.PHONY: install clean distclean
+check:
+       @for page in $(MAN3PAGES); do test 0 -eq $$($(MAN_CHECK) $$page \
+               $(MAN_REDIRECT)) || { echo "Error in $$page"; exit 1; }; done
+
+.PHONY: install clean distclean check
index 1a8d521914cc1686acc56c2e83eb98754976f0b1..c0e545a149930bc8cf7b920ee77d9072068f1439 100644 (file)
@@ -11,4 +11,8 @@ install:
        $(INSTALLDIR) $(DESTDIR)$(MANDIR)/man7
        $(INSTALLMAN) $(MAN7PAGES) $(DESTDIR)$(MANDIR)/man7
 
-.PHONY: install clean distclean
+check:
+       @for page in $(MAN7PAGES); do test 0 -eq $$($(MAN_CHECK) $$page \
+               $(MAN_REDIRECT)) || { echo "Error in $$page"; exit 1; }; done
+
+.PHONY: install clean distclean check
index 932ba1f3c488f5aedd1a9eab170f1db230b26a74..0269e17406b713b3575262793c7a2772e84d3e3c 100644 (file)
@@ -23,4 +23,8 @@ install:
        $(INSTALLDIR) $(DESTDIR)$(MANDIR)/man8
        $(INSTALLMAN) $(MAN8PAGES) $(DESTDIR)$(MANDIR)/man8
 
-.PHONY: install clean distclean
+check: all
+       @for page in $(MAN8PAGES); do test 0 -eq $$($(MAN_CHECK) $$page \
+               $(MAN_REDIRECT)) || { echo "Error in $$page"; exit 1; }; done
+
+.PHONY: install clean distclean check