]> git.ipfire.org Git - thirdparty/man-pages.git/commitdiff
share/mk/: Reorganize build system
authorAlejandro Colomar <alx@kernel.org>
Wed, 14 Feb 2024 13:22:29 +0000 (14:22 +0100)
committerAlejandro Colomar <alx@kernel.org>
Sat, 17 Feb 2024 01:38:31 +0000 (02:38 +0100)
Signed-off-by: Alejandro Colomar <alx@kernel.org>
53 files changed:
GNUmakefile
share/mk/build/_.mk
share/mk/build/catman.mk [deleted file]
share/mk/build/catman/_.mk [new file with mode: 0644]
share/mk/build/catman/eqn.mk [new file with mode: 0644]
share/mk/build/catman/grotty.mk [new file with mode: 0644]
share/mk/build/catman/troff.mk [new file with mode: 0644]
share/mk/build/examples/_.mk [new file with mode: 0644]
share/mk/build/examples/cc.mk [new file with mode: 0644]
share/mk/build/examples/ld.mk [new file with mode: 0644]
share/mk/build/examples/src.mk [new file with mode: 0644]
share/mk/build/pdf.mk [deleted file]
share/mk/build/pdf/_.mk [new file with mode: 0644]
share/mk/build/pdf/eqn.mk [new file with mode: 0644]
share/mk/build/pdf/gropdf.mk [new file with mode: 0644]
share/mk/build/pdf/troff.mk [new file with mode: 0644]
share/mk/build/pre.mk [deleted file]
share/mk/build/pre/_.mk [new file with mode: 0644]
share/mk/build/pre/preconv.mk [new file with mode: 0644]
share/mk/build/pre/tbl.mk [new file with mode: 0644]
share/mk/build/ps/_.mk [new file with mode: 0644]
share/mk/build/ps/eqn.mk [new file with mode: 0644]
share/mk/build/ps/grops.mk [new file with mode: 0644]
share/mk/build/ps/troff.mk [moved from share/mk/build/ps.mk with 50% similarity]
share/mk/build/src.mk [deleted file]
share/mk/check/_.mk
share/mk/check/catman.mk [deleted file]
share/mk/check/catman/_.mk [new file with mode: 0644]
share/mk/check/catman/col.mk [new file with mode: 0644]
share/mk/check/catman/grep.mk [new file with mode: 0644]
share/mk/configure/build-depends/coreutils.mk
share/mk/dist.mk [deleted file]
share/mk/dist/_.mk [new file with mode: 0644]
share/mk/dist/files.mk [new file with mode: 0644]
share/mk/dist/tar.mk [new file with mode: 0644]
share/mk/dist/z.mk [new file with mode: 0644]
share/mk/install/_.mk
share/mk/install/html.mk
share/mk/install/man.mk
share/mk/lint/_.mk
share/mk/lint/c.mk [deleted file]
share/mk/lint/c/_.mk [new file with mode: 0644]
share/mk/lint/c/checkpatch.mk [new file with mode: 0644]
share/mk/lint/c/clang-tidy.mk [new file with mode: 0644]
share/mk/lint/c/cppcheck.mk [new file with mode: 0644]
share/mk/lint/c/cpplint.mk [new file with mode: 0644]
share/mk/lint/c/iwyu.mk [new file with mode: 0644]
share/mk/lint/man/_.mk [new file with mode: 0644]
share/mk/lint/man/man.mk [deleted file]
share/mk/lint/man/mandoc.mk [new file with mode: 0644]
share/mk/lint/man/tbl.mk [new file with mode: 0644]
share/mk/lint/mdoc/_.mk [moved from share/mk/lint/man/mdoc.mk with 59% similarity]
share/mk/lint/mdoc/mandoc.mk [new file with mode: 0644]

index 84d41551244fc2e6f2be3aa4ffcd55db6f8c3943..a7382b562bdb56d542abb406a4b420291767bd26 100644 (file)
@@ -108,10 +108,11 @@ help:
        $(info  )
        $(info  dist                    Wrapper for dist-* targets)
        $(info  dist-tar                Create a tarball of the repository)
-       $(info  dist-bz2                Create a compressed tarball (.tar.bz2))
-       $(info  dist-gz                 Create a compressed tarball (.tar.gz))
-       $(info  dist-lz                 Create a compressed tarball (.tar.lz))
-       $(info  dist-xz                 Create a compressed tarball (.tar.xz))
+       $(info  dist-z                  Wrapper for dist-z-* targets)
+       $(info  dist-z-bz2              Create a compressed tarball (.tar.bz2))
+       $(info  dist-z-gz               Create a compressed tarball (.tar.gz))
+       $(info  dist-z-lz               Create a compressed tarball (.tar.lz))
+       $(info  dist-z-xz               Create a compressed tarball (.tar.xz))
        $(info  )
        $(info  help                    Print this help)
        $(info  help-variables          Print all variables available, and their default values)
index 7dae6f70ab9f45b695c2839cf0b150be6f294ccd..91fbb6827744775c1f3533d514bfb1325fe659e7 100644 (file)
@@ -16,7 +16,7 @@ _MANDIR := $(builddir)/man
 
 
 .PHONY: build
-build: build-book build-catman build-html build-pdf build-ps build-src;
+build: build-book build-catman build-html build-pdf build-ps build-ex;
 
 .PHONY: clean
 clean:
diff --git a/share/mk/build/catman.mk b/share/mk/build/catman.mk
deleted file mode 100644 (file)
index 2e6cdcb..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-########################################################################
-# Copyright 2021-2023, Alejandro Colomar <alx@kernel.org>
-# SPDX-License-Identifier: GPL-3.0-or-later
-########################################################################
-
-
-ifndef MAKEFILE_BUILD_CATMAN_INCLUDED
-MAKEFILE_BUILD_CATMAN_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/groff-base.mk
-include $(MAKEFILEDIR)/src.mk
-
-
-groff_man_ignore_grep := $(DATAROOTDIR)/lint/groff/man.ignore.grep
-
-
-_CATMAN_troff   := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.cat.troff,$(NONSO_MAN) $(NONSO_MDOC))
-_CATMAN_MAN_set := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.cat.set,$(NONSO_MAN))
-_CATMAN_MDOC_set:= $(patsubst $(MANDIR)/%,$(_MANDIR)/%.cat.set,$(NONSO_MDOC))
-_CATMAN         := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.cat,$(NONSO_MAN) $(NONSO_MDOC))
-
-
-$(_CATMAN_troff): %.cat.troff: %.eqn $(MK) | $$(@D)/
-       $(info  EQN     $@)
-       ! ($(EQN) -T$(NROFF_OUT_DEVICE) $(EQNFLAGS) <$< 2>&1 >$@) \
-       | $(GREP) ^ >&2
-
-$(_CATMAN_MAN_set): %.cat.set: %.cat.troff $(groff_man_ignore_grep) $(MK) | $$(@D)/
-       $(info  TROFF   $@)
-       ! ($(TROFF) -man $(TROFFFLAGS) $(NROFFFLAGS) <$< 2>&1 >$@ \
-          | $(GREP) -v -f '$(groff_man_ignore_grep)' \
-          ||:; \
-       ) \
-       | $(GREP) ^ >&2
-
-$(_CATMAN_MDOC_set): %.cat.set: %.cat.troff $(MK) | $$(@D)/
-       $(info  TROFF   $@)
-       ! ($(TROFF) -mdoc $(TROFFFLAGS) $(NROFFFLAGS) <$< 2>&1 >$@) \
-       | $(GREP) ^ >&2
-
-$(_CATMAN): %.cat: %.cat.set $(MK) | $$(@D)/
-       $(info  GROTTY  $@)
-       $(GROTTY) $(GROTTYFLAGS) <$< >$@
-
-
-.PHONY: build-catman-eqn
-build-catman-eqn: $(_CATMAN_troff);
-
-.PHONY: build-catman-troff-man
-build-catman-troff-man: $(_CATMAN_MAN_set);
-
-.PHONY: build-catman-troff-mdoc
-build-catman-troff-mdoc: $(_CATMAN_MDOC_set);
-
-.PHONY: build-catman-troff
-build-catman-troff: build-catman-troff-man build-catman-troff-mdoc;
-
-.PHONY: build-catman-grotty
-build-catman-grotty: $(_CATMAN);
-
-.PHONY: build-catman
-build-catman: build-catman-grotty;
-
-
-endif  # include guard
diff --git a/share/mk/build/catman/_.mk b/share/mk/build/catman/_.mk
new file mode 100644 (file)
index 0000000..78aa862
--- /dev/null
@@ -0,0 +1,13 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_BUILD_CATMAN_INCLUDED
+MAKEFILE_BUILD_CATMAN_INCLUDED := 1
+
+
+.PHONY: build-catman
+build-catman: build-catman-grotty;
+
+
+endif  # include guard
diff --git a/share/mk/build/catman/eqn.mk b/share/mk/build/catman/eqn.mk
new file mode 100644 (file)
index 0000000..3730366
--- /dev/null
@@ -0,0 +1,27 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_BUILD_CATMAN_EQN_INCLUDED
+MAKEFILE_BUILD_CATMAN_EQN_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/build/pre/tbl.mk
+include $(MAKEFILEDIR)/configure/build-depends/grep.mk
+include $(MAKEFILEDIR)/configure/build-depends/groff-base.mk
+
+
+_CATMAN_troff := $(patsubst %.eqn,%.cat.troff,$(_MAN_eqn))
+
+
+$(_CATMAN_troff): %.cat.troff: %.eqn $(MK) | $$(@D)/
+       $(info  EQN     $@)
+       ! ($(EQN) -T$(NROFF_OUT_DEVICE) $(EQNFLAGS) <$< 2>&1 >$@) \
+       | $(GREP) ^ >&2
+
+
+.PHONY: build-catman-eqn
+build-catman-eqn: $(_CATMAN_troff);
+
+
+endif  # include guard
diff --git a/share/mk/build/catman/grotty.mk b/share/mk/build/catman/grotty.mk
new file mode 100644 (file)
index 0000000..da4a2d2
--- /dev/null
@@ -0,0 +1,25 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_BUILD_CATMAN_GROTTY_INCLUDED
+MAKEFILE_BUILD_CATMAN_GROTTY_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/build/catman/troff.mk
+include $(MAKEFILEDIR)/configure/build-depends/groff-base.mk
+
+
+_CATMAN := $(patsubst %.cat.set,%.cat,$(_CATMAN_MAN_set) $(_CATMAN_MDOC_set))
+
+
+$(_CATMAN): %.cat: %.cat.set $(MK) | $$(@D)/
+       $(info  GROTTY  $@)
+       $(GROTTY) $(GROTTYFLAGS) <$< >$@
+
+
+.PHONY: build-catman-grotty
+build-catman-grotty: $(_CATMAN);
+
+
+endif  # include guard
diff --git a/share/mk/build/catman/troff.mk b/share/mk/build/catman/troff.mk
new file mode 100644 (file)
index 0000000..cbfe766
--- /dev/null
@@ -0,0 +1,47 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_BUILD_CATMAN_TROFF_INCLUDED
+MAKEFILE_BUILD_CATMAN_TROFF_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/build/_.mk
+include $(MAKEFILEDIR)/configure/build-depends/grep.mk
+include $(MAKEFILEDIR)/configure/build-depends/groff-base.mk
+include $(MAKEFILEDIR)/configure/src.mk
+include $(MAKEFILEDIR)/src.mk
+
+
+groff_man_ignore_grep := $(DATAROOTDIR)/lint/groff/man.ignore.grep
+
+
+_CATMAN_MAN_set  := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.cat.set,$(NONSO_MAN))
+_CATMAN_MDOC_set := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.cat.set,$(NONSO_MDOC))
+
+
+$(_CATMAN_MAN_set): %.cat.set: %.cat.troff $(groff_man_ignore_grep) $(MK) | $$(@D)/
+       $(info  TROFF   $@)
+       ! ($(TROFF) -man $(TROFFFLAGS) $(NROFFFLAGS) <$< 2>&1 >$@ \
+          | $(GREP) -v -f '$(groff_man_ignore_grep)' \
+          ||:; \
+       ) \
+       | $(GREP) ^ >&2
+
+$(_CATMAN_MDOC_set): %.cat.set: %.cat.troff $(MK) | $$(@D)/
+       $(info  TROFF   $@)
+       ! ($(TROFF) -mdoc $(TROFFFLAGS) $(NROFFFLAGS) <$< 2>&1 >$@) \
+       | $(GREP) ^ >&2
+
+
+.PHONY: build-catman-troff-man
+build-catman-troff-man: $(_CATMAN_MAN_set);
+
+.PHONY: build-catman-troff-mdoc
+build-catman-troff-mdoc: $(_CATMAN_MDOC_set);
+
+.PHONY: build-catman-troff
+build-catman-troff: build-catman-troff-man build-catman-troff-mdoc;
+
+
+endif  # include guard
diff --git a/share/mk/build/examples/_.mk b/share/mk/build/examples/_.mk
new file mode 100644 (file)
index 0000000..96de0a3
--- /dev/null
@@ -0,0 +1,28 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_BUILD_EX_DIR_INCLUDED
+MAKEFILE_BUILD_EX_DIR_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/build/_.mk
+include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk
+include $(MAKEFILEDIR)/configure/src.mk
+include $(MAKEFILEDIR)/src.mk
+
+
+_PAGEEXDIRS := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.d/,$(NONSO_MAN))
+
+
+$(_PAGEEXDIRS):
+       +$(info MKDIR   $@)
+       +$(MKDIR) -p $@
+       +$(TOUCH) $@
+
+
+.PHONY: build-ex
+build-ex: build-ex-ld;
+
+
+endif  # include guard
diff --git a/share/mk/build/examples/cc.mk b/share/mk/build/examples/cc.mk
new file mode 100644 (file)
index 0000000..edadf22
--- /dev/null
@@ -0,0 +1,26 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_BUILD_EX_CC_INCLUDED
+MAKEFILE_BUILD_EX_CC_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/build/examples/src.mk
+include $(MAKEFILEDIR)/configure/build-depends/cc.mk
+include $(MAKEFILEDIR)/configure/build-depends/cpp.mk
+
+
+_UNITS_ex_o := $(patsubst %.c,%.o,$(_UNITS_ex_c))
+
+
+$(_UNITS_ex_o): %.o: %.c $(MK)
+       $(info  CC      $@)
+       $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
+
+
+.PHONY: build-ex-cc
+build-ex-cc:  $(_UNITS_ex_o);
+
+
+endif  # include guard
diff --git a/share/mk/build/examples/ld.mk b/share/mk/build/examples/ld.mk
new file mode 100644 (file)
index 0000000..0dbb4b2
--- /dev/null
@@ -0,0 +1,25 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_BUILD_EX_LD_INCLUDED
+MAKEFILE_BUILD_EX_LD_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/build/examples/cc.mk
+include $(MAKEFILEDIR)/configure/build-depends/ld.mk
+
+
+_UNITS_ex_bin := $(patsubst %.o,%,$(_UNITS_ex_o))
+
+
+$(_UNITS_ex_bin): %: %.o $(MK)
+       $(info  LD      $@)
+       $(LD) $(LDFLAGS) -o $@ $< $(LDLIBS)
+
+
+.PHONY: build-ex-ld
+build-ex-ld: $(_UNITS_ex_bin);
+
+
+endif  # include guard
diff --git a/share/mk/build/examples/src.mk b/share/mk/build/examples/src.mk
new file mode 100644 (file)
index 0000000..cd3246d
--- /dev/null
@@ -0,0 +1,53 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_BUILD_EX_SRC_INCLUDED
+MAKEFILE_BUILD_EX_SRC_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/build/_.mk
+include $(MAKEFILEDIR)/configure/build-depends/findutils.mk
+include $(MAKEFILEDIR)/configure/build-depends/grep.mk
+include $(MAKEFILEDIR)/configure/build-depends/mandoc.mk
+include $(MAKEFILEDIR)/configure/build-depends/sed.mk
+include $(MAKEFILEDIR)/configure/directory_variables.mk
+include $(MAKEFILEDIR)/src.mk
+
+
+_UNITS_ex_src := \
+       $(patsubst $(MANDIR)/%, $(_MANDIR)/%, \
+               $(shell \
+                       $(FIND) $(MANDIR)/* -type f \
+                       | $(GREP) '$(MANEXT)' \
+                       | $(XARGS) $(GREP) -H '^\.\\" SRC BEGIN ' \
+                       | $(SED) 's,:\.\\" SRC BEGIN (,.d/,' \
+                       | $(SED) 's/)//' \
+                       | $(SORTMAN) \
+                       | $(SED) 's,:,\\:,g' \
+               ) \
+       )
+_UNITS_ex_h := $(filter %.h,$(_UNITS_ex_src))
+_UNITS_ex_c := $(filter %.c,$(_UNITS_ex_src))
+
+
+$(_UNITS_ex_src): $$(patsubst $(_MANDIR)/%.d,$(MANDIR)/%,$$(@D)) $(MK) | $$(@D)/
+$(_UNITS_ex_c):   $$(filter $$(@D)/%.h,$(_UNITS_ex_h))
+$(_UNITS_ex_src):
+       $(info SED      $@)
+       <$< \
+       $(SED) -n \
+               -e '/^\.TH/,/^\.SH/{/^\.SH/!p}' \
+               -e '/^\.SH EXAMPLES/p' \
+               -e "/^\... SRC BEGIN ($(@F))$$/,/^\... SRC END$$/p" \
+       | $(MANDOC) -Tutf8 \
+       | $(SED) '/^[^ ]/d' \
+       | $(SED) 's/^       //' \
+       >$@
+
+
+.PHONY: build-ex-src
+build-ex-src: $(_UNITS_ex_src);
+
+
+endif  # include guard
diff --git a/share/mk/build/pdf.mk b/share/mk/build/pdf.mk
deleted file mode 100644 (file)
index aebd635..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-########################################################################
-# Copyright 2023, Alejandro Colomar <alx@kernel.org>
-# SPDX-License-Identifier: GPL-3.0-or-later
-########################################################################
-
-
-ifndef MAKEFILE_BUILD_PDF_INCLUDED
-MAKEFILE_BUILD_PDF_INCLUDED := 1
-
-
-include $(MAKEFILEDIR)/build/_.mk
-include $(MAKEFILEDIR)/configure/build-depends/grep.mk
-include $(MAKEFILEDIR)/configure/build-depends/groff-base.mk
-include $(MAKEFILEDIR)/configure/build-depends/groff.mk
-include $(MAKEFILEDIR)/src.mk
-
-
-_PDFMAN_troff   := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.pdf.troff,$(NONSO_MAN) $(NONSO_MDOC))
-_PDFMAN_MAN_set := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.pdf.set,$(NONSO_MAN))
-_PDFMAN_MDOC_set:= $(patsubst $(MANDIR)/%,$(_MANDIR)/%.pdf.set,$(NONSO_MDOC))
-_PDFMAN         := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.pdf,$(NONSO_MAN) $(NONSO_MDOC))
-
-
-$(_PDFMAN_troff): %.pdf.troff: %.eqn $(MK) | $$(@D)/
-       $(info  EQN     $@)
-       ! ($(EQN) -Tpdf $(EQNFLAGS) <$< 2>&1 >$@) \
-       | $(GREP) ^ >&2
-
-$(_PDFMAN_MAN_set): %.pdf.set: %.pdf.troff $(MK) | $$(@D)/
-       $(info  TROFF   $@)
-       ! ($(TROFF) -man -Tpdf $(TROFFFLAGS) <$< 2>&1 >$@) \
-       | $(GREP) ^ >&2
-
-$(_PDFMAN_MDOC_set): %.pdf.set: %.pdf.troff $(MK) | $$(@D)/
-       $(info  TROFF   $@)
-       ! ($(TROFF) -mdoc -Tpdf $(TROFFFLAGS) <$< 2>&1 >$@) \
-       | $(GREP) ^ >&2
-
-$(_PDFMAN): %.pdf: %.pdf.set $(MK) | $$(@D)/
-       $(info  GROPDF  $@)
-       $(GROPDF) $(GROPDFFLAGS) <$< >$@
-
-
-.PHONY: build-pdf-eqn
-build-pdf-eqn: $(_PDFMAN_troff);
-
-.PHONY: build-pdf-troff-man
-build-pdf-troff-man: $(_PDFMAN_MAN_set);
-
-.PHONY: build-pdf-troff-mdoc
-build-pdf-troff-mdoc: $(_PDFMAN_MDOC_set);
-
-.PHONY: build-pdf-troff
-build-pdf-troff: build-pdf-troff-man build-pdf-troff-mdoc;
-
-.PHONY: build-pdf-gropdf
-build-pdf-gropdf: $(_PDFMAN);
-
-.PHONY: build-pdf
-build-pdf: build-pdf-gropdf;
-
-
-endif  # include guard
diff --git a/share/mk/build/pdf/_.mk b/share/mk/build/pdf/_.mk
new file mode 100644 (file)
index 0000000..f6660aa
--- /dev/null
@@ -0,0 +1,13 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_BUILD_PDF_INCLUDED
+MAKEFILE_BUILD_PDF_INCLUDED := 1
+
+
+.PHONY: build-pdf
+build-pdf: build-pdf-gropdf;
+
+
+endif  # include guard
diff --git a/share/mk/build/pdf/eqn.mk b/share/mk/build/pdf/eqn.mk
new file mode 100644 (file)
index 0000000..d3dda13
--- /dev/null
@@ -0,0 +1,27 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_BUILD_PDF_EQN_INCLUDED
+MAKEFILE_BUILD_PDF_EQN_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/build/pre/tbl.mk
+include $(MAKEFILEDIR)/configure/build-depends/grep.mk
+include $(MAKEFILEDIR)/configure/build-depends/groff-base.mk
+
+
+_PDFMAN_troff := $(patsubst %.eqn,%.pdf.troff,$(_MAN_eqn))
+
+
+$(_PDFMAN_troff): %.pdf.troff: %.eqn $(MK) | $$(@D)/
+       $(info  EQN     $@)
+       ! ($(EQN) -Tpdf $(EQNFLAGS) <$< 2>&1 >$@) \
+       | $(GREP) ^ >&2
+
+
+.PHONY: build-pdf-eqn
+build-pdf-eqn: $(_PDFMAN_troff);
+
+
+endif  # include guard
diff --git a/share/mk/build/pdf/gropdf.mk b/share/mk/build/pdf/gropdf.mk
new file mode 100644 (file)
index 0000000..2a088f7
--- /dev/null
@@ -0,0 +1,25 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_BUILD_PDF_GROPDF_INCLUDED
+MAKEFILE_BUILD_PDF_GROPDF_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/build/pdf/troff.mk
+include $(MAKEFILEDIR)/configure/build-depends/groff.mk
+
+
+_PDFMAN := $(patsubst %.pdf.set,%.pdf,$(_PDFMAN_MAN_set) $(_PDFMAN_MDOC_set))
+
+
+$(_PDFMAN): %.pdf: %.pdf.set $(MK) | $$(@D)/
+       $(info  GROPDF  $@)
+       $(GROPDF) $(GROPDFFLAGS) <$< >$@
+
+
+.PHONY: build-pdf-gropdf
+build-pdf-gropdf: $(_PDFMAN);
+
+
+endif  # include guard
diff --git a/share/mk/build/pdf/troff.mk b/share/mk/build/pdf/troff.mk
new file mode 100644 (file)
index 0000000..424cf33
--- /dev/null
@@ -0,0 +1,41 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_BUILD_PDF_TROFF_INCLUDED
+MAKEFILE_BUILD_PDF_TROFF_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/build/_.mk
+include $(MAKEFILEDIR)/configure/build-depends/grep.mk
+include $(MAKEFILEDIR)/configure/build-depends/groff-base.mk
+include $(MAKEFILEDIR)/configure/src.mk
+include $(MAKEFILEDIR)/src.mk
+
+
+_PDFMAN_MAN_set  := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.pdf.set,$(NONSO_MAN))
+_PDFMAN_MDOC_set := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.pdf.set,$(NONSO_MDOC))
+
+
+$(_PDFMAN_MAN_set): %.pdf.set: %.pdf.troff $(MK) | $$(@D)/
+       $(info  TROFF   $@)
+       ! ($(TROFF) -man -Tpdf $(TROFFFLAGS) <$< 2>&1 >$@) \
+       | $(GREP) ^ >&2
+
+$(_PDFMAN_MDOC_set): %.pdf.set: %.pdf.troff $(MK) | $$(@D)/
+       $(info  TROFF   $@)
+       ! ($(TROFF) -mdoc -Tpdf $(TROFFFLAGS) <$< 2>&1 >$@) \
+       | $(GREP) ^ >&2
+
+
+.PHONY: build-pdf-troff-man
+build-pdf-troff-man: $(_PDFMAN_MAN_set);
+
+.PHONY: build-pdf-troff-mdoc
+build-pdf-troff-mdoc: $(_PDFMAN_MDOC_set);
+
+.PHONY: build-pdf-troff
+build-pdf-troff: build-pdf-troff-man build-pdf-troff-mdoc;
+
+
+endif  # include guard
diff --git a/share/mk/build/pre.mk b/share/mk/build/pre.mk
deleted file mode 100644 (file)
index 126278d..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-########################################################################
-# Copyright 2021-2023, Alejandro Colomar <alx@kernel.org>
-# SPDX-License-Identifier: GPL-3.0-or-later
-########################################################################
-
-
-ifndef MAKEFILE_BUILD_PRE_INCLUDED
-MAKEFILE_BUILD_PRE_INCLUDED := 1
-
-
-include $(MAKEFILEDIR)/build/_.mk
-include $(MAKEFILEDIR)/configure/build-depends/groff-base.mk
-include $(MAKEFILEDIR)/src.mk
-
-
-_MAN_tbl := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.tbl,$(NONSO_MAN) $(NONSO_MDOC))
-_MAN_eqn := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.eqn,$(NONSO_MAN) $(NONSO_MDOC))
-
-
-$(_MAN_tbl): $(_MANDIR)/%.tbl: $(MANDIR)/% $(MK) | $$(@D)/
-       $(info  PRECONV $@)
-       $(PRECONV) $(PRECONVFLAGS) $< >$@
-
-$(_MAN_eqn): %.eqn: %.tbl $(MK) | $$(@D)/
-       $(info  TBL     $@)
-       $(TBL) <$< >$@
-
-
-.PHONY: build-pre-preconv
-build-pre-preconv: $(_MAN_tbl);
-
-.PHONY: build-pre-tbl
-build-pre-tbl: $(_MAN_eqn);
-
-.PHONY: build-pre
-build-pre: build-pre-tbl;
-
-
-endif  # include guard
diff --git a/share/mk/build/pre/_.mk b/share/mk/build/pre/_.mk
new file mode 100644 (file)
index 0000000..f0e86f4
--- /dev/null
@@ -0,0 +1,13 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_BUILD_PRE_INCLUDED
+MAKEFILE_BUILD_PRE_INCLUDED := 1
+
+
+.PHONY: build-pre
+build-pre: build-pre-tbl;
+
+
+endif  # include guard
diff --git a/share/mk/build/pre/preconv.mk b/share/mk/build/pre/preconv.mk
new file mode 100644 (file)
index 0000000..436c4a3
--- /dev/null
@@ -0,0 +1,27 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_BUILD_PRE_PRECONV_INCLUDED
+MAKEFILE_BUILD_PRE_PRECONV_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/build/_.mk
+include $(MAKEFILEDIR)/configure/build-depends/groff-base.mk
+include $(MAKEFILEDIR)/configure/src.mk
+include $(MAKEFILEDIR)/src.mk
+
+
+_MAN_tbl := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.tbl,$(NONSO_MAN) $(NONSO_MDOC))
+
+
+$(_MAN_tbl): $(_MANDIR)/%.tbl: $(MANDIR)/% $(MK) | $$(@D)/
+       $(info  PRECONV $@)
+       $(PRECONV) $(PRECONVFLAGS) $< >$@
+
+
+.PHONY: build-pre-preconv
+build-pre-preconv: $(_MAN_tbl);
+
+
+endif  # include guard
diff --git a/share/mk/build/pre/tbl.mk b/share/mk/build/pre/tbl.mk
new file mode 100644 (file)
index 0000000..58f9d74
--- /dev/null
@@ -0,0 +1,25 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_BUILD_PRE_TBL_INCLUDED
+MAKEFILE_BUILD_PRE_TBL_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/build/pre/preconv.mk
+include $(MAKEFILEDIR)/configure/build-depends/groff-base.mk
+
+
+_MAN_eqn := $(patsubst %.tbl,%.eqn,$(_MAN_tbl))
+
+
+$(_MAN_eqn): %.eqn: %.tbl $(MK) | $$(@D)/
+       $(info  TBL     $@)
+       $(TBL) <$< >$@
+
+
+.PHONY: build-pre-tbl
+build-pre-tbl: $(_MAN_eqn);
+
+
+endif  # include guard
diff --git a/share/mk/build/ps/_.mk b/share/mk/build/ps/_.mk
new file mode 100644 (file)
index 0000000..b92ebfc
--- /dev/null
@@ -0,0 +1,13 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_BUILD_PS_INCLUDED
+MAKEFILE_BUILD_PS_INCLUDED := 1
+
+
+.PHONY: build-ps
+build-ps: build-ps-grops;
+
+
+endif  # include guard
diff --git a/share/mk/build/ps/eqn.mk b/share/mk/build/ps/eqn.mk
new file mode 100644 (file)
index 0000000..3bf9fd1
--- /dev/null
@@ -0,0 +1,27 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_BUILD_PS_EQN_INCLUDED
+MAKEFILE_BUILD_PS_EQN_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/build/pre/tbl.mk
+include $(MAKEFILEDIR)/configure/build-depends/grep.mk
+include $(MAKEFILEDIR)/configure/build-depends/groff-base.mk
+
+
+_PSMAN_troff := $(patsubst %.eqn,%.ps.troff,$(_MAN_eqn))
+
+
+$(_PSMAN_troff): %.ps.troff: %.eqn $(MK) | $$(@D)/
+       $(info  EQN     $@)
+       ! ($(EQN) -Tps $(EQNFLAGS) <$< 2>&1 >$@) \
+       | $(GREP) ^ >&2
+
+
+.PHONY: build-ps-eqn
+build-ps-eqn: $(_PSMAN_troff);
+
+
+endif  # include guard
diff --git a/share/mk/build/ps/grops.mk b/share/mk/build/ps/grops.mk
new file mode 100644 (file)
index 0000000..e31096d
--- /dev/null
@@ -0,0 +1,25 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_BUILD_PS_GROPS_INCLUDED
+MAKEFILE_BUILD_PS_GROPS_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/build/ps/troff.mk
+include $(MAKEFILEDIR)/configure/build-depends/groff-base.mk
+
+
+_PSMAN := $(patsubst %.ps.set,%.ps,$(_PSMAN_MAN_set) $(_PSMAN_MDOC_set))
+
+
+$(_PSMAN): %.ps: %.ps.set $(MK) | $$(@D)/
+       $(info  GROPS   $@)
+       $(GROPS) $(GROPSFLAGS) <$< >$@
+
+
+.PHONY: build-ps-grops
+build-ps-grops: $(_PSMAN);
+
+
+endif  # include guard
similarity index 50%
rename from share/mk/build/ps.mk
rename to share/mk/build/ps/troff.mk
index 8a9c434e2b1f109a714abaca58c08aa2a5fd09d6..b271b6ac1e2014f1cdac1e4b3b4bf4e3db5e4ffd 100644 (file)
@@ -1,30 +1,22 @@
-########################################################################
-# Copyright 2023, Alejandro Colomar <alx@kernel.org>
-# SPDX-License-Identifier: GPL-3.0-or-later
-########################################################################
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
 
 
-ifndef MAKEFILE_BUILD_PS_INCLUDED
-MAKEFILE_BUILD_PS_INCLUDED := 1
+ifndef MAKEFILE_BUILD_PS_TROFF_INCLUDED
+MAKEFILE_BUILD_PS_TROFF_INCLUDED := 1
 
 
 include $(MAKEFILEDIR)/build/_.mk
 include $(MAKEFILEDIR)/configure/build-depends/grep.mk
 include $(MAKEFILEDIR)/configure/build-depends/groff-base.mk
+include $(MAKEFILEDIR)/configure/src.mk
 include $(MAKEFILEDIR)/src.mk
 
 
-_PSMAN_troff   := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.ps.troff,$(NONSO_MAN) $(NONSO_MDOC))
 _PSMAN_MAN_set := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.ps.set,$(NONSO_MAN))
 _PSMAN_MDOC_set:= $(patsubst $(MANDIR)/%,$(_MANDIR)/%.ps.set,$(NONSO_MDOC))
-_PSMAN         := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.ps,$(NONSO_MAN) $(NONSO_MDOC))
 
 
-$(_PSMAN_troff): %.ps.troff: %.eqn $(MK) | $$(@D)/
-       $(info  EQN     $@)
-       ! ($(EQN) -Tps $(EQNFLAGS) <$< 2>&1 >$@) \
-       | $(GREP) ^ >&2
-
 $(_PSMAN_MAN_set): %.ps.set: %.ps.troff $(MK) | $$(@D)/
        $(info  TROFF   $@)
        ! ($(TROFF) -man -Tps $(TROFFFLAGS) <$< 2>&1 >$@) \
@@ -35,13 +27,6 @@ $(_PSMAN_MDOC_set): %.ps.set: %.ps.troff $(MK) | $$(@D)/
        ! ($(TROFF) -mdoc -Tps $(TROFFFLAGS) <$< 2>&1 >$@) \
        | $(GREP) ^ >&2
 
-$(_PSMAN): %.ps: %.ps.set $(MK) | $$(@D)/
-       $(info  GROPS   $@)
-       $(GROPS) $(GROPSFLAGS) <$< >$@
-
-
-.PHONY: build-ps-eqn
-build-ps-eqn: $(_PSMAN_troff);
 
 .PHONY: build-ps-troff-man
 build-ps-troff-man: $(_PSMAN_MAN_set);
@@ -52,11 +37,5 @@ build-ps-troff-mdoc: $(_PSMAN_MDOC_set);
 .PHONY: build-ps-troff
 build-ps-troff: build-ps-troff-man build-ps-troff-mdoc;
 
-.PHONY: build-ps-grops
-build-ps-grops: $(_PSMAN);
-
-.PHONY: build-ps
-build-ps: build-ps-grops;
-
 
 endif  # include guard
diff --git a/share/mk/build/src.mk b/share/mk/build/src.mk
deleted file mode 100644 (file)
index 7d0e281..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-########################################################################
-# Copyright 2021-2023, Alejandro Colomar <alx@kernel.org>
-# SPDX-License-Identifier: GPL-3.0-or-later
-########################################################################
-
-
-ifndef MAKEFILE_BUILD_SRC_INCLUDED
-MAKEFILE_BUILD_SRC_INCLUDED := 1
-
-
-include $(MAKEFILEDIR)/build/_.mk
-include $(MAKEFILEDIR)/configure/build-depends/cc.mk
-include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk
-include $(MAKEFILEDIR)/configure/build-depends/cpp.mk
-include $(MAKEFILEDIR)/configure/build-depends/findutils.mk
-include $(MAKEFILEDIR)/configure/build-depends/grep.mk
-include $(MAKEFILEDIR)/configure/build-depends/ld.mk
-include $(MAKEFILEDIR)/configure/build-depends/mandoc.mk
-include $(MAKEFILEDIR)/configure/build-depends/sed.mk
-include $(MAKEFILEDIR)/configure/verbose.mk
-include $(MAKEFILEDIR)/src.mk
-
-
-_SRCPAGEDIRS   := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.d/,$(NONSO_MAN))
-
-_UNITS_src_src := $(patsubst $(MANDIR)/%,$(_MANDIR)/%,$(shell \
-               $(FIND) $(MANDIR)/* -type f \
-               | $(GREP) '$(MANEXT)' \
-               | $(XARGS) $(GREP) -H '^\.\\" SRC BEGIN ' \
-               | $(SED) 's,:\.\\" SRC BEGIN (,.d/,' \
-               | $(SED) 's/)//' \
-               | $(SORTMAN) \
-               | $(SED) 's,:,\\:,g'))
-_UNITS_src_h   := $(filter %.h,$(_UNITS_src_src))
-_UNITS_src_c   := $(filter %.c,$(_UNITS_src_src))
-_UNITS_src_o   := $(patsubst %.c,%.o,$(_UNITS_src_c))
-_UNITS_src_bin := $(patsubst %.c,%,$(_UNITS_src_c))
-
-
-$(_SRCPAGEDIRS): $(_MANDIR)/%.d/: $(MANDIR)/%
-       +$(info MKDIR   $@)
-       +$(MKDIR) $@
-       +$(TOUCH) $@
-
-$(_UNITS_src_src): $$(patsubst $(_MANDIR)/%.d,$(MANDIR)/%,$$(@D)) $(MK) | $$(@D)/
-$(_UNITS_src_c):   $$(filter $$(@D)/%.h,$(_UNITS_src_h))
-$(_UNITS_src_src):
-       $(info SED      $@)
-       <$< \
-       $(SED) -n \
-               -e '/^\.TH/,/^\.SH/{/^\.SH/!p}' \
-               -e '/^\.SH EXAMPLES/p' \
-               -e "/^\... SRC BEGIN ($(@F))$$/,/^\... SRC END$$/p" \
-       | $(MANDOC) -Tutf8 \
-       | $(SED) '/^[^ ]/d' \
-       | $(SED) 's/^       //' \
-       >$@
-
-$(_UNITS_src_o): %.o: %.c $(MK)
-       $(info CC       $@)
-       $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
-
-$(_UNITS_src_bin): %: %.o $(MK)
-       $(info LD       $@)
-       $(LD) $(LDFLAGS) -o $@ $< $(LDLIBS)
-
-
-.PHONY: build-src-c
-build-src-c:   $(_UNITS_src_c);
-
-.PHONY: build-src-cc
-build-src-cc:  $(_UNITS_src_o);
-
-.PHONY: build-src-ld
-build-src-ld:  $(_UNITS_src_bin);
-
-.PHONY: build-src
-build-src: build-src-ld
-
-
-endif  # include guard
index 6326d1f89ec23a456608b5488e208f6798292dff..1c978a8c2e6ac3fbe8fb834334a3faeca04f6657 100644 (file)
@@ -8,11 +8,8 @@ ifndef MAKEFILE_CHECK_INCLUDED
 MAKEFILE_CHECK_INCLUDED := 1
 
 
-check := check-catman
-
-
 .PHONY: check
-check: $(check);
+check: check-catman;
 
 
 endif  # include guard
diff --git a/share/mk/check/catman.mk b/share/mk/check/catman.mk
deleted file mode 100644 (file)
index 609540b..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-########################################################################
-# Copyright 2021-2023, Alejandro Colomar <alx@kernel.org>
-# SPDX-License-Identifier: GPL-3.0-or-later
-########################################################################
-
-
-ifndef MAKEFILE_CHECK_CATMAN_INCLUDED
-MAKEFILE_CHECK_CATMAN_INCLUDED := 1
-
-
-include $(MAKEFILEDIR)/build/_.mk
-include $(MAKEFILEDIR)/build/catman.mk
-include $(MAKEFILEDIR)/check/_.mk
-include $(MAKEFILEDIR)/configure/build-depends/bsdextrautils.mk
-include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk
-include $(MAKEFILEDIR)/configure/build-depends/grep.mk
-include $(MAKEFILEDIR)/src.mk
-
-
-_CHECK_catman_grep := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.cat.grep,$(NONSO_MAN) $(NONSO_MDOC))
-_CHECK_catman := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.check-catman.touch,$(NONSO_MAN) $(NONSO_MDOC))
-
-
-$(_CHECK_catman_grep): %.grep: % $(MK) | $$(@D)/
-       $(info  COL     $@)
-       $(COL) $(COLFLAGS) <$< >$@
-
-$(_CHECK_catman): %.check-catman.touch: %.cat.grep $(MK) | $$(@D)/
-       $(info  GREP    $@)
-       ! $(GREP) -n '.\{$(MANWIDTH)\}.' $< /dev/null >&2
-       $(TOUCH) $@
-
-
-.PHONY: check-catman-col
-check-catman-col: $(_CHECK_catman_grep);
-
-.PHONY: check-catman-grep
-check-catman-grep: $(_CHECK_catman);
-
-.PHONY: check-catman
-check-catman: check-catman-grep;
-
-
-endif  # include guard
diff --git a/share/mk/check/catman/_.mk b/share/mk/check/catman/_.mk
new file mode 100644 (file)
index 0000000..b9bf5a1
--- /dev/null
@@ -0,0 +1,13 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_CHECK_CATMAN_INCLUDED
+MAKEFILE_CHECK_CATMAN_INCLUDED := 1
+
+
+.PHONY: check-catman
+check-catman: check-catman-grep;
+
+
+endif  # include guard
diff --git a/share/mk/check/catman/col.mk b/share/mk/check/catman/col.mk
new file mode 100644 (file)
index 0000000..c1563a2
--- /dev/null
@@ -0,0 +1,25 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_CHECK_CATMAN_COL_INCLUDED
+MAKEFILE_CHECK_CATMAN_COL_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/build/catman/grotty.mk
+include $(MAKEFILEDIR)/configure/build-depends/bsdextrautils.mk
+
+
+_CHECK_catman_grep := $(patsubst %.cat,%.cat.grep,$(_CATMAN))
+
+
+$(_CHECK_catman_grep): %.grep: % $(MK) | $$(@D)/
+       $(info  COL     $@)
+       $(COL) $(COLFLAGS) <$< >$@
+
+
+.PHONY: check-catman-col
+check-catman-col: $(_CHECK_catman_grep);
+
+
+endif  # include guard
diff --git a/share/mk/check/catman/grep.mk b/share/mk/check/catman/grep.mk
new file mode 100644 (file)
index 0000000..702b314
--- /dev/null
@@ -0,0 +1,27 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_CHECK_CATMAN_GREP_INCLUDED
+MAKEFILE_CHECK_CATMAN_GREP_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk
+include $(MAKEFILEDIR)/configure/build-depends/grep.mk
+include $(MAKEFILEDIR)/configure/build-depends/man.mk
+
+
+_CHECK_catman := $(patsubst %.cat.grep,%.check-catman.touch,$(_CHECK_catman_grep))
+
+
+$(_CHECK_catman): %.check-catman.touch: %.cat.grep $(MK) | $$(@D)/
+       $(info  GREP    $@)
+       ! $(GREP) -n '.\{$(MANWIDTH)\}.' $< /dev/null >&2
+       $(TOUCH) $@
+
+
+.PHONY: check-catman-grep
+check-catman-grep: $(_CHECK_catman);
+
+
+endif  # include guard
index 140ba13f2f2f74901e7abbb9408839a0cd87d33d..1f1dedadf5b0c8268584d7eea66c8d2abd444445 100644 (file)
@@ -12,6 +12,7 @@ EXPR    := expr
 HEAD    := head
 INSTALL := install
 LN      := ln
+MKDIR   := mkdir
 MKTEMP  := mktemp
 RM      := rm
 SORT    := sort
diff --git a/share/mk/dist.mk b/share/mk/dist.mk
deleted file mode 100644 (file)
index 0e8209d..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-########################################################################
-# Copyright 2021-2023, Alejandro Colomar <alx@kernel.org>
-# SPDX-License-Identifier: GPL-3.0-or-later
-########################################################################
-
-
-ifndef MAKEFILE_DIST_INCLUDED
-MAKEFILE_DIST_INCLUDED := 1
-
-
-include $(MAKEFILEDIR)/build/_.mk
-include $(MAKEFILEDIR)/configure/build-depends/bzip2.mk
-include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk
-include $(MAKEFILEDIR)/configure/build-depends/findutils.mk
-include $(MAKEFILEDIR)/configure/build-depends/git.mk
-include $(MAKEFILEDIR)/configure/build-depends/gzip.mk
-include $(MAKEFILEDIR)/configure/build-depends/lzip.mk
-include $(MAKEFILEDIR)/configure/build-depends/sed.mk
-include $(MAKEFILEDIR)/configure/build-depends/tar.mk
-include $(MAKEFILEDIR)/configure/build-depends/xz-utils.mk
-include $(MAKEFILEDIR)/configure/directory_variables.mk
-include $(MAKEFILEDIR)/configure/verbose.mk
-include $(MAKEFILEDIR)/configure/version.mk
-include $(MAKEFILEDIR)/install/_.mk
-
-
-_DISTDIR := $(builddir)/dist
-
-
-DISTFILES   := $(shell $(GIT) ls-files $(HIDE_ERR) \
-                       | $(SED) 's,^,$(srcdir)/,' \
-                       | $(SED) 's,:,\\:,g')
-_DISTFILES  := $(patsubst $(srcdir)/%,$(_DISTDIR)/%,$(DISTFILES))
-_DISTPAGES  := $(filter     $(_DISTDIR)/man%,$(_DISTFILES))
-_DISTOTHERS := $(filter-out $(_DISTDIR)/man%,$(_DISTFILES))
-
-DISTFILE    := $(builddir)/$(DISTNAME).tar
-compression := bz2 gz lz xz
-
-
-$(builddir)/dist/%/:
-       +$(info INSTALL $@)
-       +$(INSTALL_DIR) $@
-
-
-$(_DISTPAGES): $(_DISTDIR)/man%: $(srcdir)/man% $(MK) | $$(@D)/
-       $(info INSTALL  $@)
-       <$< \
-       $(SED) "/^.TH/s/(date)/$$(git log --format=%cs -1 -- $< $(HIDE_ERR))/" \
-       | $(SED) '/^.TH/s/(unreleased)/$(DISTVERSION)/' \
-       | $(INSTALL_DATA) -T /dev/stdin $@
-
-$(_DISTOTHERS): $(_DISTDIR)/%: $(srcdir)/% $(MK) | $$(@D)/
-       $(info CP       $@)
-       $(CP) -T $< $@
-
-
-$(DISTFILE): $(_DISTFILES) $(MK) | $$(@D)/
-       $(info TAR      $@)
-       $(TAR) $(TARFLAGS) -cf $@ -T /dev/null
-       $(GIT) ls-files \
-       | $(SED) 's,^,$(_DISTDIR)/,' \
-       | $(XARGS) $(TAR) $(TARFLAGS) -rf $@ -C $(srcdir) \
-               --transform 's,^$(_DISTDIR),$(DISTNAME),'
-
-define DISTFILE_z_rule
-$(DISTFILE).$(2): %.$(2): % $(MK) | $$$$(@D)/
-       $$(info $(1)    $$@)
-       $($(1)) $($(1)FLAGS) -kf $$<
-       $(TOUCH) $$@
-endef
-
-$(eval $(call DISTFILE_z_rule,BZIP2,bz2))
-$(eval $(call DISTFILE_z_rule,GZIP,gz))
-$(eval $(call DISTFILE_z_rule,LZIP,lz))
-$(eval $(call DISTFILE_z_rule,XZ,xz))
-
-
-.PHONY: dist-tar
-dist-tar: $(DISTFILE);
-
-
-$(foreach z, $(compression),                                                  \
-       $(eval .PHONY: dist-$(z)))
-$(foreach z, $(compression),                                                  \
-       $(eval dist-$(z): $(DISTFILE).$(z);))
-.PHONY: dist
-dist: $(foreach z, $(compression), dist-$(z));
-
-
-endif  # include guard
diff --git a/share/mk/dist/_.mk b/share/mk/dist/_.mk
new file mode 100644 (file)
index 0000000..b0d5682
--- /dev/null
@@ -0,0 +1,25 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_DIST_INCLUDED
+MAKEFILE_DIST_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk
+include $(MAKEFILEDIR)/configure/directory_variables.mk
+
+
+_DISTDIR := $(builddir)/dist
+
+
+$(builddir)/dist/%/:
+       +$(info INSTALL $@)
+       +$(INSTALL_DIR) $@
+
+
+.PHONY: dist
+dist: dist-tar dist-z;
+
+
+endif  # include guard
diff --git a/share/mk/dist/files.mk b/share/mk/dist/files.mk
new file mode 100644 (file)
index 0000000..74a1eb7
--- /dev/null
@@ -0,0 +1,37 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_DIST_FILES_INCLUDED
+MAKEFILE_DIST_FILES_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk
+include $(MAKEFILEDIR)/configure/build-depends/git.mk
+include $(MAKEFILEDIR)/configure/build-depends/sed.mk
+include $(MAKEFILEDIR)/configure/verbose.mk
+include $(MAKEFILEDIR)/configure/version.mk
+include $(MAKEFILEDIR)/dist/_.mk
+
+
+DISTFILES   := $(shell $(GIT) ls-files $(HIDE_ERR) \
+                       | $(SED) 's,^,$(srcdir)/,' \
+                       | $(SED) 's,:,\\:,g')
+_DISTFILES  := $(patsubst $(srcdir)/%,$(_DISTDIR)/%,$(DISTFILES))
+_DISTPAGES  := $(filter     $(_DISTDIR)/man%,$(_DISTFILES))
+_DISTOTHERS := $(filter-out $(_DISTDIR)/man%,$(_DISTFILES))
+
+
+$(_DISTPAGES): $(_DISTDIR)/man%: $(srcdir)/man% $(MK) | $$(@D)/
+       $(info  INSTALL $@)
+       <$< \
+       $(SED) "/^.TH/s/(date)/$$(git log --format=%cs -1 -- $< $(HIDE_ERR))/" \
+       | $(SED) '/^.TH/s/(unreleased)/$(DISTVERSION)/' \
+       | $(INSTALL_DATA) -T /dev/stdin $@
+
+$(_DISTOTHERS): $(_DISTDIR)/%: $(srcdir)/% $(MK) | $$(@D)/
+       $(info  CP      $@)
+       $(CP) -T $< $@
+
+
+endif  # include guard
diff --git a/share/mk/dist/tar.mk b/share/mk/dist/tar.mk
new file mode 100644 (file)
index 0000000..fc01edb
--- /dev/null
@@ -0,0 +1,34 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_DIST_TAR_INCLUDED
+MAKEFILE_DIST_TAR_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/configure/build-depends/findutils.mk
+include $(MAKEFILEDIR)/configure/build-depends/git.mk
+include $(MAKEFILEDIR)/configure/build-depends/sed.mk
+include $(MAKEFILEDIR)/configure/build-depends/tar.mk
+include $(MAKEFILEDIR)/configure/version.mk
+include $(MAKEFILEDIR)/dist/_.mk
+include $(MAKEFILEDIR)/dist/files.mk
+
+
+DISTFILE := $(builddir)/$(DISTNAME).tar
+
+
+$(DISTFILE): $(_DISTFILES) $(MK) | $$(@D)/
+       $(info TAR      $@)
+       $(TAR) $(TARFLAGS) -cf $@ -T /dev/null
+       $(GIT) ls-files \
+       | $(SED) 's,^,$(_DISTDIR)/,' \
+       | $(XARGS) $(TAR) $(TARFLAGS) -rf $@ -C $(srcdir) \
+               --transform 's,^$(_DISTDIR),$(DISTNAME),'
+
+
+.PHONY: dist-tar
+dist-tar: $(DISTFILE);
+
+
+endif  # include guard
diff --git a/share/mk/dist/z.mk b/share/mk/dist/z.mk
new file mode 100644 (file)
index 0000000..791cd03
--- /dev/null
@@ -0,0 +1,44 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_DIST_Z_INCLUDED
+MAKEFILE_DIST_Z_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/configure/build-depends/bzip2.mk
+include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk
+include $(MAKEFILEDIR)/configure/build-depends/gzip.mk
+include $(MAKEFILEDIR)/configure/build-depends/lzip.mk
+include $(MAKEFILEDIR)/configure/build-depends/xz-utils.mk
+include $(MAKEFILEDIR)/dist/tar.mk
+
+
+compression := bz2 gz lz xz
+
+
+define DISTFILE_z_rule
+$(DISTFILE).$(2): %.$(2): % $(MK) | $$$$(@D)/
+       $$(info $(1)    $$@)
+       $($(1)) $($(1)FLAGS) -kf $$<
+       $(TOUCH) $$@
+endef
+
+
+$(eval $(call DISTFILE_z_rule,BZIP2,bz2))
+$(eval $(call DISTFILE_z_rule,GZIP,gz))
+$(eval $(call DISTFILE_z_rule,LZIP,lz))
+$(eval $(call DISTFILE_z_rule,XZ,xz))
+
+
+$(foreach z, $(compression),                                                  \
+       $(eval .PHONY: dist-z-$(z)))
+$(foreach z, $(compression),                                                  \
+       $(eval dist-z-$(z): $(DISTFILE).$(z);))
+
+
+.PHONY: dist-z
+dist-z: $(foreach z, $(compression), dist-z-$(z));
+
+
+endif  # include guard
index 1fb5b1690ff5def3c4ca8a34f32edf5b953ef3af..bddaff25e2421aa28b466bd18c055826625ec60e 100644 (file)
@@ -16,7 +16,7 @@ include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk
        +$(INSTALL_DIR) $@
 
 %-rm:
-       $(info RM       $*)
+       $(info  RM      $*)
        $(RM) $*
 
 
index 6252b2fa6d2effffc960bd271d027d056230c21e..a0b71d7515cf67ee96b789627754cf206e861ff5 100644 (file)
@@ -10,6 +10,7 @@ MAKEFILE_INSTALL_HTML_INCLUDED := 1
 
 include $(MAKEFILEDIR)/build/html.mk
 include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk
+include $(MAKEFILEDIR)/configure/directory_variables.mk
 include $(MAKEFILEDIR)/install/_.mk
 
 
@@ -21,7 +22,7 @@ _htmlpages_rm   := $(addsuffix -rm,$(wildcard $(_htmlpages)))
 
 
 $(_htmlpages): $(_htmldir)/%: $(_HTMLDIR)/% $(MK) | $$(@D)/
-       $(info INSTALL  $@)
+       $(info  INSTALL $@)
        $(INSTALL_DATA) -T $< $@
 
 
index aade04b704e3a6660743b4c163d085aa6c28e8c2..be10d7df2fdfacc687dea22c7a149c12342f9d1b 100644 (file)
@@ -17,6 +17,7 @@ include $(MAKEFILEDIR)/configure/build-depends/lzip.mk
 include $(MAKEFILEDIR)/configure/build-depends/moreutils.mk
 include $(MAKEFILEDIR)/configure/build-depends/sed.mk
 include $(MAKEFILEDIR)/configure/build-depends/xz-utils.mk
+include $(MAKEFILEDIR)/configure/directory_variables.mk
 include $(MAKEFILEDIR)/configure/z.mk
 include $(MAKEFILEDIR)/install/_.mk
 include $(MAKEFILEDIR)/src.mk
index 9d93bd3809d94adad3e39ff9b3c74517c4511eb8..48d02fa359ade0e32e768cf8aebc10ffbd3f6f53 100644 (file)
@@ -1,18 +1,13 @@
-########################################################################
-# Copyright 2021-2023, Alejandro Colomar <alx@kernel.org>
-# SPDX-License-Identifier: GPL-3.0-or-later
-########################################################################
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
 
 
 ifndef MAKEFILE_LINT_INCLUDED
 MAKEFILE_LINT_INCLUDED := 1
 
 
-lint := lint-c lint-man lint-mdoc
-
-
 .PHONY: lint
-lint: $(lint);
+lint: lint-c lint-man lint-mdoc;
 
 
 endif  # include guard
diff --git a/share/mk/lint/c.mk b/share/mk/lint/c.mk
deleted file mode 100644 (file)
index 1877f01..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-########################################################################
-# Copyright 2021-2022, Alejandro Colomar <alx@kernel.org>
-# SPDX-License-Identifier: GPL-3.0-or-later
-########################################################################
-
-
-ifndef MAKEFILE_LINT_C_INCLUDED
-MAKEFILE_LINT_C_INCLUDED := 1
-
-
-include $(MAKEFILEDIR)/build/src.mk
-include $(MAKEFILEDIR)/configure/build-depends/checkpatch.mk
-include $(MAKEFILEDIR)/configure/build-depends/clang.mk
-include $(MAKEFILEDIR)/configure/build-depends/clang-tidy.mk
-include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk
-include $(MAKEFILEDIR)/configure/build-depends/cpp.mk
-include $(MAKEFILEDIR)/configure/build-depends/cppcheck.mk
-include $(MAKEFILEDIR)/configure/build-depends/cpplint.mk
-include $(MAKEFILEDIR)/configure/build-depends/grep.mk
-include $(MAKEFILEDIR)/configure/build-depends/iwyu.mk
-include $(MAKEFILEDIR)/configure/build-depends/sed.mk
-include $(MAKEFILEDIR)/lint/_.mk
-
-
-linters_c := checkpatch clang-tidy cppcheck cpplint iwyu
-
-
-$(foreach l, $(linters_c),                                                    \
-       $(eval _LINT_c_$(l) :=                                                \
-               $(patsubst %.c, %.lint-c.$(l).touch,                          \
-                       $(_UNITS_src_c))))
-
-
-$(_LINT_c_checkpatch): %.lint-c.checkpatch.touch: %.c $(MK)
-       $(info LINT (checkpatch)        $@)
-       $(CHECKPATCH) $(CHECKPATCHFLAGS) -f $< >&2
-       $(TOUCH) $@
-
-$(_LINT_c_clang-tidy): %.lint-c.clang-tidy.touch: %.c $(MK)
-       $(info LINT (clang-tidy)        $@)
-       $(CLANG_TIDY) $(CLANG_TIDYFLAGS) $< -- $(CPPFLAGS) $(CLANGFLAGS) 2>&1 \
-       | $(SED) '/generated\.$$/d' >&2
-       $(TOUCH) $@
-
-$(_LINT_c_cppcheck): %.lint-c.cppcheck.touch: %.c $(MK)
-       $(info LINT (cppcheck)  $@)
-       $(CPPCHECK) $(CPPCHECKFLAGS) $<
-       $(TOUCH) $@
-
-$(_LINT_c_cpplint): %.lint-c.cpplint.touch: %.c $(MK)
-       $(info LINT (cpplint)   $@)
-       $(CPPLINT) $(CPPLINTFLAGS) $< >/dev/null
-       $(TOUCH) $@
-
-$(_LINT_c_iwyu): %.lint-c.iwyu.touch: %.c $(MK)
-       $(info LINT (iwyu)      $@)
-       ! ($(IWYU) $(IWYUFLAGS) $(CPPFLAGS) $(CLANGFLAGS) $< 2>&1 \
-          | $(SED) -n '/should add these lines:/,$$p' \
-          | $(TAC) \
-          | $(SED) '/correct/{N;d}' \
-          | $(TAC) \
-          ||:; \
-       ) \
-       | $(GREP) ^ >&2
-       $(TOUCH) $@
-
-
-$(foreach l, $(linters_c),                                                    \
-       $(eval .PHONY: lint-c-$(l)))
-$(foreach l, $(linters_c),                                                    \
-       $(eval lint-c-$(l): $(_LINT_c_$(l));))
-.PHONY: lint-c
-lint-c: $(foreach l, $(linters_c), lint-c-$(l));
-
-
-endif  # include guard
diff --git a/share/mk/lint/c/_.mk b/share/mk/lint/c/_.mk
new file mode 100644 (file)
index 0000000..334ff97
--- /dev/null
@@ -0,0 +1,29 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_LINT_C_INCLUDED
+MAKEFILE_LINT_C_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/build/examples/src.mk
+
+
+linters_c := checkpatch clang-tidy cppcheck cpplint iwyu
+
+
+$(foreach l, $(linters_c),                                                    \
+       $(eval _LINT_c_$(l) :=                                                \
+               $(patsubst %.c, %.lint-c.$(l).touch,                          \
+                       $(_UNITS_ex_c))))
+
+
+$(foreach l, $(linters_c),                                                    \
+       $(eval .PHONY: lint-c-$(l)))
+$(foreach l, $(linters_c),                                                    \
+       $(eval lint-c-$(l): $(_LINT_c_$(l));))
+.PHONY: lint-c
+lint-c: $(foreach l, $(linters_c), lint-c-$(l));
+
+
+endif  # include guard
diff --git a/share/mk/lint/c/checkpatch.mk b/share/mk/lint/c/checkpatch.mk
new file mode 100644 (file)
index 0000000..f465f55
--- /dev/null
@@ -0,0 +1,20 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_LINT_C_CHECKPATCH_INCLUDED
+MAKEFILE_LINT_C_CHECKPATCH_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/configure/build-depends/checkpatch.mk
+include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk
+include $(MAKEFILEDIR)/lint/_.mk
+
+
+$(_LINT_c_checkpatch): %.lint-c.checkpatch.touch: %.c $(MK)
+       $(info  CHECKPATCH      $@)
+       $(CHECKPATCH) $(CHECKPATCHFLAGS) -f $< >&2
+       $(TOUCH) $@
+
+
+endif  # include guard
diff --git a/share/mk/lint/c/clang-tidy.mk b/share/mk/lint/c/clang-tidy.mk
new file mode 100644 (file)
index 0000000..c48fb85
--- /dev/null
@@ -0,0 +1,24 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_LINT_C_CLANG_TIDY_INCLUDED
+MAKEFILE_LINT_C_CLANG_TIDY_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/configure/build-depends/clang.mk
+include $(MAKEFILEDIR)/configure/build-depends/clang-tidy.mk
+include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk
+include $(MAKEFILEDIR)/configure/build-depends/cpp.mk
+include $(MAKEFILEDIR)/configure/build-depends/sed.mk
+include $(MAKEFILEDIR)/lint/_.mk
+
+
+$(_LINT_c_clang-tidy): %.lint-c.clang-tidy.touch: %.c $(MK)
+       $(info CLANG_TIDY       $@)
+       $(CLANG_TIDY) $(CLANG_TIDYFLAGS) $< -- $(CPPFLAGS) $(CLANGFLAGS) 2>&1 \
+       | $(SED) '/generated\.$$/d' >&2
+       $(TOUCH) $@
+
+
+endif  # include guard
diff --git a/share/mk/lint/c/cppcheck.mk b/share/mk/lint/c/cppcheck.mk
new file mode 100644 (file)
index 0000000..b326dc0
--- /dev/null
@@ -0,0 +1,20 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_LINT_C_CPPCHECK_INCLUDED
+MAKEFILE_LINT_C_CPPCHECK_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk
+include $(MAKEFILEDIR)/configure/build-depends/cppcheck.mk
+include $(MAKEFILEDIR)/lint/_.mk
+
+
+$(_LINT_c_cppcheck): %.lint-c.cppcheck.touch: %.c $(MK)
+       $(info  CPPCHECK        $@)
+       $(CPPCHECK) $(CPPCHECKFLAGS) $<
+       $(TOUCH) $@
+
+
+endif  # include guard
diff --git a/share/mk/lint/c/cpplint.mk b/share/mk/lint/c/cpplint.mk
new file mode 100644 (file)
index 0000000..89036ed
--- /dev/null
@@ -0,0 +1,20 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_LINT_C_CPPLINT_INCLUDED
+MAKEFILE_LINT_C_CPPLINT_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk
+include $(MAKEFILEDIR)/configure/build-depends/cpplint.mk
+include $(MAKEFILEDIR)/lint/_.mk
+
+
+$(_LINT_c_cpplint): %.lint-c.cpplint.touch: %.c $(MK)
+       $(info  CPPLINT         $@)
+       $(CPPLINT) $(CPPLINTFLAGS) $< >/dev/null
+       $(TOUCH) $@
+
+
+endif  # include guard
diff --git a/share/mk/lint/c/iwyu.mk b/share/mk/lint/c/iwyu.mk
new file mode 100644 (file)
index 0000000..a177936
--- /dev/null
@@ -0,0 +1,31 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_LINT_C_IWYU_INCLUDED
+MAKEFILE_LINT_C_IWYU_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/configure/build-depends/clang.mk
+include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk
+include $(MAKEFILEDIR)/configure/build-depends/cpp.mk
+include $(MAKEFILEDIR)/configure/build-depends/grep.mk
+include $(MAKEFILEDIR)/configure/build-depends/iwyu.mk
+include $(MAKEFILEDIR)/configure/build-depends/sed.mk
+include $(MAKEFILEDIR)/lint/_.mk
+
+
+$(_LINT_c_iwyu): %.lint-c.iwyu.touch: %.c $(MK)
+       $(info LINT (iwyu)      $@)
+       ! ($(IWYU) $(IWYUFLAGS) $(CPPFLAGS) $(CLANGFLAGS) $< 2>&1 \
+          | $(SED) -n '/should add these lines:/,$$p' \
+          | $(TAC) \
+          | $(SED) '/correct/{N;d}' \
+          | $(TAC) \
+          ||:; \
+       ) \
+       | $(GREP) ^ >&2
+       $(TOUCH) $@
+
+
+endif  # include guard
diff --git a/share/mk/lint/man/_.mk b/share/mk/lint/man/_.mk
new file mode 100644 (file)
index 0000000..d81d999
--- /dev/null
@@ -0,0 +1,31 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_LINT_MAN_INCLUDED
+MAKEFILE_LINT_MAN_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/build/_.mk
+include $(MAKEFILEDIR)/configure/directory_variables.mk
+include $(MAKEFILEDIR)/src.mk
+
+
+linters_man := mandoc tbl
+
+
+$(foreach l, $(linters_man),                                                  \
+       $(eval _LINT_man_$(l) :=                                              \
+               $(patsubst $(MANDIR)/%, $(_MANDIR)/%.lint-man.$(l).touch,     \
+                       $(NONSO_MAN))))
+
+
+$(foreach l, $(linters_man),                                                  \
+       $(eval .PHONY: lint-man-$(l)))
+$(foreach l, $(linters_man),                                                  \
+       $(eval lint-man-$(l): $(_LINT_man_$(l));))
+.PHONY: lint-man
+lint-man: $(foreach l, $(linters_man), lint-man-$(l));
+
+
+endif  # include guard
diff --git a/share/mk/lint/man/man.mk b/share/mk/lint/man/man.mk
deleted file mode 100644 (file)
index 135ac39..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-########################################################################
-# Copyright 2021-2023, Alejandro Colomar <alx@kernel.org>
-# SPDX-License-Identifier: GPL-3.0-or-later
-########################################################################
-
-
-ifndef MAKEFILE_LINT_MAN_MAN_INCLUDED
-MAKEFILE_LINT_MAN_MAN_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/_.mk
-include $(MAKEFILEDIR)/src.mk
-
-
-mandoc_man_ignore_grep := $(DATAROOTDIR)/lint/mandoc/man.ignore.grep
-
-
-linters_man := mandoc tbl
-
-
-$(foreach l, $(linters_man),                                                  \
-       $(eval _LINT_man_$(l) :=                                              \
-               $(patsubst $(MANDIR)/%, $(_MANDIR)/%.lint-man.$(l).touch,     \
-                       $(NONSO_MAN))))
-
-
-$(_LINT_man_mandoc): $(_MANDIR)/%.lint-man.mandoc.touch: $(MANDIR)/% $(mandoc_man_ignore_grep) $(MK) | $$(@D)/
-       $(info LINT (mandoc)    $@)
-       ! ($(MANDOC) -man $(MANDOCFLAGS) $< 2>&1 \
-          | $(GREP) -v -f '$(mandoc_man_ignore_grep)' \
-          ||:; \
-       ) \
-       | $(GREP) ^ >&2
-       $(TOUCH) $@
-
-$(_LINT_man_tbl): $(_MANDIR)/%.lint-man.tbl.touch: $(MANDIR)/% $(MK) | $$(@D)/
-       $(info LINT (tbl comment)       $@)
-       if $(GREP) -q '^\.TS$$' $< && ! $(HEAD) -n1 $< | $(GREP) -q '\\" t$$'; \
-       then \
-               >&2 $(ECHO) "$<:1: missing '\\\" t' comment:"; \
-               >&2 $(HEAD) -n1 <$<; \
-               exit 1; \
-       fi
-       if $(HEAD) -n1 $< | $(GREP) -q '\\" t$$' && ! $(GREP) -q '^\.TS$$' $<; \
-       then \
-               >&2 $(ECHO) "$<:1: spurious '\\\" t' comment:"; \
-               >&2 $(HEAD) -n1 <$<; \
-               exit 1; \
-       fi
-       if $(TAIL) -n+2 <$< | $(GREP) -q '\\" t$$'; \
-       then \
-               >&2 $(ECHO) "$<: spurious '\\\" t' not in first line:"; \
-               >&2 $(GREP) -n '\\" t$$' $< /dev/null; \
-               exit 1; \
-       fi
-       $(TOUCH) $@
-
-
-$(foreach l, $(linters_man),                                                  \
-       $(eval .PHONY: lint-man-$(l)))
-$(foreach l, $(linters_man),                                                  \
-       $(eval lint-man-$(l): $(_LINT_man_$(l));))
-.PHONY: lint-man
-lint-man: $(foreach l, $(linters_man), lint-man-$(l));
-
-
-endif  # include guard
diff --git a/share/mk/lint/man/mandoc.mk b/share/mk/lint/man/mandoc.mk
new file mode 100644 (file)
index 0000000..ca25890
--- /dev/null
@@ -0,0 +1,30 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_LINT_MAN_MANDOC_INCLUDED
+MAKEFILE_LINT_MAN_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)/configure/directory_variables.mk
+include $(MAKEFILEDIR)/lint/man/_.mk
+
+
+mandoc_man_ignore_grep := $(DATAROOTDIR)/lint/mandoc/man.ignore.grep
+
+
+$(_LINT_man_mandoc): $(_MANDIR)/%.lint-man.mandoc.touch: $(MANDIR)/% $(mandoc_man_ignore_grep) $(MK) | $$(@D)/
+       $(info LINT (mandoc)    $@)
+       ! ($(MANDOC) -man $(MANDOCFLAGS) $< 2>&1 \
+          | $(GREP) -v -f '$(mandoc_man_ignore_grep)' \
+          ||:; \
+       ) \
+       | $(GREP) ^ >&2
+       $(TOUCH) $@
+
+
+endif  # include guard
diff --git a/share/mk/lint/man/tbl.mk b/share/mk/lint/man/tbl.mk
new file mode 100644 (file)
index 0000000..27ffa49
--- /dev/null
@@ -0,0 +1,39 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_LINT_MAN_TBL_INCLUDED
+MAKEFILE_LINT_MAN_TBL_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/build/_.mk
+include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk
+include $(MAKEFILEDIR)/configure/build-depends/grep.mk
+include $(MAKEFILEDIR)/configure/directory_variables.mk
+include $(MAKEFILEDIR)/lint/man/_.mk
+
+
+$(_LINT_man_tbl): $(_MANDIR)/%.lint-man.tbl.touch: $(MANDIR)/% $(MK) | $$(@D)/
+       $(info LINT (tbl comment)       $@)
+       if $(GREP) -q '^\.TS$$' $< && ! $(HEAD) -n1 $< | $(GREP) -q '\\" t$$'; \
+       then \
+               >&2 $(ECHO) "$<:1: missing '\\\" t' comment:"; \
+               >&2 $(HEAD) -n1 <$<; \
+               exit 1; \
+       fi
+       if $(HEAD) -n1 $< | $(GREP) -q '\\" t$$' && ! $(GREP) -q '^\.TS$$' $<; \
+       then \
+               >&2 $(ECHO) "$<:1: spurious '\\\" t' comment:"; \
+               >&2 $(HEAD) -n1 <$<; \
+               exit 1; \
+       fi
+       if $(TAIL) -n+2 <$< | $(GREP) -q '\\" t$$'; \
+       then \
+               >&2 $(ECHO) "$<: spurious '\\\" t' not in first line:"; \
+               >&2 $(GREP) -n '\\" t$$' $< /dev/null; \
+               exit 1; \
+       fi
+       $(TOUCH) $@
+
+
+endif  # include guard
similarity index 59%
rename from share/mk/lint/man/mdoc.mk
rename to share/mk/lint/mdoc/_.mk
index 8df8a04fbe5e830fd1ba44c8c4fbbd0895ece28f..170dec1c2cf6158609a4b41df10561175244d5b5 100644 (file)
@@ -4,21 +4,15 @@
 ########################################################################
 
 
-ifndef MAKEFILE_LINT_MAN_MDOC_INCLUDED
-MAKEFILE_LINT_MAN_MDOC_INCLUDED := 1
+ifndef MAKEFILE_LINT_MDOC_INCLUDED
+MAKEFILE_LINT_MDOC_INCLUDED := 1
 
 
-include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk
-include $(MAKEFILEDIR)/configure/build-depends/grep.mk
-include $(MAKEFILEDIR)/configure/build-depends/mandoc.mk
 include $(MAKEFILEDIR)/build/_.mk
-include $(MAKEFILEDIR)/lint/_.mk
+include $(MAKEFILEDIR)/configure/directory_variables.mk
 include $(MAKEFILEDIR)/src.mk
 
 
-mandoc_mdoc_ignore_grep := $(DATAROOTDIR)/lint/mandoc/mdoc.ignore.grep
-
-
 linters_mdoc := mandoc
 
 
@@ -28,16 +22,6 @@ $(foreach l, $(linters_mdoc),                                                 \
                        $(NONSO_MDOC))))
 
 
-$(_LINT_mdoc_mandoc): $(_MANDIR)/%.lint-mdoc.mandoc.touch: $(MANDIR)/% $(mandoc_mdoc_ignore_grep) | $$(@D)/
-       $(info LINT (mandoc)    $@)
-       ! ($(MANDOC) -mdoc $(MANDOCFLAGS) $< 2>&1 \
-          | $(GREP) -v -f '$(mandoc_mdoc_ignore_grep)' \
-          ||:; \
-       ) \
-       | $(GREP) ^ >&2
-       $(TOUCH) $@
-
-
 $(foreach l, $(linters_mdoc),                                                 \
        $(eval .PHONY: lint-mdoc-$(l)))
 $(foreach l, $(linters_mdoc),                                                 \
diff --git a/share/mk/lint/mdoc/mandoc.mk b/share/mk/lint/mdoc/mandoc.mk
new file mode 100644 (file)
index 0000000..2221452
--- /dev/null
@@ -0,0 +1,32 @@
+########################################################################
+# Copyright 2023, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: GPL-3.0-or-later
+########################################################################
+
+
+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 := $(DATAROOTDIR)/lint/mandoc/mdoc.ignore.grep
+
+
+$(_LINT_mdoc_mandoc): $(_MANDIR)/%.lint-mdoc.mandoc.touch: $(MANDIR)/% $(mandoc_mdoc_ignore_grep) | $$(@D)/
+       $(info LINT (mandoc)    $@)
+       ! ($(MANDOC) -mdoc $(MANDOCFLAGS) $< 2>&1 \
+          | $(GREP) -v -f '$(mandoc_mdoc_ignore_grep)' \
+          ||:; \
+       ) \
+       | $(GREP) ^ >&2
+       $(TOUCH) $@
+
+
+endif  # include guard