hgbook

view Makefile @ 660:f7add9f718a8

Update Chinese translation
author Dongsheng Song <dongsheng.song@gmail.com>
date Tue Mar 31 10:02:16 2009 +0800 (2009-03-31)
parents 1e020cb7d417
children 65b82a891cf7
line source
1 #
2 # Makefile for the hgbook, top-level
3 #
4 include Makefile.vars
6 FORMATS=html html-single pdf
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' \
18 -k 0
20 #rev_id = $(shell hg parents --template '{node|short} ({date|isodate})')
21 rev_id = $(shell hg parents --template '{node|short} ({date|shortdate})')
23 images := \
24 en/figs/feature-branches.png \
25 en/figs/filelog.png \
26 en/figs/metadata.png \
27 en/figs/mq-stack.png \
28 en/figs/revlog.png \
29 en/figs/snapshot.png \
30 en/figs/tour-history.png \
31 en/figs/tour-merge-conflict.png \
32 en/figs/tour-merge-merge.png \
33 en/figs/tour-merge-pull.png \
34 en/figs/tour-merge-sep-repos.png \
35 en/figs/undo-manual-merge.png \
36 en/figs/undo-manual.png \
37 en/figs/undo-non-tip.png \
38 en/figs/undo-simple.png \
39 en/figs/wdir-after-commit.png \
40 en/figs/wdir-branch.png \
41 en/figs/wdir-merge.png \
42 en/figs/wdir.png \
43 en/figs/wdir-pre-branch.png
45 help:
46 @echo " make html [LINGUA=en|zh|...]"
47 @echo " make html-single [LINGUA=en|zh|...]"
48 @echo " make pdf [LINGUA=en|zh|...]"
49 @echo " make validate [LINGUA=en|zh|...] # always before commit!"
50 @echo " make tidypo [LINGUA=zh|...] # always before commit!"
51 @echo " make updatepo [LINGUA=zh|...] # update po files."
52 @echo " make all [LINGUA=en|zh|...]"
53 @echo " make stat # print statistics about po files."
54 @echo " make clean # Remove the build files."
56 clean:
57 @rm -fr build po/*.mo hello en/hello en/html en/.validated-00book.xml en/examples/.run en/examples/results \
58 stylesheets/system-xsl en/figs/*-tmp.svg \
59 en/figs/feature-branches.png \
60 en/figs/filelog.png \
61 en/figs/feature-branches.png \
62 en/figs/filelog.png \
63 en/figs/metadata.png \
64 en/figs/mq-stack.png \
65 en/figs/revlog.png \
66 en/figs/snapshot.png \
67 en/figs/tour-history.png \
68 en/figs/tour-merge-conflict.png \
69 en/figs/tour-merge-merge.png \
70 en/figs/tour-merge-pull.png \
71 en/figs/tour-merge-sep-repos.png \
72 en/figs/undo-manual-merge.png \
73 en/figs/undo-manual.png \
74 en/figs/undo-non-tip.png \
75 en/figs/undo-simple.png \
76 en/figs/wdir-after-commit.png \
77 en/figs/wdir-branch.png \
78 en/figs/wdir-merge.png \
79 en/figs/wdir-pre-branch.png \
80 en/figs/wdir.png
82 all:
83 ifdef LINGUA
84 for f in $(FORMATS); do \
85 $(MAKE) LINGUA=$(LINGUA) $$f; \
86 done
87 else
88 for l in $(LANGUAGES); do \
89 for f in $(FORMATS); do \
90 $(MAKE) LINGUA=$$l $$f; \
91 done; \
92 done
93 endif
95 stat:
96 @( \
97 LANG=C; export LANG; cd po; \
98 for f in *.po; do \
99 printf "%s\t" $$f; \
100 msgfmt --statistics -c $$f; \
101 done; \
102 )
104 tidypo:
105 ifdef LINGUA
106 msgcat --sort-by-file --width=80 po/$(LINGUA).po > po/$(LINGUA).tmp && \
107 mv po/$(LINGUA).tmp po/$(LINGUA).po;
108 else
109 for po in $(wildcard po/*.po); do \
110 msgcat --sort-by-file --width=80 $$po > $$po.tmp && mv $$po.tmp $$po; \
111 done
112 endif
114 ifndef LINGUA
115 updatepo:
116 for l in $(PO_LANGUAGES); do \
117 $(MAKE) $@ LINGUA=$$l; \
118 done
119 else
120 updatepo:
121 ifneq "$(findstring $(LINGUA),$(PO_LANGUAGES))" ""
122 (cd po && $(UPDATEPO) -m ../en/00book.xml -p $(LINGUA).po)
123 $(MAKE) tidypo LINGUA=$(LINGUA)
124 endif
125 endif
127 ifndef LINGUA
128 validate:
129 for l in $(LANGUAGES); do \
130 $(MAKE) $@ LINGUA=$$l; \
131 done
132 else
133 validate: build/$(LINGUA)/source/hgbook.xml
134 xmllint --nonet --noout --postvalid --xinclude $<
136 ifneq "$(findstring $(LINGUA),$(DBK_LANGUAGES))" ""
137 $(LINGUA)/examples/.run:
138 (cd $(LINGUA)/examples; ./run-example -v -a)
140 build/$(LINGUA)/source/hgbook.xml: $(wildcard $(LINGUA)/*.xml) $(images) $(LINGUA)/examples/.run $(images)
141 mkdir -p build/$(LINGUA)/source/figs
142 cp $(LINGUA)/figs/*.png build/$(LINGUA)/source/figs
143 (cd $(LINGUA); xmllint --nonet --noent --xinclude --postvalid --output ../$@.tmp 00book.xml)
144 cat $@.tmp | sed 's/\$$rev_id\$$/${rev_id}/' > $@
145 else
146 en/examples/.run:
147 (cd en/examples; ./run-example -v -a)
149 build/en/source/hgbook.xml:
150 ${MAKE} LINGUA=en $@
152 build/$(LINGUA)/source/hgbook.xml: build/en/source/hgbook.xml po/$(LINGUA).po $(images)
153 mkdir -p build/$(LINGUA)/source/figs
154 cp en/figs/*.png build/$(LINGUA)/source/figs
155 $(TRANSLATE) -m build/en/source/hgbook.xml -p po/$(LINGUA).po -l $@.tmp
156 cat $@.tmp | sed 's/\$$rev_id\$$/${rev_id}/' > $@
157 endif
159 endif
161 ifndef LINGUA
162 html:
163 for l in $(LANGUAGES); do \
164 $(MAKE) $@ LINGUA=$$l; \
165 done
166 else
167 html: build/$(LINGUA)/html/index.html
169 build/$(LINGUA)/html/index.html: build/$(LINGUA)/source/hgbook.xml stylesheets/html.xsl stylesheets/$(LINGUA)/html.xsl
170 mkdir -p build/$(LINGUA)/html/figs
171 cp en/figs/*.png build/$(LINGUA)/html/figs
172 cp stylesheets/hgbook.css build/$(LINGUA)/html
173 xsltproc --output build/$(LINGUA)/html/ \
174 stylesheets/$(LINGUA)/html.xsl build/$(LINGUA)/source/hgbook.xml
175 endif
177 ifndef LINGUA
178 html-single:
179 for l in $(LANGUAGES); do \
180 $(MAKE) $@ LINGUA=$$l; \
181 done
182 else
183 html-single: build/$(LINGUA)/html-single/hgbook.html
185 build/$(LINGUA)/html-single/hgbook.html: build/$(LINGUA)/source/hgbook.xml stylesheets/html-single.xsl stylesheets/$(LINGUA)/html-single.xsl
186 mkdir -p build/$(LINGUA)/html-single/figs
187 cp en/figs/*.png build/$(LINGUA)/html-single/figs
188 cp stylesheets/hgbook.css build/$(LINGUA)/html-single
189 xsltproc --output build/$(LINGUA)/html-single/hgbook.html \
190 stylesheets/$(LINGUA)/html-single.xsl build/$(LINGUA)/source/hgbook.xml
191 endif
193 ifndef LINGUA
194 pdf:
195 for l in $(LANGUAGES); do \
196 $(MAKE) $@ LINGUA=$$l; \
197 done
198 else
199 pdf: build/$(LINGUA)/pdf/hgbook.pdf
201 build/$(LINGUA)/pdf/hgbook.pdf: build/$(LINGUA)/source/hgbook.xml stylesheets/fo.xsl stylesheets/$(LINGUA)/fo.xsl
202 mkdir -p build/$(LINGUA)/pdf
203 java -classpath $(JAVA_SHARE)/saxon65.jar:$(JAVA_SHARE)/saxon65-dbxsl.jar:$(JAVA_SHARE)/xml-commons-resolver-1.2.jar:$(JAVA_SHARE) \
204 com.icl.saxon.StyleSheet \
205 -x org.apache.xml.resolver.tools.ResolvingXMLReader \
206 -y org.apache.xml.resolver.tools.ResolvingXMLReader \
207 -r org.apache.xml.resolver.tools.CatalogResolver \
208 -o build/$(LINGUA)/source/hgbook.fo \
209 build/$(LINGUA)/source/hgbook.xml \
210 stylesheets/$(LINGUA)/fo.xsl \
211 fop1.extensions=1
213 (cd build/$(LINGUA)/source && $(FOP_HOME)/fop.sh -c $(FOP_HOME)/conf/userconfig.xml hgbook.fo ../pdf/hgbook.pdf)
214 endif
216 en/figs/%.png: en/figs/%.svg en/fixsvg
217 en/fixsvg $<
218 inkscape -D -d 120 -e $@ $<-tmp.svg
220 en/figs/%.svg: en/figs/%.dot
221 dot -Tsvg -o $@ $<