mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-22 08:25:45 -07:00
Files

place in r6190. I'm quite pleased that I didn't have to modify the printing infrastructure _at all_ to make this work; the only source change required outside windows.c was the addition of a trivial utility function midend_get_params(), and that was for the benefit of bulk puzzle generation rather than anything to do with actual printing. As far as I can tell, all printable puzzles now print almost indistinguishably from the way they print under Unix. If you look closely the font is slightly different, and the Windows standard hatching doesn't seem to be quite as nice as the kind I did by hand in ps.c (and, particularly annoyingly, hatched areas don't show up at all for me when I print to a file and use gv, though they come out fine on the printer itself); but it's all there, and it all works. [originally from svn r6193] [r6190 == af59dcf6858264103bbc621761feee3aed5aaf2a]
184 lines
6.5 KiB
Makefile
184 lines
6.5 KiB
Makefile
# -*- makefile -*-
|
|
#
|
|
# This file describes which puzzle binaries are made up from which
|
|
# object and resource files. It is processed into the various
|
|
# Makefiles by means of a Perl script. Makefile changes should
|
|
# really be made by editing this file and/or the Perl script, not
|
|
# by editing the actual Makefiles.
|
|
|
|
!name puzzles
|
|
|
|
!makefile gtk Makefile
|
|
!makefile vc Makefile.vc
|
|
!makefile cygwin Makefile.cyg
|
|
!makefile osx Makefile.osx
|
|
|
|
WINDOWS = windows printing
|
|
+ user32.lib gdi32.lib comctl32.lib comdlg32.lib winspool.lib
|
|
COMMON = midend drawing misc malloc random version
|
|
NET = net tree234 dsf
|
|
NETSLIDE = netslide tree234
|
|
MINES = mines tree234
|
|
FLIP = flip tree234
|
|
PEGS = pegs tree234
|
|
UNTANGLE = untangle tree234
|
|
SLANT = slant dsf
|
|
MAP = map dsf
|
|
|
|
ALL = list NET NETSLIDE cube fifteen sixteen rect pattern solo twiddle
|
|
+ MINES samegame FLIP guess PEGS dominosa UNTANGLE blackbox SLANT
|
|
+ lightup MAP
|
|
|
|
GTK = gtk printing ps
|
|
|
|
net : [X] GTK COMMON NET
|
|
netslide : [X] GTK COMMON NETSLIDE
|
|
cube : [X] GTK COMMON cube
|
|
fifteen : [X] GTK COMMON fifteen
|
|
sixteen : [X] GTK COMMON sixteen
|
|
rect : [X] GTK COMMON rect
|
|
pattern : [X] GTK COMMON pattern
|
|
solo : [X] GTK COMMON solo
|
|
twiddle : [X] GTK COMMON twiddle
|
|
mines : [X] GTK COMMON MINES
|
|
samegame : [X] GTK COMMON samegame
|
|
flip : [X] GTK COMMON FLIP
|
|
guess : [X] GTK COMMON guess
|
|
pegs : [X] GTK COMMON PEGS
|
|
dominosa : [X] GTK COMMON dominosa
|
|
untangle : [X] GTK COMMON UNTANGLE
|
|
blackbox : [X] GTK COMMON blackbox
|
|
slant : [X] GTK COMMON SLANT
|
|
lightup : [X] GTK COMMON lightup
|
|
map : [X] GTK COMMON MAP
|
|
|
|
# Auxiliary command-line programs.
|
|
solosolver : [U] solo[STANDALONE_SOLVER] malloc
|
|
patternsolver : [U] pattern[STANDALONE_SOLVER] malloc
|
|
mineobfusc : [U] mines[STANDALONE_OBFUSCATOR] malloc random tree234 misc
|
|
slantsolver : [U] slant[STANDALONE_SOLVER] dsf malloc
|
|
|
|
solosolver : [C] solo[STANDALONE_SOLVER] malloc
|
|
patternsolver : [C] pattern[STANDALONE_SOLVER] malloc
|
|
mineobfusc : [C] mines[STANDALONE_OBFUSCATOR] malloc random tree234 misc
|
|
slantsolver : [C] slant[STANDALONE_SOLVER] dsf malloc
|
|
|
|
# The Windows Net shouldn't be called `net.exe' since Windows
|
|
# already has a reasonably important utility program by that name!
|
|
netgame : [G] WINDOWS COMMON NET
|
|
netslide : [G] WINDOWS COMMON NETSLIDE
|
|
cube : [G] WINDOWS COMMON cube
|
|
fifteen : [G] WINDOWS COMMON fifteen
|
|
sixteen : [G] WINDOWS COMMON sixteen
|
|
rect : [G] WINDOWS COMMON rect
|
|
pattern : [G] WINDOWS COMMON pattern
|
|
solo : [G] WINDOWS COMMON solo
|
|
twiddle : [G] WINDOWS COMMON twiddle
|
|
mines : [G] WINDOWS COMMON MINES
|
|
samegame : [G] WINDOWS COMMON samegame
|
|
flip : [G] WINDOWS COMMON FLIP
|
|
guess : [G] WINDOWS COMMON guess
|
|
pegs : [G] WINDOWS COMMON PEGS
|
|
dominosa : [G] WINDOWS COMMON dominosa
|
|
untangle : [G] WINDOWS COMMON UNTANGLE
|
|
blackbox : [G] WINDOWS COMMON blackbox
|
|
slant : [G] WINDOWS COMMON SLANT
|
|
lightup : [G] WINDOWS COMMON lightup
|
|
map : [G] WINDOWS COMMON MAP
|
|
|
|
# Mac OS X unified application containing all the puzzles.
|
|
Puzzles : [MX] osx osx.icns osx-info.plist COMMON ALL
|
|
# For OS X, we must create the online help and include it in the
|
|
# application bundle.) Also we add -DCOMBINED to the compiler flags
|
|
# so as to inform the code that we're building a single binary for
|
|
# all the puzzles. Then I've also got some code in here to build a
|
|
# distributable .dmg disk image.
|
|
!begin osx
|
|
CFLAGS += -DCOMBINED
|
|
Puzzles_extra = Puzzles.app/Contents/Resources/Help/index.html
|
|
Puzzles.app/Contents/Resources/Help/index.html: \
|
|
Puzzles.app/Contents/Resources/Help osx-help.but puzzles.but
|
|
cd Puzzles.app/Contents/Resources/Help; \
|
|
halibut --html ../../../../osx-help.but ../../../../puzzles.but
|
|
Puzzles.app/Contents/Resources/Help: Puzzles.app/Contents/Resources
|
|
mkdir -p Puzzles.app/Contents/Resources/Help
|
|
|
|
release: Puzzles.dmg
|
|
Puzzles.dmg: Puzzles
|
|
rm -f raw.dmg
|
|
hdiutil create -megabytes 5 -layout NONE raw.dmg
|
|
hdid -nomount raw.dmg > devicename
|
|
newfs_hfs -v "Simon Tatham's Puzzle Collection" `cat devicename`
|
|
hdiutil eject `cat devicename`
|
|
hdid raw.dmg | cut -f1 -d' ' > devicename
|
|
cp -R Puzzles.app /Volumes/"Simon Tatham's Puzzle Collection"
|
|
hdiutil eject `cat devicename`
|
|
rm -f Puzzles.dmg
|
|
hdiutil convert -format UDCO raw.dmg -o Puzzles.dmg
|
|
rm -f raw.dmg devicename
|
|
!end
|
|
|
|
# The `nullgame' source file is a largely blank one, which contains
|
|
# all the correct function definitions to compile and link, but
|
|
# which defines the null game in which nothing is ever drawn and
|
|
# there are no valid moves. Its main purpose is to act as a
|
|
# template for writing new game definition source files. I include
|
|
# it in the Makefile because it will be worse than useless if it
|
|
# ever fails to compile, so it's important that it should actually
|
|
# be built on a regular basis.
|
|
nullgame : [X] GTK COMMON nullgame
|
|
nullgame : [G] WINDOWS COMMON nullgame
|
|
|
|
# Version management.
|
|
!begin vc
|
|
version.obj: *.c *.h
|
|
cl $(VER) $(CFLAGS) /c version.c
|
|
!end
|
|
!specialobj vc version
|
|
!begin cygwin
|
|
version.o: FORCE;
|
|
FORCE:
|
|
$(CC) $(COMPAT) $(XFLAGS) $(CFLAGS) $(VER) -c version.c
|
|
!end
|
|
!specialobj cygwin version
|
|
# For Unix, we also need the gross MD5 hack that causes automatic
|
|
# version number selection in release source archives.
|
|
!begin gtk
|
|
version.o: FORCE;
|
|
FORCE:
|
|
if test -z "$(VER)" && test -f manifest && md5sum -c manifest; then \
|
|
$(CC) $(COMPAT) $(XFLAGS) $(CFLAGS) `cat version.def` -c version.c; \
|
|
elif test -z "$(VER)" && test -d .svn && svnversion . >&/dev/null; then \
|
|
$(CC) $(COMPAT) $(XFLAGS) $(CFLAGS) "-DREVISION=`svnversion .`" -c version.c; \
|
|
else \
|
|
$(CC) $(COMPAT) $(XFLAGS) $(CFLAGS) $(VER) -c version.c; \
|
|
fi
|
|
!end
|
|
!specialobj gtk version
|
|
# For OS X, this is made more fiddly by the fact that we don't have
|
|
# md5sum readily available. We do, however, have `md5 -r' which
|
|
# generates _nearly_ the same output, but it has no check function.
|
|
!begin osx
|
|
version.o: FORCE;
|
|
FORCE:
|
|
if test -z "$(VER)" && test -f manifest && (md5 -r `awk '{print $$2}' manifest` | diff -w manifest -); then \
|
|
$(CC) $(COMPAT) $(XFLAGS) $(CFLAGS) `cat version.def` -c version.c; \
|
|
elif test -z "$(VER)" && test -d .svn && svnversion . >&/dev/null; then \
|
|
$(CC) $(COMPAT) $(XFLAGS) $(CFLAGS) "-DREVISION=`svnversion .`" -c version.c; \
|
|
else \
|
|
$(CC) $(COMPAT) $(XFLAGS) $(CFLAGS) $(VER) -c version.c; \
|
|
fi
|
|
!end
|
|
!specialobj osx version
|
|
|
|
# make install for Unix.
|
|
!begin gtk
|
|
install:
|
|
for i in cube net netslide fifteen sixteen twiddle \
|
|
pattern rect solo mines samegame flip guess \
|
|
pegs dominosa untangle blackbox slant lightup \
|
|
map; do \
|
|
$(INSTALL_PROGRAM) -m 755 $$i $(DESTDIR)$(gamesdir)/$$i; \
|
|
done
|
|
!end
|