Commit | Line | Data |
---|---|---|
34753252 KB |
1 | # Makefile for creating dungeon |
2 | # Edit BIN DDIR and FFLAGS suitable for your system | |
3 | # Also, if you are running System V change the .F.o production | |
4 | # and production for dinit.F as indicated. | |
5 | # | |
6 | # need SUFFIXES for System V (doesn't grok .F) | |
7 | .SUFFIXES: .F | |
8 | .c.o: | |
9 | cc -c $(CFLAGS) $*.c | |
10 | .F.o: | |
11 | # f77 -c $(FFLAGS) $*.F | |
12 | # For System V use the following production instead: | |
13 | @/lib/cpp $(CPPFLAGS) $*.F > $*.f | |
14 | f77 -c $(FFLAGS) $*.f | |
15 | rm $*.f | |
16 | ||
17 | # define SYSV if running System V or V7 | |
18 | # define SYSV *and* XELOS if running the XELOS OS | |
19 | CFLAGS = -O -DSYSV # -DXELOS -g -i | |
20 | # use -DNOCC if system does not react on carriage control (e.g. Unix) | |
21 | CPPFLAGS = -P -DNOCC -DSYSV # -DXELOS -Ddebug | |
22 | # | |
23 | # f77 compiler flags for BSD Vax (and other similar machines) | |
24 | #FOPTS = -q # -g -Ddebug | |
25 | # use -Nn650 for System V to increase default symbol table size | |
26 | # also, no -g flag (causes runtime errors) | |
27 | FOPTS = -q -Nn650 | |
28 | # f77 compiler flags for pdp (64K split I/D) | |
29 | #FOPTS = -q -I2 -L1 -i -DPDP # -Ddebug | |
30 | FFLAGS = -O $(FOPTS) | |
31 | ||
32 | # flags for the loader | |
33 | LDFLAGS = # -s -g -v | |
34 | ||
35 | # Directory path for main program - default /usr/games | |
36 | BIN = /usr/games | |
37 | # Directory path for data files - default is /usr/games/lib/dunlib | |
38 | LIB = /usr/games/lib/dunlib | |
39 | DDIR = \'/usr/games/lib/dunlib | |
40 | DCDIR =\"/usr/games/lib/dunlib | |
41 | # Directory path for man page - default /usr/manl/man6 | |
42 | MDIR = /usr/manl/man6 | |
43 | # userid for wizard - allows invoking game debugging tool - default 0 | |
44 | WIZDEF = -DWIZARDID=320 | |
45 | ||
46 | HDRS = advers.h clock.h curxt.h debug.h exits.h files.h flags.h\ | |
47 | gamestate.h io.h mindex.h objects.h oflags.h oindex.h\ | |
48 | parser.h puzzle.h rflag.h rindex.h rooms.h screen.h state.h\ | |
49 | verbs.h villians.h vocab.h xpars.h xsrch.h | |
50 | ||
51 | FSRC = actors.F ballop.F clockr.F demons.F\ | |
52 | dgame.F dinit.F dmain.F dso1.F dso2.F\ | |
53 | dso3.F dso4.F dso5.F dso6.F dso7.F\ | |
54 | dsub.F dverb1.F dverb2.F exit.F gdt.F lightp.F\ | |
55 | nobjs.F np.F np1.F np2.F np3.F nrooms.F objcts.F\ | |
56 | rooms.F sobjs.F sverbs.F verbs.F villns.F | |
57 | ||
58 | CSRC = cinit.c cio.c cspeak.c decode.c lex.c listen.c rtim.c | |
59 | ||
60 | OBJS = actors.o ballop.o clockr.o demons.o\ | |
61 | dgame.o dinit.o dmain.o dso1.o dso2.o\ | |
62 | dso3.o dso4.o dso5.o dso6.o dso7.o\ | |
63 | dsub.o dverb1.o dverb2.o exit.o gdt.o lightp.o\ | |
64 | nobjs.o np.o np1.o np2.o np3.o nrooms.o objcts.o\ | |
65 | rooms.o rtim.o sobjs.o sverbs.o verbs.o villns.o | |
66 | ||
67 | PDPOBJS = cinit.o cio.o lex.o | |
68 | LISTEN = listen.o | |
69 | SPEAK = cspeak.o speak.o | |
70 | ||
71 | vax: dungeon dtext.dat | |
72 | pdp: dungpdp speak listen dtext.dat | |
73 | ||
74 | dungeon: $(OBJS) | |
75 | f77 -o dungeon $(OBJS) $(LDFLAGS) | |
76 | @echo done | |
77 | ||
78 | dungpdp: $(OBJS) $(PDPOBJS) | |
79 | f77 -i -s -o dungpdp $(OBJS) $(PDPOBJS) | |
80 | @echo done | |
81 | ||
82 | speak: $(SPEAK) | |
83 | f77 -i -s -o speak $(SPEAK) | |
84 | ||
85 | speak.o: speak.F | |
86 | # f77 $(FFLAGS) -DDDIR=$(DDIR) -c speak.F | |
87 | # For System V use the following instead: | |
88 | @/lib/cpp $(CPPFLAGS) speak.F > speak.f | |
89 | f77 $(FFLAGS) -DDDIR=$(DDIR) -c speak.f | |
90 | rm $*.f | |
91 | ||
92 | listen: $(LISTEN) | |
93 | cc $(CFLAGS) -o listen $(LISTEN) | |
94 | ||
95 | listen.o: listen.c | |
96 | cc $(CFLAGS) -DCINDEXFILE=$(DCDIR)/dindx.dat\" -c listen.c | |
97 | ||
98 | dinit.o: dinit.F | |
99 | # f77 $(FFLAGS) -DDDIR=$(DDIR) $(WIZDEF) -c dinit.F | |
100 | # For System V use the following instead: | |
101 | @/lib/cpp $(CPPFLAGS) dinit.F > dinit.f | |
102 | f77 $(FFLAGS) -DDDIR=$(DDIR) $(WIZDEF) -c dinit.f | |
103 | rm $*.f | |
104 | ||
105 | # uncomment the following for Suns to get around an optimizer bug | |
106 | # -P means partial optimization. | |
107 | #objcts.o: objcts.F | |
108 | # f77 $(FOPTS) -P -c objcts.F | |
109 | ||
110 | install-vax: vax | |
111 | cp dungeon $(BIN) | |
112 | -mkdir $(LIB) | |
113 | cp dindx.dat dtext.dat $(LIB) | |
114 | cp dungeon.6 $(MDIR)/dungeon.6 | |
115 | ||
116 | install-pdp: pdp | |
117 | cp dungeon.sh $(BIN) | |
118 | -mkdir $(LIB) | |
119 | cp dindx.dat dtext.dat rtext.dat dungpdp $(LIB) | |
120 | cp dungeon.6 $(MDIR)/dungeon.6 | |
121 | ||
122 | dtext.dat: | |
123 | ./maketxt.sh | |
124 | ||
125 | ||
126 | clean: | |
127 | -rm $(OBJS) Mk* core makedep eddep | |
128 | ||
129 | depend: | |
130 | grep '^#include' $(FSRC) $(CSRC) $(HDRS) | grep -v '<' | \ | |
131 | sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' \ | |
132 | -e 's/\.c/.o/' \ | |
133 | -e 's/\.F/.o/' \ | |
134 | -e 's,../[a-zA-Z]*/,,' | \ | |
135 | awk ' { if ($$1 != prev) { print rec; rec = $$0; prev = $$1; } \ | |
136 | else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \ | |
137 | else rec = rec " " $$2 } } \ | |
138 | END { print rec } ' > makedep | |
139 | echo '$$r makedep' >>eddep | |
140 | echo '/^# DO NOT DELETE THIS LINE/+1,$$d' >eddep | |
141 | echo '$$r makedep' >>eddep | |
142 | echo 'w' >>eddep | |
143 | cp Makefile Makefile.bak | |
144 | ed - Makefile < eddep | |
145 | rm eddep makedep | |
146 | ||
147 | # DO NOT DELETE THIS LINE -- make depend uses it | |
148 | ||
149 | actors.o: parser.h gamestate.h rooms.h rflag.h rindex.h xsrch.h objects.h | |
150 | actors.o: oflags.h oindex.h clock.h advers.h verbs.h flags.h gamestate.h | |
151 | actors.o: debug.h rooms.h rflag.h rindex.h objects.h oflags.h oindex.h | |
152 | actors.o: villians.h flags.h | |
153 | ballop.o: parser.h gamestate.h state.h rooms.h rflag.h curxt.h xpars.h | |
154 | ballop.o: objects.h oflags.h oindex.h clock.h verbs.h flags.h | |
155 | clockr.o: gamestate.h state.h rooms.h rflag.h rindex.h objects.h oflags.h | |
156 | clockr.o: oindex.h clock.h curxt.h xsrch.h villians.h advers.h flags.h | |
157 | clockr.o: gamestate.h objects.h oflags.h clock.h | |
158 | demons.o: parser.h gamestate.h objects.h oflags.h oindex.h villians.h advers.h | |
159 | demons.o: verbs.h flags.h gamestate.h parser.h objects.h oflags.h clock.h | |
160 | demons.o: advers.h verbs.h gamestate.h curxt.h xsrch.h objects.h oindex.h | |
161 | demons.o: villians.h advers.h rindex.h objects.h oindex.h villians.h flags.h | |
162 | dgame.o: parser.h gamestate.h state.h io.h rooms.h rindex.h objects.h oflags.h | |
163 | dgame.o: oindex.h advers.h verbs.h flags.h parser.h villians.h gamestate.h | |
164 | dgame.o: objects.h advers.h | |
165 | dinit.o: files.h parser.h gamestate.h state.h screen.h mindex.h io.h debug.h | |
166 | dinit.o: rooms.h rflag.h rindex.h exits.h curxt.h xpars.h objects.h oindex.h | |
167 | dinit.o: clock.h villians.h advers.h flags.h | |
168 | dmain.o: parser.h gamestate.h state.h screen.h puzzle.h io.h debug.h rooms.h | |
169 | dmain.o: rflag.h rindex.h exits.h curxt.h xpars.h xsrch.h objects.h oflags.h | |
170 | dmain.o: oindex.h clock.h villians.h advers.h verbs.h flags.h | |
171 | dso1.o: gamestate.h rooms.h rflag.h objects.h oflags.h oindex.h advers.h | |
172 | dso1.o: flags.h gamestate.h objects.h oflags.h advers.h objects.h | |
173 | dso2.o: gamestate.h rooms.h rflag.h objects.h oindex.h advers.h gamestate.h | |
174 | dso2.o: state.h advers.h flags.h gamestate.h state.h clock.h advers.h flags.h | |
175 | dso3.o: rooms.h exits.h curxt.h xpars.h objects.h oflags.h | |
176 | dso4.o: objects.h oflags.h objects.h oflags.h objects.h state.h advers.h | |
177 | dso4.o: parser.h objects.h oflags.h oindex.h villians.h flags.h | |
178 | dso5.o: parser.h objects.h oflags.h verbs.h rooms.h rflag.h objects.h oflags.h | |
179 | dso5.o: advers.h objects.h | |
180 | dso6.o: rooms.h rflag.h rindex.h rindex.h flags.h | |
181 | dso7.o: rooms.h rflag.h rindex.h objects.h oflags.h flags.h flags.h | |
182 | dsub.o: gamestate.h mindex.h io.h parser.h objects.h debug.h objects.h | |
183 | dsub.o: objects.h objects.h parser.h gamestate.h state.h io.h debug.h rooms.h | |
184 | dsub.o: rflag.h rindex.h objects.h oflags.h oindex.h advers.h flags.h advers.h | |
185 | dsub.o: flags.h parser.h gamestate.h screen.h rooms.h rflag.h xsrch.h objects.h | |
186 | dsub.o: advers.h verbs.h flags.h | |
187 | dverb1.o: parser.h gamestate.h state.h objects.h oflags.h advers.h parser.h | |
188 | dverb1.o: gamestate.h rindex.h objects.h oflags.h advers.h verbs.h parser.h | |
189 | dverb1.o: gamestate.h objects.h oflags.h advers.h verbs.h parser.h gamestate.h | |
190 | dverb1.o: objects.h oflags.h verbs.h | |
191 | dverb2.o: parser.h gamestate.h state.h screen.h puzzle.h rooms.h exits.h | |
192 | dverb2.o: objects.h clock.h villians.h advers.h flags.h parser.h gamestate.h | |
193 | dverb2.o: state.h screen.h puzzle.h rooms.h exits.h objects.h clock.h | |
194 | dverb2.o: villians.h advers.h flags.h parser.h gamestate.h rooms.h rflag.h | |
195 | dverb2.o: curxt.h xsrch.h objects.h oflags.h clock.h villians.h advers.h | |
196 | dverb2.o: flags.h gamestate.h parser.h puzzle.h rooms.h rindex.h exits.h | |
197 | dverb2.o: curxt.h xpars.h xsrch.h objects.h oflags.h oindex.h advers.h flags.h | |
198 | gdt.o: parser.h gamestate.h state.h screen.h puzzle.h io.h mindex.h debug.h | |
199 | gdt.o: rooms.h rindex.h exits.h objects.h oindex.h clock.h villians.h advers.h | |
200 | gdt.o: flags.h | |
201 | lightp.o: parser.h gamestate.h objects.h oflags.h oindex.h clock.h verbs.h | |
202 | lightp.o: flags.h | |
203 | nobjs.o: parser.h gamestate.h state.h screen.h puzzle.h rooms.h rflag.h | |
204 | nobjs.o: rindex.h objects.h oflags.h oindex.h clock.h villians.h advers.h | |
205 | nobjs.o: verbs.h flags.h gamestate.h parser.h verbs.h flags.h | |
206 | np.o: parser.h io.h debug.h parser.h xsrch.h parser.h debug.h | |
207 | np1.o: parser.h gamestate.h debug.h objects.h oindex.h advers.h verbs.h vocab.h | |
208 | np2.o: parser.h gamestate.h debug.h objects.h oflags.h advers.h vocab.h | |
209 | np2.o: objects.h oflags.h vocab.h | |
210 | np3.o: parser.h vocab.h debug.h vocab.h parser.h objects.h parser.h parser.h | |
211 | np3.o: gamestate.h state.h objects.h oflags.h advers.h parser.h gamestate.h | |
212 | np3.o: objects.h oflags.h advers.h | |
213 | nrooms.o: parser.h gamestate.h state.h io.h rooms.h rflag.h rindex.h objects.h | |
214 | nrooms.o: oflags.h oindex.h xsrch.h clock.h advers.h verbs.h flags.h | |
215 | nrooms.o: gamestate.h flags.h rindex.h flags.h | |
216 | objcts.o: parser.h gamestate.h state.h rooms.h rflag.h rindex.h objects.h | |
217 | objcts.o: oflags.h oindex.h clock.h advers.h verbs.h flags.h | |
218 | rooms.o: parser.h gamestate.h state.h rooms.h rflag.h rindex.h objects.h | |
219 | rooms.o: oflags.h oindex.h clock.h villians.h advers.h verbs.h flags.h | |
220 | sobjs.o: parser.h gamestate.h state.h rooms.h rflag.h rindex.h objects.h | |
221 | sobjs.o: oflags.h oindex.h clock.h villians.h advers.h verbs.h flags.h | |
222 | sverbs.o: parser.h gamestate.h state.h screen.h io.h rooms.h rflag.h rindex.h | |
223 | sverbs.o: exits.h curxt.h xpars.h xsrch.h objects.h oflags.h oindex.h clock.h | |
224 | sverbs.o: advers.h verbs.h flags.h | |
225 | verbs.o: parser.h gamestate.h state.h rooms.h rflag.h rindex.h xsrch.h | |
226 | verbs.o: objects.h oflags.h oindex.h advers.h verbs.h clock.h | |
227 | villns.o: parser.h gamestate.h objects.h oflags.h oindex.h verbs.h flags.h | |
228 | villns.o: parser.h gamestate.h objects.h oflags.h oindex.h verbs.h flags.h | |
229 | villns.o: parser.h gamestate.h rindex.h objects.h oflags.h oindex.h clock.h | |
230 | villns.o: villians.h verbs.h flags.h |