3 # This file describes which puzzle binaries are made up from which
4 # object and resource files. It is processed into the various
5 # Makefiles by means of a Perl script. Makefile changes should
6 # really be made by editing this file and/or the Perl script, not
7 # by editing the actual Makefiles.
11 !makefile gtk Makefile.gtk
12 !makefile am Makefile.am
13 !makefile vc Makefile.vc
14 !makefile wce Makefile.wce
15 !makefile cygwin Makefile.cyg
16 !makefile osx Makefile.osx
17 !makefile gnustep Makefile.gnustep
18 !makefile nestedvm Makefile.nestedvm
19 !makefile emcc Makefile.emcc
20 !makefile clangcl Makefile.clangcl
24 WINDOWS_COMMON = printing
25 + user32.lib gdi32.lib comctl32.lib comdlg32.lib winspool.lib
26 WINDOWS = windows WINDOWS_COMMON
27 COMMON = midend drawing misc malloc random version
29 # Objects needed for auxiliary command-line programs.
30 STANDALONE = nullfe random misc malloc
34 # First half of list.c.
37 * list.c: List of pointers to puzzle structures, for monolithic
40 * This file is automatically generated by mkfiles.pl. Do not edit
41 * it directly, or the changes will be lost next time mkfiles.pl runs.
42 * Instead, edit Recipe and/or its *.R subfiles.
48 # Now each .R file adds part of the macro definition of GAMELIST to list.c.
51 # Then we finish up list.c as follows:
54 #define DECL(x) extern const game x;
57 const game *gamelist[] = { GAMELIST(REF) };
58 const int gamecount = lenof(gamelist);
61 # Unix standalone application for special-purpose obfuscation.
62 obfusc : [U] obfusc STANDALONE
64 puzzles : [G] windows[COMBINED] WINDOWS_COMMON COMMON ALL noicon.res
66 # Mac OS X unified application containing all the puzzles.
67 Puzzles : [MX] osx osx.icns osx-info.plist COMMON ALL
68 # For OS X, we must create the online help and include it in the
69 # application bundle.) Also we add -DCOMBINED to the compiler flags
70 # so as to inform the code that we're building a single binary for
71 # all the puzzles. Then I've also got some code in here to build a
72 # distributable .dmg disk image.
74 Puzzles_extra = Puzzles.app/Contents/Resources/Help/index.html
75 Puzzles.app/Contents/Resources/Help/index.html: \
76 Puzzles.app/Contents/Resources/Help osx-help.but puzzles.but
77 cd Puzzles.app/Contents/Resources/Help; \
78 halibut --html ../../../../osx-help.but ../../../../puzzles.but
79 Puzzles.app/Contents/Resources/Help: Puzzles.app/Contents/Resources
80 mkdir -p Puzzles.app/Contents/Resources/Help
85 hdiutil create -megabytes 5 -layout NONE raw.dmg
86 hdid -nomount raw.dmg > devicename
87 newfs_hfs -v "Simon Tatham's Puzzle Collection" `cat devicename`
88 hdiutil eject `cat devicename`
89 hdid raw.dmg | cut -f1 -d' ' > devicename
90 cp -R Puzzles.app /Volumes/"Simon Tatham's Puzzle Collection"
91 hdiutil eject `cat devicename`
93 hdiutil convert -format UDCO raw.dmg -o Puzzles.dmg
94 rm -f raw.dmg devicename
98 bin_PROGRAMS = $(GAMES)
104 # make install for Unix.
107 for i in $(GAMES); do \
108 $(INSTALL_PROGRAM) -m 755 $(BINPREFIX)$$i $(DESTDIR)$(gamesdir)/$(BINPREFIX)$$i \
115 java -cp $(NESTEDVM)/build:$(NESTEDVM)/upstream/build/classgen/build \
116 org.ibex.nestedvm.Compiler -outformat class -d . \
118 mv PuzzleEngine.class $@
121 mkdir -p org/ibex/nestedvm/util
122 cp $(NESTEDVM)/build/org/ibex/nestedvm/Registers.class org/ibex/nestedvm
123 cp $(NESTEDVM)/build/org/ibex/nestedvm/UsermodeConstants.class org/ibex/nestedvm
124 cp $(NESTEDVM)/build/org/ibex/nestedvm/Runtime*.class org/ibex/nestedvm
125 cp $(NESTEDVM)/build/org/ibex/nestedvm/util/Platform*.class org/ibex/nestedvm/util
126 cp $(NESTEDVM)/build/org/ibex/nestedvm/util/Seekable*.class org/ibex/nestedvm/util
127 echo "Main-Class: PuzzleApplet" >applet.manifest
129 PuzzleApplet.class: PuzzleApplet.java org
130 javac -source 1.3 -target 1.3 PuzzleApplet.java
132 %.jar: %.class PuzzleApplet.class org
133 mv $< PuzzleEngine.class
134 jar cfm $@ applet.manifest PuzzleEngine.class PuzzleApplet*.class org
135 echo '<applet archive="'$@'" code="PuzzleApplet" width="700" height="500"></applet>' >$*.html
136 mv PuzzleEngine.class $<
139 # A benchmarking and testing target for the GTK puzzles.
141 test: benchmark.html benchmark.txt
143 benchmark.html: benchmark.txt benchmark.pl
144 ./benchmark.pl benchmark.txt > $@
146 benchmark.txt: benchmark.sh $(GAMES)
151 test: benchmark.html benchmark.txt
153 benchmark.html: benchmark.txt benchmark.pl
154 ./benchmark.pl benchmark.txt > $@
156 benchmark.txt: benchmark.sh $(GAMES)