chiark / gitweb /
clarifications etc. from notes
[quacks.git] / Makefile
index 69a2f7caaff2415fc23ab7bed15ff1043461df89..0df6e5d64ef6c3d3c55f62fd2a8b3502da510a60 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,21 +1,42 @@
+# Books of Pumpkins, etc.  Extensions to Quacks of Quedlinburg
+#  SPDX-License-Identifier: GPL-3.0-or-later OR CC-BY-SA-4.0
+# Copyright 2020-2021 Ian Jackson
 
-PUBLISH= pumpkin-books.pdf house-rules.md
+PUBLISH_MD += pumpkin-books house-rules
+PUBLISH += pumpkin-books.pdf overflow-tube.pdf index.html
+PUBLISH += LICENCE.txt GPL-3.txt CC-BY-SA-4.0.txt
+PUBLISH += $(addsuffix .md.txt,  $(PUBLISH_MD))
+PUBLISH += $(addsuffix .md.html, $(PUBLISH_MD))
+PUBLISH += $(addsuffix .md.pdf,  $(PUBLISH_MD))
 
 SHELL=bash
 
-all:   pumpkin-books.pdf
+BOOKS+=                red
+BOOKS+=                green
+BOOKS+=                purple
+BOOKS+=                blue
+BOOKS+=                lotus
+BOOKS+=                yellow
+BOOKS+=                black-pair/black-more
+
+BOOK_STEMS := $(addprefix book-,$(subst /, ,$(BOOKS)))
+PUBLISH += $(addsuffix .pdf, $(BOOK_STEMS))
+PUBLISH += $(addsuffix .png, $(BOOK_STEMS))
+
+all:   $(PUBLISH)
 
 # Don't print the ps, printers (eg ours!) don't always have the fonts
 
-o=>$@.new && mv -f $@.new $@
+i=mv -f $@.new $@
+o=>$@.new && $i
 use_rsvg=rsvg-convert -f png -o $@.tmp.png $<
 shell_pipe=set -o pipefail; set -e;
 make_pnm = pnmdepth 255 | pnmnoraw $o
 
-pumpkin-books.ps: pumpkin-books.ps.pl bag.pgm pot.pgm droplet.ppm
-       ./$< $o
+%.ps: %.ps.pl bag.pgm pot.pgm droplet.ppm
+       ./$< $(BOOKS) $o
 
-pumpkin-books.pdf: pumpkin-books.ps
+%.pdf: %.ps
        gs -q -dNOPAUSE -dBATCH -dPDFSETTINGS=/prepress \
                -sDEVICE=pdfwrite -sOutputFile=$@ $<
 
@@ -41,6 +62,38 @@ droplet.ppm: droplet.svg Makefile
        | pnmdepth 255                                  \
        | $(make_pnm)
 
+$(addsuffix .ps, $(BOOK_STEMS)): pumpkin-books.ps
+       @:
+
+book-%.pdf: book-%.eps
+       rm -f $@.new; ps2pdf $< $@.new && $i
+
+book-%.eps: book-%.ps
+       ps2eps <$< $o
+
+book-%.png: book-%.eps Makefile
+       gm convert -density 100x100 $< $@
+
+.PRECIOUS: book-%.eps
+
+PUBLISH_FILES= \
+       $(patsubst %.md,%.md.txt, $(PUBLISH)) \
+       $(patsubst %.md,%.md.html, $(filter $(PUBLISH)) \
+
+index.html: gen-index README.html
+       ./$^ $(BOOK_STEMS) $o
+
+%.md.txt: %.md
+       cat $< $o
+
+%.md.html: %.md Makefile massage-html
+       pandoc -s -Mtitle='Fm4YNbKyBNiS7TNu' $< >$@.tmp
+       ./massage-html $< $@.tmp $o
+
+%.md.pdf: %.md Makefile
+       perl -pe '$$_ = uc if $$.==1' <$< >$@.tmp
+       pandoc --pdf-engine=wkhtmltopdf -o $@ $@.tmp
+
 pubssh=c
 pubpath=games-rules/quacks
 puburl=https://www.chiark.greenend.org.uk/~ijackson/
@@ -48,4 +101,4 @@ puburl=https://www.chiark.greenend.org.uk/~ijackson/
 publish: $(PUBLISH)
        git push origin
        rsync $^ $(pubssh):public-html/$(pubpath)/.
-       @echo $(puburl)$(pubpath)/
+       @echo $(puburl)$(pubpath)/README.html