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