1# Makefile for dungeon 2# By Jonathan Mark <uunet!microsoft!jonm> 3 4# stripped down version for Borland C++ by Volker Blasius, 11jul93 5 6CC = bcc 7TARGET = dungeon.exe 8 9# The dungeon program provides a ``more'' facility which tries to 10# figure out how many rows the terminal has. Several mechanisms are 11# supported for determining this; the most common one has been left 12# uncommented. If you have trouble, especially when linking, you may 13# have to select a different option. 14 15# more option 3: assume all terminals have 24 rows 16TERMFLAG = -DMORE_24 17 18# more option 4: don't use the more facility at all 19# TERMFLAG = -DMORE_NONE 20 21# End of more options 22 23# Uncomment the following line if you want to have access to the game 24# debugging tool. This is invoked by typing "gdt". It is not much 25# use except for debugging. 26# GDTFLAG = -DALLOW_GDT 27 28# Compilation flags 29# Borland-C++-specific compile options: 30# -O2 optimize for fastest code 31# -mm "medium" memory model (code > 64k, data < 64k) 32# -A disables Borland C++ extensions. This causes the compiler to 33# define __STDC__, which in turn causes BINREAD to be defined 34# as "rb", etc. (This seems odd -- is the "b" suffix in 35# ANSI C?) [Yes, it is] 36CFLAGS = -O1 -mm -A 37 38################################################################## 39 40# Source files 41CSRC = actors.c ballop.c clockr.c demons.c dgame.c dinit.c dmain.c\ 42 dso1.c dso2.c dso3.c dso4.c dso5.c dso6.c dso7.c dsub.c dverb1.c\ 43 dverb2.c gdt.c lightp.c local.c nobjs.c np.c np1.c np2.c np3.c\ 44 nrooms.c objcts.c rooms.c sobjs.c supp.c sverbs.c verbs.c villns.c 45 46# Object files 47OBJS1 = actors.obj ballop.obj clockr.obj demons.obj dgame.obj dinit.obj 48OBJS2 = dmain.obj dso1.obj dso2.obj dso3.obj dso4.obj dso5.obj dso6.obj 49OBJS3 = dso7.obj dsub.obj dverb1.obj dverb2.obj gdt.obj lightp.obj local.obj 50OBJS4 = nobjs.obj np.obj np1.obj np2.obj np3.obj nrooms.obj objcts.obj 51OBJS5 = rooms.obj sobjs.obj supp.obj sverbs.obj verbs.obj villns.obj 52OBJS = $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(OBJS5) 53 54# If we try to link as one $(CC) command, the command line is too long for 55# DOS to accept. We therefore have to use the ugly "response file" syntax. 56# 57$(TARGET): $(OBJS) dtextc.dat 58 tlink @&&! 59c0m.obj+ 60$(OBJS1)+ 61$(OBJS2)+ 62$(OBJS3)+ 63$(OBJS4)+ 64$(OBJS5) 65$(TARGET) 66dungeon.map 67cm.lib mathm.lib 68! 69 70dtextc.dat: 71 copy dtextc.uu1+dtextc.uu2+dtextc.uu3+dtextc.uu4 dtextc.uu 72 uudecode dtextc.uu 73 del dtextc.uu 74 75dinit.obj: dinit.c funcs.h vars.h 76 $(CC) $(CFLAGS) $(GDTFLAG) -DTEXTFILE="dtextc.dat" -c dinit.c 77 78dgame.obj: dgame.c funcs.h vars.h 79 $(CC) $(CFLAGS) $(GDTFLAG) -c dgame.c 80 81gdt.obj: gdt.c funcs.h vars.h 82 $(CC) $(CFLAGS) $(GDTFLAG) -c gdt.c 83 84local.obj: local.c funcs.h vars.h 85 $(CC) $(CFLAGS) $(GDTFLAG) -c local.c 86 87supp.obj: supp.c funcs.h vars.h 88 $(CC) $(CFLAGS) $(TERMFLAG) -c supp.c 89 90actors.obj: funcs.h vars.h 91ballop.obj: funcs.h vars.h 92clockr.obj: funcs.h vars.h 93demons.obj: funcs.h vars.h 94dmain.obj: funcs.h vars.h 95dso1.obj: funcs.h vars.h 96dso2.obj: funcs.h vars.h 97dso3.obj: funcs.h vars.h 98dso4.obj: funcs.h vars.h 99dso5.obj: funcs.h vars.h 100dso6.obj: funcs.h vars.h 101dso7.obj: funcs.h vars.h 102dsub.obj: funcs.h vars.h 103dverb1.obj: funcs.h vars.h 104dverb2.obj: funcs.h vars.h 105lightp.obj: funcs.h vars.h 106nobjs.obj: funcs.h vars.h 107np.obj: funcs.h vars.h 108np1.obj: funcs.h vars.h parse.h 109np2.obj: funcs.h vars.h parse.h 110np3.obj: funcs.h vars.h parse.h 111nrooms.obj: funcs.h vars.h 112objcts.obj: funcs.h vars.h 113rooms.obj: funcs.h vars.h 114sobjs.obj: funcs.h vars.h 115sverbs.obj: funcs.h vars.h 116verbs.obj: funcs.h vars.h 117villns.obj: funcs.h vars.h 118