# 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
$(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!
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)
.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
%/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: