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