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]
This commit is contained in:
Simon Tatham
2007-02-04 11:44:10 +00:00
parent 215cf19577
commit dd1cee7537
27 changed files with 178 additions and 1 deletions

77
Buildscr Normal file
View File

@ -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 $@

View File

@ -13,3 +13,7 @@ GAMES += blackbox
!begin >list.c
A(blackbox) \
!end
!begin >wingames.lst
blackbox.exe
!end

View File

@ -15,3 +15,7 @@ GAMES += bridges
!begin >list.c
A(bridges) \
!end
!begin >wingames.lst
bridges.exe
!end

4
cube.R
View File

@ -13,3 +13,7 @@ GAMES += cube
!begin >list.c
A(cube) \
!end
!begin >wingames.lst
cube.exe
!end

View File

@ -13,3 +13,7 @@ GAMES += dominosa
!begin >list.c
A(dominosa) \
!end
!begin >wingames.lst
dominosa.exe
!end

View File

@ -13,3 +13,7 @@ GAMES += fifteen
!begin >list.c
A(fifteen) \
!end
!begin >wingames.lst
fifteen.exe
!end

4
flip.R
View File

@ -15,3 +15,7 @@ GAMES += flip
!begin >list.c
A(flip) \
!end
!begin >wingames.lst
flip.exe
!end

View File

@ -13,3 +13,7 @@ GAMES += guess
!begin >list.c
A(guess) \
!end
!begin >wingames.lst
guess.exe
!end

View File

@ -13,3 +13,7 @@ GAMES += inertia
!begin >list.c
A(inertia) \
!end
!begin >wingames.lst
inertia.exe
!end

View File

@ -18,3 +18,7 @@ GAMES += lightup
!begin >list.c
A(lightup) \
!end
!begin >wingames.lst
lightup.exe
!end

View File

@ -15,3 +15,7 @@ GAMES += loopy
!begin >list.c
A(loopy) \
!end
!begin >wingames.lst
loopy.exe
!end

View File

@ -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

4
map.R
View File

@ -18,3 +18,7 @@ GAMES += map
!begin >list.c
A(map) \
!end
!begin >wingames.lst
map.exe
!end

View File

@ -18,3 +18,7 @@ GAMES += mines
!begin >list.c
A(mines) \
!end
!begin >wingames.lst
mines.exe
!end

4
net.R
View File

@ -17,3 +17,7 @@ GAMES += net
!begin >list.c
A(net) \
!end
!begin >wingames.lst
netgame.exe
!end

View File

@ -15,3 +15,7 @@ GAMES += netslide
!begin >list.c
A(netslide) \
!end
!begin >wingames.lst
netslide.exe
!end

View File

@ -16,3 +16,7 @@ GAMES += pattern
!begin >list.c
A(pattern) \
!end
!begin >wingames.lst
pattern.exe
!end

4
pegs.R
View File

@ -15,3 +15,7 @@ GAMES += pegs
!begin >list.c
A(pegs) \
!end
!begin >wingames.lst
pegs.exe
!end

4
rect.R
View File

@ -13,3 +13,7 @@ GAMES += rect
!begin >list.c
A(rect) \
!end
!begin >wingames.lst
rect.exe
!end

View File

@ -13,3 +13,7 @@ GAMES += samegame
!begin >list.c
A(samegame) \
!end
!begin >wingames.lst
samegame.exe
!end

View File

@ -13,3 +13,7 @@ GAMES += sixteen
!begin >list.c
A(sixteen) \
!end
!begin >wingames.lst
sixteen.exe
!end

View File

@ -18,3 +18,7 @@ GAMES += slant
!begin >list.c
A(slant) \
!end
!begin >wingames.lst
slant.exe
!end

4
solo.R
View File

@ -16,3 +16,7 @@ GAMES += solo
!begin >list.c
A(solo) \
!end
!begin >wingames.lst
solo.exe
!end

View File

@ -18,3 +18,7 @@ GAMES += tents
!begin >list.c
A(tents) \
!end
!begin >wingames.lst
tents.exe
!end

View File

@ -13,3 +13,7 @@ GAMES += twiddle
!begin >list.c
A(twiddle) \
!end
!begin >wingames.lst
twiddle.exe
!end

View File

@ -21,3 +21,7 @@ GAMES += unequal
!begin >list.c
A(unequal) \
!end
!begin >wingames.lst
unequal.exe
!end

View File

@ -15,3 +15,7 @@ GAMES += untangle
!begin >list.c
A(untangle) \
!end
!begin >wingames.lst
untangle.exe
!end