11.2Scgd#	$NetBSD: Makequest,v 1.2 1995/03/23 08:29:08 cgd Exp $
21.2Scgd#
31.1Scgd# Hack or Quest Makefile.
41.1Scgd
51.1Scgd# on some systems the termcap library is in -ltermcap
61.1ScgdTERMLIB = -ltermlib
71.1Scgd
81.1Scgd
91.1Scgd# make hack
101.1ScgdGAME = quest
111.1ScgdGAMEDIR = /usr/games/lib/questdir
121.1ScgdCFLAGS = -g -DQUEST
131.1ScgdHACKCSRC = hack.Decl.c\
141.1Scgd	hack.apply.c hack.bones.c hack.c hack.cmd.c hack.do.c\
151.1Scgd	hack.do_name.c hack.do_wear.c hack.dog.c hack.eat.c hack.end.c\
161.1Scgd	hack.engrave.c hack.fight.c hack.invent.c hack.ioctl.c\
171.1Scgd	hack.lev.c hack.main.c hack.makemon.c hack.mhitu.c\
181.1Scgd	hack.mklev.c hack.mkmaze.c hack.mkobj.c hack.mkshop.c\
191.1Scgd	hack.mon.c hack.monst.c hack.o_init.c hack.objnam.c\
201.1Scgd	hack.options.c hack.pager.c hack.potion.c hack.pri.c\
211.1Scgd	hack.read.c hack.rip.c hack.rumors.c hack.save.c\
221.1Scgd	hack.search.c hack.shk.c hack.shknam.c hack.steal.c\
231.1Scgd	hack.termcap.c hack.timeout.c hack.topl.c\
241.1Scgd	hack.track.c hack.trap.c hack.tty.c hack.unix.c\
251.1Scgd	hack.u_init.c hack.vault.c\
261.1Scgd	hack.wield.c hack.wizard.c hack.worm.c hack.worn.c hack.zap.c\
271.1Scgd	hack.version.c rnd.c alloc.c
281.1Scgd
291.1ScgdCSOURCES = $(HACKCSRC) makedefs.c
301.1Scgd
311.1ScgdHSOURCES = hack.h hack.mfndpos.h config.h\
321.1Scgd	def.edog.h def.eshk.h def.flag.h def.func_tab.h def.gold.h\
331.1Scgd	def.mkroom.h\
341.1Scgd	def.monst.h def.obj.h def.objclass.h def.objects.h\
351.1Scgd	def.permonst.h def.rm.h def.trap.h def.wseg.h
361.1Scgd
371.1ScgdSOURCES = $(CSOURCES) $(HSOURCES)
381.1Scgd
391.1ScgdAUX = data help hh rumors hack.6 hack.sh
401.1Scgd
411.1ScgdDISTR = $(SOURCES) $(AUX) READ_ME Makefile date.h hack.onames.h
421.1Scgd
431.1ScgdHOBJ = hack.Decl.o hack.apply.o hack.bones.o hack.o hack.cmd.o hack.do.o\
441.1Scgd	hack.do_name.o hack.do_wear.o hack.dog.o hack.eat.o hack.end.o\
451.1Scgd	hack.engrave.o hack.fight.o hack.invent.o hack.ioctl.o\
461.1Scgd	hack.lev.o hack.main.o hack.makemon.o hack.mhitu.o hack.mklev.o\
471.1Scgd	hack.mkmaze.o hack.mkobj.o hack.mkshop.o hack.mon.o\
481.1Scgd	hack.monst.o hack.o_init.o hack.objnam.o hack.options.o\
491.1Scgd	hack.pager.o hack.potion.o hack.pri.o\
501.1Scgd	hack.read.o hack.rip.o hack.rumors.o hack.save.o\
511.1Scgd	hack.search.o hack.shk.o hack.shknam.o hack.steal.o\
521.1Scgd	hack.termcap.o hack.timeout.o hack.topl.o\
531.1Scgd	hack.track.o hack.trap.o\
541.1Scgd	hack.tty.o hack.unix.o hack.u_init.o hack.vault.o hack.wield.o\
551.1Scgd	hack.wizard.o hack.worm.o hack.worn.o hack.zap.o\
561.1Scgd	hack.version.o rnd.o alloc.o
571.1Scgd
581.1Scgd$(GAME):	$(HOBJ) Makefile
591.1Scgd	@echo "Loading ..."
601.1Scgd	@ld -X -o $(GAME) /lib/crt0.o $(HOBJ) $(TERMLIB) -lc
611.1Scgd
621.1Scgdall:	$(GAME) lint
631.1Scgd	@echo "Done."
641.1Scgd
651.1Scgdmakedefs:	makedefs.c
661.1Scgd	cc -o makedefs makedefs.c
671.1Scgd
681.1Scgd
691.1Scgdhack.onames.h:	makedefs def.objects.h
701.1Scgd	makedefs > hack.onames.h
711.1Scgd
721.1Scgdlint:
731.1Scgd# lint cannot have -p here because (i) capitals are meaningful:
741.1Scgd# [Ww]izard, (ii) identifiers may coincide in the first six places:
751.1Scgd# doweararm() versus dowearring().
761.1Scgd# _flsbuf comes from <stdio.h>, a bug in the system libraries.
771.1Scgd	@echo lint -axbh -DLINT ...
781.1Scgd	@lint -axbh -DLINT $(HACKCSRC) | sed '/_flsbuf/d'
791.1Scgd
801.1Scgd
811.1Scgddiff:
821.1Scgd	@- for i in $(SOURCES) $(AUX) ; do \
831.1Scgd		cmp -s $$i $D/$$i || \
841.1Scgd		( echo diff $D/$$i $$i ; diff $D/$$i $$i ; echo ) ; done
851.1Scgd
861.1Scgddistribution: Makefile
871.1Scgd	@- for i in READ_ME $(SOURCES) $(AUX) Makefile date.h hack.onames.h\
881.1Scgd		; do \
891.1Scgd		cmp -s $$i $D/$$i || \
901.1Scgd		( echo cp $$i $D ; cp $$i $D ) ; done
911.1Scgd# the distribution directory also contains the empty files perm and record.
921.1Scgd
931.1Scgd
941.1Scgdinstall:
951.1Scgd	rm -f $(GAMEDIR)/$(GAME)
961.1Scgd	cp $(GAME) $(GAMEDIR)/$(GAME)
971.1Scgd	chmod 04511 $(GAMEDIR)/$(GAME)
981.1Scgd	rm -f $(GAMEDIR)/bones*
991.1Scgd#	cp hack.6 /usr/man/man6
1001.1Scgd
1011.1Scgdclean:
1021.1Scgd	rm -f *.o
1031.1Scgd
1041.1Scgd
1051.1Scgddepend:
1061.1Scgd# For the moment we are lazy and disregard /usr/include files because
1071.1Scgd# the sources contain them conditionally. Perhaps we should use cpp.
1081.1Scgd#		( /bin/grep '^#[ 	]*include' $$i | sed -n \
1091.1Scgd#			-e 's,<\(.*\)>,"/usr/include/\1",' \
1101.1Scgd#
1111.1Scgd	for i in ${CSOURCES}; do \
1121.1Scgd		( /bin/grep '^#[ 	]*include[ 	]*"' $$i | sed -n \
1131.1Scgd			-e 's/[^"]*"\([^"]*\)".*/\1/' \
1141.1Scgd			-e H -e '$$g' -e '$$s/\n/ /g' \
1151.1Scgd			-e '$$s/.*/'$$i': &/' -e '$$s/\.c:/.o:/p' \
1161.1Scgd			>> makedep); done
1171.1Scgd	for i in ${HSOURCES}; do \
1181.1Scgd		( /bin/grep '^#[ 	]*include[ 	]*"' $$i | sed -n \
1191.1Scgd			-e 's/[^"]*"\([^"]*\)".*/\1/' \
1201.1Scgd			-e H -e '$$g' -e '$$s/\n/ /g' \
1211.1Scgd			-e '$$s/.*/'$$i': &\
1221.1Scgd				touch '$$i/p \
1231.1Scgd			>> makedep); done
1241.1Scgd	@echo '/^# DO NOT DELETE THIS LINE/+2,$$d' >eddep
1251.1Scgd	@echo '$$r makedep' >>eddep
1261.1Scgd	@echo 'w' >>eddep
1271.1Scgd	@cp Makefile Makefile.bak
1281.1Scgd	ed - Makefile < eddep
1291.1Scgd	@rm -f eddep makedep
1301.1Scgd	@echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile
1311.1Scgd	@echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile
1321.1Scgd	@echo '# see make depend above' >> Makefile
1331.1Scgd	- diff Makefile Makefile.bak
1341.1Scgd	@rm -f Makefile.bak
1351.1Scgd
1361.1Scgd# DO NOT DELETE THIS LINE
1371.1Scgd
1381.1Scgdhack.Decl.o:  hack.h def.mkroom.h
1391.1Scgdhack.apply.o:  hack.h def.edog.h def.mkroom.h
1401.1Scgdhack.bones.o:  hack.h
1411.1Scgdhack.o:  hack.h
1421.1Scgdhack.cmd.o:  hack.h def.func_tab.h
1431.1Scgdhack.do.o:  hack.h
1441.1Scgdhack.do_name.o:  hack.h
1451.1Scgdhack.do_wear.o:  hack.h
1461.1Scgdhack.dog.o:  hack.h hack.mfndpos.h def.edog.h def.mkroom.h
1471.1Scgdhack.eat.o:  hack.h
1481.1Scgdhack.end.o:  hack.h
1491.1Scgdhack.engrave.o:  hack.h
1501.1Scgdhack.fight.o:  hack.h
1511.1Scgdhack.invent.o:  hack.h def.wseg.h
1521.1Scgdhack.ioctl.o:  config.h
1531.1Scgdhack.lev.o:  hack.h def.mkroom.h def.wseg.h
1541.1Scgdhack.main.o:  hack.h
1551.1Scgdhack.makemon.o:  hack.h
1561.1Scgdhack.mhitu.o:  hack.h
1571.1Scgdhack.mklev.o:  hack.h def.mkroom.h
1581.1Scgdhack.mkmaze.o:  hack.h def.mkroom.h
1591.1Scgdhack.mkobj.o:  hack.h
1601.1Scgdhack.mkshop.o:  hack.h def.mkroom.h def.eshk.h
1611.1Scgdhack.mon.o:  hack.h hack.mfndpos.h
1621.1Scgdhack.monst.o:  hack.h def.eshk.h
1631.1Scgdhack.o_init.o:  config.h def.objects.h hack.onames.h
1641.1Scgdhack.objnam.o:  hack.h
1651.1Scgdhack.options.o:  config.h hack.h
1661.1Scgdhack.pager.o:  hack.h
1671.1Scgdhack.potion.o:  hack.h
1681.1Scgdhack.pri.o:  hack.h def.wseg.h
1691.1Scgdhack.read.o:  hack.h
1701.1Scgdhack.rip.o:  hack.h
1711.1Scgdhack.rumors.o:  hack.h
1721.1Scgdhack.save.o:  hack.h
1731.1Scgdhack.search.o:  hack.h
1741.1Scgdhack.shk.o:  hack.h hack.mfndpos.h def.mkroom.h def.eshk.h
1751.1Scgdhack.shknam.o:  hack.h
1761.1Scgdhack.steal.o:  hack.h
1771.1Scgdhack.termcap.o:  config.h def.flag.h
1781.1Scgdhack.timeout.o:  hack.h
1791.1Scgdhack.topl.o:  hack.h
1801.1Scgdhack.track.o:  hack.h
1811.1Scgdhack.trap.o:  hack.h def.mkroom.h
1821.1Scgdhack.tty.o:  hack.h
1831.1Scgdhack.unix.o:  hack.h def.mkroom.h
1841.1Scgdhack.u_init.o:  hack.h
1851.1Scgdhack.vault.o:  hack.h def.mkroom.h
1861.1Scgdhack.wield.o:  hack.h
1871.1Scgdhack.wizard.o:  hack.h
1881.1Scgdhack.worm.o:  hack.h def.wseg.h
1891.1Scgdhack.worn.o:  hack.h
1901.1Scgdhack.zap.o:  hack.h
1911.1Scgdhack.version.o:  date.h
1921.1Scgdhack.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
1931.1Scgd			touch hack.h
1941.1Scgddef.objects.h:  config.h def.objclass.h
1951.1Scgd			touch def.objects.h
1961.1Scgd# DEPENDENCIES MUST END AT END OF FILE
1971.1Scgd# IF YOU PUT STUFF HERE IT WILL GO AWAY
1981.1Scgd# see make depend above
199