1
# -----------------------------------------------------------------------
3
# Big fat Jamfile for all the minor terps, so we don't need to
4
# mess with the original files and directories more than we have to.
21
MAKE_MAGNETIC ?= yes ;
26
# -----------------------------------------------------------------------
28
# AdvSys 1.2 + ANSI + NewParser + parts of glkize
31
if $(MAKE_ADVSYS) = yes
33
SubDir TOP terps advsys ;
38
Main $(GARGLKPRE)advsys :
39
advmsg.c advtrm.c advprs.c advdbs.c advint.c advjunk.c advexe.c
42
APPS += $(GARGLKPRE)advsys ;
45
# -----------------------------------------------------------------------
47
# Agility 1.1.1.1 with Glk
49
# Agility uses some bad voodoo to get filenames back from glk filerefs.
50
# We have three options:
51
# 1) use the bad voodoo (only works on unixes)
52
# 2) don't use glk file prompts (GLK_ANSI_ONLY)
53
# 3) use garglk extension garglk_fileref_get_name (GARGLK)
56
if $(MAKE_AGILITY) = yes
58
SubDir TOP terps agility ;
62
SubDirCcFlags -DGLK_ANSI_ONLY ;
64
Main $(GARGLKPRE)agility :
65
agtread.c gamedata.c util.c agxfile.c auxfile.c filename.c
66
parser.c exec.c runverb.c metacommand.c savegame.c debugcmd.c
67
agil.c token.c disassemble.c object.c
71
APPS += $(GARGLKPRE)agility ;
74
# -----------------------------------------------------------------------
76
# Alan interpreter 2.8.6
78
# Fixed a couple of bugs (needsp needs resetting in a few places).
79
# Added glk file prompts for gargoyle using garglk_fileref_get_name.
82
if $(MAKE_ALAN2) = yes
84
SubDir TOP terps alan2 ;
87
SubDirCcFlags -funsigned-char -Wno-parentheses -DGLK -DREVERSED ;
89
Main $(GARGLKPRE)alan2 :
90
arun.c main.c debug.c args.c exe.c inter.c parse.c rules.c stack.c
91
decode.c term.c reverse.c readline.c params.c sysdep.c
92
glkstart.c glkio.c alan.version.c
95
APPS += $(GARGLKPRE)alan2 ;
98
# -----------------------------------------------------------------------
100
# Alan interpreter 3 beta 2
103
if $(MAKE_ALAN3) = yes
105
SubDir TOP terps alan3 ;
108
SubDirCcFlags -funsigned-char -DGLK -DHAVE_GARGLK -DBUILD=0 ;
110
Main $(GARGLKPRE)alan3 :
111
alan.version.c act.c actor.c args.c arun.c attribute.c
112
checkentry.c class.c current.c debug.c decode.c
113
dictionary.c event.c exe.c glkio.c glkstart.c instance.c
114
inter.c lists.c literal.c main.c memory.c msg.c options.c
115
output.c params.c parse.c readline.c reverse.c rules.c
116
save.c scan.c score.c set.c stack.c state.c syntax.c
117
sysdep.c syserr.c term.c utils.c word.c compatibility.c
118
AltInfo.c Container.c Location.c ParameterPosition.c StateStack.c
121
APPS += $(GARGLKPRE)alan3 ;
124
# -----------------------------------------------------------------------
129
if $(MAKE_BOCFEL) = yes
131
SubDir TOP terps bocfel ;
134
SubDirCcFlags -std=c99 -DZTERP_GLK -DGARGLK ;
138
SubDirCcFlags -DZTERP_WIN32 ;
140
else if $(OS) != MACOSX
142
SubDirCcFlags -DZTERP_UNIX ;
145
Main $(GARGLKPRE)bocfel :
146
blorb.c branch.c dict.c glkstart.c iff.c io.c math.c memory.c
147
objects.c osdep.c process.c random.c screen.c stack.c table.c
148
unicode.c util.c zoom.c zterp.c
151
APPS += $(GARGLKPRE)bocfel ;
154
# -----------------------------------------------------------------------
156
# Frotz 2.50 / glk port
159
if $(MAKE_FROTZ) = yes
161
SubDir TOP terps frotz ;
164
Main $(GARGLKPRE)frotz :
165
buffer.c err.c fastmem.c files.c
166
input.c main.c math.c object.c process.c quetzal.c random.c
167
redirect.c sound.c stream.c table.c text.c variable.c
168
glkscreen.c glkmisc.c
171
APPS += $(GARGLKPRE)frotz ;
174
# -----------------------------------------------------------------------
179
if $(MAKE_GEAS) = yes
181
SubDir TOP terps geas ;
184
SubDirCcFlags -DUSE_INLINE ;
188
SubDirCcFlags -headerpad_max_install_names $(MAINARCH) $(ALTARCH) ;
189
LINKFLAGS = -headerpad_max_install_names $(MAINARCH) $(ALTARCH) ;
192
SUBDIRC++FLAGS = $(SUBDIRCCFLAGS) ;
194
Main $(GARGLKPRE)geas :
195
geasfile.cc geas-runner.cc geas-state.cc
196
geas-util.cc geasglk.cc geasglkterm.c
197
istring.cc readfile.cc
200
LINK on $(GARGLKPRE)geas$(SUFEXE) = $(CXX) ;
202
APPS += $(GARGLKPRE)geas ;
205
# -----------------------------------------------------------------------
209
# Reworked startup code to redirect errors to Glk windows.
214
SubDir TOP terps git ;
217
SubDirCcFlags -DUSE_INLINE -DUSE_OWN_POWF ;
219
Main $(GARGLKPRE)git :
220
git.c memory.c compiler.c opcodes.c operands.c
221
peephole.c terp.c glkop.c search.c git_unix.c
222
savefile.c saveundo.c gestalt.c heap.c accel.c
225
APPS += $(GARGLKPRE)git ;
228
# -----------------------------------------------------------------------
233
if $(MAKE_GLULXE) = yes
235
SubDir TOP terps glulxe ;
238
SubDirCcFlags -DFLOAT_COMPILE_SAFER_POWF ;
240
if $(OS) != MINGW { SubDirCcFlags -DOS_UNIX ; }
242
Main $(GARGLKPRE)glulxe :
243
main.c files.c vm.c exec.c funcs.c operand.c string.c glkop.c
244
heap.c serial.c search.c gestalt.c osdepend.c unixstrt.c
245
accel.c profile.c float.c
248
APPS += $(GARGLKPRE)glulxe ;
251
# -----------------------------------------------------------------------
255
# Include hemedia.c from heglk.c for sound/graphics support.
256
# Added set_base_file so it can find resource files.
259
if $(MAKE_HUGO) = yes
261
SubDir TOP terps hugo ;
264
SubDirHdrs $(SUBDIR) source ;
265
SubDirHdrs $(SUBDIR) heglk ;
271
"-DHUGO_INLINE=\"static inline\""
275
[ FDirName $(SUBDIR) source ]
276
[ FDirName $(SUBDIR) heglk ] ;
278
Main $(GARGLKPRE)hugo :
279
he.c heexpr.c hemisc.c heobject.c heparse.c heres.c herun.c heset.c
280
stringfn.c heglk.c heglkunix.c
283
APPS += $(GARGLKPRE)hugo ;
286
# -----------------------------------------------------------------------
288
# JACL 2.8.5 for JACL games
291
if $(MAKE_JACL) = yes
293
SubDir TOP terps jacl ;
296
SubDirCcFlags -DGLK -DGARGLK ;
298
Main $(GARGLKPRE)jacl :
299
jacl.c glk_startup.c findroute.c interpreter.c loader.c
300
glk_saver.c logging.c parser.c display.c utils.c jpp.c
301
resolvers.c errors.c encapsulate.c
304
APPS += $(GARGLKPRE)jacl ;
307
# -----------------------------------------------------------------------
311
# Disabled the status bar that just contained a static version string.
312
# Added graphics support.
315
if $(MAKE_LEVEL9) = yes
317
SubDir TOP terps level9 ;
322
-DNEED_STRICMP_PROTOTYPE
323
-Dstricmp=gln_strcasecmp
324
-Dstrnicmp=gln_strncasecmp
327
SEARCH_SOURCE = $(SUBDIR)
328
[ FDirName $(SUBDIR) Glk ] ;
330
Main $(GARGLKPRE)level9 : bitmap.c level9.c glk.c ;
332
APPS += $(GARGLKPRE)level9 ;
335
# -----------------------------------------------------------------------
339
# Disable layered drawing, because that is slower than drawing
340
# all the pixels with fill_rect -- the opposite of Xglk.
342
# Delay opening the status window, because for games that don't use it
343
# magnetic shows a static version string only. I don't like that.
345
# Made shaded border around pictures if-defable.
348
if $(MAKE_MAGNETIC) = yes
350
SubDir TOP terps magnetic ;
353
SubDirHdrs $(SUBDIR) Generic ;
356
[ FDirName $(SUBDIR) Generic ]
357
[ FDirName $(SUBDIR) Glk ] ;
359
# SubDirCcFlags -DNOBORDER ;
361
Main $(GARGLKPRE)magnetic : emu.c glk.c ;
363
APPS += $(GARGLKPRE)magnetic ;
366
# -----------------------------------------------------------------------
368
# Nitfol 0.5 + lots of patches
370
# Define the stuff you want:
372
# DEBUGGING Compile in the debugger. See DEBUG for details
373
# SMART_TOKENISER Tries to correct typos.
374
# TWOS16SHORT Try to speed up some operations if 'short' is a 16 bit two's
375
# complement number on your system. Note that this might slow down
377
# FAST_SIGNED If you're on something which does signed math much faster than
378
# unsigned, define this
379
# FAST Normally, nitfol does lots of tests to make sure values are in
380
# range, both to alert games of unportable actions and to prevent
381
# nitfol from crashing. Defining this removes those tests, so will
382
# speed up the game a bit. Completely legal games should run
383
# exactly the same with or without this flag, so if you have a
384
# slow computer and you know all the games you will be running are
385
# completely legal, define this.
386
# USE_INLINE If your C compiler uses the keyword 'inline' to inline functions
387
# NO_LIBC Cause nitfol to use its own functions rather than your libc
388
# NO_TICK If you don't need glk_tick, define this (minor speed improvement)
389
# _GNU_SOURCE Use GNU functions (currently just canonicalize_file_name)
390
# _BSD_SOURCE Use BSD functions (just realpath)
391
# _XOPEN_SOURCE (also lets nitfol use realpath)
393
if $(MAKE_NITFOL) = yes
395
SubDir TOP terps nitfol ;
398
SubDirCcFlags -DSMART_TOKENISER -DDEBUGGING -DFAST -DUSE_INLINE -DNO_TICK ;
400
Main $(GARGLKPRE)nitfol :
401
automap.c solve.c infix.c copying.c debug.c inform.c quetzal.c
402
undo.c op_call.c decode.c errmesg.c globals.c iff.c init.c
403
io.c z_io.c op_jmp.c op_math.c op_save.c op_table.c op_v6.c oplist.c
404
stack.c zscii.c tokenise.c struct.c objects.c portfunc.c hash.c
405
sound.c graphics.c blorb.c main.c startunix.c
408
APPS += $(GARGLKPRE)nitfol ;
411
# -----------------------------------------------------------------------
413
# SCARE 1.3.10 for Adrift games
416
if $(MAKE_SCARE) = yes
418
SubDir TOP terps scare ;
423
SubDirHdrs $(TOP) support zlib ;
426
Main $(GARGLKPRE)scare :
427
sctafpar.c sctaffil.c scprops.c scvars.c scexpr.c scprintf.c
428
scinterf.c scparser.c sclibrar.c scrunner.c scevents.c scnpcs.c
429
scobjcts.c sctasks.c screstrs.c scgamest.c scserial.c
430
scresour.c scutils.c scdebug.c sclocale.c scmemos.c os_glk.c
435
SharedLinkLibraries $(GARGLKPRE)scare : zlib1.dll ;
438
APPS += $(GARGLKPRE)scare ;
441
# -----------------------------------------------------------------------
443
# ScottFree 1.14 for Scott Adams games
446
if $(MAKE_SCOTT) = yes
448
SubDir TOP terps scott ;
451
Main $(GARGLKPRE)scott : scott.c ;
453
APPS += $(GARGLKPRE)scott ;