chiark / gitweb /
Update Japanese translation by Hideki Yamane (thanks!),
[developers-reference.git] / Makefile
index fc0e423a42828cf62353e601e0a182bc7995c092..cb6924cb1ef49cc0b0b95c68658932117c6a444e 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,8 @@
 # Makefile, used for the developers-reference in DocBook XML
 
-SOURCES                := $(wildcard *.dbk)
+# Note: This Makefile should work perfectly without the debian/ directory.
+
+SOURCES                := $(wildcard *.dbk) common.ent version.ent
 
 FORMATS                := html txt pdf
 LANGS           := fr ja
@@ -8,15 +10,23 @@ TARGETS              := $(foreach fmt,$(FORMATS),developers-reference.$(fmt)) \
                   $(foreach lng,$(LANGS), \
                       $(foreach fmt,$(FORMATS), \
                           $(lng)/developers-reference.$(fmt)))
+
+# hopefully overwritten by caller, e.g. debian/rules
+VERSION=unknown
+PUBDATE=unknown
+
 # programs for creating output
 XP=xsltproc --nonet --novalid --xinclude
 XL=xmllint --nonet --noout --postvalid --xinclude
 # fop is currently in contrib, but can go to main, see #366783
-# alternatives: docbook2pdf (seems to die on UTF-8), dblatex (0.2.4
-# just hangs here) and xmllint (not mature enough, waits in NEW)
+# Alternatives:
+# - dblatex (0.2.6 has some problems, next release will be OK;
+#   Japanese PDF needs non-free cyberbit font)
+# - docbook2pdf (seems to die on UTF-8, #431085); and
+# - xmlroff (not mature enough, #182445)
 FOP=fop
-# The "-k 0" should be removed as soon as the translations are ready
-TRANSLATE=po4a-translate -f docbook -k 0
+# The "--keep 0" should be removed as soon as the translations are ready
+TRANSLATE=po4a-translate --format docbook --keep 0
 
 # XSL files and parameters
 # note: the URL is used as identifier, no HTTP is used!
@@ -36,9 +46,12 @@ DBK2FO=$$TOP/fop.xsl
 all:    $(TARGETS)
 
 .PHONY: validate
-validate:
+validate:                      $(SOURCES)
        $(XL) index.dbk
 
+%/validate:                    $(addprefix %/,$(SOURCES))
+       cd $(@D) && $(XL) index.dbk
+
 .PHONY: developers-reference.html %/developers-reference.html
 developers-reference.html:     $(PWD)/index.html
 %/developers-reference.html:   $(addprefix %/,index.html)
@@ -47,19 +60,21 @@ developers-reference.html:  $(PWD)/index.html
 .PRECIOUS:                     %/index.html
 index.html:                    $(PWD)/developers-reference.html
 %/index.html:                  $(addprefix %/,$(SOURCES))
-       mkdir -p $(@D) || true
        cd $(@D) && $(XP) $(DBK2HTML) index.dbk
 
 # There must be an easier way than recursive make!
-.PRECIOUS:             %.dbk
+.PRECIOUS:             %.dbk %.ent
 ifndef LINGUA
-%.dbk: FORCE
-       [ "$$LINGUA" = . ] || make $@ LINGUA=$(@D)
+%.dbk %.ent: FORCE
+       $(MAKE) $@ LINGUA=$(@D)
+
 FORCE:
 else
-#.SECONDARY:           $(LINGUA)/%.dbk
 $(LINGUA)/%.dbk:       %.dbk $(patsubst %.dbk,po4a/$(LINGUA)/%.po,%.dbk)
        $(TRANSLATE) -m $< -p po4a/$(@:.dbk=.po) -l $@
+
+$(LINGUA)/%.ent:       %.ent
+       cd $(@D) && ln -sf ../$(@F) .
 endif
 
 developers-reference.txt:      $(PWD)/developers-reference.txt
@@ -77,8 +92,21 @@ developers-reference.pdf:       $(PWD)/developers-reference.pdf
 %/developers-reference.pdf:     %/developers-reference.fo
        $(FOP) -fo $< -pdf $@
 
-version.ent:   debian/changelog
-       ./debian/rules $@
+.PHONY: pot
+pot:                           $(patsubst %.dbk,po4a/po/%.pot,$(SOURCES))
+po4a/po/%.pot:                 %.dbk
+       po4a-gettextize --format docbook --master $< --po $@
+
+ifdef LINGUA
+.PHONY: updatepo
+updatepo:                      $(patsubst %.dbk,po4a/$(LINGUA)/%.po,$(SOURCES))
+po4a/$(LINGUA)/%.po:           %.dbk
+       po4a-updatepo --format docbook --master $< --po $@
+endif
+
+version.ent:
+       echo '<!ENTITY version "$(VERSION)">' >  $@
+       echo '<!ENTITY pubdate "$(PUBDATE)">' >> $@
 
 .PHONY: clean
 clean: