]> git.saurik.com Git - apt.git/commitdiff
* buildlib/po4a_manpage.mak, doc/makefile, configure:
authorDavid Kalnischkies <kalnischkies@gmail.com>
Thu, 27 Aug 2009 13:28:28 +0000 (15:28 +0200)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Thu, 27 Aug 2009 13:28:28 +0000 (15:28 +0200)
    - 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
buildlib/environment.mak.in
buildlib/po4a_manpage.mak [new file with mode: 0644]
configure.in
debian/changelog
doc/ja/makefile
doc/makefile

index 8c57da05bfc23ed35875aa137d46dccef9aa8f58..5373ee5cfabf4805aaf0eff53aa34e6fa56f9927 100644 (file)
@@ -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
 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
 XML_MANPAGE_H = $(BASE)/buildlib/xml_manpage.mak
 FAIL_H = $(BASE)/buildlib/fail.mak
 PODOMAIN_H = $(BASE)/buildlib/podomain.mak
index 4e47692f50f3e5aabee681c026078d24298e3e00..b3afca0ad6d2e9de58757b7dd5d62018c709d1b9 100644 (file)
@@ -36,8 +36,11 @@ DOCBOOK2MAN := @DOCBOOK2MAN@
 # XML for the man pages
 XMLTO := @XMLTO@
 
 # 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@
 
 # Gettext settings
 GMSGFMT = @GMSGFMT@
diff --git a/buildlib/po4a_manpage.mak b/buildlib/po4a_manpage.mak
new file mode 100644 (file)
index 0000000..3ea4e2c
--- /dev/null
@@ -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
index 0dd1beb1a338cd12fd992b1871d9c49ff35cf1a2..eb3ec0426c56588629696fbfd0add3705020d0ed 100644 (file)
@@ -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 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], [])
 dnl Check for graphviz
 AC_CHECK_PROG([HAVE_DOT], [dot], [YES], [NO])
 AC_PATH_PROG([DOT], [dot], [])
index f978eb367761b0b068fd7d0e043909f2e31826ba..c3f9881ac680acde4c4c431ec08d68619387b6e8 100644 (file)
@@ -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
   * 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:
 
   [ George Danchev ]
   * cmdline/apt-cache.cc:
index da566cc967952cf9f628fe28f83a40cacd8ba49a..f44bb1c0fcbe2984567ff4a0cb5ef1465340ad8a 100644 (file)
@@ -5,71 +5,7 @@ SUBDIR=doc/ja
 # Bring in the default rules
 include ../../buildlib/defaults.mak
 
 # 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)
index e12de7228b68aece519b030607f470bed3c959c7..2a2663fb3e6e082c22fba5c2d247339c4ca03fc7 100644 (file)
@@ -1,7 +1,7 @@
 # -*- make -*-
 BASE=..
 SUBDIR=doc
 # -*- make -*-
 BASE=..
 SUBDIR=doc
-SUBDIRS= fr ja pl pt_BR es
+SUBDIRS= $(dir $(wildcard */makefile))
 
 # Bring in the default rules
 include ../buildlib/defaults.mak
 
 # 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
 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
 
        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\
 
 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
 
        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
 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 \) )
 
 ifdef DOXYGEN
 DOXYGEN_SOURCES = $(shell find $(BASE)/apt-pkg -not -name .\\\#* -and \( -name \*.cc -or -name \*.h \) )