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