Build script for Puzzles using bob. I've also added a piece of extra
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sun, 4 Feb 2007 11:44:10 +0000 (11:44 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sun, 4 Feb 2007 11:44:10 +0000 (11:44 +0000)
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.

git-svn-id: svn://svn.tartarus.org/sgt/puzzles@7206 cda61777-01e9-0310-a592-d414129be87e

27 files changed:
Buildscr [new file with mode: 0644]
blackbox.R
bridges.R
cube.R
dominosa.R
fifteen.R
flip.R
guess.R
inertia.R
lightup.R
loopy.R
makedist.sh
map.R
mines.R
net.R
netslide.R
pattern.R
pegs.R
rect.R
samegame.R
sixteen.R
slant.R
solo.R
tents.R
twiddle.R
unequal.R
untangle.R

diff --git a/Buildscr b/Buildscr
new file mode 100644 (file)
index 0000000..5c555ae
--- /dev/null
+++ b/Buildscr
@@ -0,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 $@
index 4235840..a561a7e 100644 (file)
@@ -13,3 +13,7 @@ GAMES += blackbox
 !begin >list.c
     A(blackbox) \
 !end
+
+!begin >wingames.lst
+blackbox.exe
+!end
index 75b9731..f5e00f1 100644 (file)
--- a/bridges.R
+++ b/bridges.R
@@ -15,3 +15,7 @@ GAMES += bridges
 !begin >list.c
     A(bridges) \
 !end
+
+!begin >wingames.lst
+bridges.exe
+!end
diff --git a/cube.R b/cube.R
index f08e000..7f080d6 100644 (file)
--- a/cube.R
+++ b/cube.R
@@ -13,3 +13,7 @@ GAMES += cube
 !begin >list.c
     A(cube) \
 !end
+
+!begin >wingames.lst
+cube.exe
+!end
index e243c43..a03071b 100644 (file)
@@ -13,3 +13,7 @@ GAMES += dominosa
 !begin >list.c
     A(dominosa) \
 !end
+
+!begin >wingames.lst
+dominosa.exe
+!end
index a9e2108..0102c4e 100644 (file)
--- a/fifteen.R
+++ b/fifteen.R
@@ -13,3 +13,7 @@ GAMES += fifteen
 !begin >list.c
     A(fifteen) \
 !end
+
+!begin >wingames.lst
+fifteen.exe
+!end
diff --git a/flip.R b/flip.R
index 40ca546..8e2aeea 100644 (file)
--- a/flip.R
+++ b/flip.R
@@ -15,3 +15,7 @@ GAMES += flip
 !begin >list.c
     A(flip) \
 !end
+
+!begin >wingames.lst
+flip.exe
+!end
diff --git a/guess.R b/guess.R
index 0956e65..4336c3a 100644 (file)
--- a/guess.R
+++ b/guess.R
@@ -13,3 +13,7 @@ GAMES += guess
 !begin >list.c
     A(guess) \
 !end
+
+!begin >wingames.lst
+guess.exe
+!end
index 867484e..836e1fe 100644 (file)
--- a/inertia.R
+++ b/inertia.R
@@ -13,3 +13,7 @@ GAMES += inertia
 !begin >list.c
     A(inertia) \
 !end
+
+!begin >wingames.lst
+inertia.exe
+!end
index b4c4a3d..adaf19a 100644 (file)
--- a/lightup.R
+++ b/lightup.R
@@ -18,3 +18,7 @@ GAMES += lightup
 !begin >list.c
     A(lightup) \
 !end
+
+!begin >wingames.lst
+lightup.exe
+!end
diff --git a/loopy.R b/loopy.R
index 1856d53..a2049fd 100644 (file)
--- a/loopy.R
+++ b/loopy.R
@@ -15,3 +15,7 @@ GAMES += loopy
 !begin >list.c
     A(loopy) \
 !end
+
+!begin >wingames.lst
+loopy.exe
+!end
index 4e695b6..7af8fbf 100755 (executable)
@@ -15,7 +15,7 @@ case "$#" in
     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
diff --git a/map.R b/map.R
index 20e6706..80f8f4d 100644 (file)
--- a/map.R
+++ b/map.R
@@ -18,3 +18,7 @@ GAMES += map
 !begin >list.c
     A(map) \
 !end
+
+!begin >wingames.lst
+map.exe
+!end
diff --git a/mines.R b/mines.R
index bc7e3a9..1758abc 100644 (file)
--- a/mines.R
+++ b/mines.R
@@ -18,3 +18,7 @@ GAMES += mines
 !begin >list.c
     A(mines) \
 !end
+
+!begin >wingames.lst
+mines.exe
+!end
diff --git a/net.R b/net.R
index 5edddb5..266b7a6 100644 (file)
--- a/net.R
+++ b/net.R
@@ -17,3 +17,7 @@ GAMES += net
 !begin >list.c
     A(net) \
 !end
+
+!begin >wingames.lst
+netgame.exe
+!end
index b558de9..61a4293 100644 (file)
@@ -15,3 +15,7 @@ GAMES += netslide
 !begin >list.c
     A(netslide) \
 !end
+
+!begin >wingames.lst
+netslide.exe
+!end
index 0b96d46..512e2cb 100644 (file)
--- a/pattern.R
+++ b/pattern.R
@@ -16,3 +16,7 @@ GAMES += pattern
 !begin >list.c
     A(pattern) \
 !end
+
+!begin >wingames.lst
+pattern.exe
+!end
diff --git a/pegs.R b/pegs.R
index 97a1750..e5e080e 100644 (file)
--- a/pegs.R
+++ b/pegs.R
@@ -15,3 +15,7 @@ GAMES += pegs
 !begin >list.c
     A(pegs) \
 !end
+
+!begin >wingames.lst
+pegs.exe
+!end
diff --git a/rect.R b/rect.R
index e050b40..3d4bf97 100644 (file)
--- a/rect.R
+++ b/rect.R
@@ -13,3 +13,7 @@ GAMES += rect
 !begin >list.c
     A(rect) \
 !end
+
+!begin >wingames.lst
+rect.exe
+!end
index fa1f2ca..44b94ba 100644 (file)
@@ -13,3 +13,7 @@ GAMES += samegame
 !begin >list.c
     A(samegame) \
 !end
+
+!begin >wingames.lst
+samegame.exe
+!end
index 4a69961..c5e25cd 100644 (file)
--- a/sixteen.R
+++ b/sixteen.R
@@ -13,3 +13,7 @@ GAMES += sixteen
 !begin >list.c
     A(sixteen) \
 !end
+
+!begin >wingames.lst
+sixteen.exe
+!end
diff --git a/slant.R b/slant.R
index b615a9f..f15b39e 100644 (file)
--- a/slant.R
+++ b/slant.R
@@ -18,3 +18,7 @@ GAMES += slant
 !begin >list.c
     A(slant) \
 !end
+
+!begin >wingames.lst
+slant.exe
+!end
diff --git a/solo.R b/solo.R
index 126e338..7e1ff2a 100644 (file)
--- a/solo.R
+++ b/solo.R
@@ -16,3 +16,7 @@ GAMES += solo
 !begin >list.c
     A(solo) \
 !end
+
+!begin >wingames.lst
+solo.exe
+!end
diff --git a/tents.R b/tents.R
index c875289..cee89ce 100644 (file)
--- a/tents.R
+++ b/tents.R
@@ -18,3 +18,7 @@ GAMES += tents
 !begin >list.c
     A(tents) \
 !end
+
+!begin >wingames.lst
+tents.exe
+!end
index 6b23df1..d0e841a 100644 (file)
--- a/twiddle.R
+++ b/twiddle.R
@@ -13,3 +13,7 @@ GAMES += twiddle
 !begin >list.c
     A(twiddle) \
 !end
+
+!begin >wingames.lst
+twiddle.exe
+!end
index d9bffd3..f40a5a7 100644 (file)
--- a/unequal.R
+++ b/unequal.R
@@ -21,3 +21,7 @@ GAMES += unequal
 !begin >list.c
     A(unequal) \
 !end
+
+!begin >wingames.lst
+unequal.exe
+!end
index fd74f31..4187cba 100644 (file)
@@ -15,3 +15,7 @@ GAMES += untangle
 !begin >list.c
     A(untangle) \
 !end
+
+!begin >wingames.lst
+untangle.exe
+!end