1 ########################################################################
2 # Copyright 2021-2023, Alejandro Colomar <alx@kernel.org>
3 # SPDX-License-Identifier: GPL-3.0-or-later
4 ########################################################################
7 ifndef MAKEFILE_LINT_MAN_MAN_INCLUDED
8 MAKEFILE_LINT_MAN_MAN_INCLUDED
:= 1
11 include $(MAKEFILEDIR
)/cmd.mk
12 include $(MAKEFILEDIR
)/build
/_.mk
13 include $(MAKEFILEDIR
)/lint
/_.mk
14 include $(MAKEFILEDIR
)/lint
/man
/_.mk
15 include $(MAKEFILEDIR
)/src.mk
18 mandoc_man_ignore_grep
:= $(DATAROOTDIR
)/lint
/mandoc
/man.ignore.grep
21 linters_man
:= mandoc tbl
24 $(foreach l
, $(linters_man
), \
25 $(eval _LINT_man_
$(l
) := \
26 $(patsubst $(MANDIR
)/%, $(_MANDIR
)/%.lint-man.
$(l
).touch
, \
30 $(_LINT_man_mandoc
): $(_MANDIR
)/%.lint-man.mandoc.touch
: $(MANDIR
)/% $(mandoc_man_ignore_grep
) |
$$(@D
)/
31 $(info LINT
(mandoc
) $@
)
32 ! ($(MANDOC
) -man
$(MANDOCFLAGS
) $< 2>&1 \
33 |
$(GREP
) -v
-f
'$(mandoc_man_ignore_grep)' \
39 $(_LINT_man_tbl
): $(_MANDIR
)/%.lint-man.tbl.touch
: $(MANDIR
)/% |
$$(@D
)/
40 $(info LINT
(tbl comment
) $@
)
41 if
$(GREP
) -q
'^\.TS$$' $< && ! $(HEAD
) -n1
$< |
$(GREP
) -q
'\\" t$$'; \
43 >&2 $(ECHO
) "$<:1: missing '\\\" t' comment:"; \
44 >&2 $(HEAD
) -n1
<$<; \
47 if
$(HEAD
) -n1
$< |
$(GREP
) -q
'\\" t$$' && ! $(GREP
) -q
'^\.TS$$' $<; \
49 >&2 $(ECHO
) "$<:1: spurious '\\\" t' comment:"; \
50 >&2 $(HEAD
) -n1
<$<; \
53 if
$(TAIL
) -n
+2 <$< |
$(GREP
) -q
'\\" t$$'; \
55 >&2 $(ECHO
) "$<: spurious '\\\" t' not in first line:"; \
56 >&2 $(GREP
) -n
'\\" t$$' $< /dev
/null
; \
62 $(foreach l
, $(linters_man
), \
63 $(eval .PHONY
: lint-man-
$(l
)))
64 $(foreach l
, $(linters_man
), \
65 $(eval lint-man-
$(l
): $(_LINT_man_
$(l
));))
67 lint-man
: $(foreach l
, $(linters_man
), lint-man-
$(l
));