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