home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / gnu / nethack-3.1 / sys / mac / NHmake.hqx / NetHack.make
Encoding:
Text File  |  1993-01-25  |  24.0 KB  |  734 lines

  1. # This is a complete MPW makefile for Nethack and all its associated files
  2. # Requires MPW C3.2º3 or later. Earlier versions will fail horribly because
  3. # they can't cope with /* /* */ comments
  4. #
  5. # For NetHack 3.1 Nov 1991
  6. #
  7. # by Michael¬ Hamel and Ross Brown 1991 : michael@otago.ac.nz
  8.  
  9. #--------------------------------------------------------------------------
  10. #
  11. # BEFORE YOU BUILD FOR THE FIRST TIME
  12. #  Set this equate to the folder containing all the NetHack source folders
  13.  
  14. Top          = {MPW}nh31:
  15.  
  16. #  Set the default directory to {Top}
  17. #  Move NetHack.make into {Top}
  18. #  Make two new empty folders in top:
  19. #    - Obj for the object files
  20. #    - Dungeon for the completed game
  21. #  Ensure that you have at least 7000K allocated to the MPW Shell
  22. #
  23. #--------------------------------------------------------------------------
  24.  
  25. # Set up symbols for folders from the distribution
  26. Src          = {Top}Src:
  27. Util        = {Top}Util:
  28. Dat           = {Top}Dat:
  29. Include    = {Top}Include:
  30. MacDir       = {Top}Sys:Mac:
  31. Share       = {Top}Sys:Share:
  32.  
  33. # These two folders are new
  34. ObjDir     = {Top}Obj:                # "Temporary" stuff
  35. Results       = {Top}Dungeon:            # Where the game goes
  36.  
  37. # Type and creator - note that we use "PREF" for all non-save files
  38. # currently. Since we will integrate the data files into the game
  39. # sooner or later, this doesn't matter much.
  40. FileType   = PREF
  41. FileCreator= nh31
  42.  
  43. # NetHack is an abstract target which in fact consists of:
  44.  
  45. SpecialLevels = "{Results}"BigRoom.lev  ╢
  46.                 "{Results}"Castle.lev   ╢
  47.                 "{Results}"air.lev        ╢
  48.                 "{Results}"Medusa-1.lev ╢
  49.                 "{Results}"Quest.Dat     ╢
  50.                 "{Results}"Valley.lev    ╢
  51.                 "{Results}"Oracle.lev   ╢
  52.                 "{Results}"Tower1.lev   ╢
  53.                 "{Results}"A-start.lev  ╢
  54.                 "{Results}"B-start.lev  ╢
  55.                 "{Results}"C-start.lev  ╢
  56.                 "{Results}"E-start.lev  ╢
  57.                 "{Results}"H-start.lev  ╢
  58.                 "{Results}"K-start.lev  ╢
  59.                 "{Results}"P-start.lev  ╢
  60.                 "{Results}"R-start.lev  ╢
  61.                 "{Results}"S-start.lev  ╢
  62.                 "{Results}"T-start.lev  ╢
  63.                 "{Results}"V-start.lev  ╢
  64.                 "{Results}"W-start.lev  ╢
  65.                 "{Results}"Mine_End.lev ╢
  66.                 "{Results}"knox.lev        ╢
  67.                 "{Results}"wizard1.lev
  68.  
  69. DataFiles     =    "{Results}"Dungeon    ╢
  70.                 "{Results}"Record   ╢
  71.                 "{Results}"NetHack╢ Defaults   ╢
  72.                 "{Results}"Data     ╢
  73.                 "{Results}"Rumors    ╢
  74.                 "{Results}"Oracles    ╢
  75.                 "{Results}"Cmdhelp
  76.                 
  77. NetHack ─   {SpecialLevels} {DataFiles} "{Results}"NetHack 
  78.  
  79. # These files are seperate on other machines, but here they are built
  80. # into the application by NetHack.r
  81.  
  82. BuiltInData =   "{Dat}"hh             ╢
  83.                 "{Dat}"History         ╢
  84.                 "{Dat}"License         ╢
  85.                 "{Dat}"Help         ╢
  86.                 "{Dat}"Wizhelp         ╢
  87. #                "{Dat}"Cmdhelp         ╢
  88.                 "{Dat}"Opthelp        ╢
  89.                 "{MacDir}"Machelp    ╢
  90.                 "{MacDir}"News        ╢
  91.                 "{ObjDir}"Options
  92.                            
  93.  
  94. # For debugging: if you change this you need to discard everything in {Objs}
  95. SADEOptions = # -sym on
  96.  
  97. # <32K file-level segmentation scheme
  98. LinkType = -mf -srt                                     ╢
  99.            -sg Main=allmain,macmain,random,rnd,STDCLIB     ╢
  100.            -sg ARes=display                                ╢
  101.            -sg BRes=do_wear,cmd,track                    ╢
  102.            -sg CRes=engrave,dungeon,dbridge                ╢
  103.            -sg DRes=monmove,mon                            ╢
  104.            -sg ERes=mondata                                ╢
  105.            -sg FRes=macwin
  106. BuildType = -m -s {Default}     # Make a new segment for each file by default 
  107.  
  108. # Alternatively you can use 
  109. # LinkType = -model far
  110. # BuildType = -model far -d MODEL_FAR
  111.  
  112. # We use the default rule that .c.o files depend on .c files: set up these
  113. # directory variables so it knows where to find them
  114.  
  115. "{ObjDir}" ─ "{Src}" "{Util}" "{MacDir}" "{Share}"
  116.   
  117. # Compiler options. We set up to look in the Mac dir first for include files
  118. # so we can take over hack.h and use a dump file
  119. COptions = -r                             # Warn about undefined functions         ╢
  120.            -i "{MacDir}","{Include}"     # Where to look for include files         ╢
  121.            {BuildType}                    ╢
  122.            -mbg 16                        ╢
  123.            -d VISION_TABLES                ╢
  124.            {SADEOptions}
  125.  
  126. NetHackLink = {LinkType} -c 'nh31' -t APPL -mf ╢
  127.               {SADEOptions}   #  -map >link.map 
  128.  
  129. MPWToolLink    = -br on -srt -d -c 'MPS ' -t MPST -sn %A5Init=Init
  130.  
  131.  
  132. # ------------ The include files depend on one another ---------------
  133. # Rather than touching them which makes it look as though they have changed
  134. # when they haven't and generates unnecessary backups, we define symbols:
  135.  
  136. macconf.h = "{Include}"macconf.h "{Include}"system.h
  137.  
  138. pcconf.h = "{Include}"pcconf.h "{Include}"micro.h "{Include}"system.h
  139.  
  140. global.h = "{Include}"global.h "{Include}"coord.h {pcconf.h} {macconf.h}
  141.  
  142. config.h = "{Include}"config.h "{Include}"tradstdc.h {global.h}
  143.  
  144. youprop.h = "{Include}"youprop.h "{Include}"prop.h {permonst.h} "{Include}"mondata.h ╢
  145.             "{Include}"pm.h
  146.  
  147. you.h = "{Include}"you.h "{Include}"attrib.h "{Include}"monst.h {youprop.h}
  148.  
  149. decl.h    = "{Include}"decl.h    "{Include}"spell.h "{Include}"color.h "{Include}"obj.h ╢
  150.           {you.h} "{Include}"onames.h
  151.  
  152. display.h = "{Include}"display.h "{Include}"vision.h "{Include}"mondata.h
  153.  
  154. emin.h = "{Include}"emin.h "{Include}"dungeon.h
  155.  
  156. epri.h = "{Include}"epri.h "{Include}"dungeon.h
  157.  
  158. eshk.h = "{Include}"eshk.h "{Include}"dungeon.h
  159.  
  160.  
  161. permonst.h = "{Include}"permonst.h     "{Include}"monattk.h "{Include}"monflag.h
  162.  
  163. vault.h = "{Include}"vault.h "{Include}"dungeon.h
  164.             
  165. #------------------- Use a dump file for hack.h to speed compiles -----------------
  166. # We do this by having our own hack.h in :sys:mac which just grabs the dump file
  167. # from Obj. The dependencies are set up to build the dump file if its missing
  168.  
  169. realhack.h = "{Include}"hack.h {config.h} "{Include}"dungeon.h {decl.h} ╢
  170.              "{Include}"monsym.h "{Include}"mkroom.h "{Include}"objclass.h ╢
  171.              "{Include}"trap.h "{Include}"flag.h "{Include}"rm.h ╢
  172.              {display.h} "{Include}"wintype.h "{Include}"engrave.h ╢
  173.              "{Include}"rect.h  "{Include}"trampoli.h "{Include}"extern.h 
  174.  
  175. hack.h = "{ObjDir}"hack.hdump
  176.  
  177. # This compile is done solely for the side effect of generating hack.hdump
  178. "{ObjDir}"hack.hdump ─ {realhack.h} "{MacDir}"mhdump.c
  179.     C -i "{Include}" {SADEOptions} "{MacDir}"mhdump.c -o "{ObjDir}"mhdump.c.o
  180.  
  181.  
  182. "{Include}"lev_comp.h ─ "{Share}"lev_comp.h
  183.     duplicate -y "{Share}"lev_comp.h "{Include}"lev_comp.h
  184.  
  185. "{Include}"dgn_comp.h ─ "{Share}"dgn_comp.h
  186.     duplicate -y "{Share}"dgn_comp.h "{Include}"dgn_comp.h
  187.  
  188. #------------------- NetHack objects -----------------
  189.  
  190. CObjs = "{ObjDir}"allmain.c.o ╢
  191.         "{ObjDir}"alloc.c.o ╢
  192.         "{ObjDir}"apply.c.o ╢
  193.         "{ObjDir}"artifact.c.o ╢
  194.         "{ObjDir}"attrib.c.o ╢
  195.         "{ObjDir}"ball.c.o ╢
  196.         "{ObjDir}"bones.c.o ╢
  197.         "{ObjDir}"botl.c.o ╢
  198.         "{ObjDir}"cmd.c.o ╢
  199.         "{ObjDir}"dbridge.c.o ╢
  200.         "{ObjDir}"decl.c.o ╢
  201.         "{ObjDir}"detect.c.o ╢
  202.         "{ObjDir}"display.c.o ╢
  203.         "{ObjDir}"do.c.o ╢
  204.         "{ObjDir}"do_name.c.o ╢
  205.         "{ObjDir}"do_wear.c.o ╢
  206.         "{ObjDir}"dog.c.o ╢
  207.         "{ObjDir}"dogmove.c.o ╢
  208.         "{ObjDir}"dokick.c.o ╢
  209.         "{ObjDir}"dothrow.c.o ╢
  210.         "{ObjDir}"drawing.c.o ╢
  211.         "{ObjDir}"dungeon.c.o ╢
  212.         "{ObjDir}"eat.c.o ╢
  213.         "{ObjDir}"end.c.o ╢
  214.         "{ObjDir}"engrave.c.o ╢
  215.         "{ObjDir}"exper.c.o ╢
  216.         "{ObjDir}"explode.c.o ╢
  217.         "{ObjDir}"extralev.c.o ╢
  218.         "{ObjDir}"files.c.o ╢
  219.         "{ObjDir}"fountain.c.o ╢
  220.         "{ObjDir}"hack.c.o ╢
  221.         "{ObjDir}"hacklib.c.o ╢
  222.         "{ObjDir}"invent.c.o ╢
  223.         "{ObjDir}"lock.c.o ╢
  224.         "{ObjDir}"macunix.c.o ╢
  225.         "{ObjDir}"macfile.c.o ╢
  226.         "{ObjDir}"mstring.c.o ╢
  227.         "{ObjDir}"macsnd.c.o ╢
  228.         "{ObjDir}"macwin.c.o ╢
  229.         "{ObjDir}"maccurs.c.o ╢
  230.         "{ObjDir}"makemon.c.o ╢
  231.         "{ObjDir}"mcastu.c.o ╢
  232.         "{ObjDir}"mhitm.c.o ╢
  233.         "{ObjDir}"mhitu.c.o ╢
  234.         "{ObjDir}"minion.c.o ╢
  235.         "{ObjDir}"mklev.c.o ╢
  236.         "{ObjDir}"mkmap.c.o ╢
  237.         "{ObjDir}"mkmaze.c.o ╢
  238.         "{ObjDir}"mkobj.c.o ╢
  239.         "{ObjDir}"mkroom.c.o ╢
  240.         "{ObjDir}"mmodal.c.o ╢
  241.         "{ObjDir}"mon.c.o ╢
  242.         "{ObjDir}"mondata.c.o ╢
  243.         "{ObjDir}"monmove.c.o ╢
  244.         "{ObjDir}"monst.c.o ╢
  245.         "{ObjDir}"monstr.c.o ╢
  246.         "{ObjDir}"mplayer.c.o ╢
  247.         "{ObjDir}"mthrowu.c.o ╢
  248.         "{ObjDir}"muse.c.o ╢
  249.         "{ObjDir}"music.c.o ╢
  250.         "{ObjDir}"o_init.c.o ╢
  251.         "{ObjDir}"objects.c.o ╢
  252.         "{ObjDir}"objnam.c.o ╢
  253.         "{ObjDir}"options.c.o ╢
  254.         "{ObjDir}"pager.c.o ╢
  255.         "{ObjDir}"pickup.c.o ╢
  256.         "{ObjDir}"pline.c.o ╢
  257.         "{ObjDir}"polyself.c.o ╢
  258.         "{ObjDir}"potion.c.o ╢
  259.         "{ObjDir}"pray.c.o ╢
  260.         "{ObjDir}"priest.c.o ╢
  261.         "{ObjDir}"quest.c.o ╢
  262.         "{ObjDir}"questpgr.c.o ╢
  263.         "{ObjDir}"random.c.o ╢
  264.         "{ObjDir}"read.c.o ╢
  265.         "{ObjDir}"rect.c.o ╢
  266.         "{ObjDir}"restore.c.o ╢
  267.         "{ObjDir}"rip.c.o ╢
  268.         "{ObjDir}"rnd.c.o ╢
  269.         "{ObjDir}"rumors.c.o ╢
  270.         "{ObjDir}"save.c.o ╢
  271.         "{ObjDir}"shk.c.o ╢
  272.         "{ObjDir}"shknam.c.o ╢
  273.         "{ObjDir}"sit.c.o ╢
  274.         "{ObjDir}"sounds.c.o ╢
  275.         "{ObjDir}"sp_lev.c.o ╢
  276.         "{ObjDir}"spell.c.o ╢
  277.         "{ObjDir}"steal.c.o ╢
  278.         "{ObjDir}"timeout.c.o ╢
  279.         "{ObjDir}"mactopl.c.o ╢
  280.         "{ObjDir}"topten.c.o ╢
  281.         "{ObjDir}"track.c.o ╢
  282.         "{ObjDir}"trap.c.o ╢
  283.         "{ObjDir}"u_init.c.o ╢
  284.         "{ObjDir}"uhitm.c.o ╢
  285.         "{ObjDir}"vault.c.o ╢
  286.         "{ObjDir}"version.c.o ╢
  287.         "{ObjDir}"vision.c.o ╢
  288.         "{ObjDir}"vis_tab.c.o ╢
  289.         "{ObjDir}"weapon.c.o ╢
  290.         "{ObjDir}"were.c.o ╢
  291.         "{ObjDir}"wield.c.o ╢
  292.         "{ObjDir}"windows.c.o ╢
  293.         "{ObjDir}"wizard.c.o ╢
  294.         "{ObjDir}"worm.c.o ╢
  295.         "{ObjDir}"worn.c.o ╢
  296.         "{ObjDir}"write.c.o ╢
  297.         "{ObjDir}"zap.c.o ╢
  298.         "{ObjDir}"macerrs.c.o ╢
  299.         "{ObjDir}"mgetline.c.o ╢
  300.         "{ObjDir}"macmain.c.o ╢
  301.         "{CLibraries}"StdClib.o ╢
  302.         "{Libraries}"Runtime.o ╢
  303.         "{Libraries}"Interface.o 
  304.  
  305. #------------- The object files depend upon the include files as follows -----
  306.  
  307. "{ObjDir}"allmain.c.o    ─  {hack.h}
  308. "{ObjDir}"alloc.c.o      ─  {config.h}
  309. "{ObjDir}"apply.c.o        ─  {hack.h} "{Include}"edog.h
  310. "{ObjDir}"artifact.c.o    ─  {hack.h} "{Include}"artifact.h "{Include}"artilist.h
  311. "{ObjDir}"attrib.c.o    ─  {hack.h} "{Include}"artifact.h
  312. "{ObjDir}"ball.c.o        ─  {hack.h}
  313. "{ObjDir}"bones.c.o        ─  {hack.h} "{Include}"lev.h
  314. "{ObjDir}"botl.c.o        ─  {hack.h}
  315. "{ObjDir}"cmd.c.o        ─  {hack.h} "{Include}"func_tab.h
  316. "{ObjDir}"dbridge.c.o    ─  {hack.h}
  317. "{ObjDir}"decl.c.o        ─  {hack.h} "{Include}"quest.h
  318. "{ObjDir}"detect.c.o    ─  {hack.h} "{Include}"artifact.h
  319. "{ObjDir}"display.c.o    ─  {hack.h}
  320. "{ObjDir}"do.c.o        ─  {hack.h} "{Include}"lev.h
  321. "{ObjDir}"do_name.c.o    ─  {hack.h}
  322. "{ObjDir}"do_wear.c.o    ─  {hack.h}
  323. "{ObjDir}"dog.c.o        ─  {hack.h} "{Include}"edog.h
  324. "{ObjDir}"dogmove.c.o    ─  {hack.h} "{Include}"mfndpos.h "{Include}"edog.h
  325. "{ObjDir}"dokick.c.o    ─  {hack.h} {eshk.h}
  326. "{ObjDir}"dothrow.c.o    ─  {hack.h}
  327. "{ObjDir}"drawing.c.o    ─  {hack.h}
  328. "{ObjDir}"dungeon.c.o    ─  {hack.h} "{Include}"dgn_file.h
  329. "{ObjDir}"eat.c.o        ─  {hack.h}
  330. "{ObjDir}"end.c.o        ─  {hack.h} {eshk.h}
  331. "{ObjDir}"engrave.c.o    ─  {hack.h} "{Include}"lev.h
  332. "{ObjDir}"exper.c.o        ─  {hack.h}
  333. "{ObjDir}"explode.c.o    ─  {hack.h}
  334. "{ObjDir}"extralev.c.o    ─  {hack.h}
  335. "{ObjDir}"files.c.o        ─  {hack.h}
  336. "{ObjDir}"fountain.c.o    ─  {hack.h}
  337. "{ObjDir}"hack.c.o        ─  {hack.h}
  338. "{ObjDir}"hacklib.c.o    ─  {config.h}
  339. "{ObjDir}"invent.c.o    ─  {hack.h} "{Include}"artifact.h
  340. "{ObjDir}"lock.c.o        ─  {hack.h}
  341. "{ObjDir}"macmain.c.o    ─  {hack.h}
  342. "{ObjDir}"mmodal.c.o    ─  {hack.h}
  343. "{ObjDir}"macsnd.c.o    ─  {hack.h}
  344. "{ObjDir}"macwin.c.o    ─  {hack.h} "{Include}"func_tab.h
  345. "{ObjDir}"maccurs.c.o    ─  {hack.h}
  346. "{ObjDir}"macfile.c.o    ─  {hack.h}
  347. "{ObjDir}"macerrs.c.o    ─  {hack.h}
  348. "{ObjDir}"mactopl.c.o    ─  {hack.h}
  349. "{ObjDir}"macunix.c.o    ─  {hack.h}
  350. "{ObjDir}"mail.c.o        ─  {hack.h}
  351. "{ObjDir}"makemon.c.o    ─  {hack.h} {epri.h} {emin.h}
  352. "{ObjDir}"mcastu.c.o    ─  {hack.h}
  353. "{ObjDir}"mgetline.c.o    ─  {hack.h}
  354. "{ObjDir}"mhitm.c.o        ─  {hack.h} "{Include}"artifact.h "{Include}"edog.h
  355. "{ObjDir}"mhitu.c.o        ─  {hack.h} "{Include}"artifact.h "{Include}"edog.h
  356. "{ObjDir}"minion.c.o    ─  {hack.h} {emin.h} {epri.h}
  357. "{ObjDir}"mklev.c.o        ─  {hack.h}
  358. "{ObjDir}"mkmap.c.o        ─  {hack.h} "{Include}"sp_lev.h
  359. "{ObjDir}"mkmaze.c.o    ─  {hack.h}
  360. "{ObjDir}"mkobj.c.o        ─  {hack.h} "{Include}"artifact.h "{Include}"prop.h
  361. "{ObjDir}"mkroom.c.o    ─  {hack.h}
  362. "{ObjDir}"mon.c.o        ─  {hack.h} "{Include}"mfndpos.h "{Include}"edog.h
  363. "{ObjDir}"mondata.c.o    ─  {hack.h} {eshk.h} {epri.h}
  364. "{ObjDir}"monmove.c.o    ─  {hack.h} "{Include}"mfndpos.h "{Include}"artifact.h
  365. "{ObjDir}"monst.c.o        ─  {config.h} {permonst.h} "{Include}"monsym.h ╢
  366.                            {eshk.h} {vault.h} {epri.h}╢
  367.                            "{Include}"color.h
  368. "{ObjDir}"mplayer.c.o    ─  {hack.h}
  369. "{ObjDir}"mthrowu.c.o    ─  {hack.h}
  370. "{ObjDir}"muse.c.o        ─  {hack.h}
  371. "{ObjDir}"music.c.o        ─  {hack.h}
  372. "{ObjDir}"o_init.c.o    ─  {hack.h}
  373. "{ObjDir}"objects.c.o    ─  {config.h} "{Include}"obj.h "{Include}"objclass.h╢
  374.                            "{Include}"prop.h "{Include}"color.h
  375. "{ObjDir}"objnam.c.o    ─  {hack.h}
  376. "{ObjDir}"options.c.o    ─  {hack.h} "{Include}"termcap.h
  377. "{ObjDir}"pager.c.o        ─  {macconf.h}
  378. "{ObjDir}"panic.c.o        ─  {config.h}
  379. "{ObjDir}"pickup.c.o    ─  {hack.h}
  380. "{ObjDir}"pline.c.o        ─  {hack.h} {epri.h}
  381. "{ObjDir}"polyself.c.o    ─  {hack.h}
  382. "{ObjDir}"potion.c.o    ─  {hack.h}
  383. "{ObjDir}"pray.c.o        ─  {hack.h} {epri.h}
  384. "{ObjDir}"priest.c.o    ─  {hack.h} "{Include}"mfndpos.h {eshk.h}╢
  385.                            {epri.h} {emin.h}
  386. "{ObjDir}"quest.c.o        ─  {hack.h} "{Include}"quest.h "{Include}"qtext.h
  387. "{ObjDir}"questpgr.c.o    ─  {hack.h} "{Include}"qtext.h
  388. "{ObjDir}"read.c.o        ─  {hack.h}
  389. "{ObjDir}"rect.c.o        ─  {hack.h}
  390. "{ObjDir}"restore.c.o    ─  {hack.h} "{Include}"lev.h "{Include}"termcap.h "{Include}"quest.h
  391. "{ObjDir}"rip.c.o        ─  {hack.h}
  392. "{ObjDir}"rnd.c.o        ─  {hack.h}
  393. "{ObjDir}"rumors.c.o    ─  {hack.h}
  394. "{ObjDir}"save.c.o        ─  {hack.h} "{Include}"lev.h "{Include}"quest.h
  395. "{ObjDir}"shk.c.o        ─  {hack.h} {eshk.h}
  396. "{ObjDir}"shknam.c.o    ─  {hack.h} {eshk.h}
  397. "{ObjDir}"sit.c.o        ─  {hack.h} "{Include}"artifact.h
  398. "{ObjDir}"sounds.c.o    ─  {hack.h} "{Include}"edog.h {eshk.h}
  399. "{ObjDir}"sp_lev.c.o    ─  {hack.h} "{Include}"sp_lev.h "{Include}"rect.h
  400. "{ObjDir}"spell.c.o        ─  {hack.h}
  401. "{ObjDir}"steal.c.o        ─  {hack.h}
  402. "{ObjDir}"timeout.c.o    ─  {hack.h}
  403. "{ObjDir}"topten.c.o    ─  {hack.h}
  404. "{ObjDir}"track.c.o        ─  {hack.h}
  405. "{ObjDir}"trap.c.o        ─  {hack.h}
  406. "{ObjDir}"u_init.c.o    ─  {hack.h}
  407. "{ObjDir}"uhitm.c.o        ─  {hack.h}
  408. "{ObjDir}"vault.c.o        ─  {hack.h} {vault.h}
  409. "{ObjDir}"version.c.o    ─  {hack.h} "{Include}"date.h  "{Include}"patchlevel.h "{Include}"termcap.h
  410. "{ObjDir}"vision.c.o    ─  {hack.h} "{Include}"vis_tab.h
  411. "{ObjDir}"weapon.c.o    ─  {hack.h}
  412. "{ObjDir}"were.c.o        ─  {hack.h}
  413. "{ObjDir}"wield.c.o        ─  {hack.h}
  414. "{ObjDir}"windows.c.o    ─  {hack.h}
  415. "{ObjDir}"wizard.c.o    ─  {hack.h} "{Include}"qtext.h
  416. "{ObjDir}"worm.c.o        ─  {hack.h} "{Include}"lev.h
  417. "{ObjDir}"worn.c.o        ─  {hack.h}
  418. "{ObjDir}"write.c.o        ─  {hack.h}
  419. "{ObjDir}"zap.c.o        ─  {hack.h}
  420.  
  421.  
  422. "{ObjDir}"MakeDefs.c.o  ─  {config.h} {permonst.h} "{Include}"objclass.h ╢
  423.                            "{Include}"monsym.h "{Include}"artilist.h "{Include}"qtext.h
  424.  
  425. "{ObjDir}"dgn_yacc.c.o    ─  {config.h} "{Include}"dgn_file.h
  426. "{ObjDir}"dgn_lex.c.o    ─  {config.h} "{Include}"dgn_comp.h "{Include}"dgn_file.h
  427. "{ObjDir}"dgn_main.c.o    ─  {config.h}
  428.  
  429. "{ObjDir}"lev_yacc.c.o    ─  {hack.h} "{Include}"sp_lev.h
  430. "{ObjDir}"lev_lex.c.o    ─  {hack.h} "{Include}"lev_comp.h "{Include}"sp_lev.h
  431. "{ObjDir}"lev_main.c.o    ─  {hack.h} "{Include}"sp_lev.h
  432.  
  433. # -------- Build the dungeon compiler, as an MPW tool ---------------
  434.     
  435. DgnObjs= "{ObjDir}"dgn_lex.c.o        ╢
  436.          "{ObjDir}"dgn_main.c.o        ╢
  437.          "{ObjDir}"dgn_yacc.c.o        ╢
  438.          "{ObjDir}"alloc.c.o        ╢
  439.          "{ObjDir}"panic.c.o        ╢
  440.          "{Libraries}"Stubs.o        ╢
  441.          "{Libraries}"Runtime.o     ╢
  442.          "{Libraries}"ToolLibs.o    ╢
  443.          "{Libraries}"Interface.o    ╢
  444.          "{CLibraries}"StdCLib.o
  445.  
  446. DgnComp    ─ {DgnObjs}
  447.     Link {MPWToolLink}  ╢
  448.          {DgnObjs} -o {Targ} ╢
  449. #          -sg Main=alloc,dgn_lex,dgn_main,dgn_yacc,panic,STDIO,INTENV,SADEV ╢
  450.         
  451. # -------- Build the special-level compiler, as an MPW tool ---------------
  452.     
  453. LevObjs= "{ObjDir}"monst.c.o        ╢
  454.          "{ObjDir}"objects.c.o        ╢
  455.          "{ObjDir}"drawing.c.o        ╢
  456.          "{ObjDir}"alloc.c.o        ╢
  457.          "{ObjDir}"panic.c.o        ╢
  458.          "{ObjDir}"lev_lex.c.o        ╢
  459.          "{ObjDir}"lev_yacc.c.o        ╢
  460.          "{ObjDir}"macfile.c.o        ╢
  461.          "{ObjDir}"macerrs.c.o        ╢
  462.          "{ObjDir}"files.c.o        ╢
  463.          "{ObjDir}"decl.c.o            ╢
  464.          "{Libraries}"Stubs.o        ╢
  465.          "{ObjDir}"lev_main.c.o        ╢
  466.          "{CLibraries}"StdCLib.o    ╢
  467.           "{Libraries}"ToolLibs.o    ╢
  468.          "{Libraries}"Runtime.o     ╢
  469.          "{Libraries}"Interface.o  
  470.  
  471. LevComp    ─ {LevObjs}
  472.     Link {MPWToolLink} ╢
  473.          {LevObjs} -o {Targ} ╢
  474. #         -sg Main=objects,monst,macfile,files,macerrs,lev_lex,lev_main,lev_yacc ╢
  475.         
  476. # -------- Build MakeDefs, as an MPW tool ---------------
  477.  
  478. MakeDefsObjs= "{ObjDir}"objects.c.o        ╢
  479.               "{ObjDir}"monst.c.o        ╢
  480.               "{ObjDir}"MakeDefs.c.o    ╢
  481.               "{Libraries}"Stubs.o        ╢
  482.               "{Libraries}"Runtime.o     ╢
  483.               "{Libraries}"Interface.o    ╢
  484.               "{Libraries}"ToolLibs.o    ╢
  485.               "{CLibraries}"StdCLib.o
  486.  
  487. MakeDefs    ── {MakeDefsObjs}
  488.     Link {MPWToolLink} ╢
  489.          {MakeDefsObjs} -o {Targ}
  490.     
  491.         
  492. # ------------ If MakeDefs changes we need to rebuild some include files -----------
  493.  
  494. "{Include}"date.h     ─     MakeDefs
  495.     MakeDefs -v
  496.     Move -y "{Dat}"Options "{ObjDir}"
  497.  
  498. "{ObjDir}"Options    ─    "{Include}"date.h
  499.  
  500. "{Include}"onames.h ─    MakeDefs
  501.     MakeDefs -o
  502.  
  503. "{Include}"pm.h     ─    MakeDefs
  504.     MakeDefs -p
  505.  
  506. "{Src}"vis_tab.c    ─    MakeDefs "{Include}"vis_tab.h
  507.  
  508. "{Include}"vis_tab.h ─    MakeDefs
  509.     MakeDefs -z
  510.     
  511. "{ObjDir}"Dungeon.pdf  ─ "{Dat}"Dungeon.def MakeDefs
  512.     MakeDefs -e
  513.     Move -y "{Dat}"Dungeon.pdf "{ObjDir}"
  514.     
  515. "{Src}"monstr.c ─ Makedefs {config.h}
  516.     MakeDefs -m
  517.  
  518. #---------------- Main dependencies and the application, at last -------------------
  519.  
  520. "{Results}"Data  ─ "{Dat}"Data.base MakeDefs
  521.         MakeDefs -d
  522.         Move -y "{Dat}"Data "{Results}"
  523.         SetFile -t "{FileType}" -c "{FileCreator}" "{Results}"Data
  524.  
  525. "{Results}"Rumors  ─ "{Dat}"Rumors.tru "{Dat}"Rumors.fal MakeDefs
  526.         MakeDefs -r
  527.         Move -y "{Dat}"Rumors "{Results}"
  528.         SetFile -t "{FileType}" -c "{FileCreator}" "{Results}"Rumors
  529.  
  530. "{Results}"Oracles ─ "{Dat}"Oracles.txt MakeDefs
  531.         MakeDefs -h
  532.         Move -y "{Dat}"Oracles "{Results}"
  533.         SetFile -t "{FileType}" -c "{FileCreator}" "{Results}"Oracles
  534.  
  535. "{Results}"Cmdhelp ─ "{Dat}"Cmdhelp
  536.         duplicate -y "{Dat}"Cmdhelp "{Results}"
  537.         SetFile -t "{FileType}" -c "{FileCreator}" "{Results}"Cmdhelp
  538.  
  539. "{Results}"Record  ─ 
  540.         Open -n -t "{Results}"Record
  541.         Replace /Ñ/ "This is the record file"
  542.         Close -y "{Results}"Record
  543.  
  544. "{Results}"NetHack╢ Defaults  ─ 
  545.         Open -n -t "{Results}"NetHack╢ Defaults
  546.         Replace /Ñ/ "OPTIONS=rest,!pick,!time,!silent,dogname:Rover,catname:Pixel"
  547.         Close -y "{Results}"NetHack╢ Defaults
  548.  
  549. "{Results}"Dungeon  ─ "{ObjDir}"Dungeon.pdf DgnComp
  550.         DgnComp "{ObjDir}"dungeon.pdf
  551.         Move -y "{ObjDir}"Dungeon "{Results}"
  552.         SetFile -t "{FileType}" -c "{FileCreator}" "{Results}"Dungeon
  553.  
  554. "{Results}"BigRoom.lev  ─ "{Dat}"BigRoom.des LevComp
  555.         LevComp "{Dat}"BigRoom.des
  556.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  557.         Move -y BigRoom.lev "{Results}"
  558.  
  559. "{Results}"Castle.lev  ─ "{Dat}"Castle.des LevComp
  560.         LevComp "{Dat}"Castle.des
  561.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  562.         Move -y Castle.lev "{Results}"
  563.  
  564. "{Results}"air.lev        ─ "{dat}"endgame.des levcomp
  565.     LevComp "{dat}"endgame.des
  566.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  567.     Move -y air.lev "{results}"
  568.     Move -y astral.lev "{Results}"
  569.     Move -y earth.lev "{Results}"
  570.     Move -y fire.lev "{Results}"
  571.     Move -y water.lev "{Results}"
  572.  
  573. "{Results}"Medusa-1.lev ─ "{Dat}"Medusa.des LevComp
  574.         LevComp "{Dat}"Medusa.des
  575.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  576.         Move -y Medusa-1.lev "{Results}"
  577.         Move -y Medusa-2.lev "{Results}"
  578.  
  579. "{Results}"Oracle.lev  ─ "{Dat}"Oracle.des LevComp
  580.         LevComp "{Dat}"Oracle.des
  581.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  582.         Move -y Oracle.lev "{Results}"
  583.  
  584. "{Results}"Mine_End.lev  ─ "{Dat}"Mines.des LevComp
  585.         LevComp "{Dat}"Mines.des
  586.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  587.         Move -y Mine_End.lev "{Results}" 
  588.         Move -y MineFill.lev "{Results}"
  589.         Move -y MineTown.lev "{Results}"
  590.  
  591. "{Results}"Tower1.lev  ─ "{Dat}"Tower.des LevComp
  592.         LevComp "{Dat}"Tower.des
  593.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  594.         Move -y Tower1.lev "{Results}"
  595.         Move -y Tower2.lev "{Results}"
  596.         Move -y Tower3.lev "{Results}"
  597.  
  598. "{Results}"knox.lev ─ "{Dat}"knox.des LevComp
  599.         LevComp "{Dat}"knox.des
  600.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  601.         Move -y knox.lev "{Results}"
  602.  
  603. "{Results}"wizard1.lev ─ "{Dat}"yendor.des LevComp
  604.         LevComp "{Dat}"yendor.des
  605.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  606.         Move -y wizard1.lev "{Results}"
  607.         Move -y wizard2.lev "{Results}"
  608.         Move -y wizard3.lev "{Results}"
  609.         Move -y fakewiz1.lev "{Results}"
  610.         Move -y fakewiz2.lev "{Results}"
  611.  
  612. "{Results}"A-start.lev  ─ "{Dat}"Arch.des LevComp
  613.         LevComp "{Dat}"Arch.des
  614.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  615.         Move -y A-fill┼.lev    "{Results}"
  616.         Move -y A-goal.lev "{Results}"
  617.         Move -y A-locate.lev "{Results}"
  618.         Move -y A-start.lev "{Results}"
  619.  
  620. "{Results}"B-start.lev  ─ "{Dat}"Barb.des LevComp
  621.         LevComp "{Dat}"Barb.des
  622.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  623.         Move -y B-fill┼.lev    "{Results}"
  624.         Move -y B-goal.lev "{Results}"
  625.         Move -y B-locate.lev "{Results}"
  626.         Move -y B-start.lev "{Results}"
  627.  
  628. "{Results}"C-start.lev  ─ "{Dat}"Caveman.des LevComp
  629.         LevComp "{Dat}"Caveman.des
  630.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  631.         Move -y C-fill┼.lev    "{Results}"
  632.         Move -y C-goal.lev "{Results}"
  633.         Move -y C-locate.lev "{Results}"
  634.         Move -y C-start.lev "{Results}"
  635.  
  636. "{Results}"E-start.lev  ─ "{Dat}"Elf.des LevComp
  637.         LevComp "{Dat}"Elf.des
  638.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  639.         Move -y E-fill┼.lev    "{Results}"
  640.         Move -y E-goal.lev "{Results}"
  641.         Move -y E-locate.lev "{Results}"
  642.         Move -y E-start.lev "{Results}"
  643.  
  644. "{Results}"H-start.lev  ─ "{Dat}"Healer.des LevComp
  645.         LevComp "{Dat}"Healer.des
  646.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  647.         Move -y H-fill┼.lev    "{Results}"
  648.         Move -y H-goal.lev "{Results}"
  649.         Move -y H-locate.lev "{Results}"
  650.         Move -y H-start.lev "{Results}"
  651.  
  652. "{Results}"K-start.lev  ─ "{Dat}"Knight.des LevComp
  653.         LevComp "{Dat}"Knight.des
  654.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  655.         Move -y K-fill┼.lev    "{Results}"
  656.         Move -y K-goal.lev "{Results}"
  657.         Move -y K-locate.lev "{Results}"
  658.         Move -y K-start.lev "{Results}"
  659.  
  660. "{Results}"P-start.lev  ─ "{Dat}"Priest.des LevComp
  661.         LevComp "{Dat}"Priest.des
  662.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  663.         Move -y P-fill┼.lev    "{Results}"
  664.         Move -y P-goal.lev "{Results}"
  665.         Move -y P-locate.lev "{Results}"
  666.         Move -y P-start.lev "{Results}"
  667.  
  668. "{Results}"R-start.lev  ─ "{Dat}"Rogue.des LevComp
  669.         LevComp "{Dat}"Rogue.des
  670.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  671.         Move -y R-fill┼.lev    "{Results}"
  672.         Move -y R-goal.lev "{Results}"
  673.         Move -y R-locate.lev "{Results}"
  674.         Move -y R-start.lev "{Results}"
  675.  
  676. "{Results}"S-start.lev  ─ "{Dat}"Samurai.des LevComp
  677.         LevComp "{Dat}"Samurai.des
  678.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  679.         Move -y S-fill┼.lev    "{Results}"
  680.         Move -y S-goal.lev "{Results}"
  681.         Move -y S-locate.lev "{Results}"
  682.         Move -y S-start.lev "{Results}"
  683.  
  684. "{Results}"T-start.lev  ─ "{Dat}"Tourist.des LevComp
  685.         LevComp "{Dat}"Tourist.des
  686.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  687.         Move -y T-fill┼.lev    "{Results}"
  688.         Move -y T-goal.lev "{Results}"
  689.         Move -y T-locate.lev "{Results}"
  690.         Move -y T-start.lev "{Results}"
  691.  
  692. "{Results}"V-start.lev  ─ "{Dat}"Valkyrie.des LevComp
  693.         LevComp "{Dat}"Valkyrie.des
  694.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  695.         Move -y V-fill┼.lev    "{Results}"
  696.         Move -y V-goal.lev "{Results}"
  697.         Move -y V-locate.lev "{Results}"
  698.         Move -y V-start.lev "{Results}"
  699.  
  700. "{Results}"W-start.lev  ─ "{Dat}"Wizard.des LevComp
  701.         LevComp "{Dat}"Wizard.des
  702.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  703.         Move -y W-fill┼.lev    "{Results}"
  704.         Move -y W-goal.lev "{Results}"
  705.         Move -y W-locate.lev "{Results}"
  706.         Move -y W-start.lev "{Results}"
  707.  
  708. "{Results}"Quest.Dat    ─ "{Dat}"Quest.txt MakeDefs
  709.         MakeDefs -q
  710.         Move -y "{Dat}"Quest.Dat "{Results}"
  711.         SetFile -t "{FileType}" -c "{FileCreator}" "{Results}"Quest.dat
  712.  
  713. "{Results}"Valley.lev  ─ "{Dat}"Gehennom.des LevComp
  714.         LevComp "{Dat}"Gehennom.des
  715.         SetFile -t "{FileType}" -c "{FileCreator}" ┼.lev
  716.         Move -y Asmodeus.lev "{Results}"
  717.         Move -y Baalz.lev "{Results}"
  718.         Move -y Juiblex.lev "{Results}"
  719.         Move -y Orcus.lev "{Results}"
  720.         Move -y Sanctum.lev "{Results}"
  721.         Move -y Valley.lev "{Results}"
  722.  
  723. "{Results}"NetHack  ── "{MacDir}"NetHack.r "{MacDir}"NetHack.rsrc {BuiltInData} "{MacDir}"Sounds.rsrc
  724.         Set Dat "{Dat}"            # Make the internal Make variable a Shell variable
  725.         Export Dat                # and export it so Rez can use it to find things
  726.         Set ObjDir "{ObjDir}"
  727.         Export ObjDir
  728.         Rez "{MacDir}"NetHack.r  -s "{MacDir}" -append -o "{Results}"NetHack
  729.  
  730. "{Results}"NetHack    ── {CObjs}
  731.         Link {NetHackLink} {CObjs} -o "{Results}"NetHack
  732.            Setfile -a B "{Results}"NetHack
  733.         Beep C,12 A,12 C,12 B,12 C,15
  734.