1*41203Sbostic# Hack or Quest Makefile. 2*41203Sbostic 3*41203Sbostic# on some systems the termcap library is in -ltermcap 4*41203SbosticTERMLIB = -ltermlib 5*41203Sbostic 6*41203Sbostic 7*41203Sbostic# make hack 8*41203SbosticGAME = quest 9*41203SbosticGAMEDIR = /usr/games/lib/questdir 10*41203SbosticCFLAGS = -g -DQUEST 11*41203SbosticHACKCSRC = hack.Decl.c\ 12*41203Sbostic hack.apply.c hack.bones.c hack.c hack.cmd.c hack.do.c\ 13*41203Sbostic hack.do_name.c hack.do_wear.c hack.dog.c hack.eat.c hack.end.c\ 14*41203Sbostic hack.engrave.c hack.fight.c hack.invent.c hack.ioctl.c\ 15*41203Sbostic hack.lev.c hack.main.c hack.makemon.c hack.mhitu.c\ 16*41203Sbostic hack.mklev.c hack.mkmaze.c hack.mkobj.c hack.mkshop.c\ 17*41203Sbostic hack.mon.c hack.monst.c hack.o_init.c hack.objnam.c\ 18*41203Sbostic hack.options.c hack.pager.c hack.potion.c hack.pri.c\ 19*41203Sbostic hack.read.c hack.rip.c hack.rumors.c hack.save.c\ 20*41203Sbostic hack.search.c hack.shk.c hack.shknam.c hack.steal.c\ 21*41203Sbostic hack.termcap.c hack.timeout.c hack.topl.c\ 22*41203Sbostic hack.track.c hack.trap.c hack.tty.c hack.unix.c\ 23*41203Sbostic hack.u_init.c hack.vault.c\ 24*41203Sbostic hack.wield.c hack.wizard.c hack.worm.c hack.worn.c hack.zap.c\ 25*41203Sbostic hack.version.c rnd.c alloc.c 26*41203Sbostic 27*41203SbosticCSOURCES = $(HACKCSRC) makedefs.c 28*41203Sbostic 29*41203SbosticHSOURCES = hack.h hack.mfndpos.h config.h\ 30*41203Sbostic def.edog.h def.eshk.h def.flag.h def.func_tab.h def.gold.h\ 31*41203Sbostic def.mkroom.h\ 32*41203Sbostic def.monst.h def.obj.h def.objclass.h def.objects.h\ 33*41203Sbostic def.permonst.h def.rm.h def.trap.h def.wseg.h 34*41203Sbostic 35*41203SbosticSOURCES = $(CSOURCES) $(HSOURCES) 36*41203Sbostic 37*41203SbosticAUX = data help hh rumors hack.6 hack.sh 38*41203Sbostic 39*41203SbosticDISTR = $(SOURCES) $(AUX) READ_ME Makefile date.h hack.onames.h 40*41203Sbostic 41*41203SbosticHOBJ = hack.Decl.o hack.apply.o hack.bones.o hack.o hack.cmd.o hack.do.o\ 42*41203Sbostic hack.do_name.o hack.do_wear.o hack.dog.o hack.eat.o hack.end.o\ 43*41203Sbostic hack.engrave.o hack.fight.o hack.invent.o hack.ioctl.o\ 44*41203Sbostic hack.lev.o hack.main.o hack.makemon.o hack.mhitu.o hack.mklev.o\ 45*41203Sbostic hack.mkmaze.o hack.mkobj.o hack.mkshop.o hack.mon.o\ 46*41203Sbostic hack.monst.o hack.o_init.o hack.objnam.o hack.options.o\ 47*41203Sbostic hack.pager.o hack.potion.o hack.pri.o\ 48*41203Sbostic hack.read.o hack.rip.o hack.rumors.o hack.save.o\ 49*41203Sbostic hack.search.o hack.shk.o hack.shknam.o hack.steal.o\ 50*41203Sbostic hack.termcap.o hack.timeout.o hack.topl.o\ 51*41203Sbostic hack.track.o hack.trap.o\ 52*41203Sbostic hack.tty.o hack.unix.o hack.u_init.o hack.vault.o hack.wield.o\ 53*41203Sbostic hack.wizard.o hack.worm.o hack.worn.o hack.zap.o\ 54*41203Sbostic hack.version.o rnd.o alloc.o 55*41203Sbostic 56*41203Sbostic$(GAME): $(HOBJ) Makefile 57*41203Sbostic @echo "Loading ..." 58*41203Sbostic @ld -X -o $(GAME) /lib/crt0.o $(HOBJ) $(TERMLIB) -lc 59*41203Sbostic 60*41203Sbosticall: $(GAME) lint 61*41203Sbostic @echo "Done." 62*41203Sbostic 63*41203Sbosticmakedefs: makedefs.c 64*41203Sbostic cc -o makedefs makedefs.c 65*41203Sbostic 66*41203Sbostic 67*41203Sbostichack.onames.h: makedefs def.objects.h 68*41203Sbostic makedefs > hack.onames.h 69*41203Sbostic 70*41203Sbosticlint: 71*41203Sbostic# lint cannot have -p here because (i) capitals are meaningful: 72*41203Sbostic# [Ww]izard, (ii) identifiers may coincide in the first six places: 73*41203Sbostic# doweararm() versus dowearring(). 74*41203Sbostic# _flsbuf comes from <stdio.h>, a bug in the system libraries. 75*41203Sbostic @echo lint -axbh -DLINT ... 76*41203Sbostic @lint -axbh -DLINT $(HACKCSRC) | sed '/_flsbuf/d' 77*41203Sbostic 78*41203Sbostic 79*41203Sbosticdiff: 80*41203Sbostic @- for i in $(SOURCES) $(AUX) ; do \ 81*41203Sbostic cmp -s $$i $D/$$i || \ 82*41203Sbostic ( echo diff $D/$$i $$i ; diff $D/$$i $$i ; echo ) ; done 83*41203Sbostic 84*41203Sbosticdistribution: Makefile 85*41203Sbostic @- for i in READ_ME $(SOURCES) $(AUX) Makefile date.h hack.onames.h\ 86*41203Sbostic ; do \ 87*41203Sbostic cmp -s $$i $D/$$i || \ 88*41203Sbostic ( echo cp $$i $D ; cp $$i $D ) ; done 89*41203Sbostic# the distribution directory also contains the empty files perm and record. 90*41203Sbostic 91*41203Sbostic 92*41203Sbosticinstall: 93*41203Sbostic rm -f $(GAMEDIR)/$(GAME) 94*41203Sbostic cp $(GAME) $(GAMEDIR)/$(GAME) 95*41203Sbostic chmod 04511 $(GAMEDIR)/$(GAME) 96*41203Sbostic rm -f $(GAMEDIR)/bones* 97*41203Sbostic# cp hack.6 /usr/man/man6 98*41203Sbostic 99*41203Sbosticclean: 100*41203Sbostic rm -f *.o 101*41203Sbostic 102*41203Sbostic 103*41203Sbosticdepend: 104*41203Sbostic# For the moment we are lazy and disregard /usr/include files because 105*41203Sbostic# the sources contain them conditionally. Perhaps we should use cpp. 106*41203Sbostic# ( /bin/grep '^#[ ]*include' $$i | sed -n \ 107*41203Sbostic# -e 's,<\(.*\)>,"/usr/include/\1",' \ 108*41203Sbostic# 109*41203Sbostic for i in ${CSOURCES}; do \ 110*41203Sbostic ( /bin/grep '^#[ ]*include[ ]*"' $$i | sed -n \ 111*41203Sbostic -e 's/[^"]*"\([^"]*\)".*/\1/' \ 112*41203Sbostic -e H -e '$$g' -e '$$s/\n/ /g' \ 113*41203Sbostic -e '$$s/.*/'$$i': &/' -e '$$s/\.c:/.o:/p' \ 114*41203Sbostic >> makedep); done 115*41203Sbostic for i in ${HSOURCES}; do \ 116*41203Sbostic ( /bin/grep '^#[ ]*include[ ]*"' $$i | sed -n \ 117*41203Sbostic -e 's/[^"]*"\([^"]*\)".*/\1/' \ 118*41203Sbostic -e H -e '$$g' -e '$$s/\n/ /g' \ 119*41203Sbostic -e '$$s/.*/'$$i': &\ 120*41203Sbostic touch '$$i/p \ 121*41203Sbostic >> makedep); done 122*41203Sbostic @echo '/^# DO NOT DELETE THIS LINE/+2,$$d' >eddep 123*41203Sbostic @echo '$$r makedep' >>eddep 124*41203Sbostic @echo 'w' >>eddep 125*41203Sbostic @cp Makefile Makefile.bak 126*41203Sbostic ed - Makefile < eddep 127*41203Sbostic @rm -f eddep makedep 128*41203Sbostic @echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile 129*41203Sbostic @echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile 130*41203Sbostic @echo '# see make depend above' >> Makefile 131*41203Sbostic - diff Makefile Makefile.bak 132*41203Sbostic @rm -f Makefile.bak 133*41203Sbostic 134*41203Sbostic# DO NOT DELETE THIS LINE 135*41203Sbostic 136*41203Sbostichack.Decl.o: hack.h def.mkroom.h 137*41203Sbostichack.apply.o: hack.h def.edog.h def.mkroom.h 138*41203Sbostichack.bones.o: hack.h 139*41203Sbostichack.o: hack.h 140*41203Sbostichack.cmd.o: hack.h def.func_tab.h 141*41203Sbostichack.do.o: hack.h 142*41203Sbostichack.do_name.o: hack.h 143*41203Sbostichack.do_wear.o: hack.h 144*41203Sbostichack.dog.o: hack.h hack.mfndpos.h def.edog.h def.mkroom.h 145*41203Sbostichack.eat.o: hack.h 146*41203Sbostichack.end.o: hack.h 147*41203Sbostichack.engrave.o: hack.h 148*41203Sbostichack.fight.o: hack.h 149*41203Sbostichack.invent.o: hack.h def.wseg.h 150*41203Sbostichack.ioctl.o: config.h 151*41203Sbostichack.lev.o: hack.h def.mkroom.h def.wseg.h 152*41203Sbostichack.main.o: hack.h 153*41203Sbostichack.makemon.o: hack.h 154*41203Sbostichack.mhitu.o: hack.h 155*41203Sbostichack.mklev.o: hack.h def.mkroom.h 156*41203Sbostichack.mkmaze.o: hack.h def.mkroom.h 157*41203Sbostichack.mkobj.o: hack.h 158*41203Sbostichack.mkshop.o: hack.h def.mkroom.h def.eshk.h 159*41203Sbostichack.mon.o: hack.h hack.mfndpos.h 160*41203Sbostichack.monst.o: hack.h def.eshk.h 161*41203Sbostichack.o_init.o: config.h def.objects.h hack.onames.h 162*41203Sbostichack.objnam.o: hack.h 163*41203Sbostichack.options.o: config.h hack.h 164*41203Sbostichack.pager.o: hack.h 165*41203Sbostichack.potion.o: hack.h 166*41203Sbostichack.pri.o: hack.h def.wseg.h 167*41203Sbostichack.read.o: hack.h 168*41203Sbostichack.rip.o: hack.h 169*41203Sbostichack.rumors.o: hack.h 170*41203Sbostichack.save.o: hack.h 171*41203Sbostichack.search.o: hack.h 172*41203Sbostichack.shk.o: hack.h hack.mfndpos.h def.mkroom.h def.eshk.h 173*41203Sbostichack.shknam.o: hack.h 174*41203Sbostichack.steal.o: hack.h 175*41203Sbostichack.termcap.o: config.h def.flag.h 176*41203Sbostichack.timeout.o: hack.h 177*41203Sbostichack.topl.o: hack.h 178*41203Sbostichack.track.o: hack.h 179*41203Sbostichack.trap.o: hack.h def.mkroom.h 180*41203Sbostichack.tty.o: hack.h 181*41203Sbostichack.unix.o: hack.h def.mkroom.h 182*41203Sbostichack.u_init.o: hack.h 183*41203Sbostichack.vault.o: hack.h def.mkroom.h 184*41203Sbostichack.wield.o: hack.h 185*41203Sbostichack.wizard.o: hack.h 186*41203Sbostichack.worm.o: hack.h def.wseg.h 187*41203Sbostichack.worn.o: hack.h 188*41203Sbostichack.zap.o: hack.h 189*41203Sbostichack.version.o: date.h 190*41203Sbostichack.h: config.h def.objclass.h def.monst.h def.gold.h def.trap.h def.obj.h def.flag.h def.rm.h def.permonst.h hack.onames.h 191*41203Sbostic touch hack.h 192*41203Sbosticdef.objects.h: config.h def.objclass.h 193*41203Sbostic touch def.objects.h 194*41203Sbostic# DEPENDENCIES MUST END AT END OF FILE 195*41203Sbostic# IF YOU PUT STUFF HERE IT WILL GO AWAY 196*41203Sbostic# see make depend above 197