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