summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Colomar <alx@kernel.org>2024-03-18 15:35:10 +0100
committerAlejandro Colomar <alx@kernel.org>2024-03-18 15:40:42 +0100
commitcdb8bd9563dd8a0d32138de40bc64f0c3475790c (patch)
treef463e1233a6f12b429b0d0e37efd28a2755621f3
parent7e33dddd41cb6786d306907e55f9a8307bb3cf2a (diff)
share/mk/: Use grohtml(1) instead of man2html(1)
man2html(1) crashes on tzfile(5), and the upstream project is defunct. Link: <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1067022> Cc: Paul Eggert <eggert@cs.ucla.edu> Cc: "G. Branden Robinson" <branden@debian.org> Cc: Robert Luberda <robert@debian.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
-rw-r--r--share/mk/build/html.mk37
-rw-r--r--share/mk/build/html/_.mk13
-rw-r--r--share/mk/build/html/post-grohtml.mk25
-rw-r--r--share/mk/build/html/troff.mk55
-rw-r--r--share/mk/configure/build-depends/groff.mk6
-rw-r--r--share/mk/install/html.mk7
6 files changed, 103 insertions, 40 deletions
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 <alx@kernel.org>
-# 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 <alx@kernel.org>
+# 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 <alx@kernel.org>
+# 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 <alx@kernel.org>
+# 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 $< $@