home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume3 / nethack2.2 / part09 / Makefile.att < prev    next >
Makefile  |  1987-12-02  |  7KB  |  263 lines

  1. #    Hack or Quest Makefile.
  2. #    SCCS Id: @(#)Makefile.att    2.2    87/11/11
  3.  
  4. include $(MAKEINC)/Makepre.h
  5.  
  6. # if you are cross-compiling (eg. from Xenix into a Dos enviornment)
  7. # you will have to redefine these filenames.
  8. MAIN = unixmain.c
  9. TTY  = unixtty.c
  10. UNIX = unixunix.c
  11.  
  12. # on some systems the termcap library is in -ltermcap
  13. #TERMLIB = -ltermlib
  14. TERMLIB =
  15.  
  16. # make NetHack
  17. GAME = nethack
  18. GAMEUID = games
  19. GAMEGRP = bin
  20. #    GAMEDIR also appears in config.h as "HACKDIR".
  21. GAMEDIR = /usr/games/lib/$(GAME)dir
  22. SHELLDIR = /usr/games
  23. MANDIR  = /usr/man/man6
  24. CFLAGS = -O
  25. LFLAGS =
  26.  
  27. HACKCSRC = alloc.c apply.c bones.c cmd.c decl.c do.c do_name.c do_wear.c\
  28.     dog.c dogmove.c dothrow.c eat.c end.c engrave.c fight.c fountain.c\
  29.     hack.c invent.c ioctl.c lev.c main.c makemon.c mhitu.c\
  30.     mklev.c mkmaze.c mkobj.c mkshop.c mon.c monmove.c monst.c o_init.c\
  31.     objnam.c options.c pager.c polyself.c potion.c pray.c pri.c\
  32.     prisym.c read.c rip.c rnd.c rumors.c save.c search.c shk.c shknam.c\
  33.     sit.c spell.c steal.c termcap.c timeout.c topl.c topten.c track.c\
  34.     trap.c tty.c u_init.c unix.c vault.c version.c wield.c wizard.c\
  35.     worm.c worn.c write.c zap.c
  36.  
  37. CSOURCES = $(HACKCSRC) makedefs.c
  38.  
  39. HSOURCES = hack.h mfndpos.h config.h edog.h eshk.h extern.h\
  40.     flag.h func_tab.h gold.h mkroom.h monst.h obj.h objclass.h\
  41.     objects.h permonst.h rm.h spell.h trap.h wseg.h you.h
  42.  
  43. SOURCES = $(CSOURCES) $(HSOURCES)
  44.  
  45. AUX = help hh nethack.6 nethack.sh
  46. VARAUX = data rumors
  47. SPECIFICS = main.o tty.o unix.o
  48.  
  49.  
  50. DISTR = $(SOURCES) $(AUX) $(VARAUX) README.OLD README\
  51.     Makefile Makefile.pc Make.ini
  52.  
  53. HOBJ = alloc.o apply.o bones.o cmd.o decl.o do.o do_name.o do_wear.o\
  54.     dog.o dogmove.o dothrow.o eat.o end.o engrave.o fight.o fountain.o\
  55.     hack.o invent.o ioctl.o lev.o main.o makemon.o mhitu.o\
  56.     mklev.o mkmaze.o mkobj.o mkshop.o mon.o monmove.o monst.o o_init.o\
  57.     objnam.o options.o pager.o polyself.o potion.o pray.o pri.o\
  58.     prisym.o read.o rip.o rnd.o rumors.o save.o search.o shk.o shknam.o\
  59.     sit.o spell.o steal.o termcap.o timeout.o topl.o topten.o track.o\
  60.     trap.o tty.o u_init.o unix.o vault.o version.o wield.o wizard.o\
  61.     worm.o worn.o write.o zap.o
  62.  
  63. $(GAME):    $(SPECIFICS) $(HOBJ) Makefile
  64.     @echo "Loading ..."
  65.     @ld $(LFLAGS) $(SHAREDLIB) -o $(GAME) $(HOBJ) $(TERMLIB)
  66.  
  67. all:    $(GAME) lint
  68.     @echo "Done."
  69.  
  70. makedefs:    makedefs.c alloc.o config.h
  71.     cc -o makedefs alloc.o makedefs.c
  72.  
  73. RUMORFILES= rumors.base rumors.kaa rumors.mrx
  74.  
  75. rumors:    config.h $(RUMORFILES) makedefs
  76.     makedefs -r
  77.  
  78. data:    config.h data.base makedefs
  79.     makedefs -d
  80.  
  81. date.h:    $(SOURCES) makedefs
  82.     makedefs -D
  83.  
  84. trap.h:    config.h makedefs
  85.     makedefs -t
  86.  
  87. onames.h:    makedefs objects.h
  88.     makedefs -o
  89.  
  90. main.o:
  91.  
  92. main.c:    unixmain.c hack.h
  93.     cp $(MAIN) main.c
  94.  
  95. tty.o:
  96.  
  97. tty.c:    unixtty.c extern.h
  98.     cp $(TTY) tty.c
  99.  
  100. unix.o:
  101.  
  102. unix.c:    unixunix.c hack.h mkroom.h
  103.     cp $(UNIX) unix.c
  104.  
  105. lint:
  106. # lint cannot have -p here because (i) capitals are meaningful:
  107. # [Ww]izard, (ii) identifiers may coincide in the first six places:
  108. # doweararm() versus dowearring().
  109. # _flsbuf comes from <stdio.h>, a bug in the system libraries.
  110.     @echo lint -axbh -DLINT ...
  111.     @lint -axbh -DLINT $(HACKCSRC) | sed '/_flsbuf/d'
  112.  
  113.  
  114. diff:
  115.     @- for i in $(SOURCES) $(AUX) ; do \
  116.         cmp -s $$i $D/$$i || \
  117.         ( echo diff $D/$$i $$i ; diff $D/$$i $$i ; echo ) ; done
  118.  
  119. distribution: Makefile
  120.     @- for i in READ_ME $(SOURCES) $(AUX) Makefile date.h onames.h\
  121.         ; do \
  122.         cmp -s $$i $D/$$i || \
  123.         ( echo cp $$i $D ; cp $$i $D ) ; done
  124. # the distribution directory also contains the empty files perm and record.
  125.  
  126. initial:
  127.     -rm -rf $(GAMEDIR)
  128.     -mkdir $(SHELLDIR)
  129.     mkdir $(GAMEDIR) $(GAMEDIR)/save
  130.     touch $(GAMEDIR)/perm
  131.     touch $(GAMEDIR)/record
  132.     chown $(GAMEUID) $(GAMEDIR) $(GAMEDIR)/*
  133.     chgrp $(GAMEGRP) $(GAMEDIR) $(GAMEDIR)/*
  134.     chmod 666 $(GAMEDIR)/*
  135.     chmod 777 $(GAMEDIR) $(GAMEDIR)/save
  136.  
  137. install: $(VARAUX)
  138.     -rm -f $(GAMEDIR)/$(GAME)
  139.     -rm -f $(GAMEDIR)/bones*
  140.     -rm -f $(GAMEDIR)/save/*
  141.     cp help hh rumors data $(GAMEDIR)
  142.     cp $(GAME).sh $(SHELLDIR)/$(GAME)
  143.     cp $(GAME) $(GAMEDIR)/$(GAME)
  144.     chown $(GAMEUID) $(SHELLDIR)/$(GAME) $(GAMEDIR)/*
  145.     chgrp $(GAMEGRP) $(SHELLDIR)/$(GAME) $(GAMEDIR)/*
  146.     chmod 0755 $(SHELLDIR)/$(GAME)
  147.     chmod 04755 $(GAMEDIR)/$(GAME)
  148.     -cp nethack.6 $(MANDIR)
  149.  
  150. clean:
  151.     rm -f *.o
  152.  
  153. spotless: clean
  154.     rm -f a.out core $(GAME) makedefs
  155.     rm -f Makefile $(VARAUX) main.c tty.c unix.c
  156.  
  157. depend:
  158. # For the moment we are lazy and disregard /usr/include files because
  159. # the sources contain them conditionally. Perhaps we should use cpp.
  160. #        ( /bin/grep '^#[     ]*include' $$i | sed -n \
  161. #            -e 's,<\(.*\)>,"/usr/include/\1",' \
  162. #
  163.     for i in ${CSOURCES}; do \
  164.         ( /bin/grep '^#[     ]*include[     ]*"' $$i | sed -n \
  165.             -e 's/[^"]*"\([^"]*\)".*/\1/' \
  166.             -e H -e '$$g' -e '$$s/\n/ /g' \
  167.             -e '$$s/.*/'$$i': &/' -e '$$s/\.c:/.o:/p' \
  168.             >> makedep); done
  169.     for i in ${HSOURCES}; do \
  170.         ( /bin/grep '^#[     ]*include[     ]*"' $$i | sed -n \
  171.             -e 's/[^"]*"\([^"]*\)".*/\1/' \
  172.             -e H -e '$$g' -e '$$s/\n/ /g' \
  173.             -e '$$s/.*/'$$i': &\
  174.                 touch '$$i/p \
  175.             >> makedep); done
  176.     @echo '/^# DO NOT DELETE THIS LINE/+2,$$d' >eddep
  177.     @echo '$$r makedep' >>eddep
  178.     @echo 'w' >>eddep
  179.     @cp Makefile Makefile.bak
  180.     ed - Makefile < eddep
  181.     @rm -f eddep makedep
  182.     @echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile
  183.     @echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile
  184.     @echo '# see make depend above' >> Makefile
  185.     - diff Makefile Makefile.bak
  186.     @rm -f Makefile.bak
  187.  
  188. # DO NOT DELETE THIS LINE
  189.  
  190. decl.o:  hack.h mkroom.h
  191. apply.o:  hack.h edog.h mkroom.h
  192. bones.o:  hack.h
  193. hack.o:  hack.h
  194. cmd.o:  hack.h func_tab.h
  195. do.o:  hack.h
  196. do_name.o:  hack.h
  197. do_wear.o:  hack.h
  198. dog.o:  hack.h edog.h mkroom.h
  199. dogmove.o:  hack.h mfndpos.h edog.h mkroom.h
  200. dothrow.o:  hack.h
  201. eat.o:  hack.h
  202. end.o:  hack.h
  203. engrave.o:  hack.h
  204. fight.o:  hack.h
  205. fountain.o:  hack.h mkroom.h
  206. invent.o:  hack.h wseg.h
  207. ioctl.o:  config.h
  208. lev.o:  hack.h mkroom.h wseg.h
  209. makemon.o:  hack.h
  210. mhitu.o:  hack.h
  211. mklev.o:  hack.h mkroom.h
  212. mkmaze.o:  hack.h mkroom.h
  213. mkobj.o:  hack.h
  214. mkshop.o:  hack.h mkroom.h eshk.h
  215. mon.o:  hack.h mfndpos.h
  216. monmove.o:  hack.h mfndpos.h
  217. monst.o:  hack.h eshk.h
  218. o_init.o:  config.h objects.h onames.h
  219. objnam.o:  hack.h
  220. options.o:  hack.h
  221. pager.o:  hack.h
  222. polyself.o: hack.h
  223. potion.o:  hack.h
  224. pray.o:  hack.h
  225. pri.o:  hack.h
  226. prisym.o:  hack.h wseg.h
  227. read.o:  hack.h
  228. rip.o:  hack.h
  229. rumors.o:  hack.h
  230. save.o:  hack.h
  231. search.o:  hack.h
  232. shk.o:  hack.h mfndpos.h mkroom.h eshk.h
  233. shknam.o:  hack.h
  234. sit.o: hack.h
  235. spell.o:  hack.h
  236. steal.o:  hack.h
  237. termcap.o:  hack.h
  238. timeout.o:  hack.h
  239. topl.o:  hack.h
  240. topten.o:  hack.h
  241. track.o:  hack.h
  242. trap.o:  hack.h edog.h mkroom.h
  243. u_init.o:  hack.h
  244. vault.o:  hack.h mkroom.h
  245. wield.o:  hack.h
  246. wizard.o:  hack.h
  247. worm.o:  hack.h wseg.h
  248. worn.o:  hack.h
  249. write.o:  hack.h
  250. zap.o:  hack.h
  251. version.o:  hack.h date.h
  252. extern.h: config.h spell.h obj.h
  253.     touch extern.h
  254. hack.h: extern.h flag.h gold.h monst.h objclass.h rm.h trap.h you.h 
  255.     touch hack.h
  256. objects.h:  config.h objclass.h
  257.     touch objects.h
  258. you.h: config.h onames.h permonst.h 
  259.     touch you.h
  260. # DEPENDENCIES MUST END AT END OF FILE
  261. # IF YOU PUT STUFF HERE IT WILL GO AWAY
  262. # see make depend above
  263.