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