From b01390eaa5750f28f258308b546f398ea5d89e3c Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 27 Aug 2009 15:28:28 +0200 Subject: * buildlib/po4a_manpage.mak, doc/makefile, configure: - simplify the makefiles needed for po4a manpages Add a bit more autodetection to the buildsystem to be able to add only half translated languages (only a few man pages, not all) and try to reduce the overhead needed to add new languages. --- buildlib/defaults.mak | 1 + buildlib/environment.mak.in | 7 ++++-- buildlib/po4a_manpage.mak | 54 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 buildlib/po4a_manpage.mak (limited to 'buildlib') diff --git a/buildlib/defaults.mak b/buildlib/defaults.mak index 8c57da05b..5373ee5cf 100644 --- a/buildlib/defaults.mak +++ b/buildlib/defaults.mak @@ -83,6 +83,7 @@ PYTHON_H = $(BASE)/buildlib/python.mak COPY_H = $(BASE)/buildlib/copy.mak YODL_MANPAGE_H = $(BASE)/buildlib/yodl_manpage.mak SGML_MANPAGE_H = $(BASE)/buildlib/sgml_manpage.mak +PO4A_MANPAGE_H = $(BASE)/buildlib/po4a_manpage.mak XML_MANPAGE_H = $(BASE)/buildlib/xml_manpage.mak FAIL_H = $(BASE)/buildlib/fail.mak PODOMAIN_H = $(BASE)/buildlib/podomain.mak diff --git a/buildlib/environment.mak.in b/buildlib/environment.mak.in index 4e47692f5..b3afca0ad 100644 --- a/buildlib/environment.mak.in +++ b/buildlib/environment.mak.in @@ -36,8 +36,11 @@ DOCBOOK2MAN := @DOCBOOK2MAN@ # XML for the man pages XMLTO := @XMLTO@ -# XML for the man pages -XMLTO := @XMLTO@ +# po4a for the man pages +XSLTPROC := @XSLTPROC@ + +# po4a for the man pages +PO4A := @PO4A@ # Gettext settings GMSGFMT = @GMSGFMT@ diff --git a/buildlib/po4a_manpage.mak b/buildlib/po4a_manpage.mak new file mode 100644 index 000000000..3ea4e2cb5 --- /dev/null +++ b/buildlib/po4a_manpage.mak @@ -0,0 +1,54 @@ +# -*- make -*- + +# This handles man pages with po4a. We convert to the respective +# output in the source directory then copy over to the final dest. This +# means po4a is only needed if compiling from bzr + +# Input +# $(LC) - The language code of the translation + +# See defaults.mak for information about LOCAL + +# generate a list of accepted man page translations +SOURCE = $(patsubst %.xml,%,$(wildcard *.$(LC).?.xml)) +INCLUDES = apt.ent + +# Do not use XMLTO, build the manpages directly with XSLTPROC +ifdef XSLTPROC + +STYLESHEET=./style.$(LC).xsl + +LOCAL := po4a-manpage-$(firstword $(SOURCE)) +$(LOCAL)-LIST := $(SOURCE) + +# Install generation hooks +doc: $($(LOCAL)-LIST) +veryclean: veryclean/$(LOCAL) + +$($(LOCAL)-LIST) :: % : %.xml $(INCLUDES) + echo Creating man page $@ + $(XSLTPROC) -o $@ $(STYLESHEET) $< # why xsltproc doesn't respect the -o flag here??? + mv -f $(subst .$(LC),,$@) $@ + +# Clean rule +.PHONY: veryclean/$(LOCAL) +veryclean/$(LOCAL): + -rm -rf $($(@F)-LIST) apt.ent apt.$(LC).8 \ + $(addsuffix .xml,$($(@F)-LIST)) + +HAVE_PO4A=yes +endif + +# take care of the rest +SOURCE := $(SOURCE) apt.$(LC).8 +INCLUDES := + +ifndef HAVE_PO4A +# Strip from the source list any man pages we dont have compiled already +SOURCE := $(wildcard $(SOURCE)) +endif + +# Chain to the manpage rule +ifneq ($(words $(SOURCE)),0) +include $(MANPAGE_H) +endif -- cgit v1.2.3