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
)/build
/_.mk
12 include $(MAKEFILEDIR
)/configure
/build-depends
/coreutils.mk
13 include $(MAKEFILEDIR
)/configure
/build-depends
/grep.mk
14 include $(MAKEFILEDIR
)/configure
/build-depends
/mandoc.mk
15 include $(MAKEFILEDIR
)/lint
/_.mk
16 include $(MAKEFILEDIR
)/src.mk
19 mandoc_man_ignore_grep
:= $(DATAROOTDIR
)/lint
/mandoc
/man.ignore.grep
22 linters_man
:= mandoc tbl
25 $(foreach l
, $(linters_man
), \
26 $(eval _LINT_man_
$(l
) := \
27 $(patsubst $(MANDIR
)/%, $(_MANDIR
)/%.lint-man.
$(l
).touch
, \
31 $(_LINT_man_mandoc
): $(_MANDIR
)/%.lint-man.mandoc.touch
: $(MANDIR
)/% $(mandoc_man_ignore_grep
) $(MK
) |
$$(@D
)/
32 $(info LINT
(mandoc
) $@
)
33 ! ($(MANDOC
) -man
$(MANDOCFLAGS
) $< 2>&1 \
34 |
$(GREP
) -v
-f
'$(mandoc_man_ignore_grep)' \
40 $(_LINT_man_tbl
): $(_MANDIR
)/%.lint-man.tbl.touch
: $(MANDIR
)/% $(MK
) |
$$(@D
)/
41 $(info LINT
(tbl comment
) $@
)
42 if
$(GREP
) -q
'^\.TS$$' $< && ! $(HEAD
) -n1
$< |
$(GREP
) -q
'\\" t$$'; \
44 >&2 $(ECHO
) "$<:1: missing '\\\" t' comment:"; \
45 >&2 $(HEAD
) -n1
<$<; \
48 if
$(HEAD
) -n1
$< |
$(GREP
) -q
'\\" t$$' && ! $(GREP
) -q
'^\.TS$$' $<; \
50 >&2 $(ECHO
) "$<:1: spurious '\\\" t' comment:"; \
51 >&2 $(HEAD
) -n1
<$<; \
54 if
$(TAIL
) -n
+2 <$< |
$(GREP
) -q
'\\" t$$'; \
56 >&2 $(ECHO
) "$<: spurious '\\\" t' not in first line:"; \
57 >&2 $(GREP
) -n
'\\" t$$' $< /dev
/null
; \
63 $(foreach l
, $(linters_man
), \
64 $(eval .PHONY
: lint-man-
$(l
)))
65 $(foreach l
, $(linters_man
), \
66 $(eval lint-man-
$(l
): $(_LINT_man_
$(l
));))
68 lint-man
: $(foreach l
, $(linters_man
), lint-man-
$(l
));