From f30c4b6adaa6729630b15a354569ecbae92ec9a8 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 26 Aug 2009 16:38:54 +0200 Subject: [ Nicolas François ] * doc/style.txt, buildlib/defaults.mak, buildlib/manpage.mak: - fix a few typos in the comments of this files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buildlib/defaults.mak | 22 +++++++++++----------- buildlib/manpage.mak | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) (limited to 'buildlib') diff --git a/buildlib/defaults.mak b/buildlib/defaults.mak index a171522d5..8c57da05b 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 @@ -99,12 +99,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 +133,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 +142,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/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 -- cgit v1.2.3-70-g09d2 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 ++++++++++++++++++++++++++++++++++ configure.in | 6 ++++ debian/changelog | 2 ++ doc/ja/makefile | 70 ++------------------------------------------- doc/makefile | 28 ++++++++++++------ 7 files changed, 91 insertions(+), 77 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 diff --git a/configure.in b/configure.in index 0dd1beb1a..eb3ec0426 100644 --- a/configure.in +++ b/configure.in @@ -190,6 +190,12 @@ AC_PATH_PROG(DOCBOOK2MAN,docbook2man) dnl Check for the XML tools needed to build man pages AC_PATH_PROG(XMLTO,xmlto) +dnl Check for the XSLTProc tool needed to build man pages together with po4a +AC_PATH_PROG(XSLTPROC,xsltproc) + +dnl Check for the po4a tool needed to build man pages +AC_PATH_PROG(PO4A,po4a) + dnl Check for graphviz AC_CHECK_PROG([HAVE_DOT], [dot], [YES], [NO]) AC_PATH_PROG([DOT], [dot], []) diff --git a/debian/changelog b/debian/changelog index f978eb367..c3f9881ac 100644 --- a/debian/changelog +++ b/debian/changelog @@ -39,6 +39,8 @@ apt (0.7.22.3) unstable; urgency=low * doc/Doxyfile.in: - update file with doxygen 1.6.1 (current unstable) - activate DOT_MULTI_TARGETS, it is default on since doxygen 1.5.9 + * buildlib/po4a_manpage.mak, doc/makefile, configure: + - simplify the makefiles needed for po4a manpages [ George Danchev ] * cmdline/apt-cache.cc: diff --git a/doc/ja/makefile b/doc/ja/makefile index da566cc96..f44bb1c0f 100644 --- a/doc/ja/makefile +++ b/doc/ja/makefile @@ -5,71 +5,7 @@ SUBDIR=doc/ja # Bring in the default rules include ../../buildlib/defaults.mak -# Do not use XMLTO, build the manpages directly with XSLTPROC -XSLTPROC=/usr/bin/xsltproc -STYLESHEET=./style.ja.xsl - - -# Man pages -SOURCE = apt-cache.ja.8 apt-get.ja.8 apt-cdrom.ja.8 apt.conf.ja.5 \ - sources.list.ja.5 apt-config.ja.8 apt-sortpkgs.ja.1 \ - apt-ftparchive.ja.1 apt_preferences.ja.5 apt-extracttemplates.ja.1 \ - apt-key.ja.8 apt-secure.ja.8 apt-mark.ja.8 - -INCLUDES = apt.ent - -doc: $(SOURCE) - -clean: clean-manpages - -clean-manpages: - rm -f $(SOURCE) \ - $(patsubst %.ja.1,%.1,$(SOURCE)) \ - $(patsubst %.ja.5,%.5,$(SOURCE)) \ - $(patsubst %.ja.8,%.8,$(SOURCE)) - -$(SOURCE) :: % : %.xml $(INCLUDES) - echo Creating man page $@ - $(XSLTPROC) -o $@ $(STYLESHEET) $< - -apt-cache.ja.8:: apt-cache.8 - cp $< $@ - -apt-get.ja.8:: apt-get.8 - cp $< $@ - -apt-cdrom.ja.8:: apt-cdrom.8 - cp $< $@ - -apt.conf.ja.5:: apt.conf.5 - cp $< $@ - -apt-config.ja.8:: apt-config.8 - cp $< $@ - -sources.list.ja.5:: sources.list.5 - cp $< $@ - -apt-sortpkgs.ja.1:: apt-sortpkgs.1 - cp $< $@ - -apt-ftparchive.ja.1:: apt-ftparchive.1 - cp $< $@ - -apt_preferences.ja.5:: apt_preferences.5 - cp $< $@ - -apt-extracttemplates.ja.1:: apt-extracttemplates.1 - cp $< $@ - -apt-key.ja.8:: apt-key.8 - cp $< $@ - -apt-secure.ja.8:: apt-secure.8 - cp $< $@ - -apt-mark.ja.8:: apt-mark.8 - cp $< $@ - - +# Language Code of this translation +LC=ja +include $(PO4A_MANPAGE_H) diff --git a/doc/makefile b/doc/makefile index e12de7228..2a2663fb3 100644 --- a/doc/makefile +++ b/doc/makefile @@ -1,7 +1,7 @@ # -*- make -*- BASE=.. SUBDIR=doc -SUBDIRS= fr ja pl pt_BR es +SUBDIRS= $(dir $(wildcard */makefile)) # Bring in the default rules include ../buildlib/defaults.mak @@ -26,27 +26,39 @@ TARGET = binary include $(COPY_H) #.PHONY: headers library clean veryclean all binary program doc doc.pt_BR doc.fr -doc: po4a +doc: for dir in $(SUBDIRS); do\ $(MAKE) -C $$dir $@; \ done -.PHONY: update-po po4a -update-po: - po4a --previous --no-backups --force --no-translations po4a.conf - -clean: po4a-clean clean-subdirs +clean: clean-subdirs +veryclean: veryclean-subdirs clean-subdirs: for dir in $(SUBDIRS); do\ - $(MAKE) -C $$dir $@; \ + $(MAKE) -C $$dir clean; \ + done + +veryclean-subdirs: + for dir in $(SUBDIRS); do\ + $(MAKE) -C $$dir veryclean; \ done +ifdef PO4A +doc: po4a + +clean: po4a-clean + +.PHONY: update-po po4a +update-po: + po4a --previous --no-backups --force --no-translations po4a.conf + po4a-clean: po4a --previous --rm-backups --rm-translations po4a.conf po4a: po4a --previous --no-backups po4a.conf +endif ifdef DOXYGEN DOXYGEN_SOURCES = $(shell find $(BASE)/apt-pkg -not -name .\\\#* -and \( -name \*.cc -or -name \*.h \) ) -- cgit v1.2.3-70-g09d2