summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Colomar <alx@kernel.org>2023-04-22 16:47:51 +0200
committerAlejandro Colomar <alx@kernel.org>2023-04-22 16:51:28 +0200
commitc76a587148d9b69667852311ece53403b1458844 (patch)
treeab65dd2a2cfee6b103d6c13307bbb65242ac6456
parent5f04f185dd551dfe4a0a8212b4f845938e552a2c (diff)
*.mk: lint, lint-mdoc, lint-mdoc-mandoc: Support mdoc(7) pages
Signed-off-by: Alejandro Colomar <alx@kernel.org>
-rw-r--r--Makefile12
-rw-r--r--share/mk/build/_.mk4
-rw-r--r--share/mk/lint/_.mk2
-rw-r--r--share/mk/lint/man/_.mk16
-rw-r--r--share/mk/lint/man/man.mk (renamed from share/mk/lint/man.mk)23
-rw-r--r--share/mk/lint/man/mdoc.mk45
6 files changed, 83 insertions, 19 deletions
diff --git a/Makefile b/Makefile
index 9f5fd84de..9f24c1adb 100644
--- a/Makefile
+++ b/Makefile
@@ -65,7 +65,7 @@ help:
$(info build-src-cc Compile C programs from EXAMPLES)
$(info build-src-ld Link C programs from EXAMPLES)
$(info )
- $(info lint Wrapper for "lint-c lint-man")
+ $(info lint Wrapper for "lint-c lint-man lint-mdoc")
$(info lint-c Wrapper for lint-c-* targets)
$(info lint-c-checkpatch Lint C programs from EXAMPLES with checkpatch(1))
$(info lint-c-clang-tidy Lint C programs from EXAMPLES with clang-tidy(1))
@@ -73,8 +73,10 @@ help:
$(info lint-c-cpplint Lint C programs from EXAMPLES with cpplint(1))
$(info lint-c-iwyu Lint C programs from EXAMPLES with iwyu(1))
$(info lint-man Wrapper for lint-man-* targets)
- $(info lint-man-mandoc Lint man pages with mandoc(1))
- $(info lint-man-tbl Lint man pages about '\" t' comment for tbl(1))
+ $(info lint-man-mandoc Lint man(7) pages with mandoc(1))
+ $(info lint-man-tbl Lint man(7) pages about '\" t' comment for tbl(1))
+ $(info lint-mdoc Wrapper for lint-mdoc-* targets)
+ $(info lint-mdoc-mandoc Lint mdoc(7) pages with mandoc(1))
$(info )
$(info check Alias for "check-catman")
$(info check-catman Check cat pages; alias for "check-catman-grep")
@@ -125,7 +127,9 @@ include $(MAKEFILEDIR)/install/html.mk
include $(MAKEFILEDIR)/install/man.mk
include $(MAKEFILEDIR)/lint/_.mk
include $(MAKEFILEDIR)/lint/c.mk
-include $(MAKEFILEDIR)/lint/man.mk
+include $(MAKEFILEDIR)/lint/man/_.mk
+include $(MAKEFILEDIR)/lint/man/man.mk
+include $(MAKEFILEDIR)/lint/man/mdoc.mk
include $(MAKEFILEDIR)/verbose.mk
diff --git a/share/mk/build/_.mk b/share/mk/build/_.mk
index 0bd4c949c..bcdba6062 100644
--- a/share/mk/build/_.mk
+++ b/share/mk/build/_.mk
@@ -27,6 +27,10 @@ NONSO_MAN := $(shell $(FIND) $(MANDIR)/man*/ -type f \
| $(GREP) '$(MANEXT)' \
| $(XARGS) $(GREP) -l '^\.TH ' \
| $(SORT))
+NONSO_MDOC := $(shell $(FIND) $(MANDIR)/man*/ -type f \
+ | $(GREP) '$(MANEXT)' \
+ | $(XARGS) $(GREP) -l '^\.Dt ' \
+ | $(SORT))
_MANDIRS := $(patsubst $(MANDIR)/%,$(_MANDIR)/%/,$(MANDIRS))
diff --git a/share/mk/lint/_.mk b/share/mk/lint/_.mk
index c81f283da..56d8d2359 100644
--- a/share/mk/lint/_.mk
+++ b/share/mk/lint/_.mk
@@ -8,7 +8,7 @@ ifndef MAKEFILE_LINT_INCLUDED
MAKEFILE_LINT_INCLUDED := 1
-lint := lint-c lint-man
+lint := lint-c lint-man lint-mdoc
.PHONY: lint
diff --git a/share/mk/lint/man/_.mk b/share/mk/lint/man/_.mk
new file mode 100644
index 000000000..17c3a0bbd
--- /dev/null
+++ b/share/mk/lint/man/_.mk
@@ -0,0 +1,16 @@
+########################################################################
+# Copyright 2021-2023, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: GPL-3.0-or-later OR LGPL-3.0-or-later
+########################################################################
+
+
+ifndef MAKEFILE_LINT_MAN_INCLUDED
+MAKEFILE_LINT_MAN_INCLUDED := 1
+
+
+DEFAULT_MANDOCFLAGS := -Tlint
+EXTRA_MANDOCFLAGS :=
+MANDOCFLAGS := $(DEFAULT_MANDOCFLAGS) $(EXTRA_MANDOCFLAGS)
+
+
+endif # MAKEFILE_LINT_MAN_INCLUDED
diff --git a/share/mk/lint/man.mk b/share/mk/lint/man/man.mk
index c696e2df0..4e9512ed9 100644
--- a/share/mk/lint/man.mk
+++ b/share/mk/lint/man/man.mk
@@ -1,27 +1,22 @@
########################################################################
-# Copyright (C) 2021 - 2023 Alejandro Colomar <alx@kernel.org>
-# SPDX-License-Identifier: GPL-3.0-or-later OR LGPL-3.0-or-later
+# Copyright 2021-2023, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: GPL-3.0-or-later OR LGPL-3.0-or-later
########################################################################
-ifndef MAKEFILE_LINT_MAN_INCLUDED
-MAKEFILE_LINT_MAN_INCLUDED := 1
+ifndef MAKEFILE_LINT_MAN_MAN_INCLUDED
+MAKEFILE_LINT_MAN_MAN_INCLUDED := 1
include $(MAKEFILEDIR)/cmd.mk
include $(MAKEFILEDIR)/build/_.mk
include $(MAKEFILEDIR)/lint/_.mk
+include $(MAKEFILEDIR)/lint/man/_.mk
include $(MAKEFILEDIR)/src.mk
-DEFAULT_MANDOCFLAGS := -man
-DEFAULT_MANDOCFLAGS += -Tlint
-EXTRA_MANDOCFLAGS :=
-MANDOCFLAGS := $(DEFAULT_MANDOCFLAGS) $(EXTRA_MANDOCFLAGS)
-
-
-_LINT_man_mandoc:=$(patsubst $(MANDIR)/%,$(_MANDIR)/%.lint-man.mandoc.touch,$(NONSO_MAN))
-_LINT_man_tbl :=$(patsubst $(MANDIR)/%,$(_MANDIR)/%.lint-man.tbl.touch,$(NONSO_MAN))
+_LINT_man_mandoc :=$(patsubst $(MANDIR)/%,$(_MANDIR)/%.lint-man.mandoc.touch,$(NONSO_MAN))
+_LINT_man_tbl :=$(patsubst $(MANDIR)/%,$(_MANDIR)/%.lint-man.tbl.touch,$(NONSO_MAN))
linters_man := mandoc tbl
@@ -30,7 +25,7 @@ lint_man := $(foreach x,$(linters_man),lint-man-$(x))
$(_LINT_man_mandoc): $(_MANDIR)/%.lint-man.mandoc.touch: $(MANDIR)/% | $$(@D)/
$(info LINT (mandoc) $@)
- ! ($(MANDOC) $(MANDOCFLAGS) $< 2>&1 \
+ ! ($(MANDOC) -man $(MANDOCFLAGS) $< 2>&1 \
| $(GREP) -v 'STYLE: lower case character in document title:' \
| $(GREP) -v 'UNSUPP: ignoring macro in table:' \
| $(GREP) -v 'WARNING: cannot parse date, using it verbatim: TH (date)' \
@@ -74,4 +69,4 @@ lint-man: $(lint_man)
@:
-endif # MAKEFILE_LINT_MAN_INCLUDED
+endif # MAKEFILE_LINT_MAN_MAN_INCLUDED
diff --git a/share/mk/lint/man/mdoc.mk b/share/mk/lint/man/mdoc.mk
new file mode 100644
index 000000000..0982f42cb
--- /dev/null
+++ b/share/mk/lint/man/mdoc.mk
@@ -0,0 +1,45 @@
+########################################################################
+# Copyright 2023, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: GPL-3.0-or-later OR LGPL-3.0-or-later
+########################################################################
+
+
+ifndef MAKEFILE_LINT_MAN_MDOC_INCLUDED
+MAKEFILE_LINT_MAN_MDOC_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/cmd.mk
+include $(MAKEFILEDIR)/build/_.mk
+include $(MAKEFILEDIR)/lint/_.mk
+include $(MAKEFILEDIR)/lint/man/_.mk
+include $(MAKEFILEDIR)/src.mk
+
+
+_LINT_mdoc_mandoc:=$(patsubst $(MANDIR)/%,$(_MANDIR)/%.lint-mdoc.mandoc.touch,$(NONSO_MDOC))
+
+
+linters_mdoc := mandoc
+lint_mdoc := $(foreach x,$(linters_mdoc),lint-mdoc-$(x))
+
+
+$(_LINT_mdoc_mandoc): $(_MANDIR)/%.lint-mdoc.mandoc.touch: $(MANDIR)/% | $$(@D)/
+ $(info LINT (mandoc) $@)
+ ! ($(MANDOC) -mdoc $(MANDOCFLAGS) $< 2>&1 \
+ | $(GREP) -v 'STYLE: operating system explicitly specified: Os ' \
+ | $(GREP) -v 'WARNING: cross reference to self: Xr ' \
+ ||:; \
+ ) \
+ | $(GREP) '.' >&2
+ touch $@
+
+
+.PHONY: $(lint_mdoc)
+$(lint_mdoc): lint-mdoc-%: $$(_LINT_mdoc_%)
+ @:
+
+.PHONY: lint-mdoc
+lint-mdoc: $(lint_mdoc)
+ @:
+
+
+endif # MAKEFILE_LINT_MAN_MDOC_INCLUDED