xref: /csrg-svn/games/hack/Makequest (revision 41203)
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