summaryrefslogtreecommitdiff
path: root/buildlib
diff options
context:
space:
mode:
authorGuillem Jover <guillem@debian.org>2014-07-02 04:10:37 +0200
committerMichael Vogt <mvo@debian.org>2014-07-08 13:14:22 +0200
commita034d8528bc98e9caf12e024a0d5eeb25f87a500 (patch)
treed54f9e733c0f365fc1d6d5b781483a31c7780d0d /buildlib
parent05ccc2a5b201a76c0a76e9910abb7b3229e7b079 (diff)
downloadapt-a034d8528bc98e9caf12e024a0d5eeb25f87a500.tar.gz
build: Convert from DebianDoc SGML to DocBook XML
Diffstat (limited to 'buildlib')
-rw-r--r--buildlib/debiandoc.mak60
-rw-r--r--buildlib/defaults.mak4
-rw-r--r--buildlib/docbook.mak74
-rw-r--r--buildlib/environment.mak.in12
-rw-r--r--buildlib/po4a_manpage.mak13
5 files changed, 89 insertions, 74 deletions
diff --git a/buildlib/debiandoc.mak b/buildlib/debiandoc.mak
deleted file mode 100644
index 7e22467cf..000000000
--- a/buildlib/debiandoc.mak
+++ /dev/null
@@ -1,60 +0,0 @@
-# -*- make -*-
-
-# This processes debian-doc sgml to produce html and plain text output
-
-# Input
-# $(SOURCE) - The documents to use
-
-# All output is writtin to files in the build doc directory
-
-# See defaults.mak for information about LOCAL
-
-# Some local definitions
-LOCAL := debiandoc-$(firstword $(SOURCE))
-$(LOCAL)-HTML := $(addsuffix .html,$(addprefix $(DOC)/,$(basename $(SOURCE))))
-$(LOCAL)-TEXT := $(addsuffix .text,$(addprefix $(DOC)/,$(basename $(SOURCE))))
-
-debiandoc:
-
-#---------
-
-# Rules to build HTML documentations
-ifdef DEBIANDOC_HTML
-
-# Install generation hooks
-debiandoc: $($(LOCAL)-HTML)
-veryclean: veryclean/html/$(LOCAL)
-
-vpath %.sgml $(SUBDIRS)
-$(DOC)/%.html: %.sgml
- echo Creating html for $< to $@
- -rm -rf $@
- (HERE=`pwd`; cd $(@D) && $(DEBIANDOC_HTML) $(DEBIANDOC_HTML_OPTIONS) $$HERE/$<) || exit 199
-
-# Clean rule
-.PHONY: veryclean/html/$(LOCAL)
-veryclean/html/$(LOCAL):
- -rm -rf $($(@F)-HTML)
-
-endif
-
-#---------
-
-# Rules to build Text documentations
-ifdef DEBIANDOC_TEXT
-
-# Install generation hooks
-debiandoc: $($(LOCAL)-TEXT)
-veryclean: veryclean/text/$(LOCAL)
-
-vpath %.sgml $(SUBDIRS)
-$(DOC)/%.text: %.sgml
- echo Creating text for $< to $@
- $(DEBIANDOC_TEXT) -O $< > $@ || exit 198
-
-# Clean rule
-.PHONY: veryclean/text/$(LOCAL)
-veryclean/text/$(LOCAL):
- -rm -rf $($(@F)-TEXT)
-
-endif
diff --git a/buildlib/defaults.mak b/buildlib/defaults.mak
index 599b9ed85..c7931c504 100644
--- a/buildlib/defaults.mak
+++ b/buildlib/defaults.mak
@@ -76,7 +76,7 @@ PO_DOMAINS := $(BUILD)/po/domains
# Module types
LIBRARY_H = $(BASE)/buildlib/library.mak
-DEBIANDOC_H = $(BASE)/buildlib/debiandoc.mak
+DOCBOOK_H = $(BASE)/buildlib/docbook.mak
MANPAGE_H = $(BASE)/buildlib/manpage.mak
PROGRAM_H = $(BASE)/buildlib/program.mak
PYTHON_H = $(BASE)/buildlib/python.mak
@@ -121,7 +121,7 @@ MKDIRS := $(BIN)
all: dirs binary doc
binary: library program
maintainer-clean dist-clean distclean pristine sanity: veryclean
-startup headers library clean veryclean program test update-po manpages debiandoc:
+startup headers library clean veryclean program test update-po manpages docbook:
veryclean:
echo Very Clean done for $(SUBDIR)
diff --git a/buildlib/docbook.mak b/buildlib/docbook.mak
new file mode 100644
index 000000000..272475721
--- /dev/null
+++ b/buildlib/docbook.mak
@@ -0,0 +1,74 @@
+# -*- make -*-
+
+# This processes DocBook XML to produce html and plain text output
+
+# Input
+# $(SOURCE) - The documents to use
+
+# All output is written to files in the build doc directory
+
+# See defaults.mak for information about LOCAL
+
+# Some local definitions
+LOCAL := docbook-$(firstword $(SOURCE))
+$(LOCAL)-HTML := $(addsuffix .html,$(addprefix $(DOC)/,$(basename $(SOURCE))))
+$(LOCAL)-TEXT := $(addsuffix .text,$(addprefix $(DOC)/,$(basename $(SOURCE))))
+
+docbook:
+
+
+#---------
+
+# Rules to build HTML documentations
+ifdef XSLTPROC
+
+DOCBOOK_HTML_STYLESHEET := docbook-html-style.xsl
+
+# Install generation hooks
+docbook: $($(LOCAL)-HTML)
+veryclean: veryclean/html/$(LOCAL)
+
+vpath %.dbk $(SUBDIRS)
+vpath $(DOCBOOK_HTML_STYLESHEET) $(SUBDIRS)
+$(DOC)/%.html: %.dbk $(DOCBOOK_HTML_STYLESHEET)
+ echo Creating html for $< to $@
+ -rm -rf $@
+ mkdir -p $@
+ $(DOCBOOK) \
+ --stringparam base.dir $@/ \
+ --stringparam l10n.gentext.default.language $(LC) \
+ $(<D)/$(DOCBOOK_HTML_STYLESHEET) $< || exit 199
+
+# Clean rule
+.PHONY: veryclean/html/$(LOCAL)
+veryclean/html/$(LOCAL):
+ -rm -rf $($(@F)-HTML)
+
+endif
+
+#---------
+
+# Rules to build Text documentations
+ifdef XSLTPROC
+
+DOCBOOK_TEXT_STYLESHEET := docbook-text-style.xsl
+
+# Install generation hooks
+docbook: $($(LOCAL)-TEXT)
+veryclean: veryclean/text/$(LOCAL)
+
+vpath %.dbk $(SUBDIRS)
+vpath $(DOCBOOK_TEXT_STYLESHEET) $(SUBDIRS)
+$(DOC)/%.text: %.dbk $(DOCBOOK_TEXT_STYLESHEET)
+ echo Creating text for $< to $@
+ $(DOCBOOK) \
+ --stringparam l10n.gentext.default.language $(LC) \
+ $(<D)/$(DOCBOOK_TEXT_STYLESHEET) $< | \
+ LC_ALL=C.UTF-8 $(DOCBOOK2TEXT) > $@ || exit 198
+
+# Clean rule
+.PHONY: veryclean/text/$(LOCAL)
+veryclean/text/$(LOCAL):
+ -rm -rf $($(@F)-TEXT)
+
+endif
diff --git a/buildlib/environment.mak.in b/buildlib/environment.mak.in
index c1bf29672..b0a8d9d35 100644
--- a/buildlib/environment.mak.in
+++ b/buildlib/environment.mak.in
@@ -28,15 +28,17 @@ RANLIB:=@RANLIB@
GCC3DEP = @GCC3DEP@
INLINEDEPFLAG = -MD
-# Debian doc stuff
-DEBIANDOC_HTML = @DEBIANDOC_HTML@
-DEBIANDOC_TEXT = @DEBIANDOC_TEXT@
-
DOXYGEN = @DOXYGEN@
+W3M = @W3M@
-# xsltproc for the man pages
+# xsltproc for the man pages and documentation
XSLTPROC := @XSLTPROC@
+# DocBook XML
+DOCBOOK = $(XSLTPROC) --nonet --novalid --xinclude
+DOCBOOK2TEXT = $(W3M) -o display_charset=UTF-8 -no-graph -T text/html \
+ -cols 78 -dump
+
# po4a for the man pages
PO4A := @PO4A@
diff --git a/buildlib/po4a_manpage.mak b/buildlib/po4a_manpage.mak
index 62ada1969..0f53a8600 100644
--- a/buildlib/po4a_manpage.mak
+++ b/buildlib/po4a_manpage.mak
@@ -15,6 +15,9 @@ INCLUDES = apt.ent apt-verbatim.ent apt-vendor.ent
manpages:
+%.xsl: ../%.xsl
+ cp -a $< .
+
# Do not use XMLTO, build the manpages directly with XSLTPROC
ifdef XSLTPROC
@@ -34,9 +37,6 @@ apt-verbatim.ent: ../apt-verbatim.ent
apt-vendor.ent: ../apt-vendor.ent
cp -a ../apt-vendor.ent .
-manpage-style.xsl: ../manpage-style.xsl
- cp -a $< .
-
$($(LOCAL)-LIST) :: % : %.xml $(STYLESHEET) $(INCLUDES)
echo Creating man page $@
$(XSLTPROC) \
@@ -70,7 +70,6 @@ ifneq ($(words $(SOURCE)),0)
include $(MANPAGE_H)
endif
-# Debian Doc SGML Documents
-SOURCE := $(wildcard *.$(LC).sgml)
-DEBIANDOC_HTML_OPTIONS=-l $(LC).UTF-8
-include $(DEBIANDOC_H)
+# DocBook XML Documents
+SOURCE := $(wildcard *.$(LC).dbk)
+include $(DOCBOOK_H)