]> granicus.if.org Git - nethack/commitdiff
*** empty log message ***
authorjwalz <jwalz>
Sat, 5 Jan 2002 21:06:00 +0000 (21:06 +0000)
committerjwalz <jwalz>
Sat, 5 Jan 2002 21:06:00 +0000 (21:06 +0000)
sys/winnt/Makefile.nt [new file with mode: 0644]

diff --git a/sys/winnt/Makefile.nt b/sys/winnt/Makefile.nt
new file mode 100644 (file)
index 0000000..0234e09
--- /dev/null
@@ -0,0 +1,1203 @@
+#       SCCS Id: @(#)Makefile.nt       3.3     2001/03/26
+#       Copyright (c) NetHack PC Development Team 1993-2001
+#
+#       NetHack 3.3.x Makefile for MS Visual C++ V4.x and above and MS NMAKE
+#  
+#       Win32 Compilers Tested:
+#                              - Microsoft 32 bit Visual C++ V4.x
+#                              - Microsoft 32 bit Visual C++ V6.0 SP3, SP4
+#
+#      This is used for building a TTY version of NetHack using WIN32 Console
+#      I/O routines only.
+#
+#       In addition to your C compiler,
+#
+#       if you want to change           you will need a
+#       files with suffix               workalike for
+#              .y                           yacc   (such as bison)
+#              .l                           lex    (such as flex)
+#
+#
+#       If you have any questions read the sys/winnt/Install.nt file included 
+#       with the distribution.
+#       --
+#       Michael Allison
+#==============================================================================
+# Do not delete the following 3 lines.
+#
+TARGETOS=BOTH
+APPVER=4.0
+!include <win32.mak>
+
+#
+#  Set the gamedir according to your preference.  
+#  It must be present prior to compilation.
+
+GAME    = NetHack                 # Game Name
+GAMEDIR = \games\nethackntty      # Game directory
+
+#
+#  Source directories.    Makedefs hardcodes these, don't change them.
+#
+
+INCL  = ..\include   # NetHack include files
+DAT   = ..\dat       # NetHack data files
+DOC   = ..\doc       # NetHack documentation files
+UTIL  = ..\util      # Utility source
+SRC   = ..\src       # Main source
+SSYS  = ..\sys\share # Shared system files
+NTSYS = ..\sys\winnt # NT Win32 specific files
+TTY   = ..\win\tty   # window port files (tty)
+WIN32 = ..\win\win32 # window port files (Win32)
+WSHR  = ..\win\share # Tile support files 
+
+#
+#  Object directory.
+#
+
+OBJ     = o
+
+
+#
+#==========================================
+# Exe File Info.
+#==========================================
+# Yacc/Lex ... if you got 'em.
+#
+# If you have yacc and lex programs (or work-alike such as bison 
+# and flex), comment out the upper two macros and uncomment 
+# the lower two.
+#
+
+DO_YACC = YACC_MSG
+DO_LEX  = LEX_MSG
+#DO_YACC  = YACC_ACT
+#DO_LEX   = LEX_ACT
+
+# - Specify your yacc and lex programs (or work-alikes) here.
+
+#YACC  = bison -y
+YACC   = byacc
+#YACC  = yacc
+
+#LEX   = lex
+LEX    = flex
+
+#
+# - Specify your flex skeleton file (if needed).
+#
+
+FLEXSKEL =
+#FLEXSKEL = -S../tools/flex.ske
+
+YTABC   = y_tab.c
+YTABH   = y_tab.h
+LEXYYC  = lexyy.c
+
+#
+# Optional high-quality BSD random number generation routines
+# (see pcconf.h). Set to nothing if not used.
+#
+
+RANDOM = $(OBJ)\random.o
+#RANDOM        =
+
+#
+# - For debugging ability, comment out the upper two 
+#   macros and uncomment the lower two.
+#
+
+#
+#  Leave the next two lines uncommented _ONLY_ if you do NOT want any
+#  debug capability in the object files, or in the NetHack executable.
+#  Comment them if you want debug capability.
+
+#cdebug =
+#linkdebug =
+
+#
+# Compiler and Linker flags
+#
+
+PRECOMPHEAD = N                        # set to Y if you want to use precomp. headers
+
+#===============================================
+#======= End of Modification Section ===========
+#===============================================
+################################################
+#                                              #
+# Nothing below here should have to be changed.#
+#                                              #
+################################################
+
+# These must be left commented for 3.3.x
+#TILEGAME  = $(OBJ)\tile.o
+#TILEDEF   = -DTILES
+#TILEHDR   =
+#SOUND = $(OBJ)\ntsound.o
+
+#SOUND =
+#TILEUTIL  =
+#TILEBMP   =
+#TILEGAME  =
+#TILEDEF   =   
+#TILEHDR   =
+
+# To store all the level files,
+# help files, etc. in a single library file.
+# USE_DLB = Y is left uncommented
+
+USE_DLB = Y
+
+! IF ("$(USE_DLB)"=="Y")
+DLBFLG = -DDLB
+! ELSE
+DLBFLG =
+! ENDIF
+
+# You can actually build a set of tiles 
+# with this makefile even though they 
+# are not used. Use 'nmake o\nhtiles.bmp'
+#
+TILEUTIL  = $(UTIL)\tile2bmp.exe
+TILEBMP   = $(OBJ)\nhtiles.bmp
+
+#==========================================
+# Setting up the compiler and linker
+# macros. All builds include the base ones.
+#==========================================
+
+CFLAGSBASE  = -c $(cflags) $(cvarsmt) -I$(INCL) -nologo $(cdebug)
+LFLAGSBASEC = $(linkdebug) $(conflags) $(conlibsmt)
+LFLAGSBASEG = $(linkdebug) $(guiflags) $(guilibsmt) comctl32.lib
+
+#==========================================
+# Util builds
+#==========================================
+
+CFLAGSU = $(CFLAGSBASE) /DWIN32CON
+LFLAGSU        = $(LFLAGSBASEC)
+
+#==========================================
+# - Game build
+#==========================================
+
+LFLAGSBASE = $(linkdebug) $(conflags) $(conlibsmt)
+CFLAGS  = $(CFLAGSBASE) /DWIN32CON $(TILEDEF) $(DLBFLG)
+NHLFLAGS1 = /NODEFAULTLIB /INCREMENTAL:NO /PDB:"$(GAME).PDB" /RELEASE /NOLOGO
+NHLFLAGS2 = /MAP:"$(GAME).MAP" /MACHINE:$(CPU) -IGNORE:505 
+LFLAGS = $(LFLAGSBASEC) $(NHLFLAGS1) $(NHLFLAGS2)
+
+GAMEFILE = $(GAMEDIR)\$(GAME).exe # whole thing
+
+! IF ("$(USE_DLB)"=="Y")
+DLB = nhdat
+! ELSE
+DLB =
+! ENDIF
+
+#==========================================
+#================ RULES ==================
+#==========================================
+
+.SUFFIXES: .exe .o .til .uu .c .y .l
+
+#==========================================
+# Rules for files in src
+#==========================================
+
+.c{$(OBJ)}.o:
+       @$(cc) $(CFLAGS)  -Fo$@ $<
+
+{$(SRC)}.c{$(OBJ)}.o:
+       @$(CC) $(CFLAGS)   -Fo$@  $<
+
+#==========================================
+# Rules for files in sys\share
+#==========================================
+
+{$(SSYS)}.c{$(OBJ)}.o:
+       @$(CC) $(CFLAGS)  -Fo$@  $<
+
+#==========================================
+# Rules for files in sys\winnt
+#==========================================
+
+{$(NTSYS)}.c{$(OBJ)}.o:
+       @$(CC) $(CFLAGS)  -Fo$@  $<
+
+{$(NTSYS)}.h{$(INCL)}.h:
+       @copy $< $@
+
+#==========================================
+# Rules for files in util
+#==========================================
+
+{$(UTIL)}.c{$(OBJ)}.o:
+       @$(CC) $(CFLAGSU) -Fo$@ $<
+
+#==========================================
+# Rules for files in win\share
+#==========================================
+
+{$(WSHR)}.c{$(OBJ)}.o:
+       @$(CC) $(CFLAGS)  -Fo$@ $<
+
+{$(WSHR)}.h{$(INCL)}.h:
+       @copy $< $@
+
+#{$(WSHR)}.txt{$(DAT)}.txt:
+#      @copy $< $@
+
+#==========================================
+# Rules for files in win\tty
+#==========================================
+
+{$(TTY)}.c{$(OBJ)}.o:
+       @$(CC) $(CFLAGS)  -Fo$@  $<
+
+#==========================================
+#================ MACROS ==================
+#==========================================
+# This section creates shorthand macros for many objects
+# referenced later on in the Makefile.
+#
+
+DEFFILE = $(NTSYS)\$(GAME).def
+
+#
+# Shorten up the location for some files
+#
+
+O  = $(OBJ)^\
+
+U  = $(UTIL)^\
+
+#
+# Utility Objects.
+#
+
+MAKESRC        = $(U)makedefs.c
+
+SPLEVSRC       = $(U)lev_yacc.c        $(U)lev_$(LEX).c $(U)lev_main.c  $(U)panic.c
+
+DGNCOMPSRC     = $(U)dgn_yacc.c        $(U)dgn_$(LEX).c $(U)dgn_main.c
+
+MAKEOBJS       = $(O)makedefs.o $(O)monst.o $(O)objects.o
+
+SPLEVOBJS      = $(O)lev_yacc.o        $(O)lev_$(LEX).o $(O)lev_main.o \
+                $(O)alloc.o    $(O)decl.o      $(O)drawing.o \
+                $(O)monst.o    $(O)objects.o   $(O)panic.o
+
+DGNCOMPOBJS    = $(O)dgn_yacc.o        $(O)dgn_$(LEX).o $(O)dgn_main.o \
+                $(O)alloc.o    $(O)panic.o
+
+RECOVOBJS      = $(O)recover.o
+
+#
+# These are not invoked during a normal game build in 3.3.0
+#
+TEXT_IO        = $(O)tiletext.o        $(O)tiletxt.o   $(O)drawing.o \
+                $(O)decl.o     $(O)monst.o     $(O)objects.o
+
+GIFREADERS     = $(O)gifread.o $(O)alloc.o $(O)panic.o
+
+PPMWRITERS     = $(O)ppmwrite.o $(O)alloc.o $(O)panic.o
+
+TILEFILES      = $(WSHR)\monsters.txt $(WSHR)\objects.txt $(WSHR)\other.txt
+
+#
+#  Object files for the game itself.
+#
+
+VOBJ01 = $(O)allmain.o  $(O)alloc.o    $(O)apply.o    $(O)artifact.o
+VOBJ02 = $(O)attrib.o   $(O)ball.o     $(O)bones.o    $(O)botl.o    
+VOBJ03 = $(O)cmd.o      $(O)dbridge.o  $(O)decl.o     $(O)detect.o  
+VOBJ04 = $(O)dig.o      $(O)display.o  $(O)do.o       $(O)do_name.o 
+VOBJ05 = $(O)do_wear.o  $(O)dog.o      $(O)dogmove.o  $(O)dokick.o  
+VOBJ06 = $(O)dothrow.o  $(O)drawing.o  $(O)dungeon.o  $(O)eat.o     
+VOBJ07 = $(O)end.o      $(O)engrave.o  $(O)exper.o    $(O)explode.o 
+VOBJ08 = $(O)extralev.o $(O)files.o    $(O)fountain.o $(O)hack.o    
+VOBJ09 = $(O)hacklib.o  $(O)invent.o   $(O)light.o    $(O)lock.o    
+VOBJ10 = $(O)mail.o     $(O)pcmain.o   $(O)makemon.o  $(O)mapglyph.o $(O)mcastu.o  
+VOBJ11 = $(O)mhitm.o    $(O)mhitu.o    $(O)minion.o   $(O)mklev.o   
+VOBJ12 = $(O)mkmap.o    $(O)mkmaze.o   $(O)mkobj.o    $(O)mkroom.o  
+VOBJ13 = $(O)mon.o      $(O)mondata.o  $(O)monmove.o  $(O)monst.o   
+VOBJ14 = $(O)monstr.o   $(O)mplayer.o  $(O)mthrowu.o  $(O)muse.o    
+VOBJ15 = $(O)music.o    $(O)o_init.o   $(O)objects.o  $(O)objnam.o  
+VOBJ16 = $(O)options.o  $(O)pager.o    $(O)pickup.o   $(O)pline.o   
+VOBJ17 = $(O)polyself.o $(O)potion.o   $(O)pray.o     $(O)priest.o  
+VOBJ18 = $(O)quest.o    $(O)questpgr.o $(RANDOM)      $(O)read.o    
+VOBJ19 = $(O)rect.o     $(O)region.o   $(O)restore.o  $(O)rip.o     
+VOBJ20 = $(O)rnd.o      $(O)role.o     $(O)rumors.o   $(O)save.o    
+VOBJ21 = $(O)shk.o      $(O)shknam.o   $(O)sit.o      $(O)sounds.o  
+VOBJ22 = $(O)sp_lev.o   $(O)spell.o    $(O)steal.o    $(O)steed.o   
+VOBJ23 = $(O)teleport.o $(O)timeout.o  $(O)topten.o   $(O)track.o   
+VOBJ24 = $(O)trap.o     $(O)u_init.o   $(O)uhitm.o    $(O)vault.o   
+VOBJ25 = $(O)vis_tab.o  $(O)vision.o   $(O)weapon.o   $(O)were.o    
+VOBJ26 = $(O)wield.o    $(O)windows.o  $(O)wizard.o   $(O)worm.o    
+VOBJ27 = $(O)worn.o     $(O)write.o    $(O)zap.o     
+
+DLBOBJ = $(O)dlb.o
+
+TTYOBJ = $(O)topl.o     $(O)getline.o  $(O)wintty.o
+
+SOBJ   = $(O)winnt.o    $(O)pcsys.o      $(O)nttty.o    $(O)pcunix.o  \
+          $(SOUND)     $(O)mapimail.o $(O)nhlan.o
+
+OBJS   = $(VOBJ01) $(VOBJ02) $(VOBJ03) $(VOBJ04) $(VOBJ05) \
+         $(VOBJ06) $(VOBJ07) $(VOBJ08) $(VOBJ09) $(VOBJ10) \
+         $(VOBJ11) $(VOBJ12) $(VOBJ13) $(VOBJ14) $(VOBJ15) \
+         $(VOBJ16) $(VOBJ17) $(VOBJ18) $(VOBJ19) $(VOBJ20) \
+         $(VOBJ21) $(VOBJ22) $(VOBJ23) $(VOBJ24) $(VOBJ25) \
+         $(VOBJ26) $(VOBJ27)
+
+TILOBJ = $(TILEGAME)
+
+VVOBJ  = $(O)version.o
+
+ALLOBJ  = $(TILOBJ) $(SOBJ) $(DLBOBJ)  $(TTYOBJ) $(WOBJ) $(OBJS) $(VVOBJ)
+
+#==========================================
+# Header file macros
+#==========================================
+
+CONFIG_H = $(INCL)\config.h $(INCL)\config1.h $(INCL)\tradstdc.h \
+               $(INCL)\global.h $(INCL)\coord.h $(INCL)\vmsconf.h \
+               $(INCL)\system.h $(INCL)\unixconf.h $(INCL)\os2conf.h \
+               $(INCL)\micro.h $(INCL)\pcconf.h $(INCL)\tosconf.h \
+               $(INCL)\amiconf.h $(INCL)\macconf.h $(INCL)\beconf.h \
+               $(INCL)\ntconf.h $(INCL)\nhlan.h
+
+HACK_H = $(INCL)\hack.h $(CONFIG_H) $(INCL)\align.h \
+               $(INCL)\dungeon.h $(INCL)\monsym.h $(INCL)\mkroom.h \
+               $(INCL)\objclass.h $(INCL)\youprop.h $(INCL)\prop.h \
+               $(INCL)\permonst.h $(INCL)\monattk.h \
+               $(INCL)\monflag.h $(INCL)\mondata.h $(INCL)\pm.h \
+               $(INCL)\wintype.h $(INCL)\decl.h $(INCL)\quest.h \
+               $(INCL)\spell.h $(INCL)\color.h $(INCL)\obj.h \
+               $(INCL)\you.h $(INCL)\attrib.h $(INCL)\monst.h \
+               $(INCL)\skills.h $(INCL)\onames.h $(INCL)\timeout.h \
+               $(INCL)\trap.h $(INCL)\flag.h $(INCL)\rm.h \
+               $(INCL)\vision.h $(INCL)\display.h $(INCL)\engrave.h \
+               $(INCL)\rect.h $(INCL)\region.h $(INCL)\winprocs.h \
+               $(INCL)\wintty.h $(INCL)\trampoli.h
+
+LEV_H       = $(INCL)\lev.h
+DGN_FILE_H  = $(INCL)\dgn_file.h
+LEV_COMP_H  = $(INCL)\lev_comp.h
+SP_LEV_H    = $(INCL)\sp_lev.h
+TILE_H      = ..\win\share\tile.h
+
+#==========================================
+# Miscellaneous
+#==========================================
+
+DATABASE = $(DAT)\data.base
+
+#
+#  The name of the game.
+#
+
+GAMEFILE = $(GAMEDIR)\$(GAME).exe
+
+#==========================================
+#=============== TARGETS ==================
+#==========================================
+
+#
+#  The default make target (so just typing 'nmake' is useful).
+#
+default : $(GAMEFILE)
+
+#
+#  The main target.
+#
+
+$(GAME): $(O)obj.tag $(O)utility.tag envchk $(GAMEFILE)
+       @echo $(GAME) is up to date.
+
+#
+#  Everything
+#
+
+all :  install
+
+install: envchk $(GAME) $(O)install.tag
+        @echo Done.
+
+$(O)install.tag:       $(DAT)\data     $(DAT)\rumors    $(DAT)\dungeon \
+               $(DAT)\oracles  $(DAT)\quest.dat $(O)sp_lev.tag $(DLB)
+! IF ("$(USE_DLB)"=="Y")
+       copy nhdat                $(GAMEDIR)
+       copy $(DAT)\license       $(GAMEDIR)
+! ELSE
+       copy $(DAT)\*.            $(GAMEDIR)
+       copy $(DAT)\*.dat         $(GAMEDIR)
+       copy $(DAT)\*.lev         $(GAMEDIR)
+       if exist $(GAMEDIR)\makefile del $(GAMEDIR)\makefile
+! ENDIF
+       if exist $(DOC)\guidebook.txt copy $(DOC)\guidebook.txt $(GAMEDIR)\Guidebook.txt
+       if exist $(DOC)\nethack.txt copy $(DOC)\nethack.txt $(GAMEDIR)\NetHack.txt
+       if exist $(DOC)\recover.txt copy $(DOC)\recover.txt $(GAMEDIR)\recover.txt
+       @if exist $(SRC)\$(GAME).PDB copy $(SRC)\$(GAME).pdb $(GAMEDIR)\$(GAME).pdb
+       @if exist $(GAMEDIR)\$(GAME).PDB echo NOTE: You may want to remove $(GAMEDIR)\$(GAME).pdb to conserve space
+       -copy $(NTSYS)\winnt.cnf   $(GAMEDIR)\defaults.nh
+       copy $(U)recover.exe  $(GAMEDIR)
+! IF ("$(TILEDEF)"!="")
+        if exist $(TILEBMP) copy $(TILEBMP) $(GAMEDIR)
+! ENDIF
+       echo install done > $@
+
+#      copy $(NTSYS)\winnt.hlp    $(GAMEDIR)
+
+$(O)sp_lev.tag: $(O)utility.tag $(DAT)\bigroom.des  $(DAT)\castle.des \
+       $(DAT)\endgame.des $(DAT)\gehennom.des $(DAT)\knox.des   \
+       $(DAT)\medusa.des  $(DAT)\oracle.des   $(DAT)\tower.des  \
+       $(DAT)\yendor.des  $(DAT)\arch.des     $(DAT)\barb.des   \
+       $(DAT)\caveman.des $(DAT)\healer.des   $(DAT)\knight.des \
+       $(DAT)\monk.des    $(DAT)\priest.des   $(DAT)\ranger.des \
+       $(DAT)\rogue.des   $(DAT)\samurai.des  $(DAT)\sokoban.des \
+       $(DAT)\tourist.des $(DAT)\valkyrie.des $(DAT)\wizard.des
+       cd $(DAT)
+       $(U)lev_comp bigroom.des
+       $(U)lev_comp castle.des
+       $(U)lev_comp endgame.des
+       $(U)lev_comp gehennom.des
+       $(U)lev_comp knox.des
+       $(U)lev_comp mines.des
+       $(U)lev_comp medusa.des
+       $(U)lev_comp oracle.des
+       $(U)lev_comp sokoban.des
+       $(U)lev_comp tower.des
+       $(U)lev_comp yendor.des
+       $(U)lev_comp arch.des
+       $(U)lev_comp barb.des
+       $(U)lev_comp caveman.des
+       $(U)lev_comp healer.des
+       $(U)lev_comp knight.des
+       $(U)lev_comp monk.des
+       $(U)lev_comp priest.des
+       $(U)lev_comp ranger.des
+       $(U)lev_comp rogue.des
+       $(U)lev_comp samurai.des
+       $(U)lev_comp tourist.des
+       $(U)lev_comp valkyrie.des
+       $(U)lev_comp wizard.des
+       cd $(SRC)
+       echo sp_levs done > $(O)sp_lev.tag
+
+$(O)utility.tag: $(INCL)\date.h $(INCL)\onames.h $(INCL)\pm.h \
+               $(SRC)\monstr.c         $(SRC)\vis_tab.c  \
+               $(U)lev_comp.exe        $(INCL)\vis_tab.h \
+               $(U)dgn_comp.exe $(U)recover.exe  $(TILEUTIL)
+             @echo utilities made >$@
+            @echo utilities made.
+
+tileutil: $(U)gif2txt.exe $(U)txt2ppm.exe
+       @echo Optional tile development utilities are up to date.
+
+
+#==========================================
+#  The main target.
+#==========================================
+
+#  The section for linking the NetHack image looks a little strange at 
+#  first, especially if you are used to UNIX makes, or NDMAKE.  It is 
+#  Microsoft nmake specific, and it gets around the problem of the 
+#  link command line being too long for the linker.  An "in-line" linker 
+#  response file is generated temporarily.
+#
+#  It takes advantage of the following features of nmake:
+#
+#  Inline files : 
+#                      Specifying the "<<" means to start an inline file.
+#                      Another "<<" at the start of a line closes the 
+#                      inline file.
+#
+#  Substitution within Macros:
+#                       $(mymacro:string1=string2) replaces every
+#                       occurrence of string1 with string2 in the 
+#                       macro mymacro.  Special ascii key codes may be 
+#                       used in the substitution text by preceding it 
+#                       with ^ as we have done below.  Every occurence
+#                       of a <tab> in $(ALLOBJ) is replaced by 
+#                       <+><return><tab>.
+#
+#  DO NOT INDENT THE << below!
+#
+
+$(GAMEFILE) : $(ALLOBJ)
+       @echo Linking....
+       @$(link) $(LFLAGS) -out:$@ @<<$(GAME).lnk
+               $(ALLOBJ:^      =^
+               ) 
+<<
+       @if exist $(O)install.tag del $(O)install.tag
+       @if exist $(GAMEDIR)\$(GAME).bak del $(GAMEDIR)\$(GAME).bak
+
+$(GAME)_.ico : $(NTSYS)\$(GAME).ico
+       @copy $(NTSYS)\$(GAME).ico $@
+#
+#  Secondary Targets.
+#
+    
+#==========================================
+# Makedefs Stuff
+#==========================================
+
+$(U)makedefs.exe:      $(MAKEOBJS)
+       @$(link) $(LFLAGSU) -out:$@ $(MAKEOBJS)
+
+$(O)makedefs.o: $(CONFIG_H)    $(INCL)\monattk.h $(INCL)\monflag.h   $(INCL)\objclass.h \
+                $(INCL)\monsym.h    $(INCL)\qtext.h    $(INCL)\patchlevel.h \
+                $(U)makedefs.c
+       @$(CC) $(CFLAGSU) -Fo$@ $(U)makedefs.c
+
+#
+#  date.h should be remade every time any of the source or include
+#  files is modified.
+#
+
+$(INCL)\date.h : $(U)makedefs.exe
+       $(U)makedefs -v
+
+$(INCL)\onames.h : $(U)makedefs.exe
+       $(U)makedefs -o
+
+$(INCL)\pm.h : $(U)makedefs.exe
+       $(U)makedefs -p
+
+#$(INCL)\trap.h : $(U)makedefs.exe
+#      $(U)makedefs -t
+
+$(SRC)\monstr.c: $(U)makedefs.exe
+       $(U)makedefs -m
+
+$(INCL)\vis_tab.h: $(U)makedefs.exe
+       $(U)makedefs -z
+
+$(SRC)\vis_tab.c: $(U)makedefs.exe
+       $(U)makedefs -z
+
+#==========================================
+# Level Compiler Stuff
+#==========================================
+
+LEVCFLAGS=-c -nologo -DWINVER=0x0400 -DWIN32 -D_WIN32 \
+          -D_MT -MT -I..\include -nologo -Z7 -Od -DDLB
+
+$(U)lev_comp.exe: $(SPLEVOBJS)
+       @echo Linking $@...
+       @$(link) $(LFLAGSU) -out:$@ @<<$(@B).lnk
+               $(SPLEVOBJS:^   =^
+               )
+<<
+
+$(O)lev_yacc.o: $(HACK_H)   $(SP_LEV_H) $(INCL)\lev_comp.h $(U)lev_yacc.c
+       @$(CC) $(LEVCFLAGS) -W0 -Fo$@ $(U)lev_yacc.c
+
+$(O)lev_$(LEX).o: $(HACK_H)   $(INCL)\lev_comp.h $(SP_LEV_H) \
+               $(U)lev_$(LEX).c
+       @$(CC) $(LEVCFLAGS) -W0 -Fo$@ $(U)lev_$(LEX).c
+
+$(O)lev_main.o:        $(U)lev_main.c $(HACK_H)   $(SP_LEV_H)
+       @$(CC) $(LEVCFLAGS) -W0 -Fo$@ $(U)lev_main.c
+
+
+$(U)lev_yacc.c $(INCL)\lev_comp.h : $(U)lev_comp.y
+!      IF "$(DO_YACC)"=="YACC_ACT"
+          chdir $(UTIL)
+          $(YACC) -d lev_comp.y
+          copy $(YTABC) lev_yacc.c
+          copy $(YTABH) $(INCL)\lev_comp.h
+          @del $(YTABC)
+          @del $(YTABH)
+          chdir $(SRC)
+!      ELSE
+          @echo $(U)lev_comp.y has changed.
+          @echo To update $(U)lev_yacc.c and $(INCL)\lev_comp.h run $(YACC).
+          @echo ---
+          @echo For now, we will copy the prebuilt lev_yacc.c and 
+          @echo lev_comp.h from $(SSYS) into $(UTIL) and use them.
+          @copy $(SSYS)\lev_yacc.c $(U)lev_yacc.c >nul
+          @copy $(SSYS)\lev_comp.h $(INCL)\lev_comp.h >nul
+          @echo /**/ >>$(U)lev_yacc.c
+          @echo /**/ >>$(INCL)\lev_comp.h
+!      ENDIF
+
+$(U)lev_$(LEX).c: $(U)lev_comp.l
+!      IF "$(DO_LEX)"=="LEX_ACT"
+          chdir $(UTIL)
+          $(LEX) $(FLEXSKEL) lev_comp.l
+          copy $(LEXYYC) $@
+          @del $(LEXYYC)
+          chdir $(SRC)
+!      ELSE
+          @echo $(U)lev_comp.l has changed. To update $@ run $(LEX).
+          @echo ---
+          @echo For now, we will copy the prebuilt lev_lex.c 
+          @echo from $(SSYS) into $(UTIL) and use it.
+          @copy $(SSYS)\lev_lex.c $@ >nul
+          @echo /**/ >>$@
+!      ENDIF
+
+#==========================================
+# Dungeon Compiler Stuff
+#==========================================
+
+$(U)dgn_comp.exe: $(DGNCOMPOBJS)
+    @echo Linking $@...
+       @$(link) $(LFLAGSU) -out:$@ @<<$(@B).lnk
+               $(DGNCOMPOBJS:^ =^
+               )
+<<
+
+$(O)dgn_yacc.o:        $(HACK_H)   $(DGN_FILE_H) $(INCL)\dgn_comp.h $(U)dgn_yacc.c
+       @$(CC) $(LEVCFLAGS) -W0 -Fo$@ $(U)dgn_yacc.c
+
+$(O)dgn_$(LEX).o: $(HACK_H)   $(DGN_FILE_H)  $(INCL)\dgn_comp.h \
+       $(U)dgn_$(LEX).c
+       @$(CC) $(LEVCFLAGS) -W0 -Fo$@ $(U)dgn_$(LEX).c
+
+$(O)dgn_main.o:        $(HACK_H) $(U)dgn_main.c
+       @$(CC) $(LEVCFLAGS) -W0 -Fo$@ $(U)dgn_main.c
+
+$(U)dgn_yacc.c $(INCL)\dgn_comp.h : $(U)dgn_comp.y
+!      IF "$(DO_YACC)"=="YACC_ACT"
+          chdir $(UTIL)
+          $(YACC) -d dgn_comp.y
+          copy $(YTABC) dgn_yacc.c
+          copy $(YTABH) $(INCL)\dgn_comp.h
+          @del $(YTABC)
+          @del $(YTABH)
+          chdir $(SRC)
+!      ELSE
+          @echo $(U)dgn_comp.y has changed. To update dgn_yacc.c and 
+          @echo $(INCL)\dgn_comp.h run $(YACC).
+          @echo ---
+          @echo For now, we will copy the prebuilt $(U)dgn_yacc.c and 
+          @echo dgn_comp.h from $(SSYS) into $(UTIL) and use them.
+          @copy $(SSYS)\dgn_yacc.c $(U)dgn_yacc.c >nul
+          @copy $(SSYS)\dgn_comp.h $(INCL)\dgn_comp.h >nul
+          @echo /**/ >>$(U)dgn_yacc.c
+          @echo /**/ >>$(INCL)\dgn_comp.h
+!      ENDIF
+
+$(U)dgn_$(LEX).c: $(U)dgn_comp.l
+!      IF "$(DO_LEX)"=="LEX_ACT"
+          chdir $(UTIL)
+          $(LEX) $(FLEXSKEL)  dgn_comp.l
+          copy $(LEXYYC) $@
+          @del $(LEXYYC)
+          chdir $(SRC)
+!      ELSE
+          @echo $(U)dgn_comp.l has changed. To update $@ run $(LEX).
+          @echo ---
+          @echo For now, we will copy the prebuilt dgn_lex.c 
+          @echo from $(SSYS) into $(UTIL) and use it.
+          @copy $(SSYS)\dgn_lex.c $@ >nul
+          @echo /**/ >>$@
+!      ENDIF
+
+#==========================================
+# Create directory for holding object files
+#==========================================
+
+$(O)obj.tag:
+       @if not exist $(O)*.* mkdir $(OBJ)
+       @echo directory $(OBJ) created >$@
+
+#==========================================
+# Notify of any CL environment variables
+# in effect since they change the compiler
+# options.
+#==========================================
+
+envchk:
+!      IF "$(CL)"!=""
+          @echo Warning, the CL Environment variable is defined:
+          @echo CL=$(CL)
+!      ENDIF
+!      IF "$(TILEGAME)"!=""
+          @echo ----
+          @echo NOTE: This build will include tile support.
+          @echo ----
+!      ENDIF
+
+#==========================================
+#=========== SECONDARY TARGETS ============
+#==========================================
+
+#===========================================
+# Header files NOT distributed in ..\include
+#===========================================
+
+$(INCL)\win32api.h: $(NTSYS)\win32api.h
+       copy $(NTSYS)\win32api.h $@
+
+
+#==========================================
+# DLB utility and nhdat file creation
+#==========================================
+
+$(U)dlb_main.exe: $(DLBOBJ) $(O)dlb.o
+       @$(link) $(LFLAGSU) -out:$@ @<<$(@B).lnk
+               $(O)dlb_main.o
+               $(O)dlb.o
+               $(O)alloc.o
+               $(O)panic.o
+<<
+
+$(O)dlb.o:     $(O)dlb_main.o $(O)alloc.o $(O)panic.o $(INCL)\dlb.h
+       @$(CC) $(CFLAGS) /Fo$@ $(SRC)\dlb.c
+       
+$(O)dlb_main.o: $(UTIL)\dlb_main.c $(INCL)\config.h $(INCL)\dlb.h
+       @$(CC) $(CFLAGS) /Fo$@ $(UTIL)\dlb_main.c
+
+nhdat: $(U)dlb_main.exe $(DAT)\data $(DAT)\oracles $(DAT)\options \
+       $(DAT)\quest.dat $(DAT)\rumors $(DAT)\help $(DAT)\hh $(DAT)\cmdhelp \
+       $(DAT)\history $(DAT)\opthelp $(DAT)\wizhelp $(DAT)\dungeon \
+       $(DAT)\license $(O)sp_lev.tag
+       cd $(DAT)
+       echo data >dlb.lst
+       echo oracles >>dlb.lst
+       echo options >>dlb.lst
+       echo quest.dat >>dlb.lst
+       echo rumors >>dlb.lst
+       echo help >>dlb.lst
+       echo hh >>dlb.lst
+       echo cmdhelp >>dlb.lst
+       echo history >>dlb.lst
+       echo opthelp >>dlb.lst
+       echo wizhelp >>dlb.lst
+       echo dungeon >>dlb.lst
+       echo license >>dlb.lst
+       for %%N in (*.lev) do echo %%N >>dlb.lst
+       $(U)dlb_main cIf dlb.lst $(SRC)\nhdat
+       cd $(SRC)
+
+#==========================================
+#  Recover Utility
+#==========================================
+
+$(U)recover.exe: $(RECOVOBJS)
+       @$(link) $(LFLAGSU) -out:$@ $(RECOVOBJS)
+
+$(O)recover.o: $(CONFIG_H) $(U)recover.c $(INCL)\win32api.h
+       @$(CC) $(CFLAGSU) -Fo$@ $(U)recover.c
+
+#==========================================
+#  Tile Mapping
+#==========================================
+
+$(SRC)\tile.c: $(U)tilemap.exe
+       @echo A new $@ has been created
+       @$(U)tilemap
+
+$(U)tilemap.exe: $(O)tilemap.o
+       @$(link) $(LFLAGSU) -out:$@ $(O)tilemap.o
+
+$(O)tilemap.o: $(WSHR)\tilemap.c $(HACK_H)
+       @$(CC) $(CFLAGSU) -Fo$@ $(WSHR)\tilemap.c
+
+$(O)tiletxt.o: $(WSHR)\tilemap.c $(HACK_H)
+       @$(CC) $(CFLAGS) /DTILETEXT -Fo$@ $(WSHR)\tilemap.c
+
+$(O)gifread.o: $(WSHR)\gifread.c  $(CONFIG_H) $(TILE_H)
+       @$(CC) $(CFLAGS) -I$(WSHR) -Fo$@ $(WSHR)\gifread.c
+
+$(O)ppmwrite.o: $(WSHR)\ppmwrite.c $(CONFIG_H) $(TILE_H)
+       @$(CC) $(CFLAGS) -I$(WSHR) -Fo$@ $(WSHR)\ppmwrite.c
+
+$(O)tiletext.o: $(WSHR)\tiletext.c  $(CONFIG_H) $(TILE_H)
+       @$(CC) $(CFLAGS) -I$(WSHR) -Fo$@ $(WSHR)\tiletext.c
+
+#==========================================
+# Optional Tile Utilities
+#==========================================
+
+$(U)gif2txt.exe: $(GIFREADERS) $(TEXT_IO)
+    @echo Linking $@...
+       @$(link) $(LFLAGSU) -out:$@ @<<$(@B).lnk
+               $(GIFREADERS:^  =^
+               )
+               $(TEXT_IO:^     =^
+               )
+<<
+
+$(U)txt2ppm.exe: $(PPMWRITERS) $(TEXT_IO)
+    @echo Linking $@...
+       @$(link) $(LFLAGSU) -out:$@ @<<$(@B).lnk
+               $(PPMWRITERS:^  =^
+               )
+               $(TEXT_IO:^     =^
+               )
+<<
+
+$(TILEBMP): $(TILEUTIL) $(TILEFILES)
+       @echo Creating binary tile files (this may take some time)
+       @$(U)tile2bmp $(TILEBMP)
+
+$(U)tile2bmp.exe: $(O)tile2bmp.o $(TEXT_IO)
+    @echo Linking $@...
+       @$(link) $(LFLAGSU) -out:$@ @<<$(@B).lnk
+               $(O)tile2bmp.o
+               $(TEXT_IO:^  =^
+               )
+<<
+
+$(O)tile2bmp.o: $(WIN32)\tile2bmp.c $(HACK_H) $(TILE_H) $(INCL)\win32api.h
+       @$(CC) $(CFLAGS) -I$(WSHR) /DPACKED_FILE /Fo$@ $(WIN32)\tile2bmp.c
+
+#==========================================
+# Housekeeping
+#==========================================
+
+spotless: clean
+! IF ("$(OBJ)"!="")
+       -rmdir $(OBJ) /s /Q
+! ENDIF
+       if exist $(INCL)\date.h    del $(INCL)\date.h
+       if exist $(INCL)\onames.h  del $(INCL)\onames.h
+       if exist $(INCL)\pm.h      del $(INCL)\pm.h
+       if exist $(INCL)\vis_tab.h del $(INCL)\vis_tab.h
+       if exist $(SRC)\vis_tab.c  del $(SRC)\vis_tab.c
+       if exist $(SRC)\tile.c     del $(SRC)\tile.c
+       if exist $(U)*.lnk         del $(U)*.lnk
+       if exist $(U)*.map         del $(U)*.map
+       if exist $(DAT)\data       del $(DAT)\data
+       if exist $(DAT)\rumors     del $(DAT)\rumors
+       if exist $(DAT)\???-fil?.lev    del $(DAT)\???-fil?.lev
+       if exist $(DAT)\???-goal.lev    del $(DAT)\???-goal.lev
+       if exist $(DAT)\???-loca.lev    del $(DAT)\???-loca.lev
+       if exist $(DAT)\???-strt.lev    del $(DAT)\???-strt.lev
+       if exist $(DAT)\air.lev         del $(DAT)\air.lev
+       if exist $(DAT)\asmodeus.lev    del $(DAT)\asmodeus.lev
+       if exist $(DAT)\astral.lev      del $(DAT)\astral.lev
+       if exist $(DAT)\baalz.lev       del $(DAT)\baalz.lev
+       if exist $(DAT)\bigroom.lev     del $(DAT)\bigroom.lev
+       if exist $(DAT)\castle.lev      del $(DAT)\castle.lev
+       if exist $(DAT)\data            del $(DAT)\data
+       if exist $(DAT)\dungeon         del $(DAT)\dungeon
+       if exist $(DAT)\dungeon.pdf     del $(DAT)\dungeon.pdf
+       if exist $(DAT)\earth.lev       del $(DAT)\earth.lev
+       if exist $(DAT)\fakewiz?.lev    del $(DAT)\fakewiz?.lev
+       if exist $(DAT)\fire.lev        del $(DAT)\fire.lev
+       if exist $(DAT)\juiblex.lev     del $(DAT)\juiblex.lev
+       if exist $(DAT)\knox.lev        del $(DAT)\knox.lev
+       if exist $(DAT)\medusa-?.lev    del $(DAT)\medusa-?.lev
+       if exist $(DAT)\mine*.lev       del $(DAT)\mine*.lev
+       if exist $(DAT)\options         del $(DAT)\options
+       if exist $(DAT)\oracle.lev      del $(DAT)\oracle.lev
+       if exist $(DAT)\oracles         del $(DAT)\oracles
+       if exist $(DAT)\orcus.lev       del $(DAT)\orcus.lev
+       if exist $(DAT)\rumors          del $(DAT)\rumors
+       if exist $(DAT)\quest.dat       del $(DAT)\quest.dat
+       if exist $(DAT)\sanctum.lev     del $(DAT)\sanctum.lev
+       if exist $(DAT)\soko?-?.lev     del $(DAT)\soko?-?.lev
+       if exist $(DAT)\tower?.lev      del $(DAT)\tower?.lev
+       if exist $(DAT)\valley.lev      del $(DAT)\valley.lev
+       if exist $(DAT)\water.lev       del $(DAT)\water.lev
+       if exist $(DAT)\wizard?.lev     del $(DAT)\wizard?.lev
+       if exist $(O)sp_lev.tag         del $(O)sp_lev.tag
+       if exist $(SRC)\monstr.c        del $(SRC)\monstr.c
+       if exist $(SRC)\vis_tab.c       del $(SRC)\vis_tab.c
+       if exist $(U)recover.exe        del $(U)recover.exe
+       if exist nhdat.                 del nhdat.
+
+clean:
+       if exist $(O)*.o del $(O)*.o
+       if exist $(O)utility.tag   del $(O)utility.tag
+       if exist $(U)makedefs.exe  del $(U)makedefs.exe
+       if exist $(U)lev_comp.exe  del $(U)lev_comp.exe
+       if exist $(U)dgn_comp.exe  del $(U)dgn_comp.exe
+       if exist $(SRC)\*.lnk      del $(SRC)\*.lnk
+       if exist $(SRC)\*.map      del $(SRC)\*.map
+! IF ("$(TILEDEF)"!="")
+       if exist $(TILEBMP)        del $(TILEBMP)
+! ENDIF
+
+#===================================================================
+# OTHER DEPENDENCIES
+#===================================================================
+
+#
+# dat dependencies
+#
+
+$(DAT)\data: $(O)utility.tag    $(DATABASE)
+       $(U)makedefs -d
+
+$(DAT)\rumors: $(O)utility.tag    $(DAT)\rumors.tru   $(DAT)\rumors.fal
+       $(U)makedefs -r
+
+$(DAT)\quest.dat: $(O)utility.tag  $(DAT)\quest.txt
+       $(U)makedefs -q
+
+$(DAT)\oracles: $(O)utility.tag    $(DAT)\oracles.txt
+       $(U)makedefs -h
+
+$(DAT)\dungeon: $(O)utility.tag  $(DAT)\dungeon.def
+       $(U)makedefs -e
+       cd $(DAT)
+       $(U)dgn_comp dungeon.pdf
+       cd $(SRC)
+
+#
+# NT dependencies
+#
+
+$(O)nttty.o:   $(HACK_H) $(TILE_H) $(INCL)\win32api.h $(NTSYS)\nttty.c
+       @$(CC) $(CFLAGS) -I$(WSHR) -Fo$@  $(NTSYS)\nttty.c
+$(O)winnt.o: $(HACK_H) $(INCL)\win32api.h $(NTSYS)\winnt.c
+       @$(CC) $(CFLAGS) -Fo$@  $(NTSYS)\winnt.c
+$(O)ntsound.o: $(HACK_H) $(NTSYS)\ntsound.c
+       @$(CC) $(CFLAGS)  -Fo$@ $(NTSYS)\ntsound.c
+$(O)mapimail.o: $(HACK_H) $(INCL)\nhlan.h $(NTSYS)\mapimail.c
+       @$(CC) $(CFLAGS) -DMAPI_VERBOSE  -Fo$@ $(NTSYS)\mapimail.c
+
+# 
+# util dependencies
+#
+
+$(O)panic.o:  $(U)panic.c $(CONFIG_H)
+       @$(CC) $(CFLAGS) -Fo$@ $(U)panic.c
+
+#
+# The rest are stolen from sys/unix/Makefile.src, 
+# with slashes changed to back-slashes 
+# and -c (which is included in CFLAGS) substituted
+# with -Fo$@ , but otherwise untouched. That
+# means that there is some irrelevant stuff
+# in here, but maintenance should be easier.
+#
+$(O)tos.o: ..\sys\atari\tos.c $(HACK_H) $(INCL)\tcap.h
+       $(CC) $(CFLAGS) -Fo$@ ..\sys\atari\tos.c
+$(O)pcmain.o: ..\sys\share\pcmain.c $(HACK_H) $(INCL)\dlb.h \
+               $(INCL)\win32api.h
+       $(CC) $(CFLAGS) -Fo$@ ..\sys\share\pcmain.c
+$(O)pcsys.o: ..\sys\share\pcsys.c $(HACK_H)
+       $(CC) $(CFLAGS) -Fo$@ ..\sys\share\pcsys.c
+$(O)pctty.o: ..\sys\share\pctty.c $(HACK_H)
+       $(CC) $(CFLAGS) -Fo$@ ..\sys\share\pctty.c
+$(O)pcunix.o: ..\sys\share\pcunix.c $(HACK_H)
+       $(CC) $(CFLAGS) -Fo$@ ..\sys\share\pcunix.c
+$(O)random.o: ..\sys\share\random.c $(HACK_H)
+       $(CC) $(CFLAGS) -Fo$@ ..\sys\share\random.c
+$(O)ioctl.o: ..\sys\share\ioctl.c $(HACK_H) $(INCL)\tcap.h
+       $(CC) $(CFLAGS) -Fo$@ ..\sys\share\ioctl.c
+$(O)unixtty.o: ..\sys\share\unixtty.c $(HACK_H)
+       $(CC) $(CFLAGS) -Fo$@ ..\sys\share\unixtty.c
+$(O)unixmain.o: ..\sys\unix\unixmain.c $(HACK_H) $(INCL)\dlb.h
+       $(CC) $(CFLAGS) -Fo$@ ..\sys\unix\unixmain.c
+$(O)unixunix.o: ..\sys\unix\unixunix.c $(HACK_H)
+       $(CC) $(CFLAGS) -Fo$@ ..\sys\unix\unixunix.c
+$(O)bemain.o: ..\sys\be\bemain.c $(HACK_H) $(INCL)\dlb.h
+       $(CC) $(CFLAGS) -Fo$@ ..\sys\be\bemain.c
+$(O)getline.o: ..\win\tty\getline.c $(HACK_H) $(INCL)\func_tab.h
+       $(CC) $(CFLAGS) -Fo$@ ..\win\tty\getline.c
+$(O)termcap.o: ..\win\tty\termcap.c $(HACK_H) $(INCL)\tcap.h
+       $(CC) $(CFLAGS) -Fo$@ ..\win\tty\termcap.c
+$(O)topl.o: ..\win\tty\topl.c $(HACK_H) $(INCL)\tcap.h
+       $(CC) $(CFLAGS) -Fo$@ ..\win\tty\topl.c
+$(O)wintty.o: ..\win\tty\wintty.c $(HACK_H) $(INCL)\dlb.h \
+               $(INCL)\patchlevel.h $(INCL)\tcap.h
+       $(CC) $(CFLAGS) -Fo$@ ..\win\tty\wintty.c
+$(O)Window.o: ..\win\X11\Window.c $(INCL)\xwindowp.h $(INCL)\xwindow.h \
+               $(CONFIG_H)
+       $(CC) $(CFLAGS) -Fo$@ ..\win\X11\Window.c
+$(O)dialogs.o: ..\win\X11\dialogs.c $(CONFIG_H)
+       $(CC) $(CFLAGS) -Fo$@ ..\win\X11\dialogs.c
+$(O)winX.o: ..\win\X11\winX.c $(HACK_H) $(INCL)\winX.h $(INCL)\dlb.h \
+               $(INCL)\patchlevel.h ..\win\X11\nh72icon \
+               ..\win\X11\nh56icon ..\win\X11\nh32icon
+       $(CC) $(CFLAGS) -Fo$@ ..\win\X11\winX.c
+$(O)winmap.o: ..\win\X11\winmap.c $(INCL)\xwindow.h $(HACK_H) $(INCL)\dlb.h \
+               $(INCL)\winX.h $(INCL)\tile2x11.h
+       $(CC) $(CFLAGS) -Fo$@ ..\win\X11\winmap.c
+$(O)winmenu.o: ..\win\X11\winmenu.c $(HACK_H) $(INCL)\winX.h
+       $(CC) $(CFLAGS) -Fo$@ ..\win\X11\winmenu.c
+$(O)winmesg.o: ..\win\X11\winmesg.c $(INCL)\xwindow.h $(HACK_H) $(INCL)\winX.h
+       $(CC) $(CFLAGS) -Fo$@ ..\win\X11\winmesg.c
+$(O)winmisc.o: ..\win\X11\winmisc.c $(HACK_H) $(INCL)\func_tab.h \
+               $(INCL)\winX.h
+       $(CC) $(CFLAGS) -Fo$@ ..\win\X11\winmisc.c
+$(O)winstat.o: ..\win\X11\winstat.c $(HACK_H) $(INCL)\winX.h
+       $(CC) $(CFLAGS) -Fo$@ ..\win\X11\winstat.c
+$(O)wintext.o: ..\win\X11\wintext.c $(HACK_H) $(INCL)\winX.h $(INCL)\xwindow.h
+       $(CC) $(CFLAGS) -Fo$@ ..\win\X11\wintext.c
+$(O)winval.o: ..\win\X11\winval.c $(HACK_H) $(INCL)\winX.h
+       $(CC) $(CFLAGS) -Fo$@ ..\win\X11\winval.c
+$(O)tile.o: tile.c $(HACK_H)
+$(O)gnaskstr.o: ..\win\gnome\gnaskstr.c ..\win\gnome\gnaskstr.h \
+               ..\win\gnome\gnmain.h
+       $(CC) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnaskstr.c
+$(O)gnbind.o: ..\win\gnome\gnbind.c ..\win\gnome\gnbind.h ..\win\gnome\gnmain.h \
+               ..\win\gnome\gnaskstr.h ..\win\gnome\gnyesno.h
+       $(CC) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnbind.c
+$(O)gnglyph.o: ..\win\gnome\gnglyph.c ..\win\gnome\gnglyph.h
+       $(CC) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnglyph.c
+$(O)gnmain.o: ..\win\gnome\gnmain.c ..\win\gnome\gnmain.h ..\win\gnome\gnsignal.h \
+               ..\win\gnome\gnbind.h ..\win\gnome\gnopts.h $(HACK_H) \
+               $(INCL)\date.h
+       $(CC) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnmain.c
+$(O)gnmap.o: ..\win\gnome\gnmap.c ..\win\gnome\gnmap.h ..\win\gnome\gnglyph.h \
+               ..\win\gnome\gnsignal.h $(HACK_H)
+       $(CC) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnmap.c
+$(O)gnmenu.o: ..\win\gnome\gnmenu.c ..\win\gnome\gnmenu.h ..\win\gnome\gnmain.h \
+               ..\win\gnome\gnbind.h
+       $(CC) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnmenu.c
+$(O)gnmesg.o: ..\win\gnome\gnmesg.c ..\win\gnome\gnmesg.h ..\win\gnome\gnsignal.h
+       $(CC) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnmesg.c
+$(O)gnopts.o: ..\win\gnome\gnopts.c ..\win\gnome\gnopts.h ..\win\gnome\gnglyph.h \
+               ..\win\gnome\gnmain.h ..\win\gnome\gnmap.h $(HACK_H)
+       $(CC) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnopts.c
+$(O)gnplayer.o: ..\win\gnome\gnplayer.c ..\win\gnome\gnplayer.h \
+               ..\win\gnome\gnmain.h $(HACK_H)
+       $(CC) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnplayer.c
+$(O)gnsignal.o: ..\win\gnome\gnsignal.c ..\win\gnome\gnsignal.h \
+               ..\win\gnome\gnmain.h
+       $(CC) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnsignal.c
+$(O)gnstatus.o: ..\win\gnome\gnstatus.c ..\win\gnome\gnstatus.h \
+               ..\win\gnome\gnsignal.h ..\win\gnome\gn_xpms.h \
+               ..\win\gnome\gnomeprv.h
+       $(CC) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnstatus.c
+$(O)gntext.o: ..\win\gnome\gntext.c ..\win\gnome\gntext.h ..\win\gnome\gnmain.h \
+               ..\win\gnome\gn_rip.h
+       $(CC) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gntext.c
+$(O)gnyesno.o: ..\win\gnome\gnyesno.c ..\win\gnome\gnbind.h ..\win\gnome\gnyesno.h
+       $(CC) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnyesno.c
+$(O)wingem.o: ..\win\gem\wingem.c $(HACK_H) $(INCL)\func_tab.h $(INCL)\dlb.h \
+               $(INCL)\patchlevel.h $(INCL)\wingem.h
+       $(CC) $(CFLAGS) -Fo$@ ..\win\gem\wingem.c
+$(O)wingem1.o: ..\win\gem\wingem1.c $(INCL)\gem_rsc.h $(INCL)\load_img.h \
+               $(INCL)\wintype.h $(INCL)\wingem.h
+       $(CC) $(CFLAGS) -Fo$@ ..\win\gem\wingem1.c
+$(O)load_img.o: ..\win\gem\load_img.c $(INCL)\load_img.h
+       $(CC) $(CFLAGS) -Fo$@ ..\win\gem\load_img.c
+$(O)tile.o: tile.c $(HACK_H)
+$(O)qt_win.o: ..\win\Qt\qt_win.cpp $(HACK_H) $(INCL)\func_tab.h \
+               $(INCL)\dlb.h $(INCL)\patchlevel.h $(INCL)\qt_win.h \
+               $(INCL)\qt_clust.h $(INCL)\qt_kde0.h \
+               $(INCL)\qt_xpms.h qt_win.moc qt_kde0.moc
+       $(CXX) $(CXXFLAGS) -c ..\win\Qt\qt_win.cpp
+$(O)qt_clust.o: ..\win\Qt\qt_clust.cpp $(INCL)\qt_clust.h
+       $(CXX) $(CXXFLAGS) -c ..\win\Qt\qt_clust.cpp
+$(O)allmain.o: allmain.c $(HACK_H)
+$(O)alloc.o: alloc.c $(CONFIG_H)
+$(O)apply.o: apply.c $(HACK_H) $(INCL)\edog.h
+$(O)artifact.o: artifact.c $(HACK_H) $(INCL)\artifact.h $(INCL)\artilist.h
+$(O)attrib.o: attrib.c $(HACK_H) $(INCL)\artifact.h
+$(O)ball.o: ball.c $(HACK_H)
+$(O)bones.o: bones.c $(HACK_H) $(INCL)\lev.h
+$(O)botl.o: botl.c $(HACK_H)
+$(O)cmd.o: cmd.c $(HACK_H) $(INCL)\func_tab.h
+$(O)dbridge.o: dbridge.c $(HACK_H)
+$(O)decl.o: decl.c $(HACK_H)
+$(O)detect.o: detect.c $(HACK_H) $(INCL)\artifact.h
+$(O)dig.o: dig.c $(HACK_H) $(INCL)\edog.h
+$(O)display.o: display.c $(HACK_H)
+$(O)dlb.o: dlb.c $(CONFIG_H) $(INCL)\dlb.h
+$(O)do.o: do.c $(HACK_H) $(INCL)\lev.h
+$(O)do_name.o: do_name.c $(HACK_H)
+$(O)do_wear.o: do_wear.c $(HACK_H)
+$(O)dog.o: dog.c $(HACK_H) $(INCL)\edog.h
+$(O)dogmove.o: dogmove.c $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
+$(O)dokick.o: dokick.c $(HACK_H) $(INCL)\eshk.h
+$(O)dothrow.o: dothrow.c $(HACK_H)
+$(O)drawing.o: drawing.c $(HACK_H) $(INCL)\tcap.h
+$(O)dungeon.o: dungeon.c $(HACK_H) $(INCL)\dgn_file.h $(INCL)\dlb.h
+$(O)eat.o: eat.c $(HACK_H)
+$(O)end.o: end.c $(HACK_H) $(INCL)\eshk.h $(INCL)\dlb.h
+$(O)engrave.o: engrave.c $(HACK_H) $(INCL)\lev.h
+$(O)exper.o: exper.c $(HACK_H)
+$(O)explode.o: explode.c $(HACK_H)
+$(O)extralev.o: extralev.c $(HACK_H)
+$(O)files.o: files.c $(HACK_H) $(INCL)\dlb.h
+$(O)fountain.o: fountain.c $(HACK_H)
+$(O)hack.o: hack.c $(HACK_H)
+$(O)hacklib.o: hacklib.c $(HACK_H)
+$(O)invent.o: invent.c $(HACK_H) $(INCL)\artifact.h
+$(O)light.o: light.c $(HACK_H) $(INCL)\lev.h
+$(O)lock.o: lock.c $(HACK_H)
+$(O)mail.o: mail.c $(HACK_H) $(INCL)\mail.h
+$(O)makemon.o: makemon.c $(HACK_H) $(INCL)\epri.h $(INCL)\emin.h \
+               $(INCL)\edog.h
+$(O)mapglyph.o: mapglyph.c $(HACK_H)
+$(O)mcastu.o: mcastu.c $(HACK_H)
+$(O)mhitm.o: mhitm.c $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h
+$(O)mhitu.o: mhitu.c $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h
+$(O)minion.o: minion.c $(HACK_H) $(INCL)\emin.h $(INCL)\epri.h
+$(O)mklev.o: mklev.c $(HACK_H)
+$(O)mkmap.o: mkmap.c $(HACK_H) $(INCL)\sp_lev.h
+$(O)mkmaze.o: mkmaze.c $(HACK_H) $(INCL)\sp_lev.h $(INCL)\lev.h
+$(O)mkobj.o: mkobj.c $(HACK_H) $(INCL)\artifact.h
+$(O)mkroom.o: mkroom.c $(HACK_H)
+$(O)mon.o: mon.c $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
+$(O)mondata.o: mondata.c $(HACK_H) $(INCL)\eshk.h $(INCL)\epri.h
+$(O)monmove.o: monmove.c $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
+$(O)monst.o: monst.c $(CONFIG_H) $(INCL)\permonst.h $(INCL)\align.h \
+               $(INCL)\monattk.h $(INCL)\monflag.h $(INCL)\monsym.h \
+               $(INCL)\dungeon.h $(INCL)\eshk.h $(INCL)\vault.h \
+               $(INCL)\epri.h $(INCL)\color.h
+$(O)mplayer.o: mplayer.c $(HACK_H)
+$(O)mthrowu.o: mthrowu.c $(HACK_H)
+$(O)muse.o: muse.c $(HACK_H) $(INCL)\edog.h
+$(O)music.o: music.c $(HACK_H) #interp.c
+$(O)o_init.o: o_init.c $(HACK_H) $(INCL)\lev.h
+$(O)objects.o: objects.c $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h \
+               $(INCL)\prop.h $(INCL)\skills.h $(INCL)\color.h
+$(O)objnam.o: objnam.c $(HACK_H)
+$(O)options.o: options.c $(CONFIG_H) $(INCL)\objclass.h $(INCL)\flag.h \
+               $(HACK_H) $(INCL)\tcap.h
+$(O)pager.o: pager.c $(HACK_H) $(INCL)\dlb.h
+$(O)pickup.o: pickup.c $(HACK_H)
+$(O)pline.o: pline.c $(HACK_H) $(INCL)\epri.h
+$(O)polyself.o: polyself.c $(HACK_H)
+$(O)potion.o: potion.c $(HACK_H)
+$(O)pray.o: pray.c $(HACK_H) $(INCL)\epri.h
+$(O)priest.o: priest.c $(HACK_H) $(INCL)\mfndpos.h $(INCL)\eshk.h \
+               $(INCL)\epri.h $(INCL)\emin.h
+$(O)quest.o: quest.c $(HACK_H) $(INCL)\qtext.h
+$(O)questpgr.o: questpgr.c $(HACK_H) $(INCL)\dlb.h $(INCL)\qtext.h
+$(O)read.o: read.c $(HACK_H)
+$(O)rect.o: rect.c $(HACK_H)
+$(O)region.o: region.c $(HACK_H)
+$(O)restore.o: restore.c $(HACK_H) $(INCL)\lev.h $(INCL)\tcap.h
+$(O)rip.o: rip.c $(HACK_H)
+$(O)rnd.o: rnd.c $(HACK_H)
+$(O)role.o: role.c $(HACK_H)
+$(O)rumors.o: rumors.c $(HACK_H) $(INCL)\lev.h $(INCL)\dlb.h
+$(O)save.o: save.c $(HACK_H) $(INCL)\lev.h
+$(O)shk.o: shk.c $(HACK_H) $(INCL)\eshk.h
+$(O)shknam.o: shknam.c $(HACK_H) $(INCL)\eshk.h
+$(O)sit.o: sit.c $(HACK_H) $(INCL)\artifact.h
+$(O)sounds.o: sounds.c $(HACK_H) $(INCL)\edog.h
+$(O)sp_lev.o: sp_lev.c $(HACK_H) $(INCL)\dlb.h $(INCL)\sp_lev.h
+$(O)spell.o: spell.c $(HACK_H)
+$(O)steal.o: steal.c $(HACK_H)
+$(O)steed.o: steed.c $(HACK_H)
+$(O)teleport.o: teleport.c $(HACK_H)
+$(O)timeout.o: timeout.c $(HACK_H) $(INCL)\lev.h
+$(O)topten.o: topten.c $(HACK_H) $(INCL)\dlb.h $(INCL)\patchlevel.h
+$(O)track.o: track.c $(HACK_H)
+$(O)trap.o: trap.c $(HACK_H)
+$(O)u_init.o: u_init.c $(HACK_H)
+$(O)uhitm.o: uhitm.c $(HACK_H)
+$(O)vault.o: vault.c $(HACK_H) $(INCL)\vault.h
+$(O)version.o: version.c $(HACK_H) $(INCL)\date.h $(INCL)\patchlevel.h
+$(O)vision.o: vision.c $(HACK_H) $(INCL)\vis_tab.h
+$(O)weapon.o: weapon.c $(HACK_H)
+$(O)were.o: were.c $(HACK_H)
+$(O)wield.o: wield.c $(HACK_H)
+$(O)windows.o: windows.c $(HACK_H) $(INCL)\wingem.h $(INCL)\winGnome.h
+$(O)wizard.o: wizard.c $(HACK_H) $(INCL)\qtext.h
+$(O)worm.o: worm.c $(HACK_H) $(INCL)\lev.h
+$(O)worn.o: worn.c $(HACK_H)
+$(O)write.o: write.c $(HACK_H)
+$(O)zap.o: zap.c $(HACK_H)
+
+# end of file
+