New puzzle: `twiddle', generalised from a random door-unlocking
[sgt/puzzles] / Recipe
diff --git a/Recipe b/Recipe
index 36143a9..fe6c003 100644 (file)
--- a/Recipe
+++ b/Recipe
@@ -18,7 +18,7 @@ COMMON   = midend misc malloc random
 NET      = net tree234
 NETSLIDE = netslide tree234
 
-ALL      = list NET NETSLIDE cube fifteen sixteen rect pattern
+ALL      = list NET NETSLIDE cube fifteen sixteen rect pattern solo twiddle
 
 net      : [X] gtk COMMON NET
 netslide : [X] gtk COMMON NETSLIDE
@@ -27,6 +27,8 @@ fifteen  : [X] gtk COMMON fifteen
 sixteen  : [X] gtk COMMON sixteen
 rect     : [X] gtk COMMON rect
 pattern  : [X] gtk COMMON pattern
+solo     : [X] gtk COMMON solo
+twiddle  : [X] gtk COMMON twiddle
 
 # The Windows Net shouldn't be called `net.exe' since Windows
 # already has a reasonably important utility program by that name!
@@ -37,9 +39,40 @@ fifteen  : [G] WINDOWS COMMON fifteen
 sixteen  : [G] WINDOWS COMMON sixteen
 rect     : [G] WINDOWS COMMON rect
 pattern  : [G] WINDOWS COMMON pattern
+solo     : [G] WINDOWS COMMON solo
+twiddle  : [G] WINDOWS COMMON twiddle
 
 # Mac OS X unified application containing all the puzzles.
 Puzzles  : [MX] osx osx.icns osx-info.plist COMMON ALL
+# For OS X, we must create the online help and include it in the
+# application bundle.) Also we add -DCOMBINED to the compiler flags
+# so as to inform the code that we're building a single binary for
+# all the puzzles. Then I've also got some code in here to build a
+# distributable .dmg disk image.
+!begin osx
+CFLAGS += -DCOMBINED
+Puzzles_extra = Puzzles.app/Contents/Resources/Help/index.html
+Puzzles.app/Contents/Resources/Help/index.html: \
+       Puzzles.app/Contents/Resources/Help osx-help.but puzzles.but
+       cd Puzzles.app/Contents/Resources/Help; \
+               halibut --html ../../../../osx-help.but ../../../../puzzles.but
+Puzzles.app/Contents/Resources/Help: Puzzles.app/Contents/Resources
+       mkdir -p Puzzles.app/Contents/Resources/Help
+
+release: Puzzles.dmg
+Puzzles.dmg: Puzzles
+       rm -f raw.dmg
+       hdiutil create -megabytes 5 -layout NONE raw.dmg
+       hdid -nomount raw.dmg > devicename
+       newfs_hfs -v "Simon Tatham's Puzzle Collection" `cat devicename`
+       hdiutil eject `cat devicename`
+       hdid raw.dmg | cut -f1 -d' ' > devicename
+       cp -R Puzzles.app /Volumes/"Simon Tatham's Puzzle Collection"
+       hdiutil eject `cat devicename`
+       rm -f Puzzles.dmg
+       hdiutil convert -format UDCO raw.dmg -o Puzzles.dmg
+       rm -f raw.dmg devicename
+!end
 
 # The `nullgame' source file is a largely blank one, which contains
 # all the correct function definitions to compile and link, but