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 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@
--- /dev/null
+# -*- 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
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], [])
* 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:
# 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)
# -*- make -*-
BASE=..
SUBDIR=doc
-SUBDIRS= fr ja pl pt_BR es
+SUBDIRS= $(dir $(wildcard */makefile))
# Bring in the default rules
include ../buildlib/defaults.mak
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 \) )