1 # Makefile, used for the developers-reference in DocBook XML
3 # Note: This Makefile should work perfectly without the debian/ directory.
5 SOURCES := $(wildcard *.dbk) common.ent version.ent
7 FORMATS := html txt pdf
9 TARGETS := $(foreach fmt,$(FORMATS),developers-reference.$(fmt)) \
10 $(foreach lng,$(LANGS), \
11 $(foreach fmt,$(FORMATS), \
12 $(lng)/developers-reference.$(fmt)))
14 # hopefully overwritten by caller, e.g. debian/rules
18 # programs for creating output
19 XP=xsltproc --nonet --novalid --xinclude
20 XL=xmllint --nonet --noout --postvalid --xinclude
21 # fop is currently in contrib, but can go to main, see #366783
23 # - dblatex (0.2.6 has some problems, next release will be OK;
24 # Japanese PDF needs non-free cyberbit font)
25 # - docbook2pdf (seems to die on UTF-8, #431085); and
26 # - xmlroff (not mature enough, #182445)
28 # The "--keep 0" should be removed as soon as the translations are ready
29 TRANSLATE=po4a-translate --format docbook --keep 0
31 # XSL files and parameters
32 # note: the URL is used as identifier, no HTTP is used!
33 DOCBOOK_XSL=http://docbook.sourceforge.net/release/xsl/current
34 # one file per chapter
35 DBK2HTML=--stringparam chunk.section.depth 0 \
36 --stringparam section.autolabel 1 \
37 --stringparam use.id.as.filename 1 \
38 $(DOCBOOK_XSL)/xhtml/chunk.xsl
40 DBK2HTML1=--stringparam section.autolabel 1 \
41 $(DOCBOOK_XSL)/xhtml/docbook.xsl
43 # $(DOCBOOK_XSL)/fo/docbook.xsl
52 %/validate: $(addprefix %/,$(SOURCES))
53 cd $(@D) && $(XL) index.dbk
55 .PHONY: developers-reference.html %/developers-reference.html
56 developers-reference.html: $(PWD)/index.html
57 %/developers-reference.html: $(addprefix %/,index.html)
60 .PRECIOUS: %/index.html
61 index.html: $(PWD)/developers-reference.html
62 %/index.html: $(addprefix %/,$(SOURCES))
63 cd $(@D) && $(XP) $(DBK2HTML) index.dbk
65 # There must be an easier way than recursive make!
66 .PRECIOUS: %.dbk %.ent
69 $(MAKE) $@ LINGUA=$(@D)
73 $(LINGUA)/%.dbk: %.dbk $(patsubst %.dbk,po4a/$(LINGUA)/%.po,%.dbk)
74 $(TRANSLATE) -m $< -p po4a/$(@:.dbk=.po) -l $@
76 $(LINGUA)/%.ent: %.ent
77 cd $(@D) && ln -sf ../$(@F) .
80 developers-reference.txt: $(PWD)/developers-reference.txt
81 %/developers-reference.txt: $(addprefix %/,$(SOURCES))
82 $(XP) $(DBK2HTML1) $(@D)/index.dbk \
83 | w3m -cols 65 -dump -T text/html > $@
85 developers-reference.fo: $(PWD)/developers-reference.fo
88 %/developers-reference.fo: $(addprefix %/,$(SOURCES)) fop.xsl
89 TOP=`pwd` && cd $(@D) && $(XP) $(DBK2FO) index.dbk > $(@F)
91 developers-reference.pdf: $(PWD)/developers-reference.pdf
92 %/developers-reference.pdf: %/developers-reference.fo
96 pot: $(patsubst %.dbk,po4a/po/%.pot,$(SOURCES))
98 po4a-gettextize --format docbook --master $< --po $@
102 updatepo: $(patsubst %.dbk,po4a/$(LINGUA)/%.po,$(SOURCES))
103 po4a/$(LINGUA)/%.po: %.dbk
104 po4a-updatepo --format docbook --master $< --po $@
108 echo '<!ENTITY version "$(VERSION)">' > $@
109 echo '<!ENTITY pubdate "$(PUBDATE)">' >> $@
113 rm -f *.fo *.html *.pdf *.txt
116 rm -f `find . -name "*~" -o -name "*.bak"`
117 rm -f *~ *.bak .#* core
123 # if rule bomb out, delete the target