home *** CD-ROM | disk | FTP | other *** search
/ Giga Games 1 / Giga Games.iso / net / hack / 3_1_3 / sys / msdos / makemsc.src < prev    next >
Encoding:
Text File  |  1993-07-11  |  23.5 KB  |  741 lines

  1. # SCCS Id: @(#)MakeMSC.src    3.1    93/07/11
  2. # Copyright (c) NetHack PC Development Team 1992, 1993
  3. # PC NetHack 3.1 Makefile for Microsoft(tm) "C" >= 6.0ax and MSVC >= 1.0
  4. #
  5. # Nota Bene:    Before you get to here you should have already read
  6. #         the Install.dos file located in the sys/msdos directory.
  7.  
  8. # This Makefile supports two different overlay management schemes.
  9. # You must select either the one that supports Microsoft C
  10. # version 6, or the one that supports Microsoft C version 7 and 
  11. # Microsoft Visual C++ Professional version 1 (MSVC).  By default this 
  12. # Makefile is set up for version 7 or greater (including MSVC).  Certain 
  13. # sections particular to each compiler are marked either MSC7/MSVC or MSC6.
  14. # If you are using Microsoft C version 7 or MSVC, make sure that all the MSC6
  15. # sections are commented out and pay particular attention
  16. # to all sections marked MSC7/MSVC, uncommenting all the variables.
  17. # Do the same thing for MSC6 if you are using that version of
  18. # the compiler.
  19. #
  20. # MSC6 Notes:
  21. #    As it is set up, this makefile requires that exesmurf (the
  22. #    NetHack overlay-aware .exe header editor) be on your path or in the
  23. #    $(SRC) directory. If you wish to change the path or use Microsoft
  24. #    EXEMOD instead, see the symbols EXEPATCH and EXEFLAGS.
  25. #
  26.  
  27. #
  28. # Game Installation Variables.
  29. # NOTE: Make sure GAMEDIR exists before make is started.
  30. #
  31.  
  32. GAME    = NetHack
  33. GAMEDIR = c:\games\nethack
  34. default: $(GAME)
  35.  
  36. #
  37. #    Source code and data file directories.
  38. #
  39.  
  40. DAT    = ..\dat
  41. INCL    = ..\include
  42. SRC    = .
  43. OBJ    = $(SRC)\o
  44. SYS    = ..\sys\msdos
  45. SSYS    = ..\sys\share
  46. UTL    = ..\util
  47. WIN    = ..\win\tty
  48.  
  49. #
  50. #    Exe File Info.
  51. #    ($(MAKE) macro is often predefined, so we use $(MAKEBIN) instead.)
  52. #
  53.  
  54. ASM    = masm        # Assembler
  55. CC    = cl        # Compiler
  56. LINK    = link        # Linker
  57. MAKEBIN = make45l    # Make Utility
  58.  
  59. #
  60. # Make the necessary changes in *one* of the two sections below.
  61. #
  62.  
  63.  
  64. #### MSC7/MSVC Section Only #####
  65. # MSC7 and MSVC Compiler Flags are set up in the setup.bat file using
  66. # the CL environment variable as the total lenth of the compiler
  67. # command line exceeds the MSDOS 128 character limit.
  68. #
  69. CFLAGS    = /c
  70. LFLAGS    = /noi /seg:512 /map /st:5120 /DYNAMIC:1052 /INFO
  71. OVLMUCKING =    # None required
  72. MSC6MUCK =    # None required
  73. OVERLAY =    # None required
  74. OVERLAY_H =    # None required
  75. ############################
  76.  
  77.  
  78. #### MSC6 Section Only #####
  79. #
  80. # First comment out the MSC7/MSVC section.  And uncomment much of what is below.
  81. #
  82.  
  83. #
  84. # CC    There was a register bug, to be safe remove stack probes.
  85. # /Gt18 is currently about the largest value that keeps the initialised
  86. #    data segment below 64K (and keeps the linker happy).
  87. # /G2    286 or higher machines can use the /G2 CFLAG option for better
  88. #    performance.
  89. #
  90. #CFLAGS    = /AL /c /Os /Gs /Gt18 /Zp1 /W0 /I$(INCL)
  91. #LFLAGS    = /noi /seg:512 /map /st:4096
  92. #EXEPATCH = exesmurf    # Executable Massager
  93. #EXEFLAGS = /max4500 /min4500
  94. #OVLMUCKING = $(EXEPATCH) $(OBJ)\ovlmgr.obj
  95. #MSC6MUCK = msc6muck
  96.  
  97. #
  98. # For Microsoft C version <= 6.00ax, we use a custom overlay
  99. # manager.
  100. #
  101. # Switch the following $(OBJ)\$(OVLMGR): lines if you don't have a
  102. # MASM compatible assembler.
  103. #$(OBJ)\ovlmgr.obj: $(SYS)\ovlmgr.asm
  104. #    $(ASM) $(AFLAGS) $(SYS)\ovlmgr.asm, $@ ;
  105. $(OBJ)\ovlmgr.obj: ; copy $(SYS)\ovlmgr.obj $(OBJ)\ovlmgr.obj
  106.  
  107. #
  108. # Object files and a header file required for trampoli overlay system.
  109. #
  110. #OVERLAY = $(OBJ)\ovlmgr.obj $(OBJ)\trampoli.o
  111. #OVERLAY_H = $(INCL)\trampoli.h
  112.  
  113. #
  114. # If you need to recompile ovlmgr.asm you may want to change
  115. # some of the flags.
  116. AFLAGS = /MX
  117. # /Di386    = Use 386 specific enhancements
  118. # /DNOEMS    = Do not use EMS memory
  119. # /DDEBUG    = Report memory usage on startup
  120. # /DNOSPLIT    = EXE file is not split out to OVL files
  121.  
  122. #
  123. # Uncomment these sections.
  124. #
  125. #$(EXEPATCH): $(EXEPATCH).exe
  126. #$(EXEPATCH).exe: $(OBJ)\$(EXEPATCH).o
  127. #    $(LINK) $(OBJ)\$*.o, $*.exe;
  128.  
  129. ############################
  130.  
  131. #
  132. #    Optional high-quality BSD random number generation routines
  133. #    (see pcconf.h).    Set to nothing if not used.
  134. #
  135.  
  136. RANDOM    = $(OBJ)\random.o
  137. # RANDOM    =
  138.  
  139. #
  140. # If TERMLIB is #defined in the source (in include\pcconf.h), 
  141. # comment out the upper line and uncomment the lower.  Make sure 
  142. # that TERMLIB contains the full pathname to the termcap library. 
  143.  
  144. TERMLIB =
  145. #TERMLIB = $(SSYS)\termcap.lib
  146.  
  147. #
  148. #    Nothing below this line should have to be changed.
  149. #
  150.  
  151. #
  152. #    Make Roolz dude.
  153. #    Due to an NDMake inadequacy these must accord with a topological
  154. #    sort of the generated-from relation... output on the left, input
  155. #    on the right. Trust me.
  156. #
  157.  
  158. .SUFFIXES: .exe .0 .0-1 .0-2 .0-3 .1 .1-2 .1-3 .1-b .2 .2-3 .2-b .3 .3-b .b \
  159.        .o .c .y .l .obj .asm
  160.  
  161. .c.o:
  162.     $(CC) $(CFLAGS) /Fo$@ $<
  163. .c.0:
  164.     $(CC) $(CFLAGS) /DOVL0 /NT$(@F) /Fo$@ $<
  165. .c.0-1:
  166.     $(CC) $(CFLAGS) /DOVL0 /DOVL1 /NT$(@F) /Fo$@ $<
  167. .c.0-2:
  168.     $(CC) $(CFLAGS) /DOVL0 /DOVL1 /DOVL2 /NT$(@F) /Fo$@ $<
  169. .c.0-3:
  170.     $(CC) $(CFLAGS) /DOVL0 /DOVL1 /DOVL2 /DOVL3 /NT$(@F) /Fo$@ $<
  171. .c.1:
  172.     $(CC) $(CFLAGS) /DOVL1 /NT$(@F) /Fo$@ $<
  173. .c.1-2:
  174.     $(CC) $(CFLAGS) /DOVL1 /DOVL2 /NT$(@F) /Fo$@ $<
  175. .c.1-3:
  176.     $(CC) $(CFLAGS) /DOVL1 /DOVL2 /DOVL3 /NT$(@F) /Fo$@ $<
  177. .c.1-b:
  178.     $(CC) $(CFLAGS) /DOVL1 /DOVL2 /DOVL3 /DOVLB /NT$(@F) /Fo$@ $<
  179. .c.2:
  180.     $(CC) $(CFLAGS) /DOVL2 /NT$(@F) /Fo$@ $<
  181. .c.2-3:
  182.     $(CC) $(CFLAGS) /DOVL2 /DOVL3 /NT$(@F) /Fo$@ $<
  183. .c.2-b:
  184.     $(CC) $(CFLAGS) /DOVL2 /DOVL3 /DOVLB /NT$(@F) /Fo$@ $<
  185. .c.3:
  186.     $(CC) $(CFLAGS) /DOVL3 /NT$(@F) /Fo$@ $<
  187. .c.3-b:
  188.     $(CC) $(CFLAGS) /DOVL3 /DOVLB /NT$(@F) /Fo$@ $<
  189. .c.b:
  190.     $(CC) $(CFLAGS) /DOVLB /NT$(@F) /Fo$@ $<
  191. .asm.obj:
  192.     $(ASM) $(AFLAGS) $<, $@ ;
  193.  
  194. #
  195. #    Header Objects.
  196. #
  197.  
  198. CONFIG_H   = $(GLOBAL_H)    $(INCL)\tradstdc.h    $(INCL)\config.h
  199. DECL_H       = $(YOU_H)        $(INCL)\spell.h        $(INCL)\color.h    \
  200.          $(INCL)\obj.h    $(INCL)\onames.h    $(INCL)\pm.h \
  201.          $(INCL)\decl.h
  202. DGN_FILE_H = $(INCL)\align.h    $(INCL)\dgn_file.h
  203. DISPLAY_H  = $(MONDATA_H)    $(INCL)\vision.h    $(INCL)\display.h
  204. DUNGEON_H  = $(INCL)\align.h    $(INCL)\dungeon.h
  205. EMIN_H       = $(DUNGEON_H)    $(INCL)\emin.h
  206. EPRI_H       = $(DUNGEON_H)    $(INCL)\align.h        $(INCL)\epri.h
  207. ESHK_H       = $(DUNGEON_H)    $(INCL)\eshk.h
  208. GLOBAL_H   = $(PCCONF_H)    $(INCL)\coord.h        $(INCL)\global.h
  209. HACK_H       = $(CONFIG_H)    $(DUNGEON_H)        $(DECL_H) \
  210.          $(DISPLAY_H)    $(INCL)\monsym.h    $(INCL)\mkroom.h \
  211.          $(INCL)\objclass.h    $(INCL)\trap.h        $(INCL)\flag.h    \
  212.          $(RM_H)        $(INCL)\vision.h    $(INCL)\wintype.h \
  213.          $(INCL)\engrave.h    $(INCL)\rect.h \
  214.          $(INCL)\trampoli.h    $(INCL)\hack.h
  215. MONDATA_H  = $(INCL)\align.h    $(INCL)\mondata.h
  216. MONST_H       = $(INCL)\align.h    $(INCL)\monst.h
  217. PCCONF_H   = $(INCL)\micro.h    $(INCL)\system.h    $(INCL)\pcconf.h
  218. PERMONST_H = $(INCL)\monattk.h    $(INCL)\monflag.h    $(INCL)\align.h    \
  219.          $(INCL)\permonst.h
  220. RM_H       = $(INCL)\align.h    $(INCL)\rm.h
  221. SP_LEV_H   = $(INCL)\align.h    $(INCL)\sp_lev.h
  222. VAULT_H       = $(DUNGEON_H)    $(INCL)\vault.h
  223. YOU_H       = $(MONST_H)        $(YOUPROP_H)        $(INCL)\align.h    \
  224.          $(INCL)\attrib.h    $(INCL)\you.h
  225. YOUPROP_H  = $(PERMONST_H)    $(MONDATA_H)        $(INCL)\prop.h    \
  226.          $(INCL)\pm.h    $(INCL)\youprop.h
  227.  
  228. #
  229. #    Overlay Objects.
  230. #
  231.  
  232. ROOT =    $(OVERLAY) $(OBJ)\main.o $(OBJ)\msdos.0 $(OBJ)\dungeon.0 \
  233.     $(OBJ)\alloc.o $(OBJ)\random.o $(OBJ)\decl.o $(OBJ)\dbridge.0 \
  234.     $(OBJ)\objects.o $(OBJ)\invent.0 $(OBJ)\mkobj.0 $(OBJ)\mkroom.0 \
  235.     $(OBJ)\rnd.0 $(OBJ)\video.0 $(OBJ)\mondata.0 $(OBJ)\muse.o \
  236.     $(OBJ)\engrave.0 $(OBJ)\explode.o $(OBJ)\display.o $(OBJ)\vision.o \
  237.     $(OBJ)\attrib.0 $(OBJ)\rect.o $(OBJ)\vis_tab.o $(OBJ)\hacklib.0 \
  238.     $(OBJ)\monst.o $(OBJ)\hack.3 $(OBJ)\topl.0 $(OBJ)\trap.0 \
  239.     $(OBJ)\termcap.0 $(OBJ)\wintty.o $(OBJ)\monmove.0 $(OBJ)\dogmove.0
  240.  
  241. # These could use to go in root, but are in OLV1 to make
  242. # the game loadable in under 512 free ram.
  243. # rhack and friends
  244. OVL01 = $(OBJ)\allmain.0 $(OBJ)\artifact.0 $(OBJ)\attrib.1 $(OBJ)\cmd.1 \
  245.     $(OBJ)\do.1 $(OBJ)\do.3 $(OBJ)\eat.0 $(OBJ)\engrave.2 \
  246.     $(OBJ)\getline.0-1 $(OBJ)\hack.1-2 \
  247.     $(OBJ)\botl.1 $(OBJ)\sounds.0 $(OBJ)\timeout.0 \
  248.     $(OBJ)\track.1 $(OBJ)\vault.0 $(OBJ)\wizard.0 $(OBJ)\hacklib.1
  249. # startup
  250. OVL02 = $(OBJ)\dungeon.1 $(OBJ)\files.o $(OBJ)\pcsys.o \
  251.     $(OBJ)\monstr.o $(OBJ)\msdos.b
  252. # main monster code
  253. OVL03 = $(OBJ)\cmd.0 $(OBJ)\engrave.1 $(OBJ)\mondata.1 \
  254.     $(OBJ)\mthrowu.0 $(OBJ)\priest.0 $(OBJ)\track.0 \
  255.     $(OBJ)\trap.1 $(OBJ)\were.0
  256. # monster movement
  257. OVL04 = $(OBJ)\mon.0-1 $(OBJ)\monmove.1
  258. # pet monster movement
  259. OVL05 = $(OBJ)\dog.1 $(OBJ)\dogmove.1-b
  260. # advanced monsters
  261. OVL06 = $(OBJ)\minion.o $(OBJ)\mcastu.o
  262. OVL07 = $(OBJ)\priest.1-b $(OBJ)\shk.1-b
  263. OVL08 = $(OBJ)\were.1-b
  264. OVL09 = $(OBJ)\wizard.1-b
  265. OVL10 = $(OBJ)\worm.o
  266. # 11-15 around the movement loop
  267. # domove and friends
  268. OVL11 = $(OBJ)\hack.0 $(OBJ)\apply.0 $(OBJ)\do_wear.1 $(OBJ)\lock.0 \
  269.     $(OBJ)\cmd.2
  270. OVL12 = $(OBJ)\detect.o
  271. OVL13 = $(OBJ)\attrib.2-b $(OBJ)\exper.o
  272. OVL14 = $(OBJ)\eat.1 $(OBJ)\invent.1
  273. OVL15 = $(OBJ)\makemon.0-2 $(OBJ)\mkobj.1
  274. OVL16 = $(OBJ)\makemon.b $(OBJ)\mplayer.o $(OBJ)\mkobj.2-b
  275. OVL17 = $(OBJ)\mhitm.1-b
  276. OVL18 = $(OBJ)\mthrowu.1
  277. OVL19 = $(OBJ)\mthrowu.2-b
  278. OVL20 = $(OBJ)\allmain.1 $(OBJ)\mhitm.0 $(OBJ)\mhitu.0-1 $(OBJ)\rnd.1 \
  279.     $(OBJ)\weapon.0-1
  280. OVL21 = $(OBJ)\mon.2-b
  281. OVL22 = $(OBJ)\artifact.1 $(OBJ)\uhitm.o $(OBJ)\weapon.2-b
  282. OVL23 = $(OBJ)\do_wear.0 $(OBJ)\mhitu.2-b
  283. OVL24 = $(OBJ)\steal.0-1
  284. OVL25 = $(OBJ)\monmove.2-b $(OBJ)\steal.2-b
  285. OVL26 = $(OBJ)\rnd.2-b
  286. OVL27 = $(OBJ)\do_wear.2 $(OBJ)\mondata.2 $(OBJ)\objnam.0-1 \
  287.     $(OBJ)\polyself.0-1
  288. OVL28 = $(OBJ)\do_name.0
  289. OVL29 = $(OBJ)\objnam.2-b $(OBJ)\hacklib.2-b
  290. OVL30 = $(OBJ)\pager.o
  291. OVL31 = $(OBJ)\botl.0
  292. OVL32 = $(OBJ)\botl.b $(OBJ)\topl.b $(OBJ)\termcap.1 $(OBJ)\windows.o \
  293.     $(OBJ)\video.1
  294. OVL33 = $(OBJ)\topl.1-2
  295. OVL34 = $(OBJ)\pline.o
  296. OVL35 = $(OBJ)\termcap.2-b $(OBJ)\video.2-b
  297. OVL36 = $(OBJ)\quest.o $(OBJ)\questpgr.o
  298. OVL37 = $(OBJ)\invent.b
  299. OVL38 = $(OBJ)\hack.b
  300. OVL39 = $(OBJ)\mondata.b $(OBJ)\timeout.1-b $(OBJ)\dog.b $(OBJ)\sounds.1-b
  301. OVL40 = $(OBJ)\do.0 $(OBJ)\invent.3
  302. OVL41 = $(OBJ)\cmd.b $(OBJ)\getline.2 $(OBJ)\write.o
  303. OVL42 = $(OBJ)\apply.2-b
  304. OVL43 = $(OBJ)\do.b $(OBJ)\drawing.o
  305. OVL44 = $(OBJ)\dokick.o
  306. OVL45 = $(OBJ)\dothrow.o
  307. OVL46 = $(OBJ)\eat.2-b
  308. OVL47 = $(OBJ)\invent.2 $(OBJ)\pickup.o
  309. OVL48 = $(OBJ)\lock.1-b
  310. OVL49 = $(OBJ)\polyself.2-b
  311. OVL50 = $(OBJ)\potion.o
  312. OVL51 = $(OBJ)\pray.o
  313. OVL52 = $(OBJ)\read.1-b $(OBJ)\spell.o
  314. OVL53 = $(OBJ)\ball.o
  315. # clothing stuff
  316. OVL54 = $(OBJ)\do_wear.b $(OBJ)\wield.o $(OBJ)\worn.o
  317. # Zappage
  318. OVL55 = $(OBJ)\zap.o
  319. OVL56 = $(OBJ)\dbridge.1-b
  320. OVL57 = $(OBJ)\trap.b
  321. # Unusual circumstances
  322. OVL58 = $(OBJ)\artifact.b $(OBJ)\do_name.1-b $(OBJ)\fountain.o $(OBJ)\music.o \
  323.     $(OBJ)\rumors.o $(OBJ)\sit.o $(OBJ)\vault.1-b
  324. # Uppers and Downers
  325. OVL59 = $(OBJ)\apply.1 $(OBJ)\bones.o $(OBJ)\mklev.o
  326. OVL60 = $(OBJ)\save.o $(OBJ)\restore.o
  327. OVL61 = $(OBJ)\mkmaze.o $(OBJ)\mkroom.1-b $(OBJ)\mkmap.o
  328. # Note: version.o is in OVL62, but in a special way.  See below.
  329. OVL62 = $(OBJ)\allmain.2-b $(OBJ)\end.o $(OBJ)\engrave.b \
  330.     $(OBJ)\o_init.o $(OBJ)\options.o $(OBJ)\rip.o \
  331.     $(OBJ)\shknam.o $(OBJ)\topten.o $(OBJ)\tty.o \
  332.     $(OBJ)\u_init.o $(OBJ)\unix.1-b
  333. # Levelling
  334. OVL63 = $(OBJ)\do.2 $(OBJ)\dog.2 $(OBJ)\extralev.o \
  335.     $(OBJ)\sp_lev.o $(OBJ)\track.2-b
  336.  
  337. #
  338. #    Make Objects.
  339. #
  340.  
  341. MOBJ = $(OVL01) $(OVL02) $(OVL03) $(OVL04) $(OVL05) $(OVL06) $(OVL07) $(OVL08)\
  342.        $(OVL09) $(OVL10) $(OVL11) $(OVL12) $(OVL13) $(OVL14) $(OVL15) $(OVL16)\
  343.        $(OVL17) $(OVL18) $(OVL19) $(OVL20) $(OVL21) $(OVL22) $(OVL23) $(OVL24)\
  344.        $(OVL25) $(OVL26) $(OVL27) $(OVL28) $(OVL29) $(OVL30) $(OVL31) $(OVL32)\
  345.        $(OVL33) $(OVL34) $(OVL35) $(OVL36) $(OVL37) $(OVL38) $(OVL39) $(OVL40)\
  346.        $(OVL41) $(OVL42) $(OVL43) $(OVL44) $(OVL45) $(OVL46) $(OVL47) $(OVL48)\
  347.        $(OVL49) $(OVL50) $(OVL51) $(OVL52) $(OVL53) $(OVL54) $(OVL55) $(OVL56)\
  348.        $(OVL57) $(OVL58) $(OVL59) $(OVL60) $(OVL61) $(OVL62) $(OVL63)
  349.  
  350. VOBJ = $(ROOT)    $(MOBJ)
  351.  
  352. HOBJ = $(VOBJ)    $(OBJ)\version.o
  353.  
  354. OVERLAYS = ($(OVL01)) ($(OVL02)) ($(OVL03)) ($(OVL04)) ($(OVL05)) ($(OVL06)) \
  355.        ($(OVL07)) ($(OVL08)) ($(OVL09)) ($(OVL10)) ($(OVL11)) ($(OVL12)) \
  356.        ($(OVL13)) ($(OVL14)) ($(OVL15)) ($(OVL16)) ($(OVL17)) ($(OVL18)) \
  357.        ($(OVL19)) ($(OVL20)) ($(OVL21)) ($(OVL22)) ($(OVL23)) ($(OVL24)) \
  358.        ($(OVL25)) ($(OVL26)) ($(OVL27)) ($(OVL28)) ($(OVL29)) ($(OVL30)) \
  359.        ($(OVL31)) ($(OVL32)) ($(OVL33)) ($(OVL34)) ($(OVL35)) ($(OVL36)) \
  360.        ($(OVL37)) ($(OVL38)) ($(OVL39)) ($(OVL40)) ($(OVL41)) ($(OVL42)) \
  361.        ($(OVL43)) ($(OVL44)) ($(OVL45)) ($(OVL46)) ($(OVL47)) ($(OVL48)) \
  362.        ($(OVL49)) ($(OVL50)) ($(OVL51)) ($(OVL52)) ($(OVL53)) ($(OVL54)) \
  363.        ($(OVL55)) ($(OVL56)) ($(OVL57)) ($(OVL58)) ($(OVL59)) ($(OVL60)) \
  364.        ($(OVL61)) ($(OVL62)    $(OBJ)\version.o) ($(OVL63))
  365.  
  366. #
  367. #    Primary make targets.
  368. #
  369.  
  370. GAMEFILE = $(GAMEDIR)\$(GAME).exe
  371.  
  372. all: install
  373.  
  374. install: $(DAT)\sp_lev.tag    $(GAMEFILE)    $(MSC6MUCK)    install.tag
  375.     @echo Don't forget to check HACKDIR in $(GAMEDIR)\NetHack.cnf.
  376.     @echo Done.
  377.  
  378. install.tag: $(GAMEFILE) $(MSC6MUCK)
  379.     copy $(SSYS)\termcap        $(GAMEDIR)
  380.     copy $(DAT)\*.?            $(GAMEDIR)
  381.     copy $(DAT)\*.dat        $(GAMEDIR)
  382.     copy $(DAT)\*.lev        $(GAMEDIR)
  383.     copy $(SSYS)\NetHack.cnf    $(GAMEDIR)
  384.     copy $(UTL)\recover.exe        $(GAMEDIR)
  385.     copy $(SYS)\msdos.hlp        $(GAMEDIR)
  386.     del  $(GAMEDIR)\makefile
  387.     echo install done > install.tag
  388.  
  389. $(GAME): $(GAMEFILE) $(MSC6MUCK)
  390.  
  391. $(GAME).exe: $(GAMEFILE) $(MSC6MUCK)
  392.  
  393. $(GAMEFILE): $(UTL)\utility.tag $(OBJ) $(OVLMUCKING) $(HOBJ)
  394.     @echo Loading....
  395.     $(LINK) $(LFLAGS) $(ROOT) $(OVERLAYS),$(GAMEFILE),$(GAME),$(TERMLIB);
  396.     @del $(GAMEDIR)\$(GAME).bak > NUL
  397.     @echo $(GAME) is up to date.
  398.  
  399. msc6muck:
  400.     $(EXEPATCH) $(GAMEFILE) $(EXEFLAGS)
  401.     $(EXEPATCH) $(GAMEFILE) 1 40
  402.  
  403. #
  404. #    Secondary Targets.
  405. #
  406.  
  407. clean:
  408.     del $(OBJ)\*.o
  409.     del $(OBJ)\*.0
  410.     del $(OBJ)\*.0-1
  411.     del $(OBJ)\*.0-2
  412.     del $(OBJ)\*.0-3
  413.     del $(OBJ)\*.1
  414.     del $(OBJ)\*.1-2
  415.     del $(OBJ)\*.1-3
  416.     del $(OBJ)\*.1-b
  417.     del $(OBJ)\*.2
  418.     del $(OBJ)\*.2-3
  419.     del $(OBJ)\*.2-b
  420.     del $(OBJ)\*.3
  421.     del $(OBJ)\*.3-b
  422.     del $(OBJ)\*.b
  423.     del $(OBJ)\*.obj
  424.     rmdir $(OBJ)
  425.  
  426. spotless: clean
  427.     del *.exe
  428.     del *.bak
  429.     del *.tag
  430.     del *.map
  431.     del *.obj
  432.     del *.lib
  433.     del *.txt
  434.  
  435. $(OBJ):
  436.     if not exist $(OBJ)\*.* mkdir $(OBJ)
  437.  
  438. #
  439. # I'm not too fond of using this `attrib .foo` command to stop make,
  440. # but I can't think of any better generic way to do it.
  441. # It works for DOS 3.3, 4.00, & 5.0.
  442. # If you find a better one please feel free to implement it.
  443. #
  444. $(UTL)\utility.tag: monst.c    alloc.c            objects.c \
  445.     $(UTL)\makedefs.c    $(UTL)\panic.c        $(UTL)\recover.c \
  446.     $(UTL)\dgn_main.c    $(UTL)\dgn_comp.l    $(UTL)\dgn_comp.y \
  447.     $(UTL)\lev_main.c    $(UTL)\lev_comp.l    $(UTL)\lev_comp.y \
  448.     $(HACK_H)        $(INCL)\patchlevel.h    $(INCL)\qtext.h
  449.     @echo You must first "$(MAKEBIN) all" in the $(UTL) directory.
  450.     @attrib .foo
  451.  
  452. $(DAT)\sp_lev.tag: $(UTL)\utility.tag
  453.     @echo You must first "$(MAKEBIN) all" in the $(DAT) directory.
  454.     @attrib .foo
  455.  
  456. #
  457. # Other dependencies
  458. #
  459.  
  460. $(INCL)\date.h: $(VOBJ)
  461.     $(UTL)\makedefs -v
  462.  
  463. #
  464. #    Overlay/PC source code dependencies.
  465. #
  466.  
  467. #
  468. #    $(SYS) files.
  469. #
  470.  
  471. $(OBJ)\msdos.0: $(HACK_H) $(INCL)\termcap.h $(SYS)\msdos.c
  472.     $(CC) $(CFLAGS) /DOVL0 /NT$(@F) /Fo$@ $(SYS)\msdos.c
  473.  
  474. $(OBJ)\msdos.b: $(HACK_H) $(INCL)\termcap.h $(SYS)\msdos.c
  475.     $(CC) $(CFLAGS) /DOVLB /NT$(@F) /Fo$@ $(SYS)\msdos.c
  476.  
  477. $(OBJ)\trampoli.o: $(HACK_H) $(SYS)\trampoli.c
  478.     $(CC) $(CFLAGS) /Fo$@ $(SYS)\trampoli.c
  479.  
  480. $(OBJ)\video.0:    $(HACK_H) $(INCL)\wintty.h $(SYS)\video.c
  481.     $(CC) $(CFLAGS) /DOVL0 /NT$(@F) /Fo$@ $(SYS)\video.c
  482.  
  483. $(OBJ)\video.1: $(HACK_H) $(INCL)\wintty.h $(SYS)\video.c
  484.     $(CC) $(CFLAGS) /DOVL1 /NT$(@F) /Fo$@ $(SYS)\video.c
  485.  
  486. $(OBJ)\video.2-b: $(HACK_H) $(INCL)\wintty.h $(SYS)\video.c
  487.     $(CC) $(CFLAGS) /DOVL2 /DOVLB /NT$(@F) /Fo$@ $(SYS)\video.c
  488.  
  489. $(OBJ)\exesmurf.o: $(SYS)\exesmurf.c
  490.     $(CC) $(CFLAGS) /Fo$@ $(SYS)\exesmurf.c
  491.  
  492. #
  493. #    $(SSYS) files.
  494. #
  495.  
  496. $(OBJ)\main.o: $(HACK_H)    $(SSYS)\pcmain.c
  497.     $(CC) $(CFLAGS) /Fo$@ $(SSYS)\pcmain.c
  498.  
  499. $(OBJ)\pcsys.o:    $(HACK_H)    $(INCL)\wintty.h    $(SSYS)\pcsys.c
  500.     $(CC) $(CFLAGS) /Fo$@ $(SSYS)\pcsys.c
  501.  
  502. $(OBJ)\random.o: $(SSYS)\random.c
  503.     $(CC) $(CFLAGS) /Fo$@ $(SSYS)\random.c
  504.  
  505. $(OBJ)\tty.o: $(HACK_H)        $(INCL)\wintty.h    $(SSYS)\pctty.c
  506.     $(CC) $(CFLAGS) /Fo$@    $(SSYS)\pctty.c
  507.  
  508. $(OBJ)\unix.0: $(HACK_H)    $(SSYS)\pcunix.c
  509.     $(CC) $(CFLAGS) /DOVL0 /Fo$@ $(SSYS)\pcunix.c
  510.  
  511. $(OBJ)\unix.1-b: $(HACK_H)    $(SSYS)\pcunix.c
  512.     $(CC) $(CFLAGS) /DOVL1 /DOVL2 /DOVL3 /DOVLB /Fo$@ $(SSYS)\pcunix.c
  513.  
  514. #
  515. #    $(WIN) files.
  516. #
  517.  
  518. $(OBJ)\getline.0-1: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\func_tab.h \
  519.     $(WIN)\getline.c
  520.     $(CC) $(CFLAGS) /DOVL0 /DOVL1 /NT$(@F) /Fo$@ $(WIN)\getline.c
  521.  
  522. $(OBJ)\getline.2: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\func_tab.h \
  523.     $(WIN)\getline.c
  524.     $(CC) $(CFLAGS) /DOVL2 /NT$(@F) /Fo$@ $(WIN)\getline.c
  525.  
  526. $(OBJ)\getline.b: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\func_tab.h \
  527.     $(WIN)\getline.c
  528.     $(CC) $(CFLAGS) /DOVLB /NT$(@F) /Fo$@ $(WIN)\getline.c
  529.  
  530. $(OBJ)\termcap.0: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\termcap.h \
  531.     $(WIN)\termcap.c
  532.     $(CC) $(CFLAGS) /DOVL0 /NT$(@F) /Fo$@ $(WIN)\termcap.c
  533.  
  534. $(OBJ)\termcap.1: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\termcap.h \
  535.     $(WIN)\termcap.c
  536.     $(CC) $(CFLAGS) /DOVL1 /NT$(@F) /Fo$@ $(WIN)\termcap.c
  537.  
  538. $(OBJ)\termcap.2-b: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\termcap.h \
  539.     $(WIN)\termcap.c
  540.     $(CC) $(CFLAGS) /DOVL2 /DOVLB /NT$(@F) /Fo$@ $(WIN)\termcap.c
  541.  
  542. $(OBJ)\topl.0: $(HACK_H)    $(INCL)\termcap.h    $(INCL)\wintty.h \
  543.     $(WIN)\topl.c
  544.     $(CC) $(CFLAGS) /DOVL0 /NT$(@F) /Fo$@ $(WIN)\topl.c
  545.  
  546. $(OBJ)\topl.1-2: $(HACK_H)    $(INCL)\termcap.h    $(INCL)\wintty.h \
  547.     $(WIN)\topl.c
  548.     $(CC) $(CFLAGS) /DOVL1 /DOVL2 /NT$(@F) /Fo$@ $(WIN)\topl.c
  549.  
  550. $(OBJ)\topl.b: $(HACK_H)    $(INCL)\termcap.h    $(INCL)\wintty.h \
  551.     $(WIN)\topl.c
  552.     $(CC) $(CFLAGS) /DOVLB /NT$(@F) /Fo$@ $(WIN)\topl.c
  553.  
  554. $(OBJ)\wintty.o: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\termcap.h \
  555.     $(WIN)\wintty.c
  556.     $(CC) $(CFLAGS) /DOVL0 /DOVL1 /DOVL2 /DOVLB /Fo$@ $(WIN)\wintty.c
  557.  
  558. #
  559. #    $(SRC) files.
  560. #
  561. # DO NOT DELETE THIS LINE
  562. #
  563.  
  564. $(OBJ)\allmain.0:    $(HACK_H)
  565. $(OBJ)\allmain.1:    $(HACK_H)
  566. $(OBJ)\allmain.2-b:    $(HACK_H)
  567. $(OBJ)\alloc.o:        $(CONFIG_H)
  568. $(OBJ)\apply.0:        $(HACK_H)    $(INCL)\edog.h
  569. $(OBJ)\apply.1:        $(HACK_H)    $(INCL)\edog.h
  570. $(OBJ)\apply.2-b:    $(HACK_H)    $(INCL)\edog.h
  571. $(OBJ)\artifact.0:    $(HACK_H)    $(INCL)\artifact.h  $(INCL)\artilist.h
  572. $(OBJ)\artifact.1:    $(HACK_H)    $(INCL)\artifact.h  $(INCL)\artilist.h
  573. $(OBJ)\artifact.2:    $(HACK_H)    $(INCL)\artifact.h  $(INCL)\artilist.h
  574. $(OBJ)\artifact.b:    $(HACK_H)    $(INCL)\artifact.h  $(INCL)\artilist.h
  575. $(OBJ)\attrib.0:    $(HACK_H)
  576. $(OBJ)\attrib.1:    $(HACK_H)
  577. $(OBJ)\attrib.2-b:    $(HACK_H)
  578. $(OBJ)\ball.o:        $(HACK_H)
  579. $(OBJ)\bones.o:        $(HACK_H)
  580. $(OBJ)\botl.0:        $(HACK_H)
  581. $(OBJ)\botl.1:        $(HACK_H)
  582. $(OBJ)\botl.2:        $(HACK_H)
  583. $(OBJ)\botl.b:        $(HACK_H)
  584. $(OBJ)\cmd.0:        $(HACK_H)    $(INCL)\func_tab.h
  585. $(OBJ)\cmd.1:        $(HACK_H)    $(INCL)\func_tab.h
  586. $(OBJ)\cmd.b:        $(HACK_H)    $(INCL)\func_tab.h
  587. $(OBJ)\dbridge.0:    $(HACK_H)
  588. $(OBJ)\dbridge.1-b:    $(HACK_H)
  589. $(OBJ)\decl.o:        $(HACK_H)    $(INCL)\quest.h
  590. $(OBJ)\detect.o:    $(HACK_H)    $(INCL)\artifact.h
  591. $(OBJ)\display.o:    $(HACK_H)
  592. $(OBJ)\do.0:        $(HACK_H)    $(INCL)\lev.h
  593. $(OBJ)\do.1:        $(HACK_H)    $(INCL)\lev.h
  594. $(OBJ)\do.2:        $(HACK_H)    $(INCL)\lev.h
  595. $(OBJ)\do.3:        $(HACK_H)    $(INCL)\lev.h
  596. $(OBJ)\do.b:        $(HACK_H)    $(INCL)\lev.h
  597. $(OBJ)\do_name.0:    $(HACK_H)
  598. $(OBJ)\do_name.1-b:    $(HACK_H)
  599. $(OBJ)\do_wear.0-1:    $(HACK_H)
  600. $(OBJ)\do_wear.2:    $(HACK_H)
  601. $(OBJ)\do_wear.b:    $(HACK_H)
  602. $(OBJ)\dog.0:        $(HACK_H)    $(INCL)\edog.h
  603. $(OBJ)\dog.1:        $(HACK_H)    $(INCL)\edog.h
  604. $(OBJ)\dog.2:        $(HACK_H)    $(INCL)\edog.h
  605. $(OBJ)\dog.b:        $(HACK_H)    $(INCL)\edog.h
  606. $(OBJ)\dogmove.0:    $(HACK_H)    $(INCL)\mfndpos.h    $(INCL)\edog.h
  607. $(OBJ)\dogmove.1-b:    $(HACK_H)    $(INCL)\mfndpos.h    $(INCL)\edog.h
  608. $(OBJ)\dokick.o:    $(HACK_H)    $(ESHK_H)
  609. $(OBJ)\dothrow.o:    $(HACK_H)
  610. $(OBJ)\drawing.o:    $(HACK_H)    $(INCL)\termcap.h
  611. $(OBJ)\dungeon.o:    $(HACK_H)    $(DGN_FILE_H)
  612. $(OBJ)\eat.0:        $(HACK_H)
  613. $(OBJ)\eat.1:        $(HACK_H)
  614. $(OBJ)\eat.2-b:        $(HACK_H)
  615. $(OBJ)\end.o:        $(HACK_H)    $(ESHK_H)
  616. $(OBJ)\engrave.0-1:    $(HACK_H)    $(INCL)\lev.h
  617. $(OBJ)\engrave.2:    $(HACK_H)    $(INCL)\lev.h
  618. $(OBJ)\engrave.b:    $(HACK_H)    $(INCL)\lev.h
  619. $(OBJ)\exper.o:        $(HACK_H)
  620. $(OBJ)\explode.o:    $(HACK_H)
  621. $(OBJ)\extralev.o:    $(HACK_H)
  622. $(OBJ)\files.o:        $(HACK_H)
  623. $(OBJ)\fountain.o:    $(HACK_H)
  624. $(OBJ)\hack.0:        $(HACK_H)
  625. $(OBJ)\hack.1:        $(HACK_H)
  626. $(OBJ)\hack.2:        $(HACK_H)
  627. $(OBJ)\hack.b:        $(HACK_H)
  628. $(OBJ)\hacklib.0:    $(HACK_H)
  629. $(OBJ)\hacklib.1:    $(HACK_H)
  630. $(OBJ)\hacklib.2-b:    $(HACK_H)
  631. $(OBJ)\invent.0:    $(HACK_H)    $(INCL)\artifact.h
  632. $(OBJ)\invent.1:    $(HACK_H)    $(INCL)\artifact.h
  633. $(OBJ)\invent.2:    $(HACK_H)    $(INCL)\artifact.h
  634. $(OBJ)\invent.3:    $(HACK_H)    $(INCL)\artifact.h
  635. $(OBJ)\invent.b:    $(HACK_H)    $(INCL)\artifact.h
  636. $(OBJ)\lock.0:        $(HACK_H)
  637. $(OBJ)\lock.1-b:    $(HACK_H)
  638. $(OBJ)\mail.0:        $(HACK_H)    $(INCL)\mail.h
  639. $(OBJ)\mail.1-b:    $(HACK_H)    $(INCL)\mail.h
  640. $(OBJ)\makemon.0-2:    $(HACK_H)    $(EPRI_H)    $(EMIN_H)
  641. $(OBJ)\makemon.b:    $(HACK_H)    $(EPRI_H)    $(EMIN_H)
  642. $(OBJ)\mcastu.o:    $(HACK_H)
  643. $(OBJ)\mhitm.0:        $(HACK_H)    $(INCL)\artifact.h    $(INCL)\edog.h
  644. $(OBJ)\mhitm.1-b:    $(HACK_H)    $(INCL)\artifact.h    $(INCL)\edog.h
  645. $(OBJ)\mhitu.0-1:    $(HACK_H)    $(INCL)\artifact.h    $(INCL)\edog.h
  646. $(OBJ)\mhitu.2-b:    $(HACK_H)    $(INCL)\artifact.h    $(INCL)\edog.h
  647. $(OBJ)\minion.o:    $(HACK_H)    $(EMIN_H)
  648. $(OBJ)\mklev.o:        $(HACK_H)
  649. $(OBJ)\mkmaze.o:    $(HACK_H)    $(SP_LEV_H)
  650. $(OBJ)\mkobj.0:        $(HACK_H)    $(INCL)\artifact.h    $(INCL)\prop.h
  651. $(OBJ)\mkobj.1:        $(HACK_H)    $(INCL)\artifact.h    $(INCL)\prop.h
  652. $(OBJ)\mkobj.2-b:    $(HACK_H)    $(INCL)\artifact.h    $(INCL)\prop.h
  653. $(OBJ)\mkroom.0:    $(HACK_H)
  654. $(OBJ)\mkroom.1-b:    $(HACK_H)
  655. $(OBJ)\mon.0-1:        $(HACK_H)    $(INCL)\mfndpos.h    $(INCL)\edog.h
  656. $(OBJ)\mon.2-b:        $(HACK_H)    $(INCL)\mfndpos.h    $(INCL)\edog.h
  657. $(OBJ)\mondata.0-1:    $(HACK_H)    $(ESHK_H)    $(EPRI_H)
  658. $(OBJ)\mondata.2:    $(HACK_H)    $(ESHK_H)    $(EPRI_H)
  659. $(OBJ)\mondata.b:    $(HACK_H)    $(ESHK_H)    $(EPRI_H)
  660. $(OBJ)\monmove.0-1:    $(HACK_H)    $(INCL)\mfndpos.h $(INCL)\artifact.h
  661. $(OBJ)\monmove.2-b:    $(HACK_H)    $(INCL)\mfndpos.h $(INCL)\artifact.h
  662. $(OBJ)\monst.o:        $(CONFIG_H)    $(PERMONST_H)    $(INCL)\monsym.h \
  663.             $(ESHK_H)    $(VAULT_H)    $(EPRI_H) \
  664.             $(INCL)\color.h
  665. $(OBJ)\monstr.o:    $(CONFIG_H)
  666. $(OBJ)\mplayer.o:    $(HACK_H)
  667. $(OBJ)\mthrowu.0:    $(HACK_H)
  668. $(OBJ)\mthrowu.1:    $(HACK_H)
  669. $(OBJ)\mthrowu.2-b:    $(HACK_H)
  670. $(OBJ)\muse.o:        $(HACK_H)
  671. $(OBJ)\music.o:        $(HACK_H)
  672. $(OBJ)\o_init.o:    $(HACK_H)
  673. $(OBJ)\objects.o:    $(CONFIG_H)    $(INCL)\obj.h    $(INCL)\objclass.h \
  674.             $(INCL)\prop.h    $(INCL)\color.h
  675. $(OBJ)\objnam.0-1:    $(HACK_H)
  676. $(OBJ)\objnam.2-b:    $(HACK_H)
  677. $(OBJ)\options.o:    $(HACK_H)    $(INCL)\termcap.h
  678. $(OBJ)\pager.o:        $(HACK_H)
  679.     $(CC) $(CFLAGS) /Od /Fo$(OBJ)\$*.o $*.c
  680. $(OBJ)\pickup.o:    $(HACK_H)
  681. $(OBJ)\pline.o:        $(HACK_H)    $(EPRI_H)
  682. $(OBJ)\polyself.0-1:    $(HACK_H)
  683. $(OBJ)\polyself.2-b:    $(HACK_H)
  684. $(OBJ)\potion.o:    $(HACK_H)
  685. $(OBJ)\pray.o:        $(HACK_H)    $(EPRI_H)
  686. $(OBJ)\priest.0:    $(HACK_H)    $(INCL)\mfndpos.h    $(ESHK_H) \
  687.             $(EPRI_H)    $(EMIN_H)
  688. $(OBJ)\priest.1-b:    $(HACK_H)    $(INCL)\mfndpos.h    $(ESHK_H) \
  689.             $(EPRI_H)    $(EMIN_H)
  690. $(OBJ)\quest.o:        $(HACK_H)    $(INCL)\quest.h    $(INCL)\qtext.h
  691. $(OBJ)\questpgr.o:    $(HACK_H)    $(INCL)\qtext.h
  692. $(OBJ)\read.0:        $(HACK_H)
  693. $(OBJ)\read.1-b:    $(HACK_H)
  694. $(OBJ)\rect.o:        $(HACK_H)
  695. $(OBJ)\restore.o:    $(HACK_H)    $(INCL)\lev.h    $(INCL)\termcap.h \
  696.             $(INCL)\quest.h
  697. $(OBJ)\rip.o:        $(HACK_H)
  698. $(OBJ)\rnd.0:        $(HACK_H)
  699. $(OBJ)\rnd.1:        $(HACK_H)
  700. $(OBJ)\rnd.2-b:        $(HACK_H)
  701. $(OBJ)\rumors.o:    $(HACK_H)
  702. $(OBJ)\save.o:        $(HACK_H)    $(INCL)\lev.h    $(INCL)\quest.h
  703. $(OBJ)\shk.0:        $(HACK_H)    $(ESHK_H)
  704. $(OBJ)\shk.1-b:        $(HACK_H)    $(ESHK_H)
  705. $(OBJ)\shknam.0:    $(HACK_H)    $(ESHK_H)
  706. $(OBJ)\shknam.1-b:    $(HACK_H)    $(ESHK_H)
  707. $(OBJ)\sit.o:        $(HACK_H)    $(INCL)\artifact.h
  708. $(OBJ)\sounds.0:    $(HACK_H)    $(INCL)\edog.h    $(ESHK_H)
  709. $(OBJ)\sounds.1-b:    $(HACK_H)    $(INCL)\edog.h    $(ESHK_H)
  710. $(OBJ)\sp_lev.o:    $(HACK_H)    $(SP_LEV_H)    $(INCL)\rect.h
  711. $(OBJ)\spell.o:        $(HACK_H)
  712. $(OBJ)\steal.0-1:    $(HACK_H)
  713. $(OBJ)\steal.2-b:    $(HACK_H)
  714. $(OBJ)\timeout.0:    $(HACK_H)
  715. $(OBJ)\timeout.1-b:    $(HACK_H)
  716. $(OBJ)\topten.o:    $(HACK_H)
  717. $(OBJ)\track.0:        $(HACK_H)
  718. $(OBJ)\track.1:        $(HACK_H)
  719. $(OBJ)\track.2-b:    $(HACK_H)
  720. $(OBJ)\trap.0-1:    $(HACK_H)    $(INCL)\edog.h
  721. $(OBJ)\trap.2:        $(HACK_H)    $(INCL)\edog.h
  722. $(OBJ)\trap.b:        $(HACK_H)    $(INCL)\edog.h
  723. $(OBJ)\u_init.o:    $(HACK_H)
  724. $(OBJ)\uhitm.o:        $(HACK_H)    $(INCL)\artifact.h
  725. $(OBJ)\vault.0:        $(HACK_H)    $(VAULT_H)
  726. $(OBJ)\vault.1-b:    $(HACK_H)    $(VAULT_H)
  727. $(OBJ)\version.o:    $(HACK_H)    $(INCL)\date.h    $(INCL)\patchlev.h
  728. $(OBJ)\vision.o:    $(HACK_H)    $(INCL)\vis_tab.h
  729. $(OBJ)\vis_tab.o:    $(HACK_H)    $(INCL)\vis_tab.h
  730. $(OBJ)\weapon.0-1:    $(HACK_H)
  731. $(OBJ)\weapon.2-b:    $(HACK_H)
  732. $(OBJ)\were.0:        $(HACK_H)
  733. $(OBJ)\were.1-b:    $(HACK_H)
  734. $(OBJ)\wield.o:        $(HACK_H)
  735. $(OBJ)\wizard.0:    $(HACK_H)    $(INCL)\qtext.h
  736. $(OBJ)\wizard.1-b:    $(HACK_H)    $(INCL)\qtext.h
  737. $(OBJ)\worm.o:        $(HACK_H)    $(INCL)\lev.h
  738. $(OBJ)\worn.o:        $(HACK_H)
  739. $(OBJ)\write.o:        $(HACK_H)
  740. $(OBJ)\zap.o:        $(HACK_H)
  741.