chiark / gitweb /
put books list in Makefile
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 6 Nov 2021 20:01:53 +0000 (20:01 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 6 Nov 2021 20:05:49 +0000 (20:05 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Makefile
pumpkin-books.ps.pl

index 18ad1809009a1483843a665eb48925113f7524d1..7fa2cee6f81dad294f6f9a33177e3e07dc243783 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -11,6 +11,14 @@ PUBLISH += $(addsuffix .md.pdf,  $(PUBLISH_MD))
 
 SHELL=bash
 
+BOOKS+=                red
+BOOKS+=                green
+BOOKS+=                purple
+BOOKS+=                blue
+BOOKS+=                lotus
+BOOKS+=                yellow
+BOOKS+=                black-pair/black-more
+
 all:   $(PUBLISH)
 
 # Don't print the ps, printers (eg ours!) don't always have the fonts
@@ -21,7 +29,7 @@ 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
+       ./$< $(BOOKS) $o
 
 pumpkin-books.pdf: pumpkin-books.ps
        gs -q -dNOPAUSE -dBATCH -dPDFSETTINGS=/prepress \
index f0e9e2c38f5f8d1263874e442b3cad160130a8a1..b3520a02aa6ad6dfd20c539fe0018033240f377a 100755 (executable)
@@ -236,7 +236,7 @@ END
   $o;
 }
   
-sub green_book () {
+sub book_green () {
   my $o = general_book($green, [qw(5 9 15)]);
 
   $o .= <<END;
@@ -270,7 +270,7 @@ END
   $o;
 }
   
-sub red_book () {
+sub book_red () {
   my $o = general_book($red, [qw(4 9 16)]);
 
   $o .= <<END;
@@ -292,7 +292,7 @@ END
   $o;
 }
 
-sub blue_book () {
+sub book_blue () {
   my $o = general_book($blue, [qw(4 10 18)]);
 
   $o .= <<END;
@@ -362,7 +362,7 @@ END
   $o;
 }
 
-sub lotus_book () {
+sub book_lotus () {
   my $o = general_book($lotus, [8, 0]);
 
   $o .= <<END;
@@ -407,7 +407,7 @@ END
   $o;
 }
 
-sub purple_book () {
+sub book_purple () {
   my $o = general_book($purple, [10, 1]);
 
   my $input = <<END;
@@ -512,7 +512,7 @@ END
   $o;
 }
 
-sub yellow_book () {
+sub book_yellow () {
   my $o = general_book($yellow, [qw(7 12 19)]);
 
   $o .= <<END;
@@ -642,7 +642,7 @@ END
 END
 }
 
-sub black_book_pair () {
+sub book_black_pair () {
   my $o = general_book($moth, [10, 1]);
 
   $o .= num_players(2);
@@ -659,7 +659,7 @@ END
   $o;
 }
 
-sub black_book_more () {
+sub book_black_more () {
   my $o = general_book($moth, [10, 1]);
 
   $o .= num_players(3,'+');
@@ -773,25 +773,15 @@ def_image(3, "droplet");
 
 print "gsave\n" or die $!;
 
-our @books = qw(
-                red_book
-                green_book
-                purple_book
-                blue_book
-                lotus_book
-                yellow_book
-                black_book_pair/black_book_more
-             );
-
 our @tiles;
 
-foreach my $spec (@books) {
+foreach my $spec (@ARGV) {
   my @datas;
-  foreach my $book (split m{/}, $spec) {
-    my $data = ${*::}{"$book"}();;
-    my $stem = $book;
-    $stem =~ s/_book//;
-    $stem =~ y/_/-/;
+  foreach my $stem (split m{/}, $spec) {
+    my $func = $stem;
+    $func =~ y/-/_/;
+    $func = ${*::}{"book_$func"} // die "$func ?";
+    my $data = $func->();
     open F, ">book-$stem.ps" or die $!;
     print F $ps_framing, $data, "\nshowpage\n" or die $!;
     close F or die $!;