NHDT->ANH, nethack->anethack, nhdat->anhdat
[aNetHack.git] / sys / msdos / Makefile.MSC
blob7e0ed591af027dba9e365554da20997bba4a6e19
1 # aNetHack 0.0.1        Makefile.MSC    $ANH-Date: 1432512792 2015/05/25 00:13:12 $  $ANH-Branch: master $:$ANH-Revision: 1.21 $
2 #       Copyright (c) aNetHack PC Development Team 1997 - 2012.
3 #       PC aNetHack 3.4x Makefile for MSC V1.52c (16 bit compiler)
5 #       For questions or comments: anethack-bugs@anethack.org
7 #       In addition to your C compiler,
9 #       if you want to change        you will need a
10 #       files with suffix            workalike for
11 #             .y                        yacc
12 #             .l                        lex
16 # Game Installation Variables
17 # NOTE: Make sure GAMEDIR exists before make is started.
19 GAME = anethack
20 GAMEDIR =..\binary
23 # Directories
26 DAT  = ..\dat
27 DOC  = ..\doc
28 INCL = ..\include
29 MSYS = ..\sys\msdos
30 SRC  = ..\src
31 SSHR = ..\sys\share
32 UTIL = ..\util
33 WIN  = ..\win\tty
34 WSHR = ..\win\share
37 #  Executables.
39 CC    = cl
40 LINK  = link
41 MAKEBIN  = nmake
43 # if you have a uudecode program, add its name here
44 # otherwise leave blank
45 UUDECODE =
48 #  Yacc/Lex ... if you got 'em.
50 # If you have yacc/lex or a work-alike set YACC_LEX to Y
52 YACC_LEX = N
54 # If YACC_LEX is Y above, set the following to values appropriate for
55 # your tools.
57 YACC   = bison -y
58 LEX    = flex
59 YTABC  = y_tab.c
60 YTABH  = y_tab.h
61 LEXYYC = lexyy.c
65 # Uncomment this line if you want to include support for ALT-numeric
66 # sequences, such as ALT-2 for toggling #twoweapon mode.  
67 # Note that this code did not get a thorough testing prior to 3.4.x
68 #NEWALT=/DNEW_ALT
71 # Uncomment this line if your shell doesn't support FOR bat syntax (DOSBOX).
72 NO_FOR=Y
74 #############################################################################
76 # nothing below this line should have to be changed
79 LNKOPT = SCHEMA35.DEF
82 # Controls whether MOVE tracing is enabled in the executable
83 # This should be left commented unless you are tinkering with the
84 # overlay structure of aNetHack.  The executable runs _very_
85 # slowly when the movetr.lib is linked in.
88 #MOVETR= movetr.lib
90 # do not change this
91 ! IF ("$(MOVETR)"!="")
92 MVTRCL = /DMOVE_PROF
93 ! ELSE
94 MVTRCL =
95 ! ENDIF
98 # Uncomment the line below if you want to store all the level files,
99 # help files, etc. in a single library file.
101 USE_DLB = Y
103 ! IF ("$(USE_DLB)"=="Y")
104 DLBFLG = -DDLB
105 ! ELSE
106 DLBFLG =
107 ! ENDIF
109 LIBRARIES = $(LIBS) $(TERMLIB)
111 GAMEFILE = $(GAMEDIR)\$(GAME).exe
114 #  Flags.
116 # Debugging
117 #CFLAGS = /Zi /DFUNCTION_LEVEL_LINKING /DUSE_TILES /DDLB
118 #LFLAGS = /CODEVIEW /NOI/MAP /CPARM:1 /INFO
120 #    Normal
121 LFLAGS = /NOI/MAP /CPARM:1 /INFO
122 CFLAGS = /DFUNCTION_LEVEL_LINKING /DUSE_TILES /DDLB
123 SPECOPTS =
125 # Leaving MACHINE_CODE undefined will allow it to run
126 # on any Intel 8088 machines and above.
127 # Set to 1 for 80186 and above only
128 # Set to 2 for 80286 and above only
129 # Set to 3 for 80386 and above only
131 MACHINE_CODE = 
134 #  Utility Objects.
137 # Shorten up the location for some files
140 O  = $(OBJ)\                            # comment so \ isn't last char
142 U  = $(UTIL)\                           # comment so \ isn't last char
144 SPLEVDES = $(DAT)\Arch.des $(DAT)\Barb.des $(DAT)\bigroom.des \
145         $(DAT)\castle.des $(DAT)\Caveman.des $(DAT)\endgame.des \
146         $(DAT)\gehennom.des $(DAT)\Healer.des $(DAT)\Knight.des \
147         $(DAT)\knox.des $(DAT)\Monk.des $(DAT)\medusa.des \
148         $(DAT)\mines.des $(DAT)\oracle.des $(DAT)\Priest.des \
149         $(DAT)\Ranger.des $(DAT)\Rogue.des $(DAT)\Samurai.des \
150         $(DAT)\Tourist.des $(DAT)\tower.des $(DAT)\Valkyrie.des \
151         $(DAT)\Wizard.des $(DAT)\yendor.des
153 VGAOBJ      = vidvga.o
155 MAKESRC     = $(U)makedefs.c
157 SPLEVSRC    = $(U)lev_yacc.c  $(U)lev_$(LEX).c   $(U)lev_main.c  \
158                 $(U)panic.c
160 DGNCOMPSRC  = $(U)dgn_yacc.c  $(U)dgn_$(LEX).c   $(U)dgn_main.c
162 MAKEOBJS    = makedefs.o  monst.o        objects.o
164 SPLEVOBJS   = lev_yacc.o  lev_$(LEX).o  lev_main.o  alloc.o     \
165                 monst.o     objects.o       panic.o  \
166                 drawing.o       decl.o  stubvid.o
168 DGNCOMPOBJS = dgn_yacc.o  dgn_$(LEX).o  dgn_main.o  alloc.o      \
169                 panic.o
171 RECOVOBJS   = recover.o
174 #  Tile related object files.
176 TILOBJ      = tile.o pctiles.o $(VGAOBJ)
178 TEXTIO      = tiletext.o tiletxt.o drawing.o decl.o monst.o objects.o stubvid.o
180 TEXTIO2     = tiletex2.o tiletxt2.o drawing.o decl.o monst.o objects.o stubvid.o
183 PLANAR_TIB  = aNetHack1.tib
185 OVERVIEW_TIB = aNetHacko.tib
187 TILEUTIL    = $(TILOBJ) tile2bin.exe til2bin2.exe $(PLANAR_TIB) $(OVERVIEW_TIB)
189 TILEFILES   = $(WSHR)\monsters.txt $(WSHR)\objects.txt $(WSHR)\other.txt
191 TILEFILES2  = $(WSHR)\monthin.txt $(WSHR)\objthin.txt $(WSHR)\oththin.txt
193 GIFREADERS  = gifread.o alloc.o panic.o
195 GIFREAD2    = gifread2.o alloc.o panic.o
197 PPMWRITERS  = ppmwrite.o alloc.o panic.o
199 PPMWRIT2    = ppmwrit2.o alloc.o panic.o
201 DLBOBJS     = dlb_main.o dlb.o alloc.o panic.o
203 #  Object files for the game itself.
205 VOBJ01 = allmain.o  alloc.o    apply.o    artifact.o attrib.o
206 VOBJ02 = ball.o     bones.o    botl.o     cmd.o      dbridge.o
207 VOBJ03 = decl.o     detect.o   display.o  do.o       do_name.o
208 VOBJ04 = do_wear.o  dog.o      dogmove.o  dokick.o   dothrow.o
209 VOBJ05 = drawing.o  dungeon.o  eat.o      end.o      engrave.o
210 VOBJ06 = exper.o    explode.o  extralev.o files.o    fountain.o
211 VOBJ07 = getline.o  hack.o     hacklib.o  invent.o   lock.o
212 VOBJ08 = mail.o     main.o     makemon.o  mapglyph.o mcastu.o   mhitm.o
213 VOBJ09 = mhitu.o    minion.o   mkmap.o    mklev.o    mkmaze.o
214 VOBJ10 = mkobj.o    mkroom.o   mon.o      mondata.o  monmove.o
215 VOBJ11 = monst.o    monstr.o   mplayer.o  mthrowu.o  muse.o
216 VOBJ12 = music.o    o_init.o   objects.o  objnam.o   options.o
217 VOBJ13 = pickup.o   pline.o    polyself.o potion.o   quest.o
218 VOBJ14 = questpgr.o pager.o    pray.o     priest.o   read.o
219 VOBJ15 = rect.o     restore.o  rip.o      rnd.o      role.o
220 VOBJ16 = rumors.o   save.o         shk.o      shknam.o   sit.o
221 VOBJ17 = sounds.o   sp_lev.o   spell.o    steal.o        steed.o
222 VOBJ18 = termcap.o  timeout.o  topl.o     topten.o   track.o
223 VOBJ19 = trap.o     u_init.o   uhitm.o    vault.o    vision.o
224 VOBJ20 = vis_tab.o  weapon.o   were.o     wield.o    windows.o
225 VOBJ21 = wintty.o   wizard.o   worm.o     worn.o     write.o
226 VOBJ22 = zap.o      light.o    dlb.o      dig.o      teleport.o
227 VOBJ23 = random.o   region.o   sys.o
229 SOBJ   = msdos.o    sound.o    pcsys.o    tty.o      unix.o    video.o \
230         vidtxt.o    pckeys.o
232 VVOBJ  = version.o
234 VOBJ   = $(VOBJ01) $(VOBJ02) $(VOBJ03) $(VOBJ04) $(VOBJ05) \
235         $(VOBJ06) $(VOBJ07) $(VOBJ08) $(VOBJ09) $(VOBJ10) \
236         $(VOBJ11) $(VOBJ12) $(VOBJ13) $(VOBJ14) $(VOBJ15) \
237         $(VOBJ16) $(VOBJ17) $(VOBJ18) $(VOBJ19) $(VOBJ20) \
238         $(VOBJ21) $(VOBJ22) $(VOBJ23)
240 ALLOBJ = $(VOBJ) $(SOBJ) $(TILOBJ) $(VVOBJ)
243 #  Header Objects.
246 DGN_FILE_H = $(INCL)\align.h    $(INCL)\dgn_file.h
247 DUNGEON_H  = $(INCL)\align.h    $(INCL)\dungeon.h
248 MONDATA_H  = $(INCL)\align.h    $(INCL)\mondata.h
249 MONST_H    = $(INCL)\mextra.h   $(INCL)\align.h $(INCL)\monst.h
250 PERMONST_H = $(INCL)\monattk.h  $(INCL)\monflag.h   $(INCL)\align.h   \
251             $(INCL)\permonst.h
252 RM_H       = $(INCL)\align.h    $(INCL)\rm.h
253 SP_LEV_H   = $(INCL)\align.h    $(INCL)\sp_lev.h
254 YOUPROP_H  = $(PERMONST_H)      $(MONDATA_H)        $(INCL)\prop.h    \
255             $(INCL)\pm.h       $(INCL)\youprop.h
256 YOU_H      = $(MONST_H)         $(YOUPROP_H)        $(INCL)\align.h   \
257              $(INCL)\attrib.h   $(INCL)\you.h
258 DISPLAY_H  = $(MONDATA_H)       $(INCL)\vision.h    $(INCL)\display.h
259 PCCONF_H   = $(INCL)\micro.h    $(INCL)\system.h    $(INCL)\pcconf.h \
260             $(MSYS)\pcvideo.h
261 CONFIG_H   = $(GLOBAL_H)        $(INCL)\tradstdc.h  $(INCL)\config1.h \
262             $(INCL)\config.h
263 DECL_H     = $(YOU_H)           $(INCL)\spell.h     $(INCL)\color.h   \
264              $(INCL)\obj.h      $(INCL)\onames.h    $(INCL)\pm.h      \
265               $(INCL)\decl.h
266 GLOBAL_H   = $(PCCONF_H)        $(INCL)\coord.h     $(INCL)\global.h
267 HACK_H     = $(CONFIG_H)        $(INCL)\context.h   $(DUNGEON_H) $(DECL_H) \
268                $(DISPLAY_H)       $(INCL)\monsym.h    $(INCL)\mkroom.h  \
269               $(INCL)\objclass.h $(INCL)\trap.h      $(INCL)\flag.h    \
270               $(RM_H)            $(INCL)\vision.h    $(INCL)\wintype.h \
271               $(INCL)\engrave.h  $(INCL)\rect.h      $(INCL)\sys.h \
272                $(INCL)\trampoli.h $(INCL)\hack.h
273 DLB_H      = $(INCL)\dlb.h
274 TILE_H     = $(WSHR)\tile.h $(MSYS)\pctiles.h
277 # Make Roolz dude.
278 # Due to the inadequacy of some makes these must accord with a
279 # topological sort of the generated-from relation... output on
280 # the left, input on the right. Trust me.
283 .SUFFIXES:  .exe .o .til .uu .c .y .l
286 # Rules for files in src
290 .c{$(OBJ)}.o:
291         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $<
293 .c.o:
294         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $<
296 {$(SRC)}.c{$(OBJ)}.o:
297         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $<
299 {$(SRC)}.c.o:
300         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $<
303 # Rules for files in sys\share
306 {$(SYS)}.c{$(OBJ)}.o:
307         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $<
309 {$(SYS)}.c.o:
310         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $<
313 # Rules for files in sys\msdos
316 {$(MSYS)}.c{$(OBJ)}.o:
317         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $<
319 {$(MSYS)}.c.o:
320         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $<
322 {$(MSYS)}.h{$(INCL)}.h:
323         @copy $< $@
326 # Rules for files in util
329 {$(UTIL)}.c{$(OBJ)}.o:
330         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $<
332 {$(UTIL)}.c.o:
333         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $<
336 # Rules for files in win\share
339 {$(WSHR)}.c.o:
340         @@$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $<
342 {$(WSHR)}.c{$(OBJ)}.o:
343         @@$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $<
345 {$(WSHR)}.h{$(INCL)}.h:
346         @copy $< $@
348 {$(WSHR)}.txt{$(DAT)}.txt:
349         @copy $< $@
352 # Rules for files in win\tty
355 {$(WTTY)}.c{$(OBJ)}.o:
356         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $<
358 {$(WTTY)}.c.o:
359         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $<
362 ! IF ("$(USE_DLB)"=="Y")
363 DLB = anhdat
364 ! ELSE
365 DLB =
366 ! ENDIF
368 ########################################################
369 #  
370 # TARGETS
374 #  The default make target (so just typing 'nmake' is useful).
376 default : envchk $(GAMEFILE)
378 #  The default target.
380 $(GAME): $(O)utility.tag $(GAMEFILE)
381         @echo $(GAME) is up to date.
384 #  Everything
387 all: install
389 install: envchk $(GAME) $(O)install.tag
390         @echo Done.
392 $(O)install.tag:        $(DAT)\data     $(DAT)\rumors    $(DAT)\dungeon \
393                 $(DAT)\oracles  $(DAT)\quest.dat $(O)sp_lev.tag $(DLB)
394 ! IF ("$(USE_DLB)"=="Y")
395         copy $(SRC)\anhdat         $(GAMEDIR)
396         copy $(DAT)\license       $(GAMEDIR)
397 ! ELSE
398         copy $(DAT)\*.            $(GAMEDIR)
399         copy $(DAT)\*.dat         $(GAMEDIR)
400         copy $(DAT)\*.lev         $(GAMEDIR)
401         if exist $(GAMEDIR)\makefile del $(GAMEDIR)\makefile
402 ! ENDIF
403         if exist $(DAT)\symbols copy $(DAT)\symbols $(GAMEDIR)
404         copy $(SSHR)\termcap      $(GAMEDIR)
405         copy *.tib                $(GAMEDIR)
406         copy $(SSHR)\aNetHack.cnf  $(GAMEDIR)\defaults.nh
407         copy $(MSYS)\NHAccess.nh  $(GAMEDIR)
408         copy $(U)recover.exe          $(GAMEDIR)
409         if exist $(DOC)\guideb*.txt copy $(DOC)\guideb*.txt $(GAMEDIR)
410         if exist $(DOC)\recover.txt copy $(DOC)\recover.txt $(GAMEDIR)
411         if exist $(DOC)\anethack.txt copy $(DOC)\anethack.txt $(GAMEDIR)
412         echo install done > $@
414 $(O)sp_lev.tag: $(O)utility.tag $(SPLEVDES)
415         cd $(DAT)
416         $(U)lev_comp bigroom.des
417         $(U)lev_comp castle.des
418         $(U)lev_comp endgame.des
419         $(U)lev_comp gehennom.des
420         $(U)lev_comp knox.des
421         $(U)lev_comp mines.des
422         $(U)lev_comp medusa.des
423         $(U)lev_comp oracle.des
424         $(U)lev_comp sokoban.des
425         $(U)lev_comp tower.des
426         $(U)lev_comp yendor.des
427         $(U)lev_comp arch.des
428         $(U)lev_comp barb.des
429         $(U)lev_comp caveman.des
430         $(U)lev_comp healer.des
431         $(U)lev_comp knight.des
432         $(U)lev_comp monk.des
433         $(U)lev_comp priest.des
434         $(U)lev_comp ranger.des
435         $(U)lev_comp rogue.des
436         $(U)lev_comp samurai.des
437         $(U)lev_comp tourist.des
438         $(U)lev_comp valkyrie.des
439         $(U)lev_comp wizard.des
440         cd $(SRC)
441 #       -@if exist $(O)sp_lev.tag del $(O)sp_lev.tag
442         @echo sp_levs done >$(O)sp_lev.tag
443         
444 $(O)utility.tag: $(INCL)\date.h $(INCL)\trap.h  \
445         $(INCL)\onames.h $(INCL)\pm.h monstr.c vis_tab.c \
446         $(U)lev_comp.exe $(U)dgn_comp.exe $(U)recover.exe $(TILEUTIL)
447         -@if exist $(O)utility.tag del $(O)utility.tag
448         @echo utilities made > $@
450 tileutil: gif2txt.exe txt2ppm.exe
451         @echo Optional tile development utilities are up to date.
453 .PHONEY: envchk
455 envchk:
456 !       IF ("$(MACHINE_CODE)"!="")
457            @SET MC=/G$(MACHINE_CODE)
458 !       ELSE
459            @SET MC=
460 !       ENDIF
461 !       IF ("$(CL)"=="")
462            @echo CL Environment variable is defined as follows:
463            SET CL=/AL $(MC) /Oo /Gy /Gs /Gt10 /Gf /Zp1 /W2 /I$(INCL) /I$(MSYS) /I$(WSHR) /nologo /c
464 !       ELSE
465            @echo Warning CL Environment variable is defined:
466            @echo CL=$(CL)
467            @echo Overriding that definition as follows:
468            SET CL=/AL $(MC) /Oo /Gy /Gs /Gt10 /Gf /Zp1 /W2 /I$(INCL) /I$(MSYS) /I$(WSHR) /nologo /c
469 !       ENDIF
471 #  The main target.
473 $(GAMEFILE) :  $(LNKOPT) $(ALLOBJ)
474         @echo Linking....
475         $(LINK) $(LFLAGS) /SE:1000 /DYNAMIC:2650 /NOE /ST:6000 @<<$(GAME).lnk
476                 $(ALLOBJ:^      =+^
477                 )
478                 $(GAMEFILE)
479                 $(GAME)
480                 $(TERMLIB) $(MOVETR) $(CLIB) $(BCOVL) $(BCMDL)
481                 $(LNKOPT);
483         @if exist $(O)install.tag del $(O)install.tag
484         @if exist $(GAMEDIR)\$(GAME).bak del $(GAMEDIR)\$(GAME).bak
487 #  Housekeeping.
490 clean:
491         del *.o
492         del *.map
493         del $(U)dlb_main.exe
495 spotless: clean
496         if exist $(O)utility.tag           del $(O)utility.tag
497         if exist $(O)install.tag   del $(O)install.tag
498         if exist $(GAME).lnk       del $(GAME).lnk
499         if exist $(U)makedefs.exe  del $(U)makedefs.exe
500         if exist $(U)lev_comp.exe  del $(U)lev_comp.exe
501         if exist $(U)dgn_comp.exe  del $(U)dgn_comp.exe
502         if exist $(SRC)\lev_lex.c  del $(SRC)\lev_lex.c
503         if exist $(SRC)\lev_yacc.c del $(SRC)\lev_yacc.c
504         if exist $(SRC)\dgn_lex.c  del $(SRC)\dgn_lex.c
505         if exist $(SRC)\dgn_yacc.c del $(SRC)\dgn_yacc.c
506         if exist $(U)recover.exe   del $(U)recover.exe
507         if exist $(INCL)\onames.h  del $(INCL)\onames.h
508         if exist $(INCL)\pm.h      del $(INCL)\pm.h
509         if exist $(INCL)\vis_tab.h del $(INCL)\vis_tab.h
510         if exist $(INCL)\pcvideo.h del $(INCL)\pcvideo.h
511         if exist $(MSYS)\pctiles.h del $(MSYS)\pctiles.h
512         if exist $(INCL)\portio.h  del $(MSYS)\portio.h
513         if exist $(WSHR)\tile.h    del $(WSHR)\tile.h
514         if exist monstr.c          del monstr.c
515         if exist vis_tab.c         del vis_tab.c
516         if exist $(SRC)\panic.c    del $(SRC)\panic.c
517         if exist $(SRC)\makedefs.c del $(SRC)\makedefs.c
518         if exist $(SRC)\recover.c  del $(SRC)\recover.c
519         if exist $(SRC)\lev_main.c del $(SRC)\lev_main.c
520         if exist $(SRC)\dlb_main.c del $(SRC)\dlb_main.c
521         if exist $(SRC)\dgn_main.c del $(SRC)\dgn_main.c
522         if exist $(SRC)\wintty.c   del $(SRC)\wintty.c
523         if exist $(SRC)\topl.c     del $(SRC)\topl.c
524         if exist $(SRC)\getline.c  del $(SRC)\getline.c
525         if exist $(SRC)\termcap.c  del $(SRC)\termcap.c
526         if exist $(SRC)\tile2bin.c del $(SRC)\tile2bin.c
527         if exist $(SRC)\msdos.c    del $(SRC)\msdos.c
528         if exist $(SRC)\pckeys.c   del $(SRC)\pckeys.c
529         if exist $(SRC)\video.c    del $(SRC)\video.c
530         if exist $(SRC)\sound.c    del $(SRC)\sound.c
531         if exist $(SRC)\tilemap.c  del $(SRC)\tilemap.c
532         if exist $(SRC)\gifread.c  del $(SRC)\gifread.c
533         if exist $(SRC)\ppmwrite.c del $(SRC)\ppmwrite.c
534         if exist $(SRC)\pcmain.c   del $(SRC)\pcmain.c
535         if exist $(SRC)\pcunix.c   del $(SRC)\pcunix.c
536         if exist $(SRC)\pcsys.c    del $(SRC)\pcsys.c
537         if exist $(SRC)\pctty.c    del $(SRC)\pctty.c
538         if exist $(SRC)\tile.c     del $(SRC)\tile.c
539         if exist $(INCL)\date.h    del $(INCL)\date.h
540         if exist $(INCL)\onames.h  del $(INCL)\onames.h
541         if exist $(INCL)\pm.h      del $(INCL)\pm.h
542         if exist $(INCL)\vis_tab.h del $(INCL)\vis_tab.h
543         if exist vis_tab.c         del vis_tab.c
544         if exist *.lnk             del *.lnk
545         if exist *.def             del *.def
546         if exist *.map             del *.map
547         if exist a.out             del a.out
548         if exist tilemap.exe       del tilemap.exe
549         if exist tile2bin.exe      del tile2bin.exe
550         if exist $(DAT)\data       del $(DAT)\data
551         if exist $(DAT)\*.lev      del $(DAT)\*.lev
552         if exist $(DAT)\data       del $(DAT)\data
553         if exist $(DAT)\dungeon    del $(DAT)\dungeon
554         if exist $(DAT)\options    del $(DAT)\options
555         if exist $(DAT)\oracles    del $(DAT)\oracles
556         if exist $(DAT)\rumors     del $(DAT)\rumors
557         if exist $(DAT)\quest.dat  del $(DAT)\quest.dat
558         if exist $(SRC)\anhdat      del $(SRC)\anhdat
559         if exist $(DAT)\dlb.lst    del $(DAT)\dlb.lst
560         if exist $(DAT)\msdoshlp.txt del $(DAT)\msdoshlp.txt
561         if exist $(DAT)\dlb_main.exe del $(DAT)\dlb_main.exe
562         if exist $(DAT)\lev_comp.exe del $(DAT)\lev_comp.exe
563         if exist $(DAT)\dgn_comp.exe del $(DAT)\dgn_comp.exe
564         if exist $(O)sp_lev.tag        del $(O)sp_lev.tag
565         if exist $(PLANAR_TIB)     del $(PLANAR_TIB)
566         if exist $(OVERVIEW_TIB)   del $(OVERVIEW_TIB)
570 #  Secondary Targets.
573 #  Makedefs Stuff
576 $(U)makedefs.exe:  $(MAKEOBJS)
577         @echo Linking....
578         @$(LINK) $(LFLAGS) @<<$(@B).lnk
579                 $(MAKEOBJS:^      =+^
580                 )
581                 $@
582                 $(@B)
583                 ;
586 makedefs.o:  $(CONFIG_H)        $(PERMONST_H)      $(INCL)\objclass.h \
587                 $(INCL)\monsym.h   $(INCL)\qtext.h $(UTIL)\makedefs.c
589 #  The following include files depend on makedefs to be created.
591 #  date.h should be remade every time any of the source or include
592 #  files is modified.
595 $(INCL)\date.h : $(U)makedefs.exe
596         -$(U)makedefs -v
598 $(INCL)\onames.h: $(U)makedefs.exe
599         -$(U)makedefs -o
601 $(INCL)\pm.h: $(U)makedefs.exe
602         -$(U)makedefs -p
604 monstr.c: $(U)makedefs.exe
605         -$(U)makedefs -m
607 $(INCL)\vis_tab.h: $(U)makedefs.exe
608         -$(U)makedefs -z
610 vis_tab.c: $(U)makedefs.exe
611         -$(U)makedefs -z
614 # Level Compiler Stuff
617 $(U)lev_comp.exe:  $(SPLEVOBJS)
618         @echo Linking $@...
619         @$(LINK) $(LFLAGS) @<<$(@B).lnk
620                 $(SPLEVOBJS:^   =+^
621                 )
622                 $@
623                 $(@B)
624                 $(BCMDL);
627 $(O)lev_yacc.o:  $(HACK_H)   $(SP_LEV_H) $(INCL)\lev_comp.h $(U)lev_yacc.c
629 $(O)lev_$(LEX).o:  $(HACK_H)   $(INCL)\lev_comp.h $(SP_LEV_H) \
630         $(U)lev_$(LEX).c
632 $(O)lev_main.o: $(U)lev_main.c $(HACK_H)   $(SP_LEV_H)
634 $(U)lev_yacc.c $(INCL)\lev_comp.h : $(U)lev_comp.y
635 !       IF "$(DO_YACC)"=="YACC_ACT"
636            $(YACC) -d -l $(U)lev_comp.y
637            copy $(YTABC) $(U)lev_yacc.c
638            copy $(YTABH) $(INCL)\lev_comp.h
639            @del $(YTABC)
640            @del $(YTABH)
641 !       ELSE
642            @echo.
643            @echo $(U)lev_comp.y has changed.
644            @echo To update $(U)lev_yacc.c and $(INCL)\lev_comp.h run $(YACC).
645            @echo.
646            @echo For now, we will copy the prebuilt lev_yacc.c
647            @echo from $(SSHR) to $(U)lev_yacc.c, and copy the prebuilt
648            @echo lev_comp.h from $(SYS) to $(UTIL)\lev_comp.h
649            @echo and use those.
650            @echo.
651            copy $(SSHR)\lev_yacc.c $@ >nul
652            touch $@
653            copy $(SSHR)\lev_comp.h $(INCL)\lev_comp.h >nul
654            touch $(INCL)\lev_comp.h
655 !       ENDIF
657 $(U)lev_$(LEX).c:  $(U)lev_comp.l
658 !       IF "$(DO_LEX)"=="LEX_ACT"
659            $(LEX) $(FLEXSKEL) $(U)lev_comp.l
660            copy $(LEXYYC) $@
661            @del $(LEXYYC)
662 !       ELSE
663            @echo.
664            @echo $(U)lev_comp.l has changed. To update $@ run $(LEX).
665            @echo.
666            @echo For now, we will copy a prebuilt lev_lex.c
667            @echo from $(SSHR) to $@ and use it.
668            @echo.
669            copy $(SSHR)\lev_lex.c $@ >nul
670            touch $@
671 !       ENDIF
674 # Dungeon Stuff
677 $(U)dgn_comp.exe: $(DGNCOMPOBJS)
678     @echo Linking $@...
679         @$(LINK) $(LFLAGS) @<<$(@B).lnk
680                 $(DGNCOMPOBJS:^ =+^
681                 )
682                 $@
683                 $(@B)
684                 $(BCMDL);
687 $(O)dgn_yacc.o: $(HACK_H)   $(DGN_FILE_H) $(INCL)\dgn_comp.h \
688         $(U)dgn_yacc.c
690 $(O)dgn_$(LEX).o: $(HACK_H)   $(DGN_FILE_H)  $(INCL)\dgn_comp.h \
691         $(U)dgn_$(LEX).c
693 $(O)dgn_main.o: $(HACK_H) $(U)dgn_main.c
695 $(U)dgn_yacc.c $(INCL)\dgn_comp.h : $(U)dgn_comp.y
696 !       IF "$(DO_YACC)"=="YACC_ACT"
697            $(YACC) -d -l $(U)dgn_comp.y
698            copy $(YTABC) $(U)dgn_yacc.c
699            copy $(YTABH) $(INCL)\dgn_comp.h
700            @del $(YTABC)
701            @del $(YTABH)
702 !       ELSE
703            @echo.
704            @echo $(U)dgn_comp.y has changed. To update $@ and
705            @echo $(INCL)\dgn_comp.h run $(YACC).
706            @echo.
707            @echo For now, we will copy the prebuilt dgn_yacc.c from
708            @echo $(SSHR) to $(U)dgn_yacc.c, and copy the prebuilt
709            @echo dgn_comp.h from $(SSHR) to $(INCL)\dgn_comp.h 
710            @echo and use those.
711            @echo.
712            copy $(SSHR)\dgn_yacc.c $@ >nul
713            touch $@
714            copy $(SSHR)\dgn_comp.h $(INCL)\dgn_comp.h >nul
715            touch $(INCL)\dgn_comp.h
716 !       ENDIF
718 $(U)dgn_$(LEX).c:  $(U)dgn_comp.l
719 !       IF "$(DO_LEX)"=="LEX_ACT"
720            $(LEX) $(FLEXSKEL)  $(U)dgn_comp.l
721            copy $(LEXYYC) $@
722            @del $(LEXYYC)
723 !       ELSE
724            @echo.
725            @echo $(U)dgn_comp.l has changed. To update $@ run $(LEX).
726            @echo.
727            @echo For now, we will copy a prebuilt dgn_lex.c
728            @echo from $(SSHR) to $@ and use it.
729            @echo.
730            copy $(SSHR)\dgn_lex.c $@ >nul
731            touch $@
732 !       ENDIF
735 #  Recover Utility
738 $(U)recover.exe:   $(RECOVOBJS)
739         @echo Linking....
740         @$(LINK) $(LFLAGS) @<<$(@B).lnk
741                 $(RECOVOBJS:^      =+^
742                 )
743                 $@
744                 $(@B)
745                 ;
748 recover.o:   $(CONFIG_H) $(UTIL)\recover.c
751 #  Header file moves required for tile support
754 #$(WSHR)\tile.h: $(WSHR)\tile.h
755 #       copy $(WSHR)\tile.h $@
757 #$(MSYS)\pctiles.h: $(MSYS)\pctiles.h
758 #       copy $(MSYS)\pctiles.h $@
760 #$(INCL)\pcvideo.h: $(MSYS)\pcvideo.h
761 #       copy $(MSYS)\pcvideo.h $@
763 #$(MSYS)\portio.h: $(MSYS)\portio.h
764 #       copy $(MSYS)\portio.h $@
767 #  Tile Mapping
770 tile.c: tilemap.exe
771         @tilemap
772         @echo A new $@ has been created
774 tilemap.exe: tilemap.o
775         @echo Linking....
776         @$(LINK) $(LFLAGS) @<<$(@B).lnk
777                 tilemap.o
778                 $@
779                 $(@B)
780                 ;
783 tilemap.c: $(WSHR)\tilemap.c
784         copy $(WSHR)\tilemap.c .
786 tilemap.o: tilemap.c $(HACK_H) $(TILE_H)
789 #   Tile Utilities
792 #  Required for tile support
795 aNetHack1.tib: $(TILEFILES) tile2bin.exe
796         @echo Creating binary tile files (this may take some time)
797         @tile2bin
799 aNetHacko.tib: thintile.tag $(TILEFILES2) til2bin2.exe
800         @echo Creating overview binary tile files (this may take some time)
801         @til2bin2
803 tile2bin.exe: tile2bin.o $(TEXTIO)
804         @$(LINK) $(LFLAGS) tile2bin.o $(TEXTIO),$@,$(@B);
806 til2bin2.exe: til2bin2.o $(TEXTIO2)
807         @$(LINK) $(LFLAGS) til2bin2.o $(TEXTIO2),$@,$(@B);
809 thintile.exe: thintile.o 
810         @$(LINK) $(LFLAGS) thintile.o,$@,$(@B);
812 thintile.o:  $(HACK_H) $(WSHR)\tile.h $(WSHR)\thintile.c
814 thintile.tag: thintile.exe $(TILEFILES)
815         thintile
816         @echo thintiles created >thintile.tag
818 tile2bin.o:  $(HACK_H) $(WSHR)\tile.h $(MSYS)\pctiles.h $(MSYS)\pcvideo.h \
819         $(MSYS)\tile2bin.c
821 til2bin2.o:  $(HACK_H) $(WSHR)\tile.h $(MSYS)\pctiles.h $(MSYS)\pcvideo.h \
822         $(MSYS)\tile2bin.c
823         -@$(CC) $(CFLAGS) $(SPECOPTS) -DTILE_X=8 -DOVERVIEW_FILE /Zg $(MSYS)\tile2bin.c >$(@B).pro
824         @$(CC) $(CFLAGS) $(SPECOPTS) -DTILE_X=8 -DOVERVIEW_FILE /Fo$@ $(MSYS)\tile2bin.c
826 tiletext.o:  $(CONFIG_H) $(WSHR)\tile.h $(WSHR)\tiletext.c
828 tiletex2.o:  $(CONFIG_H) $(WSHR)\tile.h $(WSHR)\tiletext.c
829         -@$(CC) $(CFLAGS) $(SPECOPTS) -DTILE_X=8 /Zg $(WSHR)\tiletext.c >$(@B).pro
830         @$(CC) $(CFLAGS) $(SPECOPTS) -DTILE_X=8 /Fo$@ $(WSHR)\tiletext.c
832 tiletxt.o: $(CONFIG_H)  $(WSHR)\tile.h tilemap.c
833         -@$(CC) $(CFLAGS) $(SPECOPTS) -DTILETEXT /Zg tilemap.c >$(@B).pro
834         @$(CC) $(CFLAGS) $(SPECOPTS) -DTILETEXT /Fo$@ tilemap.c
835   
836 tiletxt2.o: $(CONFIG_H) $(WSHR)\tile.h tilemap.c
837         -@$(CC) $(CFLAGS) $(SPECOPTS) -DTILETEXT /Zg tilemap.c >$(@B).pro
838         @$(CC) $(CFLAGS) $(SPECOPTS) -DTILETEXT -DTILE_X=8 /Fo$@ tilemap.c
840 # Optional GIF Utilities (for development)
843 gif2txt.exe: $(GIFREADERS) $(TEXTIO)
844         @$(LINK) $(LFLAGS) $(GIFREADERS) $(TEXTIO),$@,$(@B);
846 gif2txt2.exe: $(GIFREAD2) $(TEXTIO2)
847         @$(LINK) $(LFLAGS) $(GIFREAD2) $(TEXTIO2),$@,$(@B);
849 txt2ppm.exe: $(PPMWRITERS) $(TEXTIO)
850         @$(LINK) $(LFLAGS) $(PPMWRITERS) $(TEXTIO),$@,$(@B);
852 txt2ppm2.exe: $(PPMWRIT2) $(TEXTIO2)
853         @$(LINK) $(LFLAGS) $(PPMWRIT2) $(TEXTIO2),$@,$(@B);
855 gifread.o: $(CONFIG_H) $(WSHR)\tile.h
857 gifread2.o: $(CONFIG_H) $(WSHR)\tile.h $(WSHR)\gifread.c
858         -@$(CC) $(CFLAGS) $(SPECOPTS) -DTILE_X=8 /Zg gifread.c >$(@B).pro
859         @$(CC) $(CFLAGS) $(SPECOPTS) -DTILE_X=8 $(WSHR)\gifread.c
861 ppmwrite.o: $(CONFIG_H) $(WSHR)\tile.h $(WSHR)\ppmwrite.c
863 ppmwrit2.o:  $(CONFIG_H) $(WSHR)\tile.h $(WSHR)\ppmwrite.c
864         -@$(CC) $(CFLAGS) $(SPECOPTS) -DTILE_X=8 /Zg ppmwrite.c >$(@B).pro
865         @$(CC) $(CFLAGS) $(SPECOPTS) -DTILE_X=8 $(WSHR)\ppmwrite.c
868 #  Optional tile viewer (development sources only)
871 viewtib.exe: viewtib.o
872         @$(LINK) $(LFLAGS) -oviewtib.exe viewtib.o $(LIBRARIES)
874 viewtib.o: $(MSYS)\viewtib.c
877 #  Other Util Dependencies.
880 alloc.o: $(CONFIG_H)     alloc.c
881 drawing.o: $(CONFIG_H) drawing.c $(MSYS)\pcvideo.h
882 decl.o: $(CONFIG_H) decl.c
883 monst.o: $(CONFIG_H)         $(PERMONST_H)      $(INCL)\monsym.h   \
884         $(INCL)\color.h  monst.c
886 objects.o: $(CONFIG_H)        $(INCL)\obj.h      $(INCL)\objclass.h \
887         $(INCL)\prop.h      $(INCL)\color.h    objects.c
889 panic.o:   $(CONFIG_H)    $(UTIL)\panic.c
894 # make data.base an 8.3 filename to prevent an nmake warning
897 DATABASE = $(DAT)\data.bas
899 $(DAT)\data:     $(O)utility.tag        $(DATABASE)
900         $(U)makedefs -d
902 $(DAT)\rumors:       $(O)utility.tag    $(DAT)\rumors.tru       $(DAT)\rumors.fal
903         $(U)makedefs -r
905 $(DAT)\quest.dat: $(O)utility.tag  $(DAT)\quest.txt
906         $(U)makedefs -q
908 $(DAT)\oracles:      $(O)utility.tag    $(DAT)\oracles.txt
909         $(U)makedefs -h
911 $(DAT)\dungeon: $(O)utility.tag  $(DAT)\dungeon.def
912         $(U)makedefs -e
913         cd $(DAT)
914         $(U)dgn_comp dungeon.pdf
915         cd $(SRC)
918 # DLB stuff
921 anhdat: $(U)dlb_main.exe $(DAT)\data $(DAT)\oracles $(DAT)\options \
922         $(DAT)\quest.dat $(DAT)\rumors $(DAT)\help $(DAT)\hh $(DAT)\cmdhelp \
923         $(DAT)\history $(DAT)\opthelp $(DAT)\wizhelp $(DAT)\dungeon \
924         $(DAT)\license $(O)sp_lev.tag
925         @copy $(MSYS)\msdoshlp.txt $(DAT)
926         @cd $(DAT)
927         @echo data >dlb.lst
928         @echo oracles >>dlb.lst
929         @echo options >>dlb.lst
930         @echo quest.dat >>dlb.lst
931         @echo rumors >>dlb.lst
932         @echo help >>dlb.lst
933         @echo hh >>dlb.lst
934         @echo cmdhelp >>dlb.lst
935         @echo history >>dlb.lst
936         @echo opthelp >>dlb.lst
937         @echo wizhelp >>dlb.lst
938         @echo dungeon >>dlb.lst
939         @echo license >>dlb.lst
940         @echo msdoshlp.txt >>dlb.lst
941 ! IF ("$(NO_FOR)"=="Y")
942         echo AIR.LEV       >>dlb.lst
943         echo ARC-FILA.LEV  >>dlb.lst
944         echo ARC-FILB.LEV  >>dlb.lst
945         echo ARC-GOAL.LEV  >>dlb.lst
946         echo ARC-LOCA.LEV  >>dlb.lst
947         echo ARC-STRT.LEV  >>dlb.lst
948         echo ASMODEUS.LEV  >>dlb.lst
949         echo ASTRAL.LEV    >>dlb.lst
950         echo BAALZ.LEV     >>dlb.lst
951         echo BAR-FILA.LEV  >>dlb.lst
952         echo BAR-FILB.LEV  >>dlb.lst
953         echo BAR-GOAL.LEV  >>dlb.lst
954         echo BAR-LOCA.LEV  >>dlb.lst
955         echo BAR-STRT.LEV  >>dlb.lst
956         echo BIGRM-1.LEV   >>dlb.lst
957         echo BIGRM-2.LEV   >>dlb.lst
958         echo BIGRM-3.LEV   >>dlb.lst
959         echo BIGRM-4.LEV   >>dlb.lst
960         echo BIGRM-5.LEV   >>dlb.lst
961         echo CASTLE.LEV    >>dlb.lst
962         echo CAV-FILA.LEV  >>dlb.lst
963         echo CAV-FILB.LEV  >>dlb.lst
964         echo CAV-GOAL.LEV  >>dlb.lst
965         echo CAV-LOCA.LEV  >>dlb.lst
966         echo CAV-STRT.LEV  >>dlb.lst
967         echo EARTH.LEV     >>dlb.lst
968         echo FAKEWIZ1.LEV  >>dlb.lst
969         echo FAKEWIZ2.LEV  >>dlb.lst
970         echo FIRE.LEV      >>dlb.lst
971         echo HEA-FILA.LEV  >>dlb.lst
972         echo HEA-FILB.LEV  >>dlb.lst
973         echo HEA-GOAL.LEV  >>dlb.lst
974         echo HEA-LOCA.LEV  >>dlb.lst
975         echo HEA-STRT.LEV  >>dlb.lst
976         echo JUIBLEX.LEV   >>dlb.lst
977         echo KNI-FILA.LEV  >>dlb.lst
978         echo KNI-FILB.LEV  >>dlb.lst
979         echo KNI-GOAL.LEV  >>dlb.lst
980         echo KNI-LOCA.LEV  >>dlb.lst
981         echo KNI-STRT.LEV  >>dlb.lst
982         echo KNOX.LEV      >>dlb.lst
983         echo MEDUSA-1.LEV  >>dlb.lst
984         echo MEDUSA-2.LEV  >>dlb.lst
985         echo MINEFILL.LEV  >>dlb.lst
986         echo MINEND-1.LEV  >>dlb.lst
987         echo MINEND-2.LEV  >>dlb.lst
988         echo MINEND-3.LEV  >>dlb.lst
989         echo MINETN-1.LEV  >>dlb.lst
990         echo MINETN-2.LEV  >>dlb.lst
991         echo MINETN-3.LEV  >>dlb.lst
992         echo MINETN-4.LEV  >>dlb.lst
993         echo MINETN-5.LEV  >>dlb.lst
994         echo MINETN-6.LEV  >>dlb.lst
995         echo MINETN-7.LEV  >>dlb.lst
996         echo MON-FILA.LEV  >>dlb.lst
997         echo MON-FILB.LEV  >>dlb.lst
998         echo MON-GOAL.LEV  >>dlb.lst
999         echo MON-LOCA.LEV  >>dlb.lst
1000         echo MON-STRT.LEV  >>dlb.lst
1001         echo ORACLE.LEV    >>dlb.lst
1002         echo ORCUS.LEV     >>dlb.lst
1003         echo PRI-FILA.LEV  >>dlb.lst
1004         echo PRI-FILB.LEV  >>dlb.lst
1005         echo PRI-GOAL.LEV  >>dlb.lst
1006         echo PRI-LOCA.LEV  >>dlb.lst
1007         echo PRI-STRT.LEV  >>dlb.lst
1008         echo RAN-FILA.LEV  >>dlb.lst
1009         echo RAN-FILB.LEV  >>dlb.lst
1010         echo RAN-GOAL.LEV  >>dlb.lst
1011         echo RAN-LOCA.LEV  >>dlb.lst
1012         echo RAN-STRT.LEV  >>dlb.lst
1013         echo ROG-FILA.LEV  >>dlb.lst
1014         echo ROG-FILB.LEV  >>dlb.lst
1015         echo ROG-GOAL.LEV  >>dlb.lst
1016         echo ROG-LOCA.LEV  >>dlb.lst
1017         echo ROG-STRT.LEV  >>dlb.lst
1018         echo SAM-FILA.LEV  >>dlb.lst
1019         echo SAM-FILB.LEV  >>dlb.lst
1020         echo SAM-GOAL.LEV  >>dlb.lst
1021         echo SAM-LOCA.LEV  >>dlb.lst
1022         echo SAM-STRT.LEV  >>dlb.lst
1023         echo SANCTUM.LEV   >>dlb.lst
1024         echo SOKO1-1.LEV   >>dlb.lst
1025         echo SOKO1-2.LEV   >>dlb.lst
1026         echo SOKO2-1.LEV   >>dlb.lst
1027         echo SOKO2-2.LEV   >>dlb.lst
1028         echo SOKO3-1.LEV   >>dlb.lst
1029         echo SOKO3-2.LEV   >>dlb.lst
1030         echo SOKO4-1.LEV   >>dlb.lst
1031         echo SOKO4-2.LEV   >>dlb.lst
1032         echo TOU-FILA.LEV  >>dlb.lst
1033         echo TOU-FILB.LEV  >>dlb.lst
1034         echo TOU-GOAL.LEV  >>dlb.lst
1035         echo TOU-LOCA.LEV  >>dlb.lst
1036         echo TOU-STRT.LEV  >>dlb.lst
1037         echo TOWER1.LEV    >>dlb.lst
1038         echo TOWER2.LEV    >>dlb.lst
1039         echo TOWER3.LEV    >>dlb.lst
1040         echo VAL-FILA.LEV  >>dlb.lst
1041         echo VAL-FILB.LEV  >>dlb.lst
1042         echo VAL-GOAL.LEV  >>dlb.lst
1043         echo VAL-LOCA.LEV  >>dlb.lst
1044         echo VAL-STRT.LEV  >>dlb.lst
1045         echo VALLEY.LEV    >>dlb.lst
1046         echo WATER.LEV     >>dlb.lst
1047         echo WIZ-FILA.LEV  >>dlb.lst
1048         echo WIZ-FILB.LEV  >>dlb.lst
1049         echo WIZ-GOAL.LEV  >>dlb.lst
1050         echo WIZ-LOCA.LEV  >>dlb.lst
1051         echo WIZ-STRT.LEV  >>dlb.lst
1052         echo WIZARD1.LEV   >>dlb.lst
1053         echo WIZARD2.LEV   >>dlb.lst
1054         echo WIZARD3.LEV   >>dlb.lst
1055 ! ELSE
1056         @for %%N in (*.lev) do echo %%N >>dlb.lst
1057 ! ENDIF
1058         $(U)dlb_main cvIf dlb.lst $(SRC)\anhdat
1059         @cd $(SRC)
1061 $(U)dlb_main.exe: $(DLBOBJS)
1062         link $(LFLAGS) /ST:5120 $(DLBOBJS),$@,$(@B);
1064 dlb_main.o: $(U)dlb_main.c $(INCL)\config.h $(DLB_H)
1065         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $(U)dlb_main.c
1067 # Game Dependencies
1069 # sys/share
1070 main.o: $(SSHR)\pcmain.c $(HACK_H) $(INCL)\dlb.h \
1071                 #$(INCL)\win32api.h
1072         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $(SSHR)\pcmain.c
1073 pcsys.o: $(SSHR)\pcsys.c $(HACK_H)
1074         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $(SSHR)\pcsys.c
1075 tty.o: $(SSHR)\pctty.c $(HACK_H)
1076         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $(SSHR)\pctty.c
1077 unix.o: $(SSHR)\pcunix.c $(HACK_H)
1078         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $(SSHR)\pcunix.c
1079 random.o: $(SSHR)\random.c $(HACK_H)
1080         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $(SSHR)\random.c
1082 # sys/msdos
1083 msdos.o : $(HACK_H)  $(MSYS)\msdos.c
1084         @$(CC) $(CFLAGS) $(SPECOPTS) $(NEWALT) /Fo$@ $(MSYS)\msdos.c
1085 pckeys.o : $(HACK_H)  $(MSYS)\pckeys.c
1086         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $(MSYS)\pckeys.c
1087 pctiles.o : $(HACK_H)  $(MSYS)\pctiles.c $(MSYS)\portio.h
1088         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $(MSYS)\pctiles.c
1089 sound.o : $(HACK_H)  $(MSYS)\sound.c $(MSYS)\portio.h
1090         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $(MSYS)\sound.c
1091 video.o : $(HACK_H)  $(MSYS)\pcvideo.h $(MSYS)\portio.h $(MSYS)\video.c
1092         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $(MSYS)\video.c
1093 vidvga.o : $(HACK_H)  $(MSYS)\pcvideo.h $(MSYS)\portio.h $(TILE_H) \
1094         $(MSYS)\vidvga.c
1095         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $(MSYS)\vidvga.c
1096 vidtxt.o : $(HACK_H)  $(MSYS)\pcvideo.h $(MSYS)\portio.h $(TILE_H) \
1097         $(MSYS)\vidtxt.c
1098         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $(MSYS)\vidtxt.c
1099 stubvid.o : $(HACK_H) $(MSYS)\video.c
1100         @$(CC) $(CFLAGS) $(SPECOPTS) -DSTUBVIDEO /Fo$@ $(MSYS)\video.c
1102 # win/tty
1103 getline.o: $(WIN)\getline.c $(HACK_H) $(INCL)\func_tab.h
1104         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $(WIN)\getline.c
1105 termcap.o: $(WIN)\termcap.c $(HACK_H) $(INCL)\tcap.h
1106         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $(WIN)\termcap.c
1107 topl.o: $(WIN)\topl.c $(HACK_H) $(INCL)\tcap.h
1108         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $(WIN)\topl.c
1109 wintty.o: $(WIN)\wintty.c $(HACK_H) $(INCL)\dlb.h \
1110                 $(INCL)\date.h $(INCL)\patchlev.h $(INCL)\tcap.h
1111         @$(CC) $(CFLAGS) $(SPECOPTS) /Fo$@ $(WIN)\wintty.c
1113 # src dependencies
1114 allmain.o: allmain.c $(HACK_H)
1115 alloc.o: alloc.c $(CONFIG_H)
1116 apply.o: apply.c $(HACK_H)
1117 artifact.o: artifact.c $(HACK_H) $(INCL)\artifact.h $(INCL)\artilist.h
1118 attrib.o: attrib.c $(HACK_H) $(INCL)\artifact.h
1119 ball.o: ball.c $(HACK_H)
1120 bones.o: bones.c $(HACK_H) $(INCL)\lev.h
1121 botl.o: botl.c $(HACK_H)
1122 cmd.o: cmd.c $(HACK_H) $(INCL)\func_tab.h
1123 dbridge.o: dbridge.c $(HACK_H)
1124 decl.o: decl.c $(HACK_H)
1125 detect.o: detect.c $(HACK_H) $(INCL)\artifact.h
1126 dig.o: dig.c $(HACK_H)
1127 display.o: display.c $(HACK_H)
1128 dlb.o: dlb.c $(CONFIG_H) $(INCL)\dlb.h
1129 do.o: do.c $(HACK_H) $(INCL)\lev.h
1130 do_name.o: do_name.c $(HACK_H)
1131 do_wear.o: do_wear.c $(HACK_H)
1132 dog.o: dog.c $(HACK_H)
1133 dogmove.o: dogmove.c $(HACK_H) $(INCL)\mfndpos.h
1134 dokick.o: dokick.c $(HACK_H)
1135 dothrow.o: dothrow.c $(HACK_H)
1136 drawing.o: drawing.c $(HACK_H) $(INCL)\tcap.h
1137 dungeon.o: dungeon.c $(HACK_H) $(INCL)\dgn_file.h $(INCL)\dlb.h
1138 eat.o: eat.c $(HACK_H)
1139 end.o: end.c $(HACK_H) $(INCL)\lev.h $(INCL)\dlb.h
1140 engrave.o: engrave.c $(HACK_H) $(INCL)\lev.h
1141 exper.o: exper.c $(HACK_H)
1142 explode.o: explode.c $(HACK_H)
1143 extralev.o: extralev.c $(HACK_H)
1144 files.o: files.c $(HACK_H) $(INCL)\dlb.h
1145 fountain.o: fountain.c $(HACK_H)
1146 hack.o: hack.c $(HACK_H)
1147 hacklib.o: hacklib.c $(HACK_H)
1148 invent.o: invent.c $(HACK_H) $(INCL)\artifact.h
1149 light.o: light.c $(HACK_H) $(INCL)\lev.h
1150 lock.o: lock.c $(HACK_H)
1151 mail.o: mail.c $(HACK_H) $(INCL)\mail.h
1152 makemon.o: makemon.c $(HACK_H)
1153 mapglyph.o: mapglyph.c $(HACK_H)
1154 mcastu.o: mcastu.c $(HACK_H)
1155 mhitm.o: mhitm.c $(HACK_H) $(INCL)\artifact.h
1156 mhitu.o: mhitu.c $(HACK_H) $(INCL)\artifact.h
1157 minion.o: minion.c $(HACK_H)
1158 mklev.o: mklev.c $(HACK_H)
1159 mkmap.o: mkmap.c $(HACK_H) $(INCL)\sp_lev.h
1160 mkmaze.o: mkmaze.c $(HACK_H) $(INCL)\sp_lev.h $(INCL)\lev.h
1161 mkobj.o: mkobj.c $(HACK_H) $(INCL)\artifact.h
1162 mkroom.o: mkroom.c $(HACK_H)
1163 mon.o: mon.c $(HACK_H) $(INCL)\mfndpos.h
1164 mondata.o: mondata.c $(HACK_H)
1165 monmove.o: monmove.c $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
1166 monst.o: monst.c $(CONFIG_H) $(INCL)\permonst.h $(INCL)\align.h \
1167                 $(INCL)\monattk.h $(INCL)\monflag.h $(INCL)\monsym.h \
1168                 $(INCL)\dungeon.h $(INCL)\color.h
1169 mplayer.o: mplayer.c $(HACK_H)
1170 mthrowu.o: mthrowu.c $(HACK_H)
1171 muse.o: muse.c $(HACK_H)
1172 music.o: music.c $(HACK_H) #interp.c
1173 o_init.o: o_init.c $(HACK_H) $(INCL)\lev.h
1174 objects.o: objects.c $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h \
1175                 $(INCL)\prop.h $(INCL)\skills.h $(INCL)\color.h
1176 objnam.o: objnam.c $(HACK_H)
1177 options.o: options.c $(CONFIG_H) $(INCL)\objclass.h $(INCL)\flag.h \
1178                 $(HACK_H) $(INCL)\tcap.h
1179 pager.o: pager.c $(HACK_H) $(INCL)\dlb.h
1180         @$(CC) $(CFLAGS) $(SPECOPTS) /f- /Od /Fo$@ pager.c
1181 pickup.o: pickup.c $(HACK_H)
1182 pline.o: pline.c $(HACK_H)
1183 polyself.o: polyself.c $(HACK_H)
1184 potion.o: potion.c $(HACK_H)
1185 pray.o: pray.c $(HACK_H)
1186 priest.o: priest.c $(HACK_H) $(INCL)\mfndpos.h
1187 quest.o: quest.c $(HACK_H) $(INCL)\qtext.h
1188 questpgr.o: questpgr.c $(HACK_H) $(INCL)\dlb.h $(INCL)\qtext.h
1189 read.o: read.c $(HACK_H)
1190 rect.o: rect.c $(HACK_H)
1191 region.o: region.c $(HACK_H)
1192 restore.o: restore.c $(HACK_H) $(INCL)\lev.h $(INCL)\tcap.h
1193 rip.o: rip.c $(HACK_H)
1194 rnd.o: rnd.c $(HACK_H)
1195 role.o: role.c $(HACK_H)
1196 rumors.o: rumors.c $(HACK_H) $(INCL)\lev.h $(INCL)\dlb.h
1197 save.o: save.c $(HACK_H) $(INCL)\lev.h
1198 shk.o: shk.c $(HACK_H)
1199 shknam.o: shknam.c $(HACK_H)
1200 sit.o: sit.c $(HACK_H) $(INCL)\artifact.h
1201 sounds.o: sounds.c $(HACK_H)
1202 sp_lev.o: sp_lev.c $(HACK_H) $(INCL)\dlb.h $(INCL)\sp_lev.h
1203 spell.o: spell.c $(HACK_H)
1204 steal.o: steal.c $(HACK_H)
1205 steed.o: steed.c $(HACK_H)
1206 sys.o: sys.c $(HACK_H)
1207 teleport.o: teleport.c $(HACK_H)
1208 timeout.o: timeout.c $(HACK_H) $(INCL)\lev.h
1209 topten.o: topten.c $(HACK_H) $(INCL)\dlb.h $(INCL)\patchlev.h
1210 track.o: track.c $(HACK_H)
1211 trap.o: trap.c $(HACK_H)
1212 u_init.o: u_init.c $(HACK_H)
1213 uhitm.o: uhitm.c $(HACK_H)
1214 vault.o: vault.c $(HACK_H)
1215 version.o: version.c $(HACK_H) $(INCL)\date.h $(INCL)\patchlev.h
1216 vision.o: vision.c $(HACK_H) $(INCL)\vis_tab.h
1217 weapon.o: weapon.c $(HACK_H)
1218 were.o: were.c $(HACK_H)
1219 wield.o: wield.c $(HACK_H)
1220 windows.o: windows.c $(HACK_H) $(INCL)\wingem.h
1221 wizard.o: wizard.c $(HACK_H) $(INCL)\qtext.h
1222 worm.o: worm.c $(HACK_H) $(INCL)\lev.h
1223 worn.o: worn.c $(HACK_H)
1224 write.o: write.c $(HACK_H)
1225 zap.o: zap.c $(HACK_H)
1227 # end of file