summaryrefslogtreecommitdiffstats
path: root/share/mk/lint/mdoc
diff options
context:
space:
mode:
Diffstat (limited to 'share/mk/lint/mdoc')
-rw-r--r--share/mk/lint/mdoc/_.mk31
-rw-r--r--share/mk/lint/mdoc/mandoc.ignore.grep5
-rw-r--r--share/mk/lint/mdoc/mandoc.mk30
3 files changed, 66 insertions, 0 deletions
diff --git a/share/mk/lint/mdoc/_.mk b/share/mk/lint/mdoc/_.mk
new file mode 100644
index 0000000..0f51ee2
--- /dev/null
+++ b/share/mk/lint/mdoc/_.mk
@@ -0,0 +1,31 @@
+# Copyright 2023-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_LINT_MDOC_INCLUDED
+MAKEFILE_LINT_MDOC_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/build/_.mk
+include $(MAKEFILEDIR)/configure/directory_variables.mk
+include $(MAKEFILEDIR)/src.mk
+
+
+linters_mdoc := mandoc
+
+
+$(foreach l, $(linters_mdoc), \
+ $(eval _LINT_mdoc_$(l) := \
+ $(patsubst $(MANDIR)/%, $(_MANDIR)/%.lint-mdoc.$(l).touch, \
+ $(NONSO_MDOC))))
+
+
+$(foreach l, $(linters_mdoc), \
+ $(eval .PHONY: lint-mdoc-$(l)))
+$(foreach l, $(linters_mdoc), \
+ $(eval lint-mdoc-$(l): $(_LINT_mdoc_$(l));))
+.PHONY: lint-mdoc
+lint-mdoc: $(foreach l, $(linters_mdoc), lint-mdoc-$(l));
+
+
+endif # include guard
diff --git a/share/mk/lint/mdoc/mandoc.ignore.grep b/share/mk/lint/mdoc/mandoc.ignore.grep
new file mode 100644
index 0000000..4c73c59
--- /dev/null
+++ b/share/mk/lint/mdoc/mandoc.ignore.grep
@@ -0,0 +1,5 @@
+STYLE: legacy man(7) date format: Dd
+STYLE: lower case character in document title: Dt
+STYLE: operating system explicitly specified: Os
+STYLE: referenced manual not found: Xr
+WARNING: cross reference to self: Xr
diff --git a/share/mk/lint/mdoc/mandoc.mk b/share/mk/lint/mdoc/mandoc.mk
new file mode 100644
index 0000000..8b209b8
--- /dev/null
+++ b/share/mk/lint/mdoc/mandoc.mk
@@ -0,0 +1,30 @@
+# Copyright 2023-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_LINT_MDOC_MANDOC_INCLUDED
+MAKEFILE_LINT_MDOC_MANDOC_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/build/_.mk
+include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk
+include $(MAKEFILEDIR)/configure/build-depends/grep.mk
+include $(MAKEFILEDIR)/configure/build-depends/mandoc.mk
+include $(MAKEFILEDIR)/lint/mdoc/_.mk
+include $(MAKEFILEDIR)/src.mk
+
+
+mandoc_mdoc_ignore_grep := $(MAKEFILEDIR)/lint/mdoc/mandoc.ignore.grep
+
+
+$(_LINT_mdoc_mandoc): $(_MANDIR)/%.lint-mdoc.mandoc.touch: $(MANDIR)/% $(mandoc_mdoc_ignore_grep) | $$(@D)/
+ $(info $(INFO_)MANDOC $@)
+ ! ($(MANDOC) -mdoc $(MANDOCFLAGS) $< 2>&1 \
+ | $(GREP) -v -f '$(mandoc_mdoc_ignore_grep)' \
+ || $(TRUE); \
+ ) \
+ | $(GREP) ^ >&2
+ $(TOUCH) $@
+
+
+endif # include guard