X-Git-Url: https://pere.pagekite.me/gitweb/text-madewithcc.git/blobdiff_plain/6bb869678cd452e78f33218a677ae3f8bd2c7894..9a189e930fe72fdd2d353a4a8a5f55ff55b2ee4b:/Makefile diff --git a/Makefile b/Makefile index 55a93f6..e68e50e 100644 --- a/Makefile +++ b/Makefile @@ -15,37 +15,55 @@ VERSION=20170609-2 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="
" \ + -o untranslated="" \ + -o translated='
' 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' >> $@ && \ @@ -57,54 +75,130 @@ po/*/mwcc.po: po/mwcc.pot 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 . -%.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'// && 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 $@ @@ -114,4 +208,4 @@ status: printf "$$LANG "; msgfmt -o /dev/null --statistics po/$$LANG/mwcc.po; \ done -.SUFFIXES: .xml .md +.SUFFIXES: .html .xml .md