diff options
author | Alejandro Colomar <alx@kernel.org> | 2024-02-14 14:22:29 +0100 |
---|---|---|
committer | Alejandro Colomar <alx@kernel.org> | 2024-02-17 02:38:31 +0100 |
commit | 0dbc1ea96d39a16d76c0220806121f06f68367ec (patch) | |
tree | b1ab29d8e48077f7e2e5cb548a82e0826f9f1a1f | |
parent | b54f8b1e1088642bd126b8182bd5076f9e61511c (diff) | |
download | man-pages-0dbc1ea96d39a16d76c0220806121f06f68367ec.tar.gz |
share/mk/: Reorganize build system
Signed-off-by: Alejandro Colomar <alx@kernel.org>
53 files changed, 984 insertions, 598 deletions
diff --git a/GNUmakefile b/GNUmakefile index 84d4155124..a7382b562b 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -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) diff --git a/share/mk/build/_.mk b/share/mk/build/_.mk index 7dae6f70ab..91fbb68277 100644 --- a/share/mk/build/_.mk +++ b/share/mk/build/_.mk @@ -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 index 2e6cdcb900..0000000000 --- a/share/mk/build/catman.mk +++ /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 index 0000000000..78aa862531 --- /dev/null +++ b/share/mk/build/catman/_.mk @@ -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 index 0000000000..373036665f --- /dev/null +++ b/share/mk/build/catman/eqn.mk @@ -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 index 0000000000..da4a2d26b4 --- /dev/null +++ b/share/mk/build/catman/grotty.mk @@ -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 index 0000000000..cbfe76604f --- /dev/null +++ b/share/mk/build/catman/troff.mk @@ -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 index 0000000000..96de0a31bf --- /dev/null +++ b/share/mk/build/examples/_.mk @@ -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 index 0000000000..edadf22db3 --- /dev/null +++ b/share/mk/build/examples/cc.mk @@ -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 index 0000000000..0dbb4b2df6 --- /dev/null +++ b/share/mk/build/examples/ld.mk @@ -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 index 0000000000..cd3246d421 --- /dev/null +++ b/share/mk/build/examples/src.mk @@ -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 index aebd6358b9..0000000000 --- a/share/mk/build/pdf.mk +++ /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 index 0000000000..f6660aa51b --- /dev/null +++ b/share/mk/build/pdf/_.mk @@ -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 index 0000000000..d3dda1305e --- /dev/null +++ b/share/mk/build/pdf/eqn.mk @@ -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 index 0000000000..2a088f7633 --- /dev/null +++ b/share/mk/build/pdf/gropdf.mk @@ -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 index 0000000000..424cf33277 --- /dev/null +++ b/share/mk/build/pdf/troff.mk @@ -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 index 126278d333..0000000000 --- a/share/mk/build/pre.mk +++ /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 index 0000000000..f0e86f4b1d --- /dev/null +++ b/share/mk/build/pre/_.mk @@ -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 index 0000000000..436c4a362d --- /dev/null +++ b/share/mk/build/pre/preconv.mk @@ -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 index 0000000000..58f9d74594 --- /dev/null +++ b/share/mk/build/pre/tbl.mk @@ -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 index 0000000000..b92ebfc0be --- /dev/null +++ b/share/mk/build/ps/_.mk @@ -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 index 0000000000..3bf9fd1a85 --- /dev/null +++ b/share/mk/build/ps/eqn.mk @@ -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 index 0000000000..e31096d943 --- /dev/null +++ b/share/mk/build/ps/grops.mk @@ -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 diff --git a/share/mk/build/ps.mk b/share/mk/build/ps/troff.mk index 8a9c434e2b..b271b6ac1e 100644 --- a/share/mk/build/ps.mk +++ b/share/mk/build/ps/troff.mk @@ -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 index 7d0e281cc5..0000000000 --- a/share/mk/build/src.mk +++ /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 diff --git a/share/mk/check/_.mk b/share/mk/check/_.mk index 6326d1f89e..1c978a8c2e 100644 --- a/share/mk/check/_.mk +++ b/share/mk/check/_.mk @@ -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 index 609540ba9e..0000000000 --- a/share/mk/check/catman.mk +++ /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 index 0000000000..b9bf5a14ea --- /dev/null +++ b/share/mk/check/catman/_.mk @@ -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 index 0000000000..c1563a2c4d --- /dev/null +++ b/share/mk/check/catman/col.mk @@ -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 index 0000000000..702b3142c7 --- /dev/null +++ b/share/mk/check/catman/grep.mk @@ -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 diff --git a/share/mk/configure/build-depends/coreutils.mk b/share/mk/configure/build-depends/coreutils.mk index 140ba13f2f..1f1dedadf5 100644 --- a/share/mk/configure/build-depends/coreutils.mk +++ b/share/mk/configure/build-depends/coreutils.mk @@ -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 index 0e8209d965..0000000000 --- a/share/mk/dist.mk +++ /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 index 0000000000..b0d5682f15 --- /dev/null +++ b/share/mk/dist/_.mk @@ -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 index 0000000000..74a1eb77a8 --- /dev/null +++ b/share/mk/dist/files.mk @@ -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 index 0000000000..fc01edba3f --- /dev/null +++ b/share/mk/dist/tar.mk @@ -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 index 0000000000..791cd03fe4 --- /dev/null +++ b/share/mk/dist/z.mk @@ -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 diff --git a/share/mk/install/_.mk b/share/mk/install/_.mk index 1fb5b1690f..bddaff25e2 100644 --- a/share/mk/install/_.mk +++ b/share/mk/install/_.mk @@ -16,7 +16,7 @@ include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk +$(INSTALL_DIR) $@ %-rm: - $(info RM $*) + $(info RM $*) $(RM) $* diff --git a/share/mk/install/html.mk b/share/mk/install/html.mk index 6252b2fa6d..a0b71d7515 100644 --- a/share/mk/install/html.mk +++ b/share/mk/install/html.mk @@ -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 $< $@ diff --git a/share/mk/install/man.mk b/share/mk/install/man.mk index aade04b704..be10d7df2f 100644 --- a/share/mk/install/man.mk +++ b/share/mk/install/man.mk @@ -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 diff --git a/share/mk/lint/_.mk b/share/mk/lint/_.mk index 9d93bd3809..48d02fa359 100644 --- a/share/mk/lint/_.mk +++ b/share/mk/lint/_.mk @@ -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 index 1877f01042..0000000000 --- a/share/mk/lint/c.mk +++ /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 index 0000000000..334ff97db6 --- /dev/null +++ b/share/mk/lint/c/_.mk @@ -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 index 0000000000..f465f5592e --- /dev/null +++ b/share/mk/lint/c/checkpatch.mk @@ -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 index 0000000000..c48fb85aff --- /dev/null +++ b/share/mk/lint/c/clang-tidy.mk @@ -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 index 0000000000..b326dc05fd --- /dev/null +++ b/share/mk/lint/c/cppcheck.mk @@ -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 index 0000000000..89036eddbd --- /dev/null +++ b/share/mk/lint/c/cpplint.mk @@ -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 index 0000000000..a177936d3e --- /dev/null +++ b/share/mk/lint/c/iwyu.mk @@ -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 index 0000000000..d81d999b8b --- /dev/null +++ b/share/mk/lint/man/_.mk @@ -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 index 135ac397d4..0000000000 --- a/share/mk/lint/man/man.mk +++ /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 index 0000000000..ca25890afe --- /dev/null +++ b/share/mk/lint/man/mandoc.mk @@ -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 index 0000000000..27ffa49be3 --- /dev/null +++ b/share/mk/lint/man/tbl.mk @@ -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 diff --git a/share/mk/lint/man/mdoc.mk b/share/mk/lint/mdoc/_.mk index 8df8a04fbe..170dec1c2c 100644 --- a/share/mk/lint/man/mdoc.mk +++ b/share/mk/lint/mdoc/_.mk @@ -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 index 0000000000..2221452875 --- /dev/null +++ b/share/mk/lint/mdoc/mandoc.mk @@ -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 |