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 19CFLAGS = -O -DSYSV # -DXELOS -g -i 20# use -DNOCC if system does not react on carriage control (e.g. Unix) 21CPPFLAGS = -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) 27FOPTS = -q -Nn650 28# f77 compiler flags for pdp (64K split I/D) 29#FOPTS = -q -I2 -L1 -i -DPDP # -Ddebug 30FFLAGS = -O $(FOPTS) 31 32# flags for the loader 33LDFLAGS = # -s -g -v 34 35# Directory path for main program - default /usr/games 36BIN = /usr/games 37# Directory path for data files - default is /usr/games/lib/dunlib 38LIB = /usr/games/lib/dunlib 39DDIR = \'/usr/games/lib/dunlib 40DCDIR =\"/usr/games/lib/dunlib 41# Directory path for man page - default /usr/manl/man6 42MDIR = /usr/manl/man6 43# userid for wizard - allows invoking game debugging tool - default 0 44WIZDEF = -DWIZARDID=320 45 46HDRS = 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 51FSRC = 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 58CSRC = cinit.c cio.c cspeak.c decode.c lex.c listen.c rtim.c 59 60OBJS = 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 67PDPOBJS = cinit.o cio.o lex.o 68LISTEN = listen.o 69SPEAK = cspeak.o speak.o 70 71vax: dungeon dtext.dat 72pdp: dungpdp speak listen dtext.dat 73 74dungeon: $(OBJS) 75 f77 -o dungeon $(OBJS) $(LDFLAGS) 76 @echo done 77 78dungpdp: $(OBJS) $(PDPOBJS) 79 f77 -i -s -o dungpdp $(OBJS) $(PDPOBJS) 80 @echo done 81 82speak: $(SPEAK) 83 f77 -i -s -o speak $(SPEAK) 84 85speak.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 92listen: $(LISTEN) 93 cc $(CFLAGS) -o listen $(LISTEN) 94 95listen.o: listen.c 96 cc $(CFLAGS) -DCINDEXFILE=$(DCDIR)/dindx.dat\" -c listen.c 97 98dinit.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 110install-vax: vax 111 cp dungeon $(BIN) 112 -mkdir $(LIB) 113 cp dindx.dat dtext.dat $(LIB) 114 cp dungeon.6 $(MDIR)/dungeon.6 115 116install-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 122dtext.dat: 123 ./maketxt.sh 124 125 126clean: 127 -rm $(OBJS) Mk* core makedep eddep 128 129depend: 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 149actors.o: parser.h gamestate.h rooms.h rflag.h rindex.h xsrch.h objects.h 150actors.o: oflags.h oindex.h clock.h advers.h verbs.h flags.h gamestate.h 151actors.o: debug.h rooms.h rflag.h rindex.h objects.h oflags.h oindex.h 152actors.o: villians.h flags.h 153ballop.o: parser.h gamestate.h state.h rooms.h rflag.h curxt.h xpars.h 154ballop.o: objects.h oflags.h oindex.h clock.h verbs.h flags.h 155clockr.o: gamestate.h state.h rooms.h rflag.h rindex.h objects.h oflags.h 156clockr.o: oindex.h clock.h curxt.h xsrch.h villians.h advers.h flags.h 157clockr.o: gamestate.h objects.h oflags.h clock.h 158demons.o: parser.h gamestate.h objects.h oflags.h oindex.h villians.h advers.h 159demons.o: verbs.h flags.h gamestate.h parser.h objects.h oflags.h clock.h 160demons.o: advers.h verbs.h gamestate.h curxt.h xsrch.h objects.h oindex.h 161demons.o: villians.h advers.h rindex.h objects.h oindex.h villians.h flags.h 162dgame.o: parser.h gamestate.h state.h io.h rooms.h rindex.h objects.h oflags.h 163dgame.o: oindex.h advers.h verbs.h flags.h parser.h villians.h gamestate.h 164dgame.o: objects.h advers.h 165dinit.o: files.h parser.h gamestate.h state.h screen.h mindex.h io.h debug.h 166dinit.o: rooms.h rflag.h rindex.h exits.h curxt.h xpars.h objects.h oindex.h 167dinit.o: clock.h villians.h advers.h flags.h 168dmain.o: parser.h gamestate.h state.h screen.h puzzle.h io.h debug.h rooms.h 169dmain.o: rflag.h rindex.h exits.h curxt.h xpars.h xsrch.h objects.h oflags.h 170dmain.o: oindex.h clock.h villians.h advers.h verbs.h flags.h 171dso1.o: gamestate.h rooms.h rflag.h objects.h oflags.h oindex.h advers.h 172dso1.o: flags.h gamestate.h objects.h oflags.h advers.h objects.h 173dso2.o: gamestate.h rooms.h rflag.h objects.h oindex.h advers.h gamestate.h 174dso2.o: state.h advers.h flags.h gamestate.h state.h clock.h advers.h flags.h 175dso3.o: rooms.h exits.h curxt.h xpars.h objects.h oflags.h 176dso4.o: objects.h oflags.h objects.h oflags.h objects.h state.h advers.h 177dso4.o: parser.h objects.h oflags.h oindex.h villians.h flags.h 178dso5.o: parser.h objects.h oflags.h verbs.h rooms.h rflag.h objects.h oflags.h 179dso5.o: advers.h objects.h 180dso6.o: rooms.h rflag.h rindex.h rindex.h flags.h 181dso7.o: rooms.h rflag.h rindex.h objects.h oflags.h flags.h flags.h 182dsub.o: gamestate.h mindex.h io.h parser.h objects.h debug.h objects.h 183dsub.o: objects.h objects.h parser.h gamestate.h state.h io.h debug.h rooms.h 184dsub.o: rflag.h rindex.h objects.h oflags.h oindex.h advers.h flags.h advers.h 185dsub.o: flags.h parser.h gamestate.h screen.h rooms.h rflag.h xsrch.h objects.h 186dsub.o: advers.h verbs.h flags.h 187dverb1.o: parser.h gamestate.h state.h objects.h oflags.h advers.h parser.h 188dverb1.o: gamestate.h rindex.h objects.h oflags.h advers.h verbs.h parser.h 189dverb1.o: gamestate.h objects.h oflags.h advers.h verbs.h parser.h gamestate.h 190dverb1.o: objects.h oflags.h verbs.h 191dverb2.o: parser.h gamestate.h state.h screen.h puzzle.h rooms.h exits.h 192dverb2.o: objects.h clock.h villians.h advers.h flags.h parser.h gamestate.h 193dverb2.o: state.h screen.h puzzle.h rooms.h exits.h objects.h clock.h 194dverb2.o: villians.h advers.h flags.h parser.h gamestate.h rooms.h rflag.h 195dverb2.o: curxt.h xsrch.h objects.h oflags.h clock.h villians.h advers.h 196dverb2.o: flags.h gamestate.h parser.h puzzle.h rooms.h rindex.h exits.h 197dverb2.o: curxt.h xpars.h xsrch.h objects.h oflags.h oindex.h advers.h flags.h 198gdt.o: parser.h gamestate.h state.h screen.h puzzle.h io.h mindex.h debug.h 199gdt.o: rooms.h rindex.h exits.h objects.h oindex.h clock.h villians.h advers.h 200gdt.o: flags.h 201lightp.o: parser.h gamestate.h objects.h oflags.h oindex.h clock.h verbs.h 202lightp.o: flags.h 203nobjs.o: parser.h gamestate.h state.h screen.h puzzle.h rooms.h rflag.h 204nobjs.o: rindex.h objects.h oflags.h oindex.h clock.h villians.h advers.h 205nobjs.o: verbs.h flags.h gamestate.h parser.h verbs.h flags.h 206np.o: parser.h io.h debug.h parser.h xsrch.h parser.h debug.h 207np1.o: parser.h gamestate.h debug.h objects.h oindex.h advers.h verbs.h vocab.h 208np2.o: parser.h gamestate.h debug.h objects.h oflags.h advers.h vocab.h 209np2.o: objects.h oflags.h vocab.h 210np3.o: parser.h vocab.h debug.h vocab.h parser.h objects.h parser.h parser.h 211np3.o: gamestate.h state.h objects.h oflags.h advers.h parser.h gamestate.h 212np3.o: objects.h oflags.h advers.h 213nrooms.o: parser.h gamestate.h state.h io.h rooms.h rflag.h rindex.h objects.h 214nrooms.o: oflags.h oindex.h xsrch.h clock.h advers.h verbs.h flags.h 215nrooms.o: gamestate.h flags.h rindex.h flags.h 216objcts.o: parser.h gamestate.h state.h rooms.h rflag.h rindex.h objects.h 217objcts.o: oflags.h oindex.h clock.h advers.h verbs.h flags.h 218rooms.o: parser.h gamestate.h state.h rooms.h rflag.h rindex.h objects.h 219rooms.o: oflags.h oindex.h clock.h villians.h advers.h verbs.h flags.h 220sobjs.o: parser.h gamestate.h state.h rooms.h rflag.h rindex.h objects.h 221sobjs.o: oflags.h oindex.h clock.h villians.h advers.h verbs.h flags.h 222sverbs.o: parser.h gamestate.h state.h screen.h io.h rooms.h rflag.h rindex.h 223sverbs.o: exits.h curxt.h xpars.h xsrch.h objects.h oflags.h oindex.h clock.h 224sverbs.o: advers.h verbs.h flags.h 225verbs.o: parser.h gamestate.h state.h rooms.h rflag.h rindex.h xsrch.h 226verbs.o: objects.h oflags.h oindex.h advers.h verbs.h clock.h 227villns.o: parser.h gamestate.h objects.h oflags.h oindex.h verbs.h flags.h 228villns.o: parser.h gamestate.h objects.h oflags.h oindex.h verbs.h flags.h 229villns.o: parser.h gamestate.h rindex.h objects.h oflags.h oindex.h clock.h 230villns.o: villians.h verbs.h flags.h 231