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