xref: /netbsd/games/hack/Makequest (revision 42fb1b9d)
1*42fb1b9dScgd#	$NetBSD: Makequest,v 1.2 1995/03/23 08:29:08 cgd Exp $
2*42fb1b9dScgd#
361f28255Scgd# Hack or Quest Makefile.
461f28255Scgd
561f28255Scgd# on some systems the termcap library is in -ltermcap
661f28255ScgdTERMLIB = -ltermlib
761f28255Scgd
861f28255Scgd
961f28255Scgd# make hack
1061f28255ScgdGAME = quest
1161f28255ScgdGAMEDIR = /usr/games/lib/questdir
1261f28255ScgdCFLAGS = -g -DQUEST
1361f28255ScgdHACKCSRC = hack.Decl.c\
1461f28255Scgd	hack.apply.c hack.bones.c hack.c hack.cmd.c hack.do.c\
1561f28255Scgd	hack.do_name.c hack.do_wear.c hack.dog.c hack.eat.c hack.end.c\
1661f28255Scgd	hack.engrave.c hack.fight.c hack.invent.c hack.ioctl.c\
1761f28255Scgd	hack.lev.c hack.main.c hack.makemon.c hack.mhitu.c\
1861f28255Scgd	hack.mklev.c hack.mkmaze.c hack.mkobj.c hack.mkshop.c\
1961f28255Scgd	hack.mon.c hack.monst.c hack.o_init.c hack.objnam.c\
2061f28255Scgd	hack.options.c hack.pager.c hack.potion.c hack.pri.c\
2161f28255Scgd	hack.read.c hack.rip.c hack.rumors.c hack.save.c\
2261f28255Scgd	hack.search.c hack.shk.c hack.shknam.c hack.steal.c\
2361f28255Scgd	hack.termcap.c hack.timeout.c hack.topl.c\
2461f28255Scgd	hack.track.c hack.trap.c hack.tty.c hack.unix.c\
2561f28255Scgd	hack.u_init.c hack.vault.c\
2661f28255Scgd	hack.wield.c hack.wizard.c hack.worm.c hack.worn.c hack.zap.c\
2761f28255Scgd	hack.version.c rnd.c alloc.c
2861f28255Scgd
2961f28255ScgdCSOURCES = $(HACKCSRC) makedefs.c
3061f28255Scgd
3161f28255ScgdHSOURCES = hack.h hack.mfndpos.h config.h\
3261f28255Scgd	def.edog.h def.eshk.h def.flag.h def.func_tab.h def.gold.h\
3361f28255Scgd	def.mkroom.h\
3461f28255Scgd	def.monst.h def.obj.h def.objclass.h def.objects.h\
3561f28255Scgd	def.permonst.h def.rm.h def.trap.h def.wseg.h
3661f28255Scgd
3761f28255ScgdSOURCES = $(CSOURCES) $(HSOURCES)
3861f28255Scgd
3961f28255ScgdAUX = data help hh rumors hack.6 hack.sh
4061f28255Scgd
4161f28255ScgdDISTR = $(SOURCES) $(AUX) READ_ME Makefile date.h hack.onames.h
4261f28255Scgd
4361f28255ScgdHOBJ = hack.Decl.o hack.apply.o hack.bones.o hack.o hack.cmd.o hack.do.o\
4461f28255Scgd	hack.do_name.o hack.do_wear.o hack.dog.o hack.eat.o hack.end.o\
4561f28255Scgd	hack.engrave.o hack.fight.o hack.invent.o hack.ioctl.o\
4661f28255Scgd	hack.lev.o hack.main.o hack.makemon.o hack.mhitu.o hack.mklev.o\
4761f28255Scgd	hack.mkmaze.o hack.mkobj.o hack.mkshop.o hack.mon.o\
4861f28255Scgd	hack.monst.o hack.o_init.o hack.objnam.o hack.options.o\
4961f28255Scgd	hack.pager.o hack.potion.o hack.pri.o\
5061f28255Scgd	hack.read.o hack.rip.o hack.rumors.o hack.save.o\
5161f28255Scgd	hack.search.o hack.shk.o hack.shknam.o hack.steal.o\
5261f28255Scgd	hack.termcap.o hack.timeout.o hack.topl.o\
5361f28255Scgd	hack.track.o hack.trap.o\
5461f28255Scgd	hack.tty.o hack.unix.o hack.u_init.o hack.vault.o hack.wield.o\
5561f28255Scgd	hack.wizard.o hack.worm.o hack.worn.o hack.zap.o\
5661f28255Scgd	hack.version.o rnd.o alloc.o
5761f28255Scgd
5861f28255Scgd$(GAME):	$(HOBJ) Makefile
5961f28255Scgd	@echo "Loading ..."
6061f28255Scgd	@ld -X -o $(GAME) /lib/crt0.o $(HOBJ) $(TERMLIB) -lc
6161f28255Scgd
6261f28255Scgdall:	$(GAME) lint
6361f28255Scgd	@echo "Done."
6461f28255Scgd
6561f28255Scgdmakedefs:	makedefs.c
6661f28255Scgd	cc -o makedefs makedefs.c
6761f28255Scgd
6861f28255Scgd
6961f28255Scgdhack.onames.h:	makedefs def.objects.h
7061f28255Scgd	makedefs > hack.onames.h
7161f28255Scgd
7261f28255Scgdlint:
7361f28255Scgd# lint cannot have -p here because (i) capitals are meaningful:
7461f28255Scgd# [Ww]izard, (ii) identifiers may coincide in the first six places:
7561f28255Scgd# doweararm() versus dowearring().
7661f28255Scgd# _flsbuf comes from <stdio.h>, a bug in the system libraries.
7761f28255Scgd	@echo lint -axbh -DLINT ...
7861f28255Scgd	@lint -axbh -DLINT $(HACKCSRC) | sed '/_flsbuf/d'
7961f28255Scgd
8061f28255Scgd
8161f28255Scgddiff:
8261f28255Scgd	@- for i in $(SOURCES) $(AUX) ; do \
8361f28255Scgd		cmp -s $$i $D/$$i || \
8461f28255Scgd		( echo diff $D/$$i $$i ; diff $D/$$i $$i ; echo ) ; done
8561f28255Scgd
8661f28255Scgddistribution: Makefile
8761f28255Scgd	@- for i in READ_ME $(SOURCES) $(AUX) Makefile date.h hack.onames.h\
8861f28255Scgd		; do \
8961f28255Scgd		cmp -s $$i $D/$$i || \
9061f28255Scgd		( echo cp $$i $D ; cp $$i $D ) ; done
9161f28255Scgd# the distribution directory also contains the empty files perm and record.
9261f28255Scgd
9361f28255Scgd
9461f28255Scgdinstall:
9561f28255Scgd	rm -f $(GAMEDIR)/$(GAME)
9661f28255Scgd	cp $(GAME) $(GAMEDIR)/$(GAME)
9761f28255Scgd	chmod 04511 $(GAMEDIR)/$(GAME)
9861f28255Scgd	rm -f $(GAMEDIR)/bones*
9961f28255Scgd#	cp hack.6 /usr/man/man6
10061f28255Scgd
10161f28255Scgdclean:
10261f28255Scgd	rm -f *.o
10361f28255Scgd
10461f28255Scgd
10561f28255Scgddepend:
10661f28255Scgd# For the moment we are lazy and disregard /usr/include files because
10761f28255Scgd# the sources contain them conditionally. Perhaps we should use cpp.
10861f28255Scgd#		( /bin/grep '^#[ 	]*include' $$i | sed -n \
10961f28255Scgd#			-e 's,<\(.*\)>,"/usr/include/\1",' \
11061f28255Scgd#
11161f28255Scgd	for i in ${CSOURCES}; do \
11261f28255Scgd		( /bin/grep '^#[ 	]*include[ 	]*"' $$i | sed -n \
11361f28255Scgd			-e 's/[^"]*"\([^"]*\)".*/\1/' \
11461f28255Scgd			-e H -e '$$g' -e '$$s/\n/ /g' \
11561f28255Scgd			-e '$$s/.*/'$$i': &/' -e '$$s/\.c:/.o:/p' \
11661f28255Scgd			>> makedep); done
11761f28255Scgd	for i in ${HSOURCES}; do \
11861f28255Scgd		( /bin/grep '^#[ 	]*include[ 	]*"' $$i | sed -n \
11961f28255Scgd			-e 's/[^"]*"\([^"]*\)".*/\1/' \
12061f28255Scgd			-e H -e '$$g' -e '$$s/\n/ /g' \
12161f28255Scgd			-e '$$s/.*/'$$i': &\
12261f28255Scgd				touch '$$i/p \
12361f28255Scgd			>> makedep); done
12461f28255Scgd	@echo '/^# DO NOT DELETE THIS LINE/+2,$$d' >eddep
12561f28255Scgd	@echo '$$r makedep' >>eddep
12661f28255Scgd	@echo 'w' >>eddep
12761f28255Scgd	@cp Makefile Makefile.bak
12861f28255Scgd	ed - Makefile < eddep
12961f28255Scgd	@rm -f eddep makedep
13061f28255Scgd	@echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile
13161f28255Scgd	@echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile
13261f28255Scgd	@echo '# see make depend above' >> Makefile
13361f28255Scgd	- diff Makefile Makefile.bak
13461f28255Scgd	@rm -f Makefile.bak
13561f28255Scgd
13661f28255Scgd# DO NOT DELETE THIS LINE
13761f28255Scgd
13861f28255Scgdhack.Decl.o:  hack.h def.mkroom.h
13961f28255Scgdhack.apply.o:  hack.h def.edog.h def.mkroom.h
14061f28255Scgdhack.bones.o:  hack.h
14161f28255Scgdhack.o:  hack.h
14261f28255Scgdhack.cmd.o:  hack.h def.func_tab.h
14361f28255Scgdhack.do.o:  hack.h
14461f28255Scgdhack.do_name.o:  hack.h
14561f28255Scgdhack.do_wear.o:  hack.h
14661f28255Scgdhack.dog.o:  hack.h hack.mfndpos.h def.edog.h def.mkroom.h
14761f28255Scgdhack.eat.o:  hack.h
14861f28255Scgdhack.end.o:  hack.h
14961f28255Scgdhack.engrave.o:  hack.h
15061f28255Scgdhack.fight.o:  hack.h
15161f28255Scgdhack.invent.o:  hack.h def.wseg.h
15261f28255Scgdhack.ioctl.o:  config.h
15361f28255Scgdhack.lev.o:  hack.h def.mkroom.h def.wseg.h
15461f28255Scgdhack.main.o:  hack.h
15561f28255Scgdhack.makemon.o:  hack.h
15661f28255Scgdhack.mhitu.o:  hack.h
15761f28255Scgdhack.mklev.o:  hack.h def.mkroom.h
15861f28255Scgdhack.mkmaze.o:  hack.h def.mkroom.h
15961f28255Scgdhack.mkobj.o:  hack.h
16061f28255Scgdhack.mkshop.o:  hack.h def.mkroom.h def.eshk.h
16161f28255Scgdhack.mon.o:  hack.h hack.mfndpos.h
16261f28255Scgdhack.monst.o:  hack.h def.eshk.h
16361f28255Scgdhack.o_init.o:  config.h def.objects.h hack.onames.h
16461f28255Scgdhack.objnam.o:  hack.h
16561f28255Scgdhack.options.o:  config.h hack.h
16661f28255Scgdhack.pager.o:  hack.h
16761f28255Scgdhack.potion.o:  hack.h
16861f28255Scgdhack.pri.o:  hack.h def.wseg.h
16961f28255Scgdhack.read.o:  hack.h
17061f28255Scgdhack.rip.o:  hack.h
17161f28255Scgdhack.rumors.o:  hack.h
17261f28255Scgdhack.save.o:  hack.h
17361f28255Scgdhack.search.o:  hack.h
17461f28255Scgdhack.shk.o:  hack.h hack.mfndpos.h def.mkroom.h def.eshk.h
17561f28255Scgdhack.shknam.o:  hack.h
17661f28255Scgdhack.steal.o:  hack.h
17761f28255Scgdhack.termcap.o:  config.h def.flag.h
17861f28255Scgdhack.timeout.o:  hack.h
17961f28255Scgdhack.topl.o:  hack.h
18061f28255Scgdhack.track.o:  hack.h
18161f28255Scgdhack.trap.o:  hack.h def.mkroom.h
18261f28255Scgdhack.tty.o:  hack.h
18361f28255Scgdhack.unix.o:  hack.h def.mkroom.h
18461f28255Scgdhack.u_init.o:  hack.h
18561f28255Scgdhack.vault.o:  hack.h def.mkroom.h
18661f28255Scgdhack.wield.o:  hack.h
18761f28255Scgdhack.wizard.o:  hack.h
18861f28255Scgdhack.worm.o:  hack.h def.wseg.h
18961f28255Scgdhack.worn.o:  hack.h
19061f28255Scgdhack.zap.o:  hack.h
19161f28255Scgdhack.version.o:  date.h
19261f28255Scgdhack.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
19361f28255Scgd			touch hack.h
19461f28255Scgddef.objects.h:  config.h def.objclass.h
19561f28255Scgd			touch def.objects.h
19661f28255Scgd# DEPENDENCIES MUST END AT END OF FILE
19761f28255Scgd# IF YOU PUT STUFF HERE IT WILL GO AWAY
19861f28255Scgd# see make depend above
199