shithub: puzzles

Download patch

ref: ef6f6427a263627de1d0fed22d8f367b15e2fb1a
parent: b7034aeb51a99336fca2e15837c8337481964f6d
author: Simon Tatham <[email protected]>
date: Sun Apr 22 12:45:34 EDT 2018

Recipe: centralise dependencies for latin.c.

It's silly to have every puzzle using latin.c separately specify in
its .R file the list of additional modules that latin.c depends on, or
for that matter to have them all have to separately know how to adjust
that for the STANDALONE_SOLVER mode of latin.c.

So I've centralised a new pair of definitions into the core Recipe
file, called LATIN and LATIN_SOLVER, and now a client of latin.c need
only ask for that to get all the necessary dependencies too.

Also, while I'm here, I've moved the non-puzzle-specific 'latincheck'
test program out of unequal.R into the central Recipe.

--- a/Recipe
+++ b/Recipe
@@ -31,6 +31,10 @@
 
 ALL      = list
 
+LATIN_DEPS   = maxflow tree234
+LATIN        = latin LATIN_DEPS
+LATIN_SOLVER = latin[STANDALONE_SOLVER] LATIN_DEPS
+
 # First half of list.c.
 !begin >list.c
 /*
@@ -60,6 +64,10 @@
 
 # Unix standalone application for special-purpose obfuscation.
 obfusc : [U] obfusc STANDALONE
+
+# Test program built from latin.c.
+latincheck : [U] latin[STANDALONE_LATIN_TEST] LATIN_DEPS STANDALONE
+latincheck : [C] latin[STANDALONE_LATIN_TEST] LATIN_DEPS STANDALONE
 
 puzzles  : [G] windows[COMBINED] WINDOWS_COMMON COMMON ALL noicon.res
 
--- a/keen.R
+++ b/keen.R
@@ -1,14 +1,14 @@
 # -*- makefile -*-
 
-KEEN_LATIN_EXTRA = tree234 maxflow dsf
-KEEN_EXTRA = latin KEEN_LATIN_EXTRA
+KEEN_EXTRA        = dsf LATIN
+KEEN_EXTRA_SOLVER = dsf LATIN_SOLVER
 
 keen    : [X] GTK COMMON keen KEEN_EXTRA keen-icon|no-icon
 
 keen    : [G] WINDOWS COMMON keen KEEN_EXTRA keen.res|noicon.res
 
-keensolver : [U] keen[STANDALONE_SOLVER] latin[STANDALONE_SOLVER] KEEN_LATIN_EXTRA STANDALONE
-keensolver : [C] keen[STANDALONE_SOLVER] latin[STANDALONE_SOLVER] KEEN_LATIN_EXTRA STANDALONE
+keensolver : [U] keen[STANDALONE_SOLVER] KEEN_EXTRA_SOLVER STANDALONE
+keensolver : [C] keen[STANDALONE_SOLVER] KEEN_EXTRA_SOLVER STANDALONE
 
 ALL += keen[COMBINED] KEEN_EXTRA
 
--- a/singles.R
+++ b/singles.R
@@ -1,6 +1,6 @@
 # -*- makefile -*-
 
-SINGLES_EXTRA = dsf latin maxflow tree234
+SINGLES_EXTRA = dsf LATIN
 
 singles : [X] GTK COMMON singles SINGLES_EXTRA singles-icon|no-icon
 singles : [G] WINDOWS COMMON singles SINGLES_EXTRA singles.res|noicon.res
--- a/towers.R
+++ b/towers.R
@@ -1,14 +1,14 @@
 # -*- makefile -*-
 
-TOWERS_LATIN_EXTRA = tree234 maxflow
-TOWERS_EXTRA = latin TOWERS_LATIN_EXTRA
+TOWERS_EXTRA        = LATIN
+TOWERS_EXTRA_SOLVER = LATIN_SOLVER
 
 towers    : [X] GTK COMMON towers TOWERS_EXTRA towers-icon|no-icon
 
 towers    : [G] WINDOWS COMMON towers TOWERS_EXTRA towers.res|noicon.res
 
-towerssolver : [U] towers[STANDALONE_SOLVER] latin[STANDALONE_SOLVER] TOWERS_LATIN_EXTRA STANDALONE
-towerssolver : [C] towers[STANDALONE_SOLVER] latin[STANDALONE_SOLVER] TOWERS_LATIN_EXTRA STANDALONE
+towerssolver : [U] towers[STANDALONE_SOLVER] TOWERS_EXTRA_SOLVER STANDALONE
+towerssolver : [C] towers[STANDALONE_SOLVER] TOWERS_EXTRA_SOLVER STANDALONE
 
 ALL += towers[COMBINED] TOWERS_EXTRA
 
--- a/unequal.R
+++ b/unequal.R
@@ -1,16 +1,14 @@
 # -*- makefile -*-
 
-UNEQUAL_EXTRA = latin tree234 maxflow
+UNEQUAL_EXTRA        = LATIN
+UNEQUAL_EXTRA_SOLVER = LATIN_SOLVER
 
 unequal  : [X] GTK COMMON unequal UNEQUAL_EXTRA unequal-icon|no-icon
 
 unequal  : [G] WINDOWS COMMON unequal UNEQUAL_EXTRA unequal.res|noicon.res
 
-unequalsolver : [U] unequal[STANDALONE_SOLVER] latin[STANDALONE_SOLVER] tree234 maxflow STANDALONE
-unequalsolver : [C] unequal[STANDALONE_SOLVER] latin[STANDALONE_SOLVER] tree234 maxflow STANDALONE
-
-latincheck : [U] latin[STANDALONE_LATIN_TEST] tree234 maxflow STANDALONE
-latincheck : [C] latin[STANDALONE_LATIN_TEST] tree234 maxflow STANDALONE
+unequalsolver : [U] unequal[STANDALONE_SOLVER] UNEQUAL_EXTRA_SOLVER STANDALONE
+unequalsolver : [C] unequal[STANDALONE_SOLVER] UNEQUAL_EXTRA_SOLVER STANDALONE
 
 ALL += unequal[COMBINED] UNEQUAL_EXTRA
 
--- a/unfinished/group.R
+++ b/unfinished/group.R
@@ -1,14 +1,14 @@
 # -*- makefile -*-
 
-GROUP_LATIN_EXTRA = tree234 maxflow
-GROUP_EXTRA = latin GROUP_LATIN_EXTRA
+GROUP_EXTRA        = LATIN
+GROUP_EXTRA_SOLVER = LATIN_SOLVER
 
 group    : [X] GTK COMMON group GROUP_EXTRA group-icon|no-icon
 
 group    : [G] WINDOWS COMMON group GROUP_EXTRA group.res|noicon.res
 
-groupsolver : [U] group[STANDALONE_SOLVER] latin[STANDALONE_SOLVER] GROUP_LATIN_EXTRA STANDALONE
-groupsolver : [C] group[STANDALONE_SOLVER] latin[STANDALONE_SOLVER] GROUP_LATIN_EXTRA STANDALONE
+groupsolver : [U] group[STANDALONE_SOLVER] GROUP_EXTRA_SOLVER STANDALONE
+groupsolver : [C] group[STANDALONE_SOLVER] GROUP_EXTRA_SOLVER STANDALONE
 
 ALL += group[COMBINED] GROUP_EXTRA