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