home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume13 / dominion / part15 / Makefile next >
Makefile  |  1992-02-11  |  14KB  |  388 lines

  1. ######################################################################
  2. #
  3. # Copyright (C) 1990 Free Software Foundation, Inc.
  4. # Written by the dominion project.
  5. #
  6. # This file is part of dominion.
  7. #
  8. # dominion is free software; you can redistribute it and/or modify it
  9. # under the terms of the GNU General Public License as published by the Free
  10. # Software Foundation; either version 1, or (at your option) any later version.
  11. # dominion is distributed in the hope that it will be useful, but WITHOUT
  12. # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  13. # FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
  14. # details.
  15. # You should have received a copy of the GNU General Public License along with
  16. # dominion; see the file COPYING.  If not, write to the Free Software
  17. # Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  
  18. #
  19. #######################################################################
  20.  
  21. SHELL=/bin/sh
  22.  
  23. # Here is my own terminal rule for RCS, so that it DOES check
  24. # out the file if the RCS version is newer.  Comment this out
  25. # and suffer, if you don't have GNU make.  Or you can use the
  26. # "user" Makefile.
  27.  
  28. % :: RCS/%,v
  29.     co $<
  30.  
  31. # version number
  32. VERSION=1.06
  33. # directories for binaries and lib files
  34. BINDIR = /usr/games
  35. #BINDIR = .
  36. #LIBDIR = /usr/games/lib/dominion
  37. LIBDIR = lib
  38. THIS_GAME_LIBDIR = $(LIBDIR)
  39. # MAILDIR is a subdir of THIS_GAME_LIBDIR
  40. MAILDIR = mail
  41. NEWSDIR = news
  42. NGDB_FILE = groups
  43. # NEWS_GROUP is the name of the news group with general update information
  44. NEWS_GROUP = News
  45. #This is the newsgroup database. Where news info is stored.
  46. EXECDIR = exec
  47. DOCDIR = doc
  48. MISCDIR = misc
  49. MAGDIR = magic
  50. OPTDIR = options
  51.  
  52. # DEFAULT_MAIL is a basic mail program, to be used if the user has
  53. # no environment variable or option for DOMINION_MAIL.  This should be
  54. # "Mail" or "mailx", or any mail program that allows you to choose
  55. # whic message to read.  The old "binmail" is out.
  56. DEFAULT_MAIL = elm
  57.  
  58. #MAILER is the mail program that will be sending forwarded mail.
  59. #It should be set up in such a way that you can just put addresses
  60. #after it and then type the message to send mail.  
  61. #MAILER = "/usr/ucb/mail -s Dominion_Mail"
  62. MAILER = /bin/mail
  63.  
  64. # DEFAULT_EDITOR is a basic visual editor, to be used if the user has
  65. # no environment variable or option for VISUAL.  This could be
  66. # micro-gnu-emacs (mg), or emacs, or vi, or anything your users use.
  67. DEFAULT_EDITOR = mg
  68.  
  69. # location of the info_intro file, used for the online manual,
  70. # with respect to the lib directory
  71. INFO_INTRO=info_intro
  72.  
  73. # choose a graphics interface.  choice is only cur_stuff.o for now
  74. GRAPHICS_STUFF = cur_stuff.o
  75. GRAPHICS = -DCURSES
  76.  
  77. CC = cc
  78. # put -g if you want to debug, or -O if you want to optimize
  79. DEBUGFLAGS = -g
  80. LDFLAGS = $(DEBUGFLAGS)
  81. LIBS = -lcurses -ltermcap -lm
  82.  
  83. # put -DBSD instead of -DSYSV if you are on Berkeley UNIX
  84.  
  85. # put -DUID_SECURITY if you are running unix and you don't
  86. #  want users to poke around game files with shell escapes.
  87. #  This requires the UNIX system setuid() calls and such, and
  88. #  is quite necessary on UNIX.  Massive cheating can go on
  89. #  otherwise.  Without UNIX, the super user will have to trust
  90. #  the players to not look at the game files.
  91.  
  92. # put -DHAVE_STRSTR if your system has strstr().  We provide
  93. #  a replacement which is just a quick hack.  SGI and HP-UX
  94. #  are both known to have strstr().
  95.  
  96. # put -DINTERNAL_MAIL if you want to use the internal mail program
  97. # (in case external mail programs don't interface well to dominion
  98. # on your system).  If you want to use the DEFAULT_MAIL defined
  99. # above, remove -DINTERNAL_MAIL
  100.  
  101. # put -DPMAX if you are using ultrix. This will fix the mvwprintw
  102. # curses bug that occurs under ultrix.
  103.  
  104. # put -DANDREW if you are using andrew games authentication
  105.  
  106. CFLAGS = $(DEBUGFLAGS) $(GRAPHICS) -DDEF_LIBDIR=\"$(LIBDIR)\" -DDEFAULT_MAIL=\"$(DEFAULT_MAIL)\"  -DMAILER=\"$(MAILER)\" -DDEFAULT_EDITOR=\"$(DEFAULT_EDITOR)\" -DNEWS_GROUP=\"$(NEWS_GROUP)\" -DINFO_INTRO=\"$(INFO_INTRO)\" -DVERSION=\"$(VERSION)\" -DSYSV -DUID_SECURITY -DINTERNAL_MAIL
  107.  
  108. # files relating to documentation, history of the game...
  109. DOC_FILES = README ChangeLog TASKS THE_STORY dominion.tex gm.tex dominion.6 \
  110.     dominion.info refcard info_intro
  111.  
  112. # all files that go in MAGDIR
  113. MAG_FILES = mag_orders mag_Master mag_Diana mag_Necromancy mag_Yavanna \
  114.     mag_Demonology mag_Monsters mag_Neptune mag_Chess mag_Aule \
  115.     mag_Inferno mag_Avian mag_Unity mag_Time mag_Insects
  116.  
  117. # all files that go in MISCDIR
  118. MISC_FILES = races npcs army_types spirit_types techno_levels
  119.  
  120. LIB_FILES = $(DOC_FILES) $(MAG_FILES) $(MISC_FILES)
  121.  
  122. # all files that are part of the distribution
  123. DIST_FILES = Makefile $(DOC_FILES) \
  124.         $(MAG_FILES) $(MISC_FILES) dominion.h misc.h army.h news.h \
  125.         costs.h cur_stuff.h dominion.c world.c nation.c user.c ext.c \
  126.         file.c misc.c init.c commands.c help.c menus.c cur_stuff.c \
  127.         diplomacy.c army.c reports.c spy.c makeworld.c addnation.c \
  128.         update.c armylib.c mail.c techno.c diplolib.c battle.c \
  129.         maglib.c trade.c trademenu.c news.c c_news.c npc.c npclib.c \
  130.         economy.c transport.c spells.c spelllib.c root.c cinfo.c \
  131.         budget.c construct.c int_mail.c movement.c printmap.c \
  132.         addnews.sh COPYING
  133.  
  134. all: dominion dom_make dom_add dom_update dom_print $(MAG_FILES) $(MISC_FILES) \
  135.         refcard info_intro
  136.  
  137. lib-files: all $(MAG_FILES) $(MISC_FILES) refcard info_intro \
  138.         dominion.info addnews.sh
  139.     -find $(THIS_GAME_LIBDIR) -exec chmod u+w {} \;
  140.     -mkdir $(THIS_GAME_LIBDIR)
  141.     -mkdir $(THIS_GAME_LIBDIR)/$(MAILDIR)
  142.     -mkdir $(THIS_GAME_LIBDIR)/$(NEWSDIR)
  143.     -mkdir $(THIS_GAME_LIBDIR)/$(EXECDIR)
  144.     -mkdir $(THIS_GAME_LIBDIR)/$(DOCDIR)
  145.     -mkdir $(THIS_GAME_LIBDIR)/$(MISCDIR)
  146.     -mkdir $(THIS_GAME_LIBDIR)/$(MAGDIR)
  147.     -mkdir $(THIS_GAME_LIBDIR)/$(OPTDIR)
  148. #    -cp $(DOC_FILES) $(THIS_GAME_LIBDIR)/$(DOCDIR)
  149.     -cp refcard dominion.info $(THIS_GAME_LIBDIR)/$(DOCDIR)
  150.     -cp info_intro $(THIS_GAME_LIBDIR)
  151.     -cp $(MAG_FILES) $(THIS_GAME_LIBDIR)/$(MAGDIR)
  152.     -cp $(MISC_FILES) $(THIS_GAME_LIBDIR)/$(MISCDIR)
  153.     find $(THIS_GAME_LIBDIR) -exec chmod g-rw {} \; -exec chmod o-rw {} \;
  154.  
  155. install: all
  156.     -csh -c "cp dominion dom_make dom_add dom_update $(BINDIR)"
  157.     cp dominion.6 /usr/man/man6
  158.     echo "remember to make the program *dominion* setuid to you"
  159.     echo "you can do this with"
  160.     echo "    chmod u+s dominion"
  161.  
  162. # the name of GNU emacs on your system
  163. # (not necessary unless you build dominion.info; see rule below)
  164. EMACS = emacs
  165. # startup file for the latexinfo package on your system
  166. # (not necessary unless you build dominion.info; see rule below)
  167. LTI_START = /umax/rosalia/el/ltistart.el
  168. # where the emacs info files go
  169. # (not really important unless you run cinfo() as standalone)
  170. INFO_DIR = /usr/local/lib/emacs/info
  171.  
  172. install-info: dominion.info
  173.     cp dominion.info $(INFO_DIR)
  174.  
  175. clean-lib:
  176.     -rm -rf $(THIS_GAME_LIBDIR)
  177.  
  178. new-world: all clean-lib lib-files
  179.     @echo
  180.     @echo 'all data cleared, and lib files installed'
  181.     @echo
  182.     ./dom_make -d $(THIS_GAME_LIBDIR)
  183.     @echo 'newsgroup ' $(NEWS_GROUP) ' created automatically'
  184.     -mkdir $(THIS_GAME_LIBDIR)/$(NEWSDIR)/$(NEWS_GROUP)
  185.     @echo $(NEWS_GROUP) ' 1 0 0' > $(THIS_GAME_LIBDIR)/$(NEWSDIR)/$(NGDB_FILE)
  186.     /bin/sh ./addnews.sh $(THIS_GAME_LIBDIR)/$(NEWSDIR) $(NGDB_FILE)
  187.  
  188. # use dominiontmp so you can load the program while it is being used
  189. #dominion: dominiontmp
  190. #    cp dominiontmp dominion
  191.  
  192. dominion: dominion.o world.o nation.o user.o ext.o file.o misc.o init.o \
  193.         trademenu.o budget.o \
  194.         commands.o help.o menus.o diplomacy.o reports.o spy.o trade.o \
  195.         army.o armylib.o mail.o diplolib.o maglib.o $(GRAPHICS_STUFF) \
  196.         news.o c_news.o economy.o transport.o spells.o spelllib.o \
  197.         root.o cinfo.o construct.o int_mail.o movement.o
  198.     $(CC) $(LDFLAGS) -o dominion dominion.o world.o nation.o user.o ext.o \
  199.         file.o budget.o \
  200.         misc.o init.o trademenu.o commands.o help.o menus.o \
  201.         diplomacy.o reports.o spy.o trade.o army.o armylib.o mail.o \
  202.         diplolib.o maglib.o $(GRAPHICS_STUFF) news.o c_news.o \
  203.         economy.o transport.o spells.o spelllib.o root.o cinfo.o \
  204.         construct.o int_mail.o movement.o $(LIBS)
  205.  
  206. lint:
  207.     lint $(CFLAGS) *.c
  208.  
  209. dom_make: makeworld.o file.o misc.o ext.o armylib.o diplolib.o world.o \
  210.         economy.o movement.o
  211.     $(CC) $(LDFLAGS) -o dom_make makeworld.o file.o misc.o ext.o \
  212.         armylib.o diplolib.o world.o economy.o movement.o $(LIBS)
  213.  
  214. dom_add: addnation.o file.o misc.o ext.o armylib.o diplolib.o world.o \
  215.         economy.o movement.o
  216.     $(CC) $(LDFLAGS) -o dom_add addnation.o file.o misc.o ext.o armylib.o \
  217.         diplolib.o world.o economy.o movement.o \
  218.         $(LIBS)
  219.  
  220. dom_update: update.o file.o misc.o nation.o armylib.o ext.o mail.o \
  221.         techno.o battle.o diplolib.o world.o maglib.o trade.o npc.o \
  222.         economy.o spelllib.o news.o movement.o npclib.o
  223.     $(CC) $(LDFLAGS) -o dom_update update.o file.o misc.o nation.o ext.o \
  224.         armylib.o mail.o techno.o battle.o diplolib.o world.o \
  225.         maglib.o trade.o npc.o economy.o spelllib.o news.o movement.o \
  226.         npclib.o $(LIBS)
  227.  
  228.  
  229. dom_print: printmap.o file.o misc.o nation.o armylib.o ext.o maglib.o\
  230.         diplolib.o world.o economy.o movement.o
  231.     $(CC) $(LDFLAGS) -o dom_print printmap.o file.o misc.o nation.o \
  232.         ext.o armylib.o diplolib.o world.o economy.o movement.o \
  233.         maglib.o $(LIBS)
  234.  
  235. #dom_trans: trans.o file.o misc.o nation.o armylib.o ext.o mail.o \
  236. #        techno.o battle.o diplolib.o world.o maglib.o trade.o npc.o \
  237. #        economy.o spelllib.o news.o movement.o
  238. #    $(CC) $(LDFLAGS) -o dom_trans trans.o file.o misc.o nation.o ext.o \
  239. #        armylib.o mail.o techno.o battle.o diplolib.o world.o \
  240. #        maglib.o trade.o npc.o economy.o spelllib.o news.o \
  241. #        movement.o $(LIBS)
  242.  
  243. # you might want to comment this out if you don't have LaTeXinfo.
  244. # the second part will unpack dominion.info from a mail/news distribution.
  245. dominion.info: dominion.tex
  246.     -/bin/rm -f info.bak
  247.     -mv dominion.info info.bak
  248.     -cp dominion.tex junk.tex
  249.     -chmod 644 junk.tex
  250.     -$(EMACS) junk.tex -l $(LTI_START) -f nodify-file -f latexinfo-format-buffer -f save-buffer -kill
  251.     -rm junk.tex
  252.     -touch dominion.info
  253.  
  254. # Now that I use "shar2" I don't need all this stuff with uuencode
  255. # and split.  it will be done automatically while unpacking.
  256.  
  257. # DO NOT DELETE THIS LINE -- make depend uses it
  258. addnation.o: addnation.c army.h dominion.h misc.h
  259. army.o: army.c army.h cur_stuff.h dominion.h misc.h
  260. armylib.o: army.h armylib.c dominion.h misc.h
  261. battle.o: army.h battle.c dominion.h misc.h
  262. c_news.o: c_news.c dominion.h news.h
  263. cinfo.o: cinfo.c
  264. commands.o: army.h commands.c dominion.h misc.h
  265. cur_stuff.o: cur_stuff.c cur_stuff.h dominion.h misc.h
  266. diplolib.o: diplolib.c dominion.h misc.h
  267. diplomacy.o: diplomacy.c dominion.h misc.h
  268. dominion.o: dominion.c dominion.h misc.h
  269. economy.o: army.h costs.h dominion.h economy.c misc.h
  270. ext.o: dominion.h ext.c misc.h
  271. file.o: dominion.h file.c misc.h
  272. help.o: cur_stuff.h dominion.h help.c
  273. init.o: dominion.h init.c
  274. int_mail.o: dominion.h int_mail.c
  275. maglib.o: dominion.h maglib.c misc.h
  276. mail.o: dominion.h mail.c
  277. makeworld.o: dominion.h makeworld.c misc.h
  278. menus.o: army.h dominion.h menus.c misc.h
  279. misc.o: army.h cur_stuff.h dominion.h misc.c misc.h
  280. movement.o: army.h dominion.h movement.c misc.h
  281. nation.o: army.h dominion.h misc.h nation.c
  282. news.o: dominion.h news.c news.h
  283. npc.o: army.h dominion.h misc.h npc.c
  284. npclib.o: army.h dominion.h misc.h npclib.c
  285. reports.o: dominion.h misc.h reports.c
  286. budget.o: dominion.h misc.h budget.c
  287. root.o: dominion.h root.c
  288. spelllib.o: army.h dominion.h misc.h spelllib.c
  289. spells.o: army.h dominion.h misc.h spells.c
  290. spy.o: dominion.h misc.h spy.c
  291. techno.o: dominion.h misc.h techno.c
  292. trade.o: dominion.h misc.h trade.c
  293. trademenu.o: trademenu.c
  294. transport.o: army.h costs.h dominion.h misc.h transport.c
  295. construct.o: army.h costs.h dominion.h misc.h construct.c
  296. update.o: army.h dominion.h misc.h update.c
  297. user.o: dominion.h misc.h user.c
  298. world.o: army.h dominion.h misc.h world.c
  299. # DO NOT DELETE THIS 2nd LINE -- make depend uses it
  300.  
  301. # rules for RCS
  302.  
  303. # check everything in
  304. ci_all:
  305.     ci $(DIST_FILES)
  306.  
  307. co_all:
  308.     co $(DIST_FILES)
  309.  
  310. clean:
  311.     /bin/rm -f *.o dom_add dom_make dominion dominiontmp dom_update \
  312.         a.out core TAGS info.bak *.dvi *.log *.aux *.err *.toc \
  313.         *.jep *.cp *.fn *.pg *.ky *.vr *.tp *~
  314.  
  315. #.DEFAULT:
  316. #    co $@
  317.  
  318. #menus.c: RCS/menus.c,v
  319. #    co menus.c
  320.  
  321. # everything after this is used to make the ftp distribution,
  322. # or other such stuff.
  323.  
  324. #dominion.info.Z: dominion.info
  325. #    compress -c dominion.info > dominion.info.Z
  326.  
  327. #info.Z.uue: dominion.info.Z
  328. #    uuencode dominion.info.Z dominion.info.Z > info.Z.uue
  329.  
  330. dominion.shr.Z: dominion.shr
  331.     -/bin/rm -f dominion.shr.Z
  332.     compress dominion.shr
  333.  
  334. dominion.shr: $(DIST_FILES)
  335.     shar $(DIST_FILES) > dominion.shr
  336.  
  337. dominion.tar.Z: $(DIST_FILES) dominion.info
  338.     tar cvf dominion.tar $(DIST_FILES)
  339.     compress dominion.tar
  340.  
  341. dominion.dvi.Z: dominion.dvi
  342.     compress dominion.dvi
  343.  
  344. dominion.dvi: dominion.tex
  345.     latex dominion
  346.  
  347. dominion.PS.Z: dominion.PS
  348.     compress dominion.PS
  349.  
  350. dominion.PS: dominion.dvi
  351.     dvips dominion > dominion.PS
  352.  
  353. # for mail (and news) distribution
  354. mail-dist: $(DIST_FILES)
  355. #    split -1000 dominion.tex dominion.tex
  356. #    makekit -s60k -nDOM-$(VERSION)- $(DIST_FILES) info.Z.uue
  357. # now use the "shar2" program which can split large files if
  358. # necessary (> 60K).  call with verbose and mixed-ascii-binary
  359. # options.
  360.     shar2 -v -M -oDOM-$(VERSION)- -l60 $(DIST_FILES)
  361.     touch mail-dist
  362.  
  363. # this is to make it available by anonymous ftp
  364. FTP_DIR=/usr/ftp/pub/dominion-$(VERSION)
  365.  
  366. ftp-update: dominion.tar.Z dominion.dvi dominion.PS mail-dist dominion.info
  367.     mv dominion.tar.Z $(FTP_DIR)/dominion-$(VERSION).tar.Z
  368.     compress DOM-$(VERSION)-*
  369.     mv DOM-$(VERSION)-*.Z $(FTP_DIR)
  370.     compress dominion.PS
  371.     mv dominion.PS.Z $(FTP_DIR)
  372.     compress dominion.dvi
  373.     mv dominion.dvi.Z $(FTP_DIR)
  374.     compress -c dominion.info > $(FTP_DIR)/dominion.info.Z
  375.     compress -c /usr/local/lib/tex/macros/latexinfo.sty > \
  376.         $(FTP_DIR)/latexinfo.sty.Z
  377.     compress -c /usr/local/lib/tex/macros/tabular.sty > \
  378.         $(FTP_DIR)/tabular.sty.Z
  379.  
  380. UUCPP=/usr/spool/uucppublic
  381.  
  382. to-mozart: dominion.shr
  383.     compress dominion.shr
  384.     mv dominion.shr.Z $(UUCPP)
  385.     uucp $(UUCPP)/dominion.shr.Z mozart!$(UUCPP)
  386.