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