PANDOC_OPTS = \
--standalone \
--top-level-division=part \
- -t docbook \
+ -t docbook4 \
-f markdown+inline_notes+ascii_identifiers
LANGS := $(shell ls po/*/mwcc.po|cut -d/ -f2)
+DESTDIR =
+
+docdir = /usr/share/doc/madewithcc
+
+install = install
+
all: pdf epub
+install:
+ $(install) *.pdf *.epub $(DESTDIR)/$(docdir)
+
distclean: clean
rm -f $(SOURCE).md
+clean:
for LANG in $(LANGS); do \
rm -f $(SOURCE).$$LANG.md ;\
done
-clean:
for EXT in aux cb cb2 glo idx lof log tex toc xml pdf epub; do \
rm -f $(SOURCE).$$EXT ;\
for LANG in $(LANGS); do \
rm -f $(SOURCE).$$LANG.$$EXT ;\
done; \
done
+ rm -f xsl-fo-$(SOURCE).*.pdf
+ rm -f xsl-fo-$(SOURCE).*.fo
$(RM) *~
$(SOURCE).md: $(SOURCE).odt fixup.rb
TEMP=`tempfile -p mwcc` && \
- pandoc -f odt $(SOURCE).odt -t markdown > $$TEMP && \
- ruby fixup.rb $$TEMP $(SOURCE).md && \
+ LC_ALL=C.UTF-8 pandoc -f odt $(SOURCE).odt -t markdown > $$TEMP && \
+ LC_ALL=C.UTF-8 ruby fixup.rb $$TEMP $(SOURCE).md && \
rm $$TEMP
pot: po/mwcc.pot po/*/mwcc.po
+PO4AOPTS = \
+ -o nodefault="<imageobject> <copyright> <publisher> <address> <city>" \
+ -o untranslated="<imageobject>" \
+ -o translated='<copyright> <publisher><publisername> <publisher><address><city>'
po/mwcc.pot: $(SOURCE).xml
TEMP=`tempfile -p mwcc` && \
- po4a-gettextize -f docbook -m $(SOURCE).xml -p $$TEMP -M utf-8 --package-name 'Made with Creative Commons' --package-version $(VERSION) && \
+ po4a-gettextize -f docbook -m $(SOURCE).xml -p $$TEMP -M utf-8 \
+ $(PO4AOPTS) \
+ --package-name 'Made with Creative Commons' \
+ --package-version $(VERSION) && \
echo '# MADE WITH CREATIVE COMMONS' > $@ && \
echo '# Copyright (C) 2017 by Creative Commons.' >> $@ && \
echo '# This file is published under a Creative Commons Attribution-ShareAlike license (CC BY-SA), version 4.0' >> $@ && \
msgmerge --previous $@ po/mwcc.pot -U
touch $@
-$(SOURCE).es.xml: $(SOURCE).xml po/es/mwcc.po
- po4a-translate -f docbook -m $(SOURCE).xml -p po/es/mwcc.po -l $@ -l $@ -L utf-8 -M utf-8 -k 0
+$(SOURCE).az.xml: $(SOURCE).xml po/az/mwcc.po
+ TEMP=`tempfile -p mwcc` && \
+ 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 && \
+ ruby fixup-docbook-translated.rb az $$TEMP $@ && \
+ rm -f $$TEMP
+
+$(SOURCE).de.xml: $(SOURCE).xml po/de/mwcc.po
+ TEMP=`tempfile -p mwcc` && \
+ 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 && \
+ ruby fixup-docbook-translated.rb de $$TEMP $@ && \
+ rm -f $$TEMP
+
+$(SOURCE).el.xml: $(SOURCE).xml po/el/mwcc.po
+ TEMP=`tempfile -p mwcc` && \
+ 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 && \
+ ruby fixup-docbook-translated.rb el $$TEMP $@ && \
+ rm -f $$TEMP
+
+$(SOURCE).fr.xml: $(SOURCE).xml po/fr/mwcc.po
+ TEMP=`tempfile -p mwcc` && \
+ 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 && \
+ ruby fixup-docbook-translated.rb fr $$TEMP $@ && \
+ rm -f $$TEMP
+
+$(SOURCE).es.xml: $(SOURCE).xml po/es/mwcc.po fixup-docbook-translated.rb
+ TEMP=`tempfile -p mwcc` && \
+ 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 && \
+ ruby fixup-docbook-translated.rb es $$TEMP $@ && \
+ rm -f $$TEMP
$(SOURCE).nb.xml: $(SOURCE).xml po/nb/mwcc.po
- po4a-translate -f docbook -m $(SOURCE).xml -p po/nb/mwcc.po -l $@ -l $@ -L utf-8 -M utf-8 -k 0
+ TEMP=`tempfile -p mwcc` && \
+ 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 && \
+ ruby fixup-docbook-translated.rb nb $$TEMP $@ && \
+ rm -f $$TEMP
+
+$(SOURCE).nl.xml: $(SOURCE).xml po/nl/mwcc.po
+ TEMP=`tempfile -p mwcc` && \
+ 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 && \
+ ruby fixup-docbook-translated.rb nl $$TEMP $@ && \
+ rm -f $$TEMP
+
+$(SOURCE).pl.xml: $(SOURCE).xml po/pl/mwcc.po
+ TEMP=`tempfile -p mwcc` && \
+ 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 && \
+ ruby fixup-docbook-translated.rb pl $$TEMP $@ && \
+ rm -f $$TEMP
+
+$(SOURCE).sv.xml: $(SOURCE).xml po/sv/mwcc.po
+ TEMP=`tempfile -p mwcc` && \
+ 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 && \
+ ruby fixup-docbook-translated.rb sv $$TEMP $@ && \
+ rm -f $$TEMP
+
+$(SOURCE).th.xml: $(SOURCE).xml po/th/mwcc.po
+ TEMP=`tempfile -p mwcc` && \
+ 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 && \
+ ruby fixup-docbook-translated.rb th $$TEMP $@ && \
+ rm -f $$TEMP
+
+$(SOURCE).uk.xml: $(SOURCE).xml po/uk/mwcc.po
+ TEMP=`tempfile -p mwcc` && \
+ 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 && \
+ ruby fixup-docbook-translated.rb uk $$TEMP $@ && \
+ rm -f $$TEMP
$(SOURCE).xml: $(SOURCE).md fixup-docbook.rb
TEMP=`tempfile -p mwcc` && \
pandoc -s -o $$TEMP $(PANDOC_OPTS) $(SOURCE).md && \
ruby fixup-docbook.rb $$TEMP $@ && \
rm $$TEMP
+ xmllint --format $@ > $@.new && mv $@.new $@
pdf: $(SOURCE).pdf
-%.pdf: %.tex
- pdflatex $^
- pdflatex $^
+ for LANG in $(LANGS); do \
+ $(MAKE) $(SOURCE).$$LANG.pdf ; \
+ done
+
+DBLATEX_OPTS = -T simple -t pdf -b xetex
+%.es.pdf: %.es.xml extra/pdf.xsl myclass.cls
+ rm -f extra/pdf_es.xsl myclass_es.cls
+ sed s/myclass/myclass_es/ extra/pdf.xsl > extra/pdf_es.xsl
+ 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
+ dblatex $(DBLATEX_OPTS) -p extra/pdf_es.xsl $^
+ rm -f extra/pdf_es.xsl myclass_es.cls
+
+%.pdf: %.xml extra/pdf.xsl myclass.cls
+ dblatex $(DBLATEX_OPTS) -p extra/pdf.xsl --xsl-user=extra/lulu.xsl $^
epub: $(SOURCE).epub
+ for LANG in $(LANGS); do \
+ $(MAKE) $(SOURCE).$$LANG.epub ; \
+ done
%.epub: %.xml
dbtoepub $^
+ flightcrew-cli $@ || exit 1
+
+html: $(SOURCE).html
+ for LANG in $(LANGS); do \
+ $(MAKE) $(SOURCE).$$LANG.html ; \
+ done
+
+%.html: %.xml
+ xmlto -x extra/docbook-utf8.xsl -m extra/pdf.xsl html-nochunks $^
-DBLATEX_OPTS = -T simple -t tex -b xetex -p extra/pdf.xsl
-# Replace Unicode Hair Space (U+200A) with space, as   is not
-# handled by LaTeX/dblatex, see <URL: https://bugs.debian.org/889603 >.
-%.tex: %.xml
- dblatex $(DBLATEX_OPTS) $^
- perl -p -i -e 's/\\caption\\end/\\caption{} \\end/; \
- s/ / /g; \
- s/\\chapter\{(Colophon|Dedication)\}/\\chapter*{}/; \
- s/\\chapter\{(Foreword|Prefacio|Forord|Introduction|Introducción|Introduksjon)\}/\\chapter*{$$1} \\addcontentsline{toc}{chapter}{$$1}/; \
- s/\\section\{(Notes|Notas)\}/\\section*{$$1}/; \
- s/(Web links?|Vínculos Web)/\\section*{$$1}/;' $@
+# Useful for spell checking the text
+%.txt: %.xml
+ xmlto txt $<
XMLLINTOPTS = --nonet --noout --xinclude --postvalid
lint: $(SOURCE).xml
xmllint $(XMLLINTOPTS) $^
-lint-es: $(SOURCE).nb.xml
+lint-es: $(SOURCE).es.xml
xmllint $(XMLLINTOPTS) $^
lint-nb: $(SOURCE).nb.xml
xmllint $(XMLLINTOPTS) $^
check-urls:
retval=0; for u in $$(perl -n -e'/<ulink url="(.+)"\/>/ && print "$$1\n"' MadewithCreativeCommonsmostup-to-dateversion.xml | sort -u); do \
- HEAD -H "User-Agent: Docbook XML URL checker" "$$u" > /dev/null || echo "error fetching $$u"; retval=1; \
+ GET -H "User-Agent: Docbook XML URL checker" "$$u" > /dev/null || echo "error fetching $$u"; retval=1; \
done; exit $$retval
# Experimental build rule to test Docbook XSL + FOP processor
-xsl-fo-%.pdf: %.xml
+xsl-fo-%.pdf: %.xml extra/stylesheet-fo.xsl
xsltproc --output $(subst .pdf,.fo,$@) \
extra/stylesheet-fo.xsl $^; \
fop -fo $(subst .pdf,.fo,$@) -pdf $@
printf "$$LANG "; msgfmt -o /dev/null --statistics po/$$LANG/mwcc.po; \
done
-.SUFFIXES: .xml .md
+.SUFFIXES: .html .xml .md