| 1 |
debacle |
4903 |
# Makefile, used for the developers-reference in DocBook XML
|
| 2 |
debacle |
4902 |
|
| 3 |
debacle |
4912 |
# Note: This Makefile should work perfectly without the debian/ directory.
|
| 4 |
debacle |
4902 |
|
| 5 |
debacle |
4912 |
SOURCES := $(wildcard *.dbk) common.ent version.ent
|
| 6 |
|
|
|
| 7 |
debacle |
4907 |
FORMATS := html txt pdf
|
| 8 |
|
|
LANGS := fr ja
|
| 9 |
|
|
TARGETS := $(foreach fmt,$(FORMATS),developers-reference.$(fmt)) \
|
| 10 |
|
|
$(foreach lng,$(LANGS), \
|
| 11 |
|
|
$(foreach fmt,$(FORMATS), \
|
| 12 |
|
|
$(lng)/developers-reference.$(fmt)))
|
| 13 |
debacle |
4948 |
# list of targets, that currently cannot build
|
| 14 |
|
|
BLACKLIST := ja/developers-reference.pdf
|
| 15 |
debacle |
4912 |
|
| 16 |
|
|
# hopefully overwritten by caller, e.g. debian/rules
|
| 17 |
|
|
VERSION=unknown
|
| 18 |
|
|
PUBDATE=unknown
|
| 19 |
|
|
|
| 20 |
debacle |
4902 |
# programs for creating output
|
| 21 |
debacle |
4903 |
XP=xsltproc --nonet --novalid --xinclude
|
| 22 |
|
|
XL=xmllint --nonet --noout --postvalid --xinclude
|
| 23 |
debacle |
4948 |
# dblatex 0.2.8 has some problems (e.g. #465221 and Japanese does
|
| 24 |
|
|
# not build)
|
| 25 |
debacle |
4910 |
# Alternatives:
|
| 26 |
|
|
# - docbook2pdf (seems to die on UTF-8, #431085); and
|
| 27 |
debacle |
4933 |
# - fop is currently in contrib, but can go to main, see #366783
|
| 28 |
debacle |
4913 |
# - xmlroff (not mature enough, #182445)
|
| 29 |
debacle |
4933 |
DBLATEX=dblatex --style=db2latex
|
| 30 |
debacle |
4912 |
# The "--keep 0" should be removed as soon as the translations are ready
|
| 31 |
|
|
TRANSLATE=po4a-translate --format docbook --keep 0
|
| 32 |
debacle |
4903 |
|
| 33 |
debacle |
4907 |
# XSL files and parameters
|
| 34 |
debacle |
4903 |
# note: the URL is used as identifier, no HTTP is used!
|
| 35 |
|
|
DOCBOOK_XSL=http://docbook.sourceforge.net/release/xsl/current
|
| 36 |
debacle |
4935 |
# for HTML output
|
| 37 |
debacle |
4954 |
DBK2HTML=$(CURDIR)/html.xsl
|
| 38 |
debacle |
4935 |
# all in one file for text output
|
| 39 |
debacle |
4954 |
DBK2HTML1=$(CURDIR)/txt.xsl
|
| 40 |
debacle |
4903 |
|
| 41 |
debacle |
4907 |
.PHONY: all
|
| 42 |
debacle |
4948 |
all: $(filter-out $(BLACKLIST), $(TARGETS))
|
| 43 |
debacle |
4903 |
|
| 44 |
debacle |
4902 |
.PHONY: validate
|
| 45 |
debacle |
4910 |
validate: $(SOURCES)
|
| 46 |
debacle |
4903 |
$(XL) index.dbk
|
| 47 |
debacle |
4902 |
|
| 48 |
debacle |
4910 |
%/validate: $(addprefix %/,$(SOURCES))
|
| 49 |
|
|
cd $(@D) && $(XL) index.dbk
|
| 50 |
|
|
|
| 51 |
debacle |
4907 |
.PHONY: developers-reference.html %/developers-reference.html
|
| 52 |
debacle |
4954 |
developers-reference.html: $(CURDIR)/index.html
|
| 53 |
debacle |
4907 |
%/developers-reference.html: $(addprefix %/,index.html)
|
| 54 |
|
|
@true
|
| 55 |
debacle |
4902 |
|
| 56 |
debacle |
4907 |
.PRECIOUS: %/index.html
|
| 57 |
debacle |
4954 |
index.html: $(CURDIR)/developers-reference.html
|
| 58 |
debacle |
4907 |
%/index.html: $(addprefix %/,$(SOURCES))
|
| 59 |
|
|
cd $(@D) && $(XP) $(DBK2HTML) index.dbk
|
| 60 |
debacle |
4902 |
|
| 61 |
debacle |
4907 |
# There must be an easier way than recursive make!
|
| 62 |
debacle |
4910 |
.PRECIOUS: %.dbk %.ent
|
| 63 |
debacle |
4907 |
ifndef LINGUA
|
| 64 |
debacle |
4910 |
%.dbk %.ent: FORCE
|
| 65 |
debacle |
4954 |
$(MAKE) $@ LINGUA=`basename $(@D)`
|
| 66 |
debacle |
4912 |
|
| 67 |
debacle |
4907 |
FORCE:
|
| 68 |
|
|
else
|
| 69 |
|
|
$(LINGUA)/%.dbk: %.dbk $(patsubst %.dbk,po4a/$(LINGUA)/%.po,%.dbk)
|
| 70 |
|
|
$(TRANSLATE) -m $< -p po4a/$(@:.dbk=.po) -l $@
|
| 71 |
debacle |
4910 |
|
| 72 |
debacle |
4933 |
$(LINGUA)/common.ent: common.ent
|
| 73 |
debacle |
4910 |
cd $(@D) && ln -sf ../$(@F) .
|
| 74 |
debacle |
4907 |
endif
|
| 75 |
|
|
|
| 76 |
debacle |
4954 |
developers-reference.txt: $(CURDIR)/developers-reference.txt
|
| 77 |
debacle |
4907 |
%/developers-reference.txt: $(addprefix %/,$(SOURCES))
|
| 78 |
|
|
$(XP) $(DBK2HTML1) $(@D)/index.dbk \
|
| 79 |
debacle |
5237 |
| w3m -cols 70 -dump -no-graph -T text/html > $@
|
| 80 |
debacle |
4902 |
|
| 81 |
debacle |
4954 |
developers-reference.pdf: $(CURDIR)/developers-reference.pdf
|
| 82 |
debacle |
4933 |
%/developers-reference.pdf: $(addprefix %/,$(SOURCES))
|
| 83 |
|
|
TOP=`pwd` && cd $(@D) && $(DBLATEX) index.dbk \
|
| 84 |
|
|
&& mv index.dbk.pdf $(@F)
|
| 85 |
debacle |
4902 |
|
| 86 |
debacle |
4912 |
.PHONY: pot
|
| 87 |
|
|
pot: $(patsubst %.dbk,po4a/po/%.pot,$(SOURCES))
|
| 88 |
|
|
po4a/po/%.pot: %.dbk
|
| 89 |
|
|
po4a-gettextize --format docbook --master $< --po $@
|
| 90 |
debacle |
4902 |
|
| 91 |
debacle |
4912 |
ifdef LINGUA
|
| 92 |
|
|
.PHONY: updatepo
|
| 93 |
|
|
updatepo: $(patsubst %.dbk,po4a/$(LINGUA)/%.po,$(SOURCES))
|
| 94 |
|
|
po4a/$(LINGUA)/%.po: %.dbk
|
| 95 |
|
|
po4a-updatepo --format docbook --master $< --po $@
|
| 96 |
|
|
endif
|
| 97 |
|
|
|
| 98 |
debacle |
4933 |
%/version.ent:
|
| 99 |
debacle |
4912 |
echo '<!ENTITY version "$(VERSION)">' > $@
|
| 100 |
|
|
echo '<!ENTITY pubdate "$(PUBDATE)">' >> $@
|
| 101 |
|
|
|
| 102 |
debacle |
4902 |
.PHONY: clean
|
| 103 |
|
|
clean:
|
| 104 |
debacle |
4903 |
rm -f *.fo *.html *.pdf *.txt
|
| 105 |
debacle |
4948 |
for L in $(LANGS); do rm -rf `basename ./"$$L"/`; done
|
| 106 |
debacle |
4902 |
rm -f version.ent
|
| 107 |
|
|
rm -f `find . -name "*~" -o -name "*.bak"`
|
| 108 |
|
|
rm -f *~ *.bak .#* core
|
| 109 |
|
|
|
| 110 |
|
|
.PHONY: distclean
|
| 111 |
|
|
distclean: clean
|
| 112 |
|
|
rm -f *.rej *.orig
|
| 113 |
|
|
|
| 114 |
|
|
# if rule bomb out, delete the target
|
| 115 |
|
|
.DELETE_ON_ERROR:
|