diff options
-rw-r--r-- | buildlib/defaults.mak | 1 | ||||
-rw-r--r-- | buildlib/environment.mak.in | 7 | ||||
-rw-r--r-- | buildlib/po4a_manpage.mak | 54 | ||||
-rw-r--r-- | configure.in | 6 | ||||
-rw-r--r-- | debian/changelog | 2 | ||||
-rw-r--r-- | doc/ja/makefile | 70 | ||||
-rw-r--r-- | doc/makefile | 28 |
7 files changed, 91 insertions, 77 deletions
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 \) ) |