From 05ccc2a5b201a76c0a76e9910abb7b3229e7b079 Mon Sep 17 00:00:00 2001 From: Guillem Jover Date: Thu, 3 Jul 2014 01:56:52 +0200 Subject: build: Set the XSL parameter through the command line instead of sed Use the xsltproc --stringparam option instead of replacing it inside the file. --- buildlib/po4a_manpage.mak | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'buildlib') diff --git a/buildlib/po4a_manpage.mak b/buildlib/po4a_manpage.mak index b3d586b2f..62ada1969 100644 --- a/buildlib/po4a_manpage.mak +++ b/buildlib/po4a_manpage.mak @@ -35,12 +35,13 @@ apt-vendor.ent: ../apt-vendor.ent cp -a ../apt-vendor.ent . manpage-style.xsl: ../manpage-style.xsl - sed "// i\ -" ../manpage-style.xsl > manpage-style.xsl + cp -a $< . $($(LOCAL)-LIST) :: % : %.xml $(STYLESHEET) $(INCLUDES) echo Creating man page $@ - $(XSLTPROC) -o $@ $(STYLESHEET) $< || exit 200 # why xsltproc doesn't respect the -o flag here??? + $(XSLTPROC) \ + --stringparam l10n.gentext.default.language $(LC) \ + -o $@ $(STYLESHEET) $< || exit 200 # why xsltproc doesn't respect the -o flag here??? test -f $(subst .$(LC),,$@) || echo 'FIXME: xsltproc respects the -o flag now, workaround can be removed' mv -f $(subst .$(LC),,$@) $@ -- cgit v1.2.3 From a034d8528bc98e9caf12e024a0d5eeb25f87a500 Mon Sep 17 00:00:00 2001 From: Guillem Jover Date: Wed, 2 Jul 2014 04:10:37 +0200 Subject: build: Convert from DebianDoc SGML to DocBook XML --- buildlib/debiandoc.mak | 60 ------------------------------------ buildlib/defaults.mak | 4 +-- buildlib/docbook.mak | 74 +++++++++++++++++++++++++++++++++++++++++++++ buildlib/environment.mak.in | 12 +++++--- buildlib/po4a_manpage.mak | 13 ++++---- 5 files changed, 89 insertions(+), 74 deletions(-) delete mode 100644 buildlib/debiandoc.mak create mode 100644 buildlib/docbook.mak (limited to 'buildlib') 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) \ + $( $@ || 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) -- cgit v1.2.3 From 5abbf5bbb5ee8717f89cac6ef409c4cec79259f6 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 18 Jul 2014 16:42:40 +0200 Subject: ensure that all docs use all entities files Not all are needed for all files at the moment, but the new docbook building hadn't available some of the entities it used as the files weren't correctly copied around in all cases and having the same across the bord makes working with all of them a little easier. Git-Dch: Ignore --- buildlib/docbook.mak | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'buildlib') diff --git a/buildlib/docbook.mak b/buildlib/docbook.mak index 272475721..6aa3ca0d2 100644 --- a/buildlib/docbook.mak +++ b/buildlib/docbook.mak @@ -13,6 +13,7 @@ LOCAL := docbook-$(firstword $(SOURCE)) $(LOCAL)-HTML := $(addsuffix .html,$(addprefix $(DOC)/,$(basename $(SOURCE)))) $(LOCAL)-TEXT := $(addsuffix .text,$(addprefix $(DOC)/,$(basename $(SOURCE)))) +INCLUDES = apt.ent apt-verbatim.ent apt-vendor.ent docbook: @@ -30,7 +31,7 @@ veryclean: veryclean/html/$(LOCAL) vpath %.dbk $(SUBDIRS) vpath $(DOCBOOK_HTML_STYLESHEET) $(SUBDIRS) -$(DOC)/%.html: %.dbk $(DOCBOOK_HTML_STYLESHEET) +$(DOC)/%.html: %.dbk $(DOCBOOK_HTML_STYLESHEET) $(INCLUDES) echo Creating html for $< to $@ -rm -rf $@ mkdir -p $@ @@ -59,7 +60,7 @@ veryclean: veryclean/text/$(LOCAL) vpath %.dbk $(SUBDIRS) vpath $(DOCBOOK_TEXT_STYLESHEET) $(SUBDIRS) -$(DOC)/%.text: %.dbk $(DOCBOOK_TEXT_STYLESHEET) +$(DOC)/%.text: %.dbk $(DOCBOOK_TEXT_STYLESHEET) $(INCLUDES) echo Creating text for $< to $@ $(DOCBOOK) \ --stringparam l10n.gentext.default.language $(LC) \ -- cgit v1.2.3