summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Colomar <alx@kernel.org>2023-04-23 03:05:29 +0200
committerAlejandro Colomar <alx@kernel.org>2023-04-23 03:06:00 +0200
commit851b01cf35f29780763ba5030df184f243e40b4d (patch)
tree64be084978ec0bb601b45e4b575c2380bc1abebf
parentae60bbe556bf15a0c631b63b18f6b90132e0a924 (diff)
*.mk: build-pdf: Build PDF manual pages
Signed-off-by: Alejandro Colomar <alx@kernel.org>
-rw-r--r--Makefile13
-rw-r--r--share/mk/build/_.mk2
-rw-r--r--share/mk/build/pdf.mk74
3 files changed, 86 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index a32613962..0705d7080 100644
--- a/Makefile
+++ b/Makefile
@@ -48,7 +48,7 @@ help:
$(info )
$(info clean Remove $$(builddir))
$(info )
- $(info build Wrapper for "build-catman build-html build-src")
+ $(info build Wrapper for build-* targets)
$(info )
$(info build-pre Preprocess man pages; alias for "build-pre-tbl")
$(info build-pre-preconv Preprocess man pages with preconv(1))
@@ -64,7 +64,14 @@ help:
$(info build-html Build HTML manual pages)
$(info html Alias for "build-html")
$(info )
- $(info build-ps Build ps manual pages; alias for "build-ps-grops")
+ $(info build-pdf Build PDF manual pages; alias for "build-pdf-grops")
+ $(info build-pdf-eqn eqn(1) step of "build-pdf")
+ $(info build-pdf-troff Wrapper for build-pdf-troff-* targets)
+ $(info build-pdf-troff-man troff(1) step of "build-pdf" for man(7) pages)
+ $(info build-pdf-troff-mdoc troff(1) step of "build-pdf" for mdoc(7) pages)
+ $(info build-pdf-gropdf gropdf(1) step of "build-pdf")
+ $(info )
+ $(info build-ps Build PostScript manual pages; alias for "build-ps-grops")
$(info build-ps-eqn eqn(1) step of "build-ps")
$(info build-ps-troff Wrapper for build-ps-troff-* targets)
$(info build-ps-troff-man troff(1) step of "build-ps" for man(7) pages)
@@ -131,6 +138,7 @@ include $(MAKEFILEDIR)/check/catman.mk
include $(MAKEFILEDIR)/build/_.mk
include $(MAKEFILEDIR)/build/catman.mk
include $(MAKEFILEDIR)/build/html.mk
+include $(MAKEFILEDIR)/build/pdf.mk
include $(MAKEFILEDIR)/build/pre.mk
include $(MAKEFILEDIR)/build/ps.mk
include $(MAKEFILEDIR)/build/src.mk
@@ -188,6 +196,7 @@ help-variables:
$(info TBL)
$(info EQN {EXTRA_,}EQNFLAGS)
$(info TROFF {EXTRA_,}TROFFFLAGS{,_MAN,_MDOC} {EXTRA_,}NROFFFLAGS)
+ $(info GROPDF {EXTRA_,}GROPDFFLAGS)
$(info GROPS {EXTRA_,}GROPSFLAGS)
$(info GROTTY {EXTRA_,}GROTTYFLAGS)
$(info COL {EXTRA_,}COLFLAGS)
diff --git a/share/mk/build/_.mk b/share/mk/build/_.mk
index c42141ba0..c68290c1e 100644
--- a/share/mk/build/_.mk
+++ b/share/mk/build/_.mk
@@ -39,7 +39,7 @@ $(builddir)/%/:
.PHONY: build
-build: build-catman build-html build-ps build-src
+build: build-catman build-html build-pdf build-ps build-src
@:
.PHONY: clean
diff --git a/share/mk/build/pdf.mk b/share/mk/build/pdf.mk
new file mode 100644
index 000000000..c2547bf0b
--- /dev/null
+++ b/share/mk/build/pdf.mk
@@ -0,0 +1,74 @@
+########################################################################
+# 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)/build/groff.mk
+include $(MAKEFILEDIR)/cmd.mk
+include $(MAKEFILEDIR)/src.mk
+
+
+DEFAULT_GROPDFFLAGS :=
+EXTRA_GROPDFFLAGS :=
+GROPDFFLAGS := $(DEFAULT_GROPDFFLAGS) $(EXTRA_GROPDFFLAGS)
+GROPDF := gropdf
+
+
+_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 | $$(@D)/
+ $(info EQN $@)
+ $(EQN) -Tpdf $(EQNFLAGS) <$< 2>&1 >$@ \
+ | ( ! $(GREP) ^ )
+
+$(_PDFMAN_MAN_set): %.pdf.set: %.pdf.troff | $$(@D)/
+ $(info TROFF $@)
+ $(TROFF) -Tpdf $(TROFFFLAGS_MAN) <$< 2>&1 >$@ \
+ | ( ! $(GREP) ^ )
+
+$(_PDFMAN_MDOC_set): %.pdf.set: %.pdf.troff | $$(@D)/
+ $(info TROFF $@)
+ $(TROFF) -Tpdf $(TROFFFLAGS_MDOC) <$< 2>&1 >$@ \
+ | ( ! $(GREP) ^ )
+
+$(_PDFMAN): %.pdf: %.pdf.set | $$(@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