+
+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
+
+# Version management.
+!begin vc
+version.obj: *.c *.h
+ cl $(VER) $(CFLAGS) /c version.c
+!end
+!specialobj vc version
+!begin wce
+version.obj: *.c *.h
+ $(CC) $(VER) $(CFLAGS) /c version.c
+!end
+!specialobj wce 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 2>&1; then \
+ $(CC) $(COMPAT) $(XFLAGS) $(CFLAGS) "-DREVISION=`svnversion .`" -c version.c; \
+ else \
+ $(CC) $(COMPAT) $(XFLAGS) $(CFLAGS) $(VER) -c version.c; \
+ fi