shithub: puzzles

Download patch

ref: dd1cee7537c05830475a15dd26ef8bc777738bba
parent: 215cf195770067f6639542c2f9588218e1ccd02b
author: Simon Tatham <[email protected]>
date: Sun Feb 4 06:44:10 EST 2007

Build script for Puzzles using bob. I've also added a piece of extra
infrastructure to the mkfiles.pl framework for the convenience of
the build script: it generates `wingames.lst', a list of the Windows
binaries which are ship-worthy games as opposed to nullgame or
command-line auxiliary programs.

[originally from svn r7206]

--- /dev/null
+++ b/Buildscr
@@ -1,0 +1,77 @@
+# -*- sh -*-
+# Build script to build Puzzles.
+
+# First build some local binaries, to run the icon build.
+in puzzles do perl mkfiles.pl
+in puzzles do make
+
+# Now build the screenshots and icons.
+in puzzles/icons do xvfb-run make web winicons gtkicons
+
+# Destroy the local binaries, mostly to avoid wasting network
+# bandwidth by transferring them to the delegate servers.
+in puzzles do make clean
+
+# Build the OS X .dmg archive.
+delegate osx
+  in puzzles do make -f Makefile.osx clean
+  in puzzles do make -f Makefile.osx release
+  return puzzles/Puzzles.dmg
+enddelegate
+
+# Build the Windows binaries and the CHM file.
+in puzzles do make -f Makefile.doc clean
+in puzzles do make -f Makefile.doc chm
+delegate windows
+  # Ignore the poorly controlled return value from HHC, and instead
+  # just test that the output file was generated.
+  in puzzles do hhc puzzles.hhp; test -f puzzles.chm
+  # FIXME: Cygwin alternative?
+  in puzzles do cmd /c 'vcvars32 & nmake -f Makefile.vc clean'
+  in puzzles do cmd /c 'vcvars32 & nmake -f Makefile.vc'
+  return puzzles/puzzles.chm
+  return puzzles/*.exe
+enddelegate
+
+# Build the help file and the HTML docs.
+in puzzles do make -f Makefile.doc clean
+in puzzles do make -f Makefile.doc
+in puzzles do mkdir doc
+in puzzles do mkdir devel
+in puzzles/doc do halibut --html -Chtml-contents-filename:index.html -Chtml-index-filename:indexpage.html -Chtml-template-filename:%k.html -Chtml-template-fragment:%k ../puzzles.but
+in puzzles/devel do halibut --html -Chtml-contents-filename:index.html -Chtml-index-filename:indexpage.html -Chtml-template-filename:%k.html -Chtml-template-fragment:%k ../devel.but
+
+# Move the deliver-worthy Windows binaries (those specified in
+# wingames.lst, which is generated by mkfiles.pl and helpfully
+# excludes the command-line auxiliary utilities such as solosolver,
+# and nullgame.exe) into a subdirectory for easy access.
+in puzzles do mkdir winbin
+in puzzles do mv `cat wingames.lst` winbin
+
+# Make a zip file of the Windows binaries and help files.
+in puzzles do zip -j puzzles.zip winbin/*.exe puzzles.chm puzzles.hlp puzzles.cnt
+
+# Create the source archive. (That writes the archive into the
+# _parent_ directory, so be careful when we deliver it.)
+in puzzles do ./makedist.sh $(revision)
+
+# Set up .htaccess containing a redirect for the archive filename.
+in puzzles do echo "AddType application/octet-stream .chm" > .htaccess
+in puzzles do echo "AddType application/octet-stream .hlp" >> .htaccess
+in puzzles do echo "AddType application/octet-stream .cnt" >> .htaccess
+in puzzles do set -- puzzles*.tar.gz; echo RedirectMatch temp '(.*/)'puzzles.tar.gz '$$1'"$$1" >> .htaccess
+
+# Phew, we're done. Deliver everything!
+deliver puzzles/icons/*-web.png $@
+deliver puzzles/winbin/*.exe $@
+deliver puzzles/.htaccess $@
+deliver puzzles/doc/*.html doc/$@
+deliver puzzles/devel/*.html devel/$@
+deliver puzzles/Puzzles.dmg $@
+deliver puzzles/puzzles.chm $@
+deliver puzzles/puzzles.hlp $@
+deliver puzzles/puzzles.cnt $@
+deliver puzzles/puzzles.zip $@
+# This one isn't in the puzzles subdir, because makedist.sh left it
+# one level up.
+deliver puzzles*.tar.gz $@
--- a/blackbox.R
+++ b/blackbox.R
@@ -13,3 +13,7 @@
 !begin >list.c
     A(blackbox) \
 !end
+
+!begin >wingames.lst
+blackbox.exe
+!end
--- a/bridges.R
+++ b/bridges.R
@@ -15,3 +15,7 @@
 !begin >list.c
     A(bridges) \
 !end
+
+!begin >wingames.lst
+bridges.exe
+!end
--- a/cube.R
+++ b/cube.R
@@ -13,3 +13,7 @@
 !begin >list.c
     A(cube) \
 !end
+
+!begin >wingames.lst
+cube.exe
+!end
--- a/dominosa.R
+++ b/dominosa.R
@@ -13,3 +13,7 @@
 !begin >list.c
     A(dominosa) \
 !end
+
+!begin >wingames.lst
+dominosa.exe
+!end
--- a/fifteen.R
+++ b/fifteen.R
@@ -13,3 +13,7 @@
 !begin >list.c
     A(fifteen) \
 !end
+
+!begin >wingames.lst
+fifteen.exe
+!end
--- a/flip.R
+++ b/flip.R
@@ -15,3 +15,7 @@
 !begin >list.c
     A(flip) \
 !end
+
+!begin >wingames.lst
+flip.exe
+!end
--- a/guess.R
+++ b/guess.R
@@ -13,3 +13,7 @@
 !begin >list.c
     A(guess) \
 !end
+
+!begin >wingames.lst
+guess.exe
+!end
--- a/inertia.R
+++ b/inertia.R
@@ -13,3 +13,7 @@
 !begin >list.c
     A(inertia) \
 !end
+
+!begin >wingames.lst
+inertia.exe
+!end
--- a/lightup.R
+++ b/lightup.R
@@ -18,3 +18,7 @@
 !begin >list.c
     A(lightup) \
 !end
+
+!begin >wingames.lst
+lightup.exe
+!end
--- a/loopy.R
+++ b/loopy.R
@@ -15,3 +15,7 @@
 !begin >list.c
     A(loopy) \
 !end
+
+!begin >wingames.lst
+loopy.exe
+!end
--- a/makedist.sh
+++ b/makedist.sh
@@ -15,7 +15,7 @@
     if test "x$rev" = "xexported"; then rev=; fi
     ;;
   *)
-    case "$1" in *[!0-9]*) echo "Malformed revision number '$1'">&2;exit 1;;esac
+    case "$1" in *[!0-9M]*) echo "Malformed revision number '$1'">&2;exit 1;;esac
     rev="$1"
     ;;
 esac
--- a/map.R
+++ b/map.R
@@ -18,3 +18,7 @@
 !begin >list.c
     A(map) \
 !end
+
+!begin >wingames.lst
+map.exe
+!end
--- a/mines.R
+++ b/mines.R
@@ -18,3 +18,7 @@
 !begin >list.c
     A(mines) \
 !end
+
+!begin >wingames.lst
+mines.exe
+!end
--- a/net.R
+++ b/net.R
@@ -17,3 +17,7 @@
 !begin >list.c
     A(net) \
 !end
+
+!begin >wingames.lst
+netgame.exe
+!end
--- a/netslide.R
+++ b/netslide.R
@@ -15,3 +15,7 @@
 !begin >list.c
     A(netslide) \
 !end
+
+!begin >wingames.lst
+netslide.exe
+!end
--- a/pattern.R
+++ b/pattern.R
@@ -16,3 +16,7 @@
 !begin >list.c
     A(pattern) \
 !end
+
+!begin >wingames.lst
+pattern.exe
+!end
--- a/pegs.R
+++ b/pegs.R
@@ -15,3 +15,7 @@
 !begin >list.c
     A(pegs) \
 !end
+
+!begin >wingames.lst
+pegs.exe
+!end
--- a/rect.R
+++ b/rect.R
@@ -13,3 +13,7 @@
 !begin >list.c
     A(rect) \
 !end
+
+!begin >wingames.lst
+rect.exe
+!end
--- a/samegame.R
+++ b/samegame.R
@@ -13,3 +13,7 @@
 !begin >list.c
     A(samegame) \
 !end
+
+!begin >wingames.lst
+samegame.exe
+!end
--- a/sixteen.R
+++ b/sixteen.R
@@ -13,3 +13,7 @@
 !begin >list.c
     A(sixteen) \
 !end
+
+!begin >wingames.lst
+sixteen.exe
+!end
--- a/slant.R
+++ b/slant.R
@@ -18,3 +18,7 @@
 !begin >list.c
     A(slant) \
 !end
+
+!begin >wingames.lst
+slant.exe
+!end
--- a/solo.R
+++ b/solo.R
@@ -16,3 +16,7 @@
 !begin >list.c
     A(solo) \
 !end
+
+!begin >wingames.lst
+solo.exe
+!end
--- a/tents.R
+++ b/tents.R
@@ -18,3 +18,7 @@
 !begin >list.c
     A(tents) \
 !end
+
+!begin >wingames.lst
+tents.exe
+!end
--- a/twiddle.R
+++ b/twiddle.R
@@ -13,3 +13,7 @@
 !begin >list.c
     A(twiddle) \
 !end
+
+!begin >wingames.lst
+twiddle.exe
+!end
--- a/unequal.R
+++ b/unequal.R
@@ -21,3 +21,7 @@
 !begin >list.c
     A(unequal) \
 !end
+
+!begin >wingames.lst
+unequal.exe
+!end
--- a/untangle.R
+++ b/untangle.R
@@ -15,3 +15,7 @@
 !begin >list.c
     A(untangle) \
 !end
+
+!begin >wingames.lst
+untangle.exe
+!end