hgbook

view Makefile @ 997:c9ad85fd2f38

Fixing some XML and DTD errors to allow build of HgBook Fr
author Romain PELISSE <belaran@gmail.com>
date Sat Sep 12 20:52:03 2009 +0200 (2009-09-12)
parents 55e2953f82d6
children a821682ea3a5
line source
1 #
2 # Makefile for the hgbook, top-level
3 #
4 include Makefile.vars
6 FORMATS=html html-single pdf epub
8 PO_LANGUAGES := zh
9 DBK_LANGUAGES := en
10 LANGUAGES := $(DBK_LANGUAGES) $(PO_LANGUAGES)
12 UPDATEPO = PERLLIB=$(PO4A_LIB) $(PO4A_HOME)/po4a-updatepo -M UTF-8 \
13 -f docbook -o doctype=docbook -o includeexternal \
14 -o nodefault="<programlisting> <screen>" \
15 -o untranslated="<programlisting> <screen>"
16 TRANSLATE = PERLLIB=$(PO4A_LIB) $(PO4A_HOME)/po4a-translate -M UTF-8 \
17 -f docbook -o doctype=docbook -o includeexternal \
18 -o nodefault="<programlisting> <screen>" \
19 -o untranslated="<programlisting> <screen>" \
20 -k 0
22 #rev_id = $(shell hg parents --template '{node|short} ({date|isodate})')
23 rev_id = $(shell hg parents --template '{node|short} ({date|shortdate})')
25 images := \
26 en/figs/bad-merge-1.png \
27 en/figs/bad-merge-2.png \
28 en/figs/bad-merge-3.png \
29 en/figs/bad-merge-4.png \
30 en/figs/bad-merge-5.png \
31 en/figs/feature-branches.png \
32 en/figs/filelog.png \
33 en/figs/metadata.png \
34 en/figs/mq-stack.png \
35 en/figs/revlog.png \
36 en/figs/snapshot.png \
37 en/figs/tour-history.png \
38 en/figs/tour-merge-conflict.png \
39 en/figs/tour-merge-merge.png \
40 en/figs/tour-merge-pull.png \
41 en/figs/tour-merge-sep-repos.png \
42 en/figs/undo-manual-merge.png \
43 en/figs/undo-manual.png \
44 en/figs/undo-non-tip.png \
45 en/figs/undo-simple.png \
46 en/figs/wdir-after-commit.png \
47 en/figs/wdir-branch.png \
48 en/figs/wdir-merge.png \
49 en/figs/wdir.png \
50 en/figs/wdir-pre-branch.png
52 help:
53 @echo " make epub [LINGUA=en|zh|...]"
54 @echo " make html [LINGUA=en|zh|...]"
55 @echo " make html-single [LINGUA=en|zh|...]"
56 @echo " make pdf [LINGUA=en|zh|...]"
57 @echo " make validate [LINGUA=en|zh|...] # always before commit!"
58 @echo " make tidypo [LINGUA=zh|...] # always before commit!"
59 @echo " make updatepo [LINGUA=zh|...] # update po files."
60 @echo " make all [LINGUA=en|zh|...]"
61 @echo " make stat # print statistics about po files."
62 @echo " make clean # Remove the build files."
64 clean:
65 @rm -fr build po/*.mo hello en/hello en/html en/.validated-00book.xml en/examples/.run en/examples/results \
66 stylesheets/system-xsl en/figs/*-tmp.svg \
67 web/index-read.html.in \
68 en/figs/bad-merge-1.png \
69 en/figs/bad-merge-2.png \
70 en/figs/bad-merge-3.png \
71 en/figs/bad-merge-4.png \
72 en/figs/bad-merge-5.png \
73 en/figs/feature-branches.png \
74 en/figs/filelog.png \
75 en/figs/feature-branches.png \
76 en/figs/filelog.png \
77 en/figs/metadata.png \
78 en/figs/mq-stack.png \
79 en/figs/revlog.png \
80 en/figs/snapshot.png \
81 en/figs/tour-history.png \
82 en/figs/tour-merge-conflict.png \
83 en/figs/tour-merge-merge.png \
84 en/figs/tour-merge-pull.png \
85 en/figs/tour-merge-sep-repos.png \
86 en/figs/undo-manual-merge.png \
87 en/figs/undo-manual.png \
88 en/figs/undo-non-tip.png \
89 en/figs/undo-simple.png \
90 en/figs/wdir-after-commit.png \
91 en/figs/wdir-branch.png \
92 en/figs/wdir-merge.png \
93 en/figs/wdir-pre-branch.png \
94 en/figs/wdir.png
96 all:
97 ifdef LINGUA
98 for f in $(FORMATS); do \
99 $(MAKE) LINGUA=$(LINGUA) $$f; \
100 done
101 else
102 for l in $(LANGUAGES); do \
103 for f in $(FORMATS); do \
104 $(MAKE) LINGUA=$$l $$f; \
105 done; \
106 done
107 endif
109 stat:
110 @( \
111 LANG=C; export LANG; cd po; \
112 for f in *.po; do \
113 printf "%s\t" $$f; \
114 msgfmt --statistics -c $$f; \
115 done; \
116 )
118 tidypo:
119 ifdef LINGUA
120 msgcat --sort-by-file --width=80 po/$(LINGUA).po > po/$(LINGUA).tmp && \
121 mv po/$(LINGUA).tmp po/$(LINGUA).po;
122 else
123 for po in $(wildcard po/*.po); do \
124 msgcat --sort-by-file --width=80 $$po > $$po.tmp && mv $$po.tmp $$po; \
125 done
126 endif
128 ifndef LINGUA
129 updatepo:
130 for l in $(PO_LANGUAGES); do \
131 $(MAKE) $@ LINGUA=$$l; \
132 done
133 else
134 updatepo:
135 ifneq "$(findstring $(LINGUA),$(PO_LANGUAGES))" ""
136 (cd po; \
137 $(UPDATEPO) -m ../en/00book.xml -p $(LINGUA).po; \
138 )
139 $(MAKE) tidypo LINGUA=$(LINGUA)
140 endif
141 endif
143 ifndef LINGUA
144 validate:
145 for l in $(LANGUAGES); do \
146 $(MAKE) $@ LINGUA=$$l; \
147 done
148 else
149 validate: build/$(LINGUA)/source/hgbook.xml
150 xmllint --nonet --noout --postvalid --xinclude $<
152 ifneq "$(findstring $(LINGUA),$(DBK_LANGUAGES))" ""
153 $(LINGUA)/examples/.run:
154 (cd $(LINGUA)/examples; ./run-example -v -a)
156 build/$(LINGUA)/source/hgbook.xml: $(wildcard $(LINGUA)/*.xml) $(images) $(LINGUA)/examples/.run
157 mkdir -p build/$(LINGUA)/source/figs
158 cp $(LINGUA)/figs/*.png build/$(LINGUA)/source/figs
159 cp stylesheets/hgbook.css build/$(LINGUA)/source
160 (cd $(LINGUA); xmllint --nonet --noent --xinclude --postvalid --output ../$@.tmp 00book.xml)
161 cat $@.tmp | sed 's/\$$rev_id\$$/${rev_id}/' > $@
162 else
163 en/examples/.run:
164 (cd en/examples; ./run-example -v -a)
166 build/en/source/hgbook.xml:
167 ${MAKE} LINGUA=en $@
169 build/$(LINGUA)/source/hgbook.xml: $(wildcard en/*.xml) po/$(LINGUA).po $(images)
170 mkdir -p build/$(LINGUA)/source/figs
171 cp en/figs/*.png build/$(LINGUA)/source/figs
172 cp stylesheets/hgbook.css build/$(LINGUA)/source
173 $(TRANSLATE) -m en/00book.xml -p po/$(LINGUA).po -l en/hgbook.xml.$(LINGUA)
174 xmllint --nonet --noent --xinclude --postvalid --output $@.tmp en/hgbook.xml.$(LINGUA)
175 cat $@.tmp | sed 's/\$$rev_id\$$/${rev_id}/' > $@
176 mv en/hgbook.xml.$(LINGUA) build/$(LINGUA)/source
177 endif
179 endif
181 ifndef LINGUA
182 epub:
183 for l in $(LANGUAGES); do \
184 $(MAKE) $@ LINGUA=$$l; \
185 done
186 else
187 epub: build/$(LINGUA)/epub/hgbook.epub
189 build/$(LINGUA)/epub/hgbook.epub: build/$(LINGUA)/source/hgbook.xml
190 mkdir -p build/$(LINGUA)/epub
191 (cd build/$(LINGUA)/source; $(DB2EPUB) -c hgbook.css -v hgbook.xml; mv hgbook.epub ../epub)
192 endif
194 ifndef LINGUA
195 html:
196 for l in $(LANGUAGES); do \
197 $(MAKE) $@ LINGUA=$$l; \
198 done
199 else
200 html: build/$(LINGUA)/html/index.html
202 build/$(LINGUA)/html/index.html: build/$(LINGUA)/source/hgbook.xml stylesheets/html.xsl stylesheets/$(LINGUA)/html.xsl
203 mkdir -p build/$(LINGUA)/html/figs
204 cp en/figs/*.png build/$(LINGUA)/html/figs
205 cp stylesheets/hgbook.css build/$(LINGUA)/html
206 xsltproc --output build/$(LINGUA)/html/ \
207 stylesheets/$(LINGUA)/html.xsl build/$(LINGUA)/source/hgbook.xml
208 endif
210 ifndef LINGUA
211 html-single:
212 for l in $(LANGUAGES); do \
213 $(MAKE) $@ LINGUA=$$l; \
214 done
215 else
216 html-single: build/$(LINGUA)/html-single/hgbook.html
218 build/$(LINGUA)/html-single/hgbook.html: build/$(LINGUA)/source/hgbook.xml stylesheets/html-single.xsl stylesheets/$(LINGUA)/html-single.xsl
219 mkdir -p build/$(LINGUA)/html-single/figs
220 cp en/figs/*.png build/$(LINGUA)/html-single/figs
221 cp stylesheets/hgbook.css build/$(LINGUA)/html-single
222 xsltproc --output build/$(LINGUA)/html-single/hgbook.html \
223 stylesheets/$(LINGUA)/html-single.xsl build/$(LINGUA)/source/hgbook.xml
224 endif
226 ifndef LINGUA
227 pdf:
228 for l in $(LANGUAGES); do \
229 $(MAKE) $@ LINGUA=$$l; \
230 done
231 else
232 pdf: build/$(LINGUA)/pdf/hgbook.pdf
234 build/$(LINGUA)/pdf/hgbook.pdf: build/$(LINGUA)/source/hgbook.xml stylesheets/fo.xsl stylesheets/$(LINGUA)/fo.xsl
235 mkdir -p build/$(LINGUA)/pdf
236 java -classpath $(JAVA_LIB)/saxon65.jar:$(JAVA_LIB)/saxon65-dbxsl.jar:$(JAVA_LIB)/xml-commons-resolver-1.2.jar:$(JAVA_LIB) \
237 com.icl.saxon.StyleSheet \
238 -x org.apache.xml.resolver.tools.ResolvingXMLReader \
239 -y org.apache.xml.resolver.tools.ResolvingXMLReader \
240 -r org.apache.xml.resolver.tools.CatalogResolver \
241 -o build/$(LINGUA)/source/hgbook.fo \
242 build/$(LINGUA)/source/hgbook.xml \
243 stylesheets/$(LINGUA)/fo.xsl \
244 fop1.extensions=1
246 (cd build/$(LINGUA)/source && $(FOP_HOME)/fop.sh -c $(FOP_HOME)/conf/userconfig.xml hgbook.fo ../pdf/hgbook.pdf)
247 endif
249 en/figs/%.png: en/figs/%.svg en/fixsvg
250 en/fixsvg $<
251 inkscape -D -d 120 -e $@ $<-tmp.svg
253 en/figs/%.svg: en/figs/%.dot
254 dot -Tsvg -o $@ $<