diff options
author | Michael Vogt <mvo@debian.org> | 2009-09-04 20:54:48 +0200 |
---|---|---|
committer | Michael Vogt <mvo@debian.org> | 2009-09-04 20:54:48 +0200 |
commit | 2d4aa48a2e3e493780a797b828a04066ef1994fa (patch) | |
tree | ddbc618f8e9a52a612f70860eb23884a001a064c /buildlib | |
parent | 85b6d40dc0d41cc196f05e921260a592fe0ffd94 (diff) | |
parent | b43af876ed0901eabfb7fe93276eb9272cacf22d (diff) |
merged po4a change from David, many thanks
Diffstat (limited to 'buildlib')
-rw-r--r-- | buildlib/defaults.mak | 23 | ||||
-rw-r--r-- | buildlib/environment.mak.in | 7 | ||||
-rw-r--r-- | buildlib/manpage.mak | 2 | ||||
-rw-r--r-- | buildlib/po4a_manpage.mak | 54 |
4 files changed, 72 insertions, 14 deletions
diff --git a/buildlib/defaults.mak b/buildlib/defaults.mak index a171522d5..5373ee5cf 100644 --- a/buildlib/defaults.mak +++ b/buildlib/defaults.mak @@ -6,26 +6,26 @@ # for it to operate as expected. When included the module generates # the requested rules based on the contents of its control variables. -# This works out very well and allows a good degree of flexability. -# To accomidate some of the features we introduce the concept of +# This works out very well and allows a good degree of flexibility. +# To accommodate some of the features we introduce the concept of # local variables. To do this we use the 'Computed Names' feature of # gmake. Each module declares a LOCAL scope and access it with, # $($(LOCAL)-VAR) -# This works very well but it is important to rembember that within -# a rule the LOCAL var is unavailble, it will have to be constructed -# from the information in the rule invokation. For stock rules like +# This works very well but it is important to remember that within +# a rule the LOCAL var is unavailable, it will have to be constructed +# from the information in the rule invocation. For stock rules like # clean this is simple, we use a local clean rule called clean/$(LOCAL) # and then within the rule $(@F) gets back $(LOCAL)! Other rules will # have to use some other mechanism (filter perhaps?) The reason such # lengths are used is so that each directory can contain several 'instances' # of any given module. I notice that the very latest gmake has the concept # of local variables for rules. It is possible this feature in conjunction -# with the generated names will provide a very powerfull solution indeed! +# with the generated names will provide a very powerful solution indeed! # A build directory is used by default, all generated items get put into # there. However unlike automake this is not done with a VPATH build # (vpath builds break the distinction between #include "" and #include <>) -# but by explicly setting the BUILD variable. Make is invoked from +# but by explicitly setting the BUILD variable. Make is invoked from # within the source itself which is much more compatible with compilation # environments. ifndef NOISY @@ -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 @@ -99,12 +100,12 @@ endif # Source location control # SUBDIRS specifies sub components of the module that -# may be located in subdrictories of the source dir. +# may be located in subdirectories of the source dir. # This should be declared before including this file SUBDIRS+= # Header file control. -# TARGETDIRS indicitates all of the locations that public headers +# TARGETDIRS indicates all of the locations that public headers # will be published to. # This should be declared before including this file HEADER_TARGETDIRS+= @@ -133,7 +134,7 @@ dirs: mkdir -p $(patsubst %/,%,$(sort $(MKDIRS))) # Header file control. We want all published interface headers to go -# into the build directory from thier source dirs. We setup some +# into the build directory from their source dirs. We setup some # search paths here vpath %.h $(SUBDIRS) $(INCLUDE)/%.h $(addprefix $(INCLUDE)/,$(addsuffix /%.h,$(HEADER_TARGETDIRS))) : %.h @@ -142,7 +143,7 @@ $(INCLUDE)/%.h $(addprefix $(INCLUDE)/,$(addsuffix /%.h,$(HEADER_TARGETDIRS))) : # Dependency generation. We want to generate a .d file using gnu cpp. # For GNU systems the compiler can spit out a .d file while it is compiling, # this is specified with the INLINEDEPFLAG. Other systems might have a -# makedep program that can be called after compiling, that's illistrated +# makedep program that can be called after compiling, that's illustrated # by the DEPFLAG case. # Compile rules are expected to call this macro after calling the compiler ifdef GCC3DEP 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/manpage.mak b/buildlib/manpage.mak index 1f2644c01..6cdf73ccf 100644 --- a/buildlib/manpage.mak +++ b/buildlib/manpage.mak @@ -5,7 +5,7 @@ # Input # $(SOURCE) - The documents to use -# All output is writtin to files in the build doc directory +# All output is written to files in the build doc directory # See defaults.mak for information about LOCAL 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 |