]> pere.pagekite.me Git - text-madewithcc.git/blob - Makefile
Add code to check if all notes exist and are used.
[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 docbook \
19 -f markdown+inline_notes+ascii_identifiers
20
21 LANGS := $(shell ls po/*/mwcc.po|cut -d/ -f2)
22
23 all: pdf epub
24
25 distclean: clean
26 rm -f $(SOURCE).md
27 clean:
28 for LANG in $(LANGS); do \
29 rm -f $(SOURCE).$$LANG.md ;\
30 done
31 for EXT in aux cb cb2 glo idx lof log tex toc xml pdf epub; do \
32 rm -f $(SOURCE).$$EXT ;\
33 for LANG in $(LANGS); do \
34 rm -f $(SOURCE).$$LANG.$$EXT ;\
35 done; \
36 done
37 $(RM) *~
38
39 $(SOURCE).md: $(SOURCE).odt fixup.rb
40 TEMP=`tempfile -p mwcc` && \
41 pandoc -f odt $(SOURCE).odt -t markdown > $$TEMP && \
42 ruby fixup.rb $$TEMP $(SOURCE).md && \
43 rm $$TEMP
44
45 pot: po/mwcc.pot po/*/mwcc.po
46 po/mwcc.pot: $(SOURCE).xml
47 TEMP=`tempfile -p mwcc` && \
48 po4a-gettextize -f docbook -m $(SOURCE).xml -p $$TEMP -M utf-8 --package-name 'Made with Creative Commons' --package-version $(VERSION) && \
49 echo '# MADE WITH CREATIVE COMMONS' > $@ && \
50 echo '# Copyright (C) 2017 by Creative Commons.' >> $@ && \
51 echo '# This file is published under a Creative Commons Attribution-ShareAlike license (CC BY-SA), version 4.0' >> $@ && \
52 echo '# Authors: Paul Stacey and Sarah Hinchliff Pearson' >> $@ && \
53 tail --lines=+5 $$TEMP >> $@ && \
54 rm $$TEMP
55
56 po/*/mwcc.po: po/mwcc.pot
57 msgmerge --previous $@ po/mwcc.pot -U
58 touch $@
59
60 $(SOURCE).de.xml: $(SOURCE).xml po/de/mwcc.po
61 po4a-translate -f docbook -m $(SOURCE).xml -p po/de/mwcc.po -l $@ -l $@ -L utf-8 -M utf-8 -k 0
62
63 $(SOURCE).es.xml: $(SOURCE).xml po/es/mwcc.po
64 po4a-translate -f docbook -m $(SOURCE).xml -p po/es/mwcc.po -l $@ -l $@ -L utf-8 -M utf-8 -k 0
65
66 $(SOURCE).nb.xml: $(SOURCE).xml po/nb/mwcc.po
67 po4a-translate -f docbook -m $(SOURCE).xml -p po/nb/mwcc.po -l $@ -l $@ -L utf-8 -M utf-8 -k 0
68
69 $(SOURCE).nl.xml: $(SOURCE).xml po/nl/mwcc.po
70 po4a-translate -f docbook -m $(SOURCE).xml -p po/nl/mwcc.po -l $@ -l $@ -L utf-8 -M utf-8 -k 0
71
72 $(SOURCE).pl.xml: $(SOURCE).xml po/pl/mwcc.po
73 po4a-translate -f docbook -m $(SOURCE).xml -p po/pl/mwcc.po -l $@ -l $@ -L utf-8 -M utf-8 -k 0
74
75 $(SOURCE).uk.xml: $(SOURCE).xml po/uk/mwcc.po
76 po4a-translate -f docbook -m $(SOURCE).xml -p po/uk/mwcc.po -l $@ -l $@ -L utf-8 -M utf-8 -k 0
77
78 $(SOURCE).xml: $(SOURCE).md fixup-docbook.rb
79 TEMP=`tempfile -p mwcc` && \
80 pandoc -s -o $$TEMP $(PANDOC_OPTS) $(SOURCE).md && \
81 ruby fixup-docbook.rb $$TEMP $@ && \
82 rm $$TEMP
83
84 pdf: $(SOURCE).pdf
85 for LANG in $(LANGS); do \
86 $(MAKE) $(SOURCE).$$LANG.pdf ; \
87 done
88 %.pdf: %.tex
89 pdflatex $^
90 pdflatex $^
91
92 epub: $(SOURCE).epub
93 for LANG in $(LANGS); do \
94 $(MAKE) $(SOURCE).$$LANG.epub ; \
95 done
96 %.epub: %.xml
97 dbtoepub $^
98
99 DBLATEX_OPTS = -T simple -t tex -b xetex -p extra/pdf.xsl
100 # Replace Unicode Hair Space (U+200A) with space, as   is not
101 # handled by LaTeX/dblatex, see <URL: https://bugs.debian.org/889603 >.
102 %.tex: %.xml
103 dblatex $(DBLATEX_OPTS) $^
104 perl -p -i -e 's/ / /g; \
105 s/\\chapter\{(Colophon|Dedication)\}/\\chapter*{}/;' $@
106
107 XMLLINTOPTS = --nonet --noout --xinclude --postvalid
108 lint: $(SOURCE).xml
109 xmllint $(XMLLINTOPTS) $^
110 lint-es: $(SOURCE).nb.xml
111 xmllint $(XMLLINTOPTS) $^
112 lint-nb: $(SOURCE).nb.xml
113 xmllint $(XMLLINTOPTS) $^
114
115 check-urls:
116 retval=0; for u in $$(perl -n -e'/<ulink url="(.+)"\/>/ && print "$$1\n"' MadewithCreativeCommonsmostup-to-dateversion.xml | sort -u); do \
117 HEAD -H "User-Agent: Docbook XML URL checker" "$$u" > /dev/null || echo "error fetching $$u"; retval=1; \
118 done; exit $$retval
119
120 # Experimental build rule to test Docbook XSL + FOP processor
121 xsl-fo-%.pdf: %.xml
122 xsltproc --output $(subst .pdf,.fo,$@) \
123 extra/stylesheet-fo.xsl $^; \
124 fop -fo $(subst .pdf,.fo,$@) -pdf $@
125
126 status:
127 for LANG in $(LANGS); do \
128 printf "$$LANG "; msgfmt -o /dev/null --statistics po/$$LANG/mwcc.po; \
129 done
130
131 .SUFFIXES: .xml .md