From 851b01cf35f29780763ba5030df184f243e40b4d Mon Sep 17 00:00:00 2001 From: Alejandro Colomar Date: Sun, 23 Apr 2023 03:05:29 +0200 Subject: *.mk: build-pdf: Build PDF manual pages Signed-off-by: Alejandro Colomar --- Makefile | 13 +++++++-- share/mk/build/_.mk | 2 +- share/mk/build/pdf.mk | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 share/mk/build/pdf.mk 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 +# 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 -- cgit v1.2.3