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