home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d1xx / d189 / nethack.lha / NetHack / eenaux.zoo / aux / Makefile.unix < prev    next >
Makefile  |  1988-07-01  |  8KB  |  278 lines

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