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 :)
6 SOURCE=MadewithCreativeCommonsmostup-to-dateversion
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.
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.
17 --top-level-division=part \
19 -f markdown+inline_notes+ascii_identifiers
21 LANGS := $(shell ls po/*/mwcc.po|cut -d/ -f2)
25 docdir = /usr/share/doc/madewithcc
32 $(install) *.pdf *.epub $(DESTDIR)/$(docdir)
37 for LANG in $(LANGS); do \
38 rm -f $(SOURCE).$$LANG.md ;\
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 ;\
46 rm -f xsl-fo-$(SOURCE).*.pdf
47 rm -f xsl-fo-$(SOURCE).*.fo
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 && \
56 pot: po/mwcc.pot po/*/mwcc.po
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 \
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 >> $@ && \
74 po/*/mwcc.po: po/mwcc.pot
75 msgmerge --previous $@ po/mwcc.pot -U
78 $(SOURCE).de.xml: $(SOURCE).xml po/de/mwcc.po
79 po4a-translate -f docbook -m $(SOURCE).xml -p po/de/mwcc.po -l $@ -l $@ -L utf-8 -M utf-8 $(PO4AOPTS) -k 0
81 $(SOURCE).es.xml: $(SOURCE).xml po/es/mwcc.po
82 po4a-translate -f docbook -m $(SOURCE).xml -p po/es/mwcc.po -l $@ -l $@ -L utf-8 -M utf-8 $(PO4AOPTS) -k 0
84 $(SOURCE).nb.xml: $(SOURCE).xml po/nb/mwcc.po
85 po4a-translate -f docbook -m $(SOURCE).xml -p po/nb/mwcc.po -l $@ -l $@ -L utf-8 -M utf-8 $(PO4AOPTS) -k 0
87 $(SOURCE).nl.xml: $(SOURCE).xml po/nl/mwcc.po
88 po4a-translate -f docbook -m $(SOURCE).xml -p po/nl/mwcc.po -l $@ -l $@ -L utf-8 -M utf-8 $(PO4AOPTS) -k 0
90 $(SOURCE).pl.xml: $(SOURCE).xml po/pl/mwcc.po
91 po4a-translate -f docbook -m $(SOURCE).xml -p po/pl/mwcc.po -l $@ -l $@ -L utf-8 -M utf-8 $(PO4AOPTS) -k 0
93 $(SOURCE).uk.xml: $(SOURCE).xml po/uk/mwcc.po
94 po4a-translate -f docbook -m $(SOURCE).xml -p po/uk/mwcc.po -l $@ -l $@ -L utf-8 -M utf-8 $(PO4AOPTS) -k 0
96 $(SOURCE).xml: $(SOURCE).md fixup-docbook.rb
97 TEMP=`tempfile -p mwcc` && \
98 pandoc -s -o $$TEMP $(PANDOC_OPTS) $(SOURCE).md && \
99 ruby fixup-docbook.rb $$TEMP $@ && \
101 xmllint --format $@ > $@.new && mv $@.new $@
104 for LANG in $(LANGS); do \
105 $(MAKE) $(SOURCE).$$LANG.pdf ; \
107 DBLATEX_OPTS = -T simple -t pdf -b xetex -p extra/pdf.xsl
108 %.pdf: %.xml extra/pdf.xsl
109 dblatex $(DBLATEX_OPTS) $^
112 for LANG in $(LANGS); do \
113 $(MAKE) $(SOURCE).$$LANG.epub ; \
114 flightcrew-cli $(SOURCE).$$LANG.epub || exit 1 ; \
119 # Useful for spell checking the text
123 XMLLINTOPTS = --nonet --noout --xinclude --postvalid
125 xmllint $(XMLLINTOPTS) $^
126 lint-es: $(SOURCE).es.xml
127 xmllint $(XMLLINTOPTS) $^
128 lint-nb: $(SOURCE).nb.xml
129 xmllint $(XMLLINTOPTS) $^
132 retval=0; for u in $$(perl -n -e'/<ulink url="(.+)"\/>/ && print "$$1\n"' MadewithCreativeCommonsmostup-to-dateversion.xml | sort -u); do \
133 GET -H "User-Agent: Docbook XML URL checker" "$$u" > /dev/null || echo "error fetching $$u"; retval=1; \
136 # Experimental build rule to test Docbook XSL + FOP processor
137 xsl-fo-%.pdf: %.xml extra/stylesheet-fo.xsl
138 xsltproc --output $(subst .pdf,.fo,$@) \
139 extra/stylesheet-fo.xsl $^; \
140 fop -fo $(subst .pdf,.fo,$@) -pdf $@
143 for LANG in $(LANGS); do \
144 printf "$$LANG "; msgfmt -o /dev/null --statistics po/$$LANG/mwcc.po; \