From 9bb2f5af8376dce30342a462e24708244763e00c Mon Sep 17 00:00:00 2001 From: simon Date: Sun, 4 Feb 2007 11:44:10 +0000 Subject: [PATCH] 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. git-svn-id: svn://svn.tartarus.org/sgt/puzzles@7206 cda61777-01e9-0310-a592-d414129be87e --- Buildscr | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ blackbox.R | 4 ++++ bridges.R | 4 ++++ cube.R | 4 ++++ dominosa.R | 4 ++++ fifteen.R | 4 ++++ flip.R | 4 ++++ guess.R | 4 ++++ inertia.R | 4 ++++ lightup.R | 4 ++++ loopy.R | 4 ++++ makedist.sh | 2 +- map.R | 4 ++++ mines.R | 4 ++++ net.R | 4 ++++ netslide.R | 4 ++++ pattern.R | 4 ++++ pegs.R | 4 ++++ rect.R | 4 ++++ samegame.R | 4 ++++ sixteen.R | 4 ++++ slant.R | 4 ++++ solo.R | 4 ++++ tents.R | 4 ++++ twiddle.R | 4 ++++ unequal.R | 4 ++++ untangle.R | 4 ++++ 27 files changed, 178 insertions(+), 1 deletion(-) create mode 100644 Buildscr diff --git a/Buildscr b/Buildscr new file mode 100644 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 $@ diff --git a/blackbox.R b/blackbox.R index 4235840..a561a7e 100644 --- a/blackbox.R +++ b/blackbox.R @@ -13,3 +13,7 @@ GAMES += blackbox !begin >list.c A(blackbox) \ !end + +!begin >wingames.lst +blackbox.exe +!end diff --git a/bridges.R b/bridges.R index 75b9731..f5e00f1 100644 --- 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 --- a/cube.R +++ b/cube.R @@ -13,3 +13,7 @@ GAMES += cube !begin >list.c A(cube) \ !end + +!begin >wingames.lst +cube.exe +!end diff --git a/dominosa.R b/dominosa.R index e243c43..a03071b 100644 --- a/dominosa.R +++ b/dominosa.R @@ -13,3 +13,7 @@ GAMES += dominosa !begin >list.c A(dominosa) \ !end + +!begin >wingames.lst +dominosa.exe +!end diff --git a/fifteen.R b/fifteen.R index a9e2108..0102c4e 100644 --- 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 --- 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 --- a/guess.R +++ b/guess.R @@ -13,3 +13,7 @@ GAMES += guess !begin >list.c A(guess) \ !end + +!begin >wingames.lst +guess.exe +!end diff --git a/inertia.R b/inertia.R index 867484e..836e1fe 100644 --- a/inertia.R +++ b/inertia.R @@ -13,3 +13,7 @@ GAMES += inertia !begin >list.c A(inertia) \ !end + +!begin >wingames.lst +inertia.exe +!end diff --git a/lightup.R b/lightup.R index b4c4a3d..adaf19a 100644 --- 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 --- a/loopy.R +++ b/loopy.R @@ -15,3 +15,7 @@ GAMES += loopy !begin >list.c A(loopy) \ !end + +!begin >wingames.lst +loopy.exe +!end diff --git a/makedist.sh b/makedist.sh index 4e695b6..7af8fbf 100755 --- a/makedist.sh +++ b/makedist.sh @@ -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 --- 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 --- 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 --- a/net.R +++ b/net.R @@ -17,3 +17,7 @@ GAMES += net !begin >list.c A(net) \ !end + +!begin >wingames.lst +netgame.exe +!end diff --git a/netslide.R b/netslide.R index b558de9..61a4293 100644 --- a/netslide.R +++ b/netslide.R @@ -15,3 +15,7 @@ GAMES += netslide !begin >list.c A(netslide) \ !end + +!begin >wingames.lst +netslide.exe +!end diff --git a/pattern.R b/pattern.R index 0b96d46..512e2cb 100644 --- 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 --- 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 --- a/rect.R +++ b/rect.R @@ -13,3 +13,7 @@ GAMES += rect !begin >list.c A(rect) \ !end + +!begin >wingames.lst +rect.exe +!end diff --git a/samegame.R b/samegame.R index fa1f2ca..44b94ba 100644 --- a/samegame.R +++ b/samegame.R @@ -13,3 +13,7 @@ GAMES += samegame !begin >list.c A(samegame) \ !end + +!begin >wingames.lst +samegame.exe +!end diff --git a/sixteen.R b/sixteen.R index 4a69961..c5e25cd 100644 --- 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 --- 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 --- 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 --- a/tents.R +++ b/tents.R @@ -18,3 +18,7 @@ GAMES += tents !begin >list.c A(tents) \ !end + +!begin >wingames.lst +tents.exe +!end diff --git a/twiddle.R b/twiddle.R index 6b23df1..d0e841a 100644 --- a/twiddle.R +++ b/twiddle.R @@ -13,3 +13,7 @@ GAMES += twiddle !begin >list.c A(twiddle) \ !end + +!begin >wingames.lst +twiddle.exe +!end diff --git a/unequal.R b/unequal.R index d9bffd3..f40a5a7 100644 --- a/unequal.R +++ b/unequal.R @@ -21,3 +21,7 @@ GAMES += unequal !begin >list.c A(unequal) \ !end + +!begin >wingames.lst +unequal.exe +!end diff --git a/untangle.R b/untangle.R index fd74f31..4187cba 100644 --- a/untangle.R +++ b/untangle.R @@ -15,3 +15,7 @@ GAMES += untangle !begin >list.c A(untangle) \ !end + +!begin >wingames.lst +untangle.exe +!end -- 2.11.0