]> pere.pagekite.me Git - text-madewithcc.git/blob - Makefile
Publish Indonesian proof reading HTML.
[text-madewithcc.git] / Makefile
1 #
2 # As of October 2017, I'm doing some Spanish-specific adjustments to
3 # this Makefile; they should be generalized... But I'm taking a step at a time :)
4 # -GW
5 #
6 SOURCE=MadewithCreativeCommonsmostup-to-dateversion
7
8 # Versioning: I'm using the date on which I got the source document
9 # (2017-06-09), plus an incrementing local part, that *should*
10 # increase every time the generated Markdown is modified.
11 VERSION=20170609-2
12
13 # pandoc version 1.17.2~dfsg-3 do not understand
14 # --top-level-diversion, while version 1.19.2.4~dfsg-1+b3 do.
15 PANDOC_OPTS = \
16 --standalone \
17 --top-level-division=part \
18 -t docbook4 \
19 -f markdown+inline_notes+ascii_identifiers
20
21 LANGS := $(shell ls po/*/mwcc.po|cut -d/ -f2)
22
23 DESTDIR =
24
25 docdir = /usr/share/doc/madewithcc
26
27 install = install
28
29 all: pdf epub
30
31 install:
32 $(install) *.pdf *.epub $(DESTDIR)/$(docdir)
33
34 distclean: clean
35 rm -f $(SOURCE).md
36 clean:
37 for LANG in $(LANGS); do \
38 rm -f $(SOURCE).$$LANG.md ;\
39 done
40 for EXT in aux cb cb2 glo idx lof log tex toc xml pdf epub; do \
41 rm -f $(SOURCE).$$EXT ;\
42 for LANG in $(LANGS); do \
43 rm -f $(SOURCE).$$LANG.$$EXT ;\
44 done; \
45 done
46 rm -f xsl-fo-$(SOURCE).*.pdf
47 rm -f xsl-fo-$(SOURCE).*.fo
48 $(RM) *~
49
50 $(SOURCE).md: $(SOURCE).odt fixup.rb
51 TEMP=`tempfile -p mwcc` && \
52 LC_ALL=C.UTF-8 pandoc -f odt $(SOURCE).odt -t markdown > $$TEMP && \
53 LC_ALL=C.UTF-8 ruby fixup.rb $$TEMP $(SOURCE).md && \
54 rm $$TEMP
55
56 pot: po/mwcc.pot po/*/mwcc.po
57 PO4AOPTS = \
58 -o nodefault="<imageobject> <copyright> <publisher> <address> <city>" \
59 -o untranslated="<imageobject>" \
60 -o translated='<copyright> <publisher><publisername> <publisher><address><city>'
61 po/mwcc.pot: $(SOURCE).xml
62 TEMP=`tempfile -p mwcc` && \
63 po4a-gettextize -f docbook -m $(SOURCE).xml -p $$TEMP -M utf-8 \
64 $(PO4AOPTS) \
65 --package-name 'Made with Creative Commons' \
66 --package-version $(VERSION) && \
67 echo '# MADE WITH CREATIVE COMMONS' > $@ && \
68 echo '# Copyright (C) 2017 by Creative Commons.' >> $@ && \
69 echo '# This file is published under a Creative Commons Attribution-ShareAlike license (CC BY-SA), version 4.0' >> $@ && \
70 echo '# Authors: Paul Stacey and Sarah Hinchliff Pearson' >> $@ && \
71 tail --lines=+5 $$TEMP >> $@ && \
72 rm $$TEMP
73
74 po/*/mwcc.po: po/mwcc.pot
75 msgmerge --previous $@ po/mwcc.pot -U
76 touch $@
77
78 $(SOURCE).az.xml: $(SOURCE).xml po/az/mwcc.po
79 TEMP=`tempfile -p mwcc` && \
80 po4a-translate -f docbook -m $(SOURCE).xml -p po/az/mwcc.po -l $$TEMP -l $$TEMP -L utf-8 -M utf-8 $(PO4AOPTS) -k 0 && \
81 ruby fixup-docbook-translated.rb az $$TEMP $@ && \
82 rm -f $$TEMP
83
84 $(SOURCE).bn.xml: $(SOURCE).xml po/bn/mwcc.po
85 TEMP=`tempfile -p mwcc` && \
86 po4a-translate -f docbook -m $(SOURCE).xml -p po/bn/mwcc.po -l $$TEMP -l $$TEMP -L utf-8 -M utf-8 $(PO4AOPTS) -k 0 && \
87 ruby fixup-docbook-translated.rb bn $$TEMP $@ && \
88 rm -f $$TEMP
89
90 $(SOURCE).de.xml: $(SOURCE).xml po/de/mwcc.po
91 TEMP=`tempfile -p mwcc` && \
92 po4a-translate -f docbook -m $(SOURCE).xml -p po/de/mwcc.po -l $$TEMP -l $$TEMP -L utf-8 -M utf-8 $(PO4AOPTS) -k 0 && \
93 ruby fixup-docbook-translated.rb de $$TEMP $@ && \
94 rm -f $$TEMP
95
96 $(SOURCE).el.xml: $(SOURCE).xml po/el/mwcc.po
97 TEMP=`tempfile -p mwcc` && \
98 po4a-translate -f docbook -m $(SOURCE).xml -p po/el/mwcc.po -l $$TEMP -l $$TEMP -L utf-8 -M utf-8 $(PO4AOPTS) -k 0 && \
99 ruby fixup-docbook-translated.rb el $$TEMP $@ && \
100 rm -f $$TEMP
101
102 $(SOURCE).fr.xml: $(SOURCE).xml po/fr/mwcc.po
103 TEMP=`tempfile -p mwcc` && \
104 po4a-translate -f docbook -m $(SOURCE).xml -p po/fr/mwcc.po -l $$TEMP -l $$TEMP -L utf-8 -M utf-8 $(PO4AOPTS) -k 0 && \
105 ruby fixup-docbook-translated.rb fr $$TEMP $@ && \
106 rm -f $$TEMP
107
108 $(SOURCE).id.xml: $(SOURCE).xml po/id/mwcc.po
109 TEMP=`tempfile -p mwcc` && \
110 po4a-translate -f docbook -m $(SOURCE).xml -p po/id/mwcc.po -l $$TEMP -l $$TEMP -L utf-8 -M utf-8 $(PO4AOPTS) -k 0 && \
111 ruby fixup-docbook-translated.rb id $$TEMP $@ && \
112 rm -f $$TEMP
113
114 $(SOURCE).es.xml: $(SOURCE).xml po/es/mwcc.po fixup-docbook-translated.rb
115 TEMP=`tempfile -p mwcc` && \
116 po4a-translate -f docbook -m $(SOURCE).xml -p po/es/mwcc.po -l $$TEMP -l $$TEMP -L utf-8 -M utf-8 $(PO4AOPTS) -k 0 && \
117 ruby fixup-docbook-translated.rb es $$TEMP $@ && \
118 rm -f $$TEMP
119
120 $(SOURCE).nb.xml: $(SOURCE).xml po/nb/mwcc.po
121 TEMP=`tempfile -p mwcc` && \
122 po4a-translate -f docbook -m $(SOURCE).xml -p po/nb/mwcc.po -l $$TEMP -l $$TEMP -L utf-8 -M utf-8 $(PO4AOPTS) -k 0 && \
123 ruby fixup-docbook-translated.rb nb $$TEMP $@ && \
124 rm -f $$TEMP
125
126 $(SOURCE).nl.xml: $(SOURCE).xml po/nl/mwcc.po
127 TEMP=`tempfile -p mwcc` && \
128 po4a-translate -f docbook -m $(SOURCE).xml -p po/nl/mwcc.po -l $$TEMP -l $$TEMP -L utf-8 -M utf-8 $(PO4AOPTS) -k 0 && \
129 ruby fixup-docbook-translated.rb nl $$TEMP $@ && \
130 rm -f $$TEMP
131
132 $(SOURCE).pl.xml: $(SOURCE).xml po/pl/mwcc.po
133 TEMP=`tempfile -p mwcc` && \
134 po4a-translate -f docbook -m $(SOURCE).xml -p po/pl/mwcc.po -l $$TEMP -l $$TEMP -L utf-8 -M utf-8 $(PO4AOPTS) -k 0 && \
135 ruby fixup-docbook-translated.rb pl $$TEMP $@ && \
136 rm -f $$TEMP
137
138 $(SOURCE).pt_BR.xml: $(SOURCE).xml po/pt_BR/mwcc.po
139 TEMP=`tempfile -p mwcc` && \
140 po4a-translate -f docbook -m $(SOURCE).xml -p po/pt_BR/mwcc.po -l $$TEMP -l $$TEMP -L utf-8 -M utf-8 $(PO4AOPTS) -k 0 && \
141 ruby fixup-docbook-translated.rb pt_BR $$TEMP $@ && \
142 rm -f $$TEMP
143
144 $(SOURCE).sv.xml: $(SOURCE).xml po/sv/mwcc.po
145 TEMP=`tempfile -p mwcc` && \
146 po4a-translate -f docbook -m $(SOURCE).xml -p po/sv/mwcc.po -l $$TEMP -l $$TEMP -L utf-8 -M utf-8 $(PO4AOPTS) -k 0 && \
147 ruby fixup-docbook-translated.rb sv $$TEMP $@ && \
148 rm -f $$TEMP
149
150 $(SOURCE).th.xml: $(SOURCE).xml po/th/mwcc.po
151 TEMP=`tempfile -p mwcc` && \
152 po4a-translate -f docbook -m $(SOURCE).xml -p po/th/mwcc.po -l $$TEMP -l $$TEMP -L utf-8 -M utf-8 $(PO4AOPTS) -k 0 && \
153 ruby fixup-docbook-translated.rb th $$TEMP $@ && \
154 rm -f $$TEMP
155
156 $(SOURCE).uk.xml: $(SOURCE).xml po/uk/mwcc.po
157 TEMP=`tempfile -p mwcc` && \
158 po4a-translate -f docbook -m $(SOURCE).xml -p po/uk/mwcc.po -l $$TEMP -l $$TEMP -L utf-8 -M utf-8 $(PO4AOPTS) -k 0 && \
159 ruby fixup-docbook-translated.rb uk $$TEMP $@ && \
160 rm -f $$TEMP
161
162 $(SOURCE).zh_Hans.xml: $(SOURCE).xml po/zh_Hans/mwcc.po
163 TEMP=`tempfile -p mwcc` && \
164 po4a-translate -f docbook -m $(SOURCE).xml -p po/zh_Hans/mwcc.po -l $$TEMP -l $$TEMP -L utf-8 -M utf-8 $(PO4AOPTS) -k 0 && \
165 ruby fixup-docbook-translated.rb zh_Hans $$TEMP $@ && \
166 rm -f $$TEMP
167
168 $(SOURCE).xml: $(SOURCE).md fixup-docbook.rb
169 TEMP=`tempfile -p mwcc` && \
170 pandoc -s -o $$TEMP $(PANDOC_OPTS) $(SOURCE).md && \
171 ruby fixup-docbook.rb $$TEMP $@ && \
172 rm $$TEMP
173 xmllint --format $@ > $@.new && mv $@.new $@
174
175 pdf: $(SOURCE).pdf
176 for LANG in $(LANGS); do \
177 $(MAKE) $(SOURCE).$$LANG.pdf ; \
178 done
179
180 DBLATEX_OPTS = -T simple -t pdf -b xetex
181 %.es.pdf: %.es.xml extra/pdf.xsl myclass.cls
182 rm -f extra/pdf_es.xsl myclass_es.cls
183 sed s/myclass/myclass_es/ extra/pdf.xsl > extra/pdf_es.xsl
184 ruby -e 'begin; while (data = readline) ; puts data;if (data == "\\makeatletter\n") ;puts "\\input{extra/es/unam_definitions}\n"; end;end; rescue EOFError;true;end' < myclass.cls > myclass_es.cls
185 dblatex $(DBLATEX_OPTS) -p extra/pdf_es.xsl $^
186 rm -f extra/pdf_es.xsl myclass_es.cls
187
188 %.pdf: %.xml extra/pdf.xsl myclass.cls
189 dblatex $(DBLATEX_OPTS) -p extra/pdf.xsl --xsl-user=extra/lulu.xsl $^
190
191 epub: $(SOURCE).epub
192 for LANG in $(LANGS); do \
193 $(MAKE) $(SOURCE).$$LANG.epub ; \
194 done
195 %.epub: %.xml
196 dbtoepub $^
197 flightcrew-cli $@ || exit 1
198
199 html: $(SOURCE).html
200 for LANG in $(LANGS); do \
201 $(MAKE) $(SOURCE).$$LANG.html ; \
202 done
203
204 %.html: %.xml
205 xmlto -x extra/docbook-utf8.xsl -m extra/pdf.xsl html-nochunks $^
206
207 # Useful for spell checking the text
208 %.txt: %.xml
209 xmlto txt $<
210
211 XMLLINTOPTS = --nonet --noout --xinclude --postvalid
212 lint: $(SOURCE).xml
213 xmllint $(XMLLINTOPTS) $^
214 lint-es: $(SOURCE).es.xml
215 xmllint $(XMLLINTOPTS) $^
216 lint-id: $(SOURCE).id.xml
217 xmllint $(XMLLINTOPTS) $^
218 lint-nb: $(SOURCE).nb.xml
219 xmllint $(XMLLINTOPTS) $^
220 lint-pt_BR: $(SOURCE).pt_BR.xml
221 xmllint $(XMLLINTOPTS) $^
222
223 check-urls:
224 retval=0; for u in $$(perl -n -e'/<ulink url="(.+)"\/>/ && print "$$1\n"' MadewithCreativeCommonsmostup-to-dateversion.xml | sort -u); do \
225 GET -H "User-Agent: Docbook XML URL checker" "$$u" > /dev/null || echo "error fetching $$u"; retval=1; \
226 done; exit $$retval
227
228 # Experimental build rule to test Docbook XSL + FOP processor
229 xsl-fo-%.pdf: %.xml extra/stylesheet-fo.xsl
230 xsltproc --output $(subst .pdf,.fo,$@) \
231 extra/stylesheet-fo.xsl $^; \
232 fop -fo $(subst .pdf,.fo,$@) -pdf $@
233
234 status:
235 for LANG in $(LANGS); do \
236 printf "$$LANG "; msgfmt -o /dev/null --statistics po/$$LANG/mwcc.po; \
237 done
238
239 .SUFFIXES: .html .xml .md