From cdb8bd9563dd8a0d32138de40bc64f0c3475790c Mon Sep 17 00:00:00 2001 From: Alejandro Colomar Date: Mon, 18 Mar 2024 15:35:10 +0100 Subject: share/mk/: Use grohtml(1) instead of man2html(1) man2html(1) crashes on tzfile(5), and the upstream project is defunct. Link: Cc: Paul Eggert Cc: "G. Branden Robinson" Cc: Robert Luberda Signed-off-by: Alejandro Colomar --- share/mk/build/html.mk | 37 --------------------- share/mk/build/html/_.mk | 13 ++++++++ share/mk/build/html/post-grohtml.mk | 25 ++++++++++++++ share/mk/build/html/troff.mk | 55 +++++++++++++++++++++++++++++++ share/mk/configure/build-depends/groff.mk | 6 ++++ share/mk/install/html.mk | 7 ++-- 6 files changed, 103 insertions(+), 40 deletions(-) delete mode 100644 share/mk/build/html.mk create mode 100644 share/mk/build/html/_.mk create mode 100644 share/mk/build/html/post-grohtml.mk create mode 100644 share/mk/build/html/troff.mk diff --git a/share/mk/build/html.mk b/share/mk/build/html.mk deleted file mode 100644 index 4e496526e..000000000 --- a/share/mk/build/html.mk +++ /dev/null @@ -1,37 +0,0 @@ -######################################################################## -# Copyright 2021-2022, Alejandro Colomar -# SPDX-License-Identifier: GPL-3.0-or-later -######################################################################## - - -ifndef MAKEFILE_BUILD_HTML_INCLUDED -MAKEFILE_BUILD_HTML_INCLUDED := 1 - - -include $(MAKEFILEDIR)/configure/build-depends/man2html.mk -include $(MAKEFILEDIR)/configure/build-depends/sed.mk -include $(MAKEFILEDIR)/configure/directory_variables.mk -include $(MAKEFILEDIR)/configure/src.mk -include $(MAKEFILEDIR)/src.mk - - -_HTMLDIR := $(builddir)/html - - -_HTMLPAGES := $(patsubst $(MANDIR)/%,$(_HTMLDIR)/%$(htmlext),$(MANPAGES)) - - -# Use with -# make MAN2HTMLFLAGS=whatever html -# The sed removes the lines "Content-type: text/html\n\n" -$(_HTMLPAGES): $(_HTMLDIR)/%$(htmlext): $(MANDIR)/% $(MK) | $$(@D)/ - $(info $(INFO_)MAN2HTML $@) - $(MAN2HTML) $(MAN2HTMLFLAGS) $< \ - | $(SED) -e 1,2d >$@ - - -.PHONY: build-html html -build-html html: $(_HTMLPAGES); - - -endif # include guard diff --git a/share/mk/build/html/_.mk b/share/mk/build/html/_.mk new file mode 100644 index 000000000..b3e304159 --- /dev/null +++ b/share/mk/build/html/_.mk @@ -0,0 +1,13 @@ +# Copyright 2021-2024, Alejandro Colomar +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_BUILD_HTML_INCLUDED +MAKEFILE_BUILD_HTML_INCLUDED := 1 + + +.PHONY: build-html +build-html: build-html-post-grohtml; + + +endif # include guard diff --git a/share/mk/build/html/post-grohtml.mk b/share/mk/build/html/post-grohtml.mk new file mode 100644 index 000000000..fe77776ac --- /dev/null +++ b/share/mk/build/html/post-grohtml.mk @@ -0,0 +1,25 @@ +# Copyright 2021-2024, Alejandro Colomar +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_BUILD_HTML_POST_GROHTML_INCLUDED +MAKEFILE_BUILD_HTML_POST_GROHTML_INCLUDED := 1 + + +include $(MAKEFILEDIR)/build/html/troff.mk +include $(MAKEFILEDIR)/configure/build-depends/groff.mk + + +_HTMLMAN := $(patsubst %.html.set,%.html,$(_HTMLMAN_MAN_set) $(_HTMLMAN_MDOC_set)) + + +$(_HTMLMAN): %.html: %.html.set $(MK) | $$(@D)/ + $(info $(INFO_)POST_GROHTML $@) + $(POST_GROHTML) $(POST_GROHTMLFLAGS) <$< >$@ + + +.PHONY: build-html-post-grohtml +build-html-post-grohtml: $(_HTMLMAN); + + +endif # include guard diff --git a/share/mk/build/html/troff.mk b/share/mk/build/html/troff.mk new file mode 100644 index 000000000..6f88c5387 --- /dev/null +++ b/share/mk/build/html/troff.mk @@ -0,0 +1,55 @@ +# Copyright 2021-2024, Alejandro Colomar +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_BUILD_HTML_TROFF_INCLUDED +MAKEFILE_BUILD_HTML_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)/configure/xfail.mk +include $(MAKEFILEDIR)/src.mk + + +_XFAIL_HTMLMAN_MAN_set := \ + $(_MANDIR)/man2/membarrier.2.html.set \ + $(_MANDIR)/man5/proc.5.html.set \ + $(_MANDIR)/man7/charsets.7.html.set \ + $(_MANDIR)/man7/iso_8859-16.7.html.set \ + $(_MANDIR)/man7/iso_8859-6.7.html.set + + +_HTMLMAN_MAN_set := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.html.set,$(NONSO_MAN)) +_HTMLMAN_MDOC_set:= $(patsubst $(MANDIR)/%,$(_MANDIR)/%.html.set,$(NONSO_MDOC)) + + +ifeq ($(SKIP_XFAIL),yes) +_HTMLMAN_MAN_set := $(filter-out $(_XFAIL_HTMLMAN_MAN_set), $(_HTMLMAN_MAN_set)) +endif + + +$(_HTMLMAN_MAN_set): %.html.set: %.eqn $(MK) | $$(@D)/ + $(info $(INFO_)TROFF $@) + ! ($(TROFF) -man -Thtml $(TROFFFLAGS) <$< 2>&1 >$@) \ + | $(GREP) ^ >&2 + +$(_HTMLMAN_MDOC_set): %.html.set: %.eqn $(MK) | $$(@D)/ + $(info $(INFO_)TROFF $@) + ! ($(TROFF) -mdoc -Thtml $(TROFFFLAGS) <$< 2>&1 >$@) \ + | $(GREP) ^ >&2 + + +.PHONY: build-html-troff-man +build-html-troff-man: $(_HTMLMAN_MAN_set); + +.PHONY: build-html-troff-mdoc +build-html-troff-mdoc: $(_HTMLMAN_MDOC_set); + +.PHONY: build-html-troff +build-html-troff: build-html-troff-man build-html-troff-mdoc; + + +endif # include guard diff --git a/share/mk/configure/build-depends/groff.mk b/share/mk/configure/build-depends/groff.mk index 7043cb010..3ec8f07fd 100644 --- a/share/mk/configure/build-depends/groff.mk +++ b/share/mk/configure/build-depends/groff.mk @@ -12,4 +12,10 @@ GROPDFFLAGS := $(DEFAULT_GROPDFFLAGS) $(EXTRA_GROPDFFLAGS) GROPDF := gropdf +DEFAULT_POST_GROHTMLFLAGS := +EXTRA_POST_GROHTMLFLAGS := +POST_GROHTMLFLAGS := $(DEFAULT_POST_GROHTMLFLAGS) $(EXTRA_POST_GROHTMLFLAGS) +POST_GROHTML := post-grohtml + + endif # include guard diff --git a/share/mk/install/html.mk b/share/mk/install/html.mk index d3b505655..8a5340f87 100644 --- a/share/mk/install/html.mk +++ b/share/mk/install/html.mk @@ -8,7 +8,8 @@ ifndef MAKEFILE_INSTALL_HTML_INCLUDED MAKEFILE_INSTALL_HTML_INCLUDED := 1 -include $(MAKEFILEDIR)/build/html.mk +include $(MAKEFILEDIR)/build/_.mk +include $(MAKEFILEDIR)/build/html/post-grohtml.mk include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk include $(MAKEFILEDIR)/configure/directory_variables.mk include $(MAKEFILEDIR)/install/_.mk @@ -17,11 +18,11 @@ include $(MAKEFILEDIR)/install/_.mk _htmldir := $(DESTDIR)$(htmldir) -_htmlpages := $(patsubst $(_HTMLDIR)/%,$(_htmldir)/%,$(_HTMLPAGES)) +_htmlpages := $(patsubst $(_MANDIR)/%,$(_htmldir)/%,$(_HTMLMAN)) _htmlpages_rm := $(addsuffix -rm,$(wildcard $(_htmlpages))) -$(_htmlpages): $(_htmldir)/%: $(_HTMLDIR)/% $(MK) | $$(@D)/ +$(_htmlpages): $(_htmldir)/%: $(_MANDIR)/% $(MK) | $$(@D)/ $(info $(INFO_)INSTALL $@) $(INSTALL_DATA) -T $< $@ -- cgit v1.2.3