--- /dev/null
+# SCCS Id: @(#)Makefile.GCC 3.3 1999/11/06
+# Copyright (c) NetHack PC Development Team 1996.
+# PC NetHack 3.3 Makefile for djgpp V2
+#
+# Gnu gcc compiler for msdos (djgpp)
+# Requires Gnu Make utility (V3.73 or greater) supplied with djgpp V2
+#
+# For questions or comments: devteam@nethack.org
+#
+# In addition to your C compiler,
+#
+# if you want to change you will need a
+# files with suffix workalike for
+# .y yacc
+# .l lex
+#
+# Note that flex (lex) and bison (yacc) are included with the
+# djgpp distribution and work quite well. This makefile assumes
+# you have them installed correctly.
+
+# Game Installation Variables
+# NOTE: Make sure GAMEDIR exists before make is started.
+
+GAME = nethack
+# The GNU Make has a problem if you include a drive spec below (unfortunately).
+GAMEDIR = \games\nethackd
+
+#
+# Directories, gcc likes unix style directory specs
+#
+
+DDAT = ../dat
+DUTIL = ../util
+DSRC = ../src
+DINCL = ../include
+
+# But we must use dos directory specs to find src files, so....
+
+DAT = ..\dat
+DOC = ..\doc
+INCL = ..\include
+MSYS = ..\sys\msdos
+SRC = ..\src
+SSHR = ..\sys\share
+UTIL = ..\util
+WIN = ..\win\tty
+WSHR = ..\win\share
+
+#
+# Executables.
+
+CC = gcc
+LINK = gcc
+MAKEBIN = make
+
+# if you have a uudecode program, add its name here
+# otherwise leave blank
+UUDECODE =
+
+#
+# Special libraries and how to link them in.
+
+LIBS = -lpc
+
+# If TERMLIB is defined in pcconf.h, comment out the upper line and
+# uncomment the lower. Note that you must build the termc library
+# and place it in djgpp's lib directory. See termcap.zip for details
+
+TERMLIB =
+#TERMLIB = -ltermc
+
+LIBRARIES = $(LIBS) $(TERMLIB)
+
+#
+# Yacc/Lex ... if you got 'em.
+#
+# If you have yacc/lex or a work-alike set YACC_LEX to Y
+#
+YACC_LEX = N
+
+# If YACC_LEX is Y above, set the following to values appropriate for
+# your tools.
+#
+YACC = bison -y
+LEX = flex
+YTABC = y_tab.c
+YTABH = y_tab.h
+LEXYYC = lexyy.c
+
+#
+# Uncomment the line below if you want to store all the level files,
+# help files, etc. in a single library file.
+
+USE_DLB = Y
+
+# djgpp ships with an ls.exe command so changing this should
+# not be necessary
+
+LS = ls -1 # ls.exe from djgpp distribution
+#LS = dir /l/b # DOS command
+
+# To build a binary without any graphics
+# suitable for blind players,
+# set SUPPRESS_GRAPHICS to Y
+# (Note: binary will require ANSI.SYS driver or equivalent loaded)
+# SUPPRESS_GRAPHICS = Y
+SUPPRESS_GRAPHICS =
+
+#############################################################################
+#
+# nothing below this line should have to be changed
+#
+
+GAMEFILE = $(GAMEDIR)\$(GAME).exe
+
+# Changing this conditional block is not recommended
+ifeq ($(USE_DLB),Y)
+DLBFLG = -DDLB
+else
+DLBFLG =
+endif
+
+#
+# Flags.
+#
+ifeq ($(SUPPRESS_GRAPHICS),Y)
+TERMLIB =
+# Build NetHack suitable for blind players
+
+# Debugging
+#CFLAGS = -pg -c -I../include $(DLBFLG) -DSUPPRESS_GRAPHICS
+#LFLAGS = -pg
+
+CFLAGS = -c -O -I../include $(DLBFLG) -DSUPPRESS_GRAPHICS
+LFLAGS =
+
+else
+
+# Debugging
+#CFLAGS = -pg -c -I../include $(DLBFLG) -DUSE_TILES
+#LFLAGS = -pg
+
+# Normal
+CFLAGS = -c -O -I../include $(DLBFLG) -DUSE_TILES
+LFLAGS =
+endif
+
+#
+# Utility Objects.
+#
+
+VGAOBJ = vidvga.o
+
+MAKESRC = makedefs.c
+
+SPLEVSRC = lev_yacc.c lev_$(LEX).c lev_main.c panic.c
+
+DGNCOMPSRC = dgn_yacc.c dgn_$(LEX).c dgn_main.c
+
+MAKEOBJS = makedefs.o monst.o objects.o
+
+SPLEVOBJS = lev_yacc.o lev_$(LEX).o lev_main.o alloc.o \
+ monst.o objects.o panic.o \
+ drawing.o decl.o stubvid.o
+
+DGNCOMPOBJS = dgn_yacc.o dgn_$(LEX).o dgn_main.o alloc.o \
+ panic.o
+
+RECOVOBJS = recover.o
+
+
+# Tile related object files.
+
+ifeq ($(SUPPRESS_GRAPHICS),Y)
+TILOBJ =
+TEXTIO =
+TEXTIO2 =
+PLANAR_TIB =
+OVERVIEW_TIB =
+TILEUTIL =
+TILEFILES =
+TILEFILES2 =
+GIFREADERS =
+GIFREAD2 =
+PPMWRITERS =
+PPMWRIT2 =
+
+else
+
+TILOBJ = tile.o pctiles.o $(VGAOBJ)
+
+TEXTIO = tiletext.o tiletxt.o drawing.o decl.o monst.o objects.o stubvid.o
+
+TEXTIO2 = tiletex2.o tiletxt2.o drawing.o decl.o monst.o objects.o stubvid.o
+
+
+PLANAR_TIB = NetHack1.tib
+
+OVERVIEW_TIB = NetHacko.tib
+
+TILEUTIL = $(TILOBJ) tile2bin.exe til2bin2.exe $(PLANAR_TIB) $(OVERVIEW_TIB)
+
+TILEFILES = $(WSHR)\monsters.txt $(WSHR)\objects.txt $(WSHR)\other.txt
+
+TILEFILES2 = $(WSHR)\monthin.txt $(WSHR)\objthin.txt $(WSHR)\oththin.txt
+
+GIFREADERS = gifread.o alloc.o panic.o
+
+GIFREAD2 = gifread2.o alloc.o panic.o
+
+PPMWRITERS = ppmwrite.o alloc.o panic.o
+
+PPMWRIT2 = ppmwrit2.o alloc.o panic.o
+endif
+
+
+DLBOBJ = dlb.o
+
+# Object files for the game itself.
+
+VOBJ01 = allmain.o alloc.o apply.o artifact.o attrib.o
+VOBJ02 = ball.o bones.o botl.o cmd.o dbridge.o
+VOBJ03 = decl.o detect.o display.o do.o do_name.o
+VOBJ04 = do_wear.o dog.o dogmove.o dokick.o dothrow.o
+VOBJ05 = drawing.o dungeon.o eat.o end.o engrave.o
+VOBJ06 = exper.o explode.o extralev.o files.o fountain.o
+VOBJ07 = getline.o hack.o hacklib.o invent.o lock.o
+VOBJ08 = mail.o main.o makemon.o mapglyph.o mcastu.o mhitm.o
+VOBJ09 = mhitu.o minion.o mkmap.o mklev.o mkmaze.o
+VOBJ10 = mkobj.o mkroom.o mon.o mondata.o monmove.o
+VOBJ11 = monst.o monstr.o mplayer.o mthrowu.o muse.o
+VOBJ12 = music.o o_init.o objects.o objnam.o options.o
+VOBJ13 = pickup.o pline.o polyself.o potion.o quest.o
+VOBJ14 = questpgr.o pager.o pray.o priest.o read.o
+VOBJ15 = rect.o restore.o rip.o rnd.o role.o
+VOBJ16 = rumors.o save.o shk.o shknam.o sit.o
+VOBJ17 = sounds.o sp_lev.o spell.o steal.o steed.o
+VOBJ18 = termcap.o timeout.o topl.o topten.o track.o
+VOBJ19 = trap.o u_init.o uhitm.o vault.o vision.o
+VOBJ20 = vis_tab.o weapon.o were.o wield.o windows.o
+VOBJ21 = wintty.o wizard.o worm.o worn.o write.o
+VOBJ22 = zap.o light.o dlb.o dig.o teleport.o
+VOBJ23 = region.o
+
+SOBJ = msdos.o sound.o sys.o tty.o unix.o video.o \
+ vidtxt.o pckeys.o
+
+VVOBJ = version.o
+
+VOBJ = $(VOBJ01) $(VOBJ02) $(VOBJ03) $(VOBJ04) $(VOBJ05) \
+ $(VOBJ06) $(VOBJ07) $(VOBJ08) $(VOBJ09) $(VOBJ10) \
+ $(VOBJ11) $(VOBJ12) $(VOBJ13) $(VOBJ14) $(VOBJ15) \
+ $(VOBJ16) $(VOBJ17) $(VOBJ18) $(VOBJ19) $(VOBJ20) \
+ $(VOBJ21) $(VOBJ22) $(VOBJ23)
+
+ALLOBJ = $(VOBJ) $(SOBJ) $(TILOBJ) $(VVOBJ)
+
+#
+# Header Objects.
+#
+
+DGN_FILE_H = $(INCL)\align.h $(INCL)\dgn_file.h
+DUNGEON_H = $(INCL)\align.h $(INCL)\dungeon.h
+EMIN_H = $(DUNGEON_H) $(INCL)\emin.h
+EPRI_H = $(DUNGEON_H) $(INCL)\align.h $(INCL)\epri.h
+ESHK_H = $(DUNGEON_H) $(INCL)\eshk.h
+MONDATA_H = $(INCL)\align.h $(INCL)\mondata.h
+MONST_H = $(INCL)\align.h $(INCL)\monst.h
+PERMONST_H = $(INCL)\monattk.h $(INCL)\monflag.h $(INCL)\align.h \
+ $(INCL)\permonst.h
+REGION_H = $(INCL)\region.h
+RM_H = $(INCL)\align.h $(INCL)\rm.h
+SKILLS_H = $(INCL)\skills.h
+SP_LEV_H = $(INCL)\align.h $(INCL)\sp_lev.h
+VAULT_H = $(DUNGEON_H) $(INCL)\vault.h
+YOUPROP_H = $(PERMONST_H) $(MONDATA_H) $(INCL)\prop.h \
+ $(INCL)\pm.h $(INCL)\youprop.h
+YOU_H = $(MONST_H) $(YOUPROP_H) $(INCL)\align.h \
+ $(INCL)\attrib.h $(INCL)\you.h
+DISPLAY_H = $(MONDATA_H) $(INCL)\vision.h $(INCL)\display.h
+PCCONF_H = $(INCL)\micro.h $(INCL)\system.h $(INCL)\pcconf.h \
+ $(INCL)\pcvideo.h
+CONFIG_H = $(GLOBAL_H) $(INCL)\tradstdc.h $(INCL)\config1.h \
+ $(INCL)\config.h
+DECL_H = $(YOU_H) $(INCL)\spell.h $(INCL)\color.h \
+ $(INCL)\obj.h $(INCL)\onames.h $(INCL)\pm.h \
+ $(INCL)\decl.h
+GLOBAL_H = $(PCCONF_H) $(INCL)\coord.h $(INCL)\global.h
+HACK_H = $(CONFIG_H) $(DUNGEON_H) $(DECL_H) \
+ $(DISPLAY_H) $(INCL)\monsym.h $(INCL)\mkroom.h \
+ $(INCL)\objclass.h $(INCL)\trap.h $(INCL)\flag.h \
+ $(RM_H) $(INCL)\vision.h $(INCL)\wintype.h \
+ $(INCL)\engrave.h $(INCL)\rect.h \
+ $(INCL)\trampoli.h $(INCL)\hack.h $(REGION_H)
+DLB_H = $(INCL)\dlb.h
+
+ifeq ($(SUPPRESS_GRAPHICS),Y)
+TILE_H =
+else
+TILE_H = $(INCL)\tile.h $(INCL)\pctiles.h
+endif
+
+ifeq ($(USE_DLB),Y)
+DLB = dlb
+DLBOBJS = dlb_main.o dlb.o alloc.o panic.o
+else
+DLB =
+DLBOBJS =
+endif
+
+ifdef DJGPP
+DJ1 = $(dir $(DJGPP))
+CWSDPMI = $(subst /,\,$(DJ1))bin\CWSDPMI.*
+endif
+
+#
+# Make Rules.
+#
+
+.SUFFIXES: .exe .o .c .y .l
+
+.c.o:
+ $(CC) $(CFLAGS) -o$@ $<
+
+#.phony: dlb
+
+#
+# Primary Targets.
+#
+
+# The default target.
+
+default: $(GAMEFILE)
+
+all: install.tag
+
+util: utility.tag
+
+install: install.tag
+
+utility.tag: $(INCL)\date.h $(INCL)\trap.h $(INCL)\onames.h \
+ $(INCL)\pm.h monstr.c vis_tab.c \
+ lev_comp.exe dgn_comp.exe recover.exe $(TILEUTIL)
+ echo utilities made > utility.tag
+
+tileutil: gif2txt.exe txt2ppm.exe
+ @echo Optional tile development utilities are up to date.
+
+install.tag: dat.tag $(GAMEFILE)
+ifeq ($(USE_DLB),Y)
+ copy $(DAT)\nhdat $(GAMEDIR)
+ copy $(DAT)\license $(GAMEDIR)
+else
+ copy $(DAT)\*. $(GAMEDIR)
+ copy $(DAT)\*.dat $(GAMEDIR)
+ copy $(DAT)\*.lev $(GAMEDIR)
+ copy $(MSYS)\msdoshlp.txt $(GAMEDIR)
+ if exist $(GAMEDIR)\makefile. del $(GAMEDIR)\makefile.
+endif
+ifdef TERMLIB
+ copy $(SSHR)\termcap $(GAMEDIR)
+endif
+ if exist *.tib copy *.tib $(GAMEDIR)
+ copy $(SSHR)\NetHack.cnf $(GAMEDIR)\defaults.nh
+ copy $(MSYS)\NHAccess.nh $(GAMEDIR)
+ copy recover.exe $(GAMEDIR)
+ copy $(DOC)\guidebo*.txt $(GAMEDIR)
+ if exist $(DOC)\recover.txt copy $(DOC)\recover.txt $(GAMEDIR)
+ if exist $(DOC)\nethack.txt copy $(DOC)\nethack.txt $(GAMEDIR)
+ifdef CWSDPMI
+ if exist $(CWSDPMI) copy $(CWSDPMI) $(GAMEDIR)
+else
+ echo Could not find a copy of CWSDPMI.EXE to put into $(GAMEDIR)
+endif
+ echo install done > install.tag
+
+# The main target.
+
+
+$(GAMEFILE): utility.tag $(GAME).lnk
+ $(LINK) $(LFLAGS) -o$(GAME).exe @$(GAME).lnk $(LIBRARIES)
+ stubedit $(GAME).exe minstack=2048K
+ copy $(GAME).exe $(GAMEFILE)
+ del $(GAME).exe
+
+$(GAME).lnk: $(ALLOBJ)
+ @echo $(VOBJ01) > $@
+ @echo $(VOBJ02) >> $@
+ @echo $(VOBJ03) >> $@
+ @echo $(VOBJ04) >> $@
+ @echo $(VOBJ05) >> $@
+ @echo $(VOBJ06) >> $@
+ @echo $(VOBJ07) >> $@
+ @echo $(VOBJ08) >> $@
+ @echo $(VOBJ09) >> $@
+ @echo $(VOBJ10) >> $@
+ @echo $(VOBJ11) >> $@
+ @echo $(VOBJ12) >> $@
+ @echo $(VOBJ13) >> $@
+ @echo $(VOBJ14) >> $@
+ @echo $(VOBJ15) >> $@
+ @echo $(VOBJ16) >> $@
+ @echo $(VOBJ17) >> $@
+ @echo $(VOBJ18) >> $@
+ @echo $(VOBJ19) >> $@
+ @echo $(VOBJ20) >> $@
+ @echo $(VOBJ21) >> $@
+ @echo $(VOBJ22) >> $@
+ @echo $(VOBJ23) >> $@
+ @echo $(SOBJ) >> $@
+ @echo $(TILOBJ) >> $@
+ @echo $(VVOBJ) >> $@
+
+
+#
+# Housekeeping.
+#
+
+clean:
+ del *.o
+ del *.map
+ del dlb_main.exe
+
+spotless: clean
+ if exist utility.tag del utility.tag
+ if exist install.tag del install.tag
+ if exist dat.tag del dat.tag
+ if exist $(GAME).lnk del $(GAME).lnk
+ if exist makedefs.exe del makedefs.exe
+ if exist lev_comp.exe del lev_comp.exe
+ if exist dgn_comp.exe del dgn_comp.exe
+ if exist $(SRC)\lev_lex.c del $(SRC)\lev_lex.c
+ if exist $(SRC)\lev_flex.c del $(SRC)\lev_flex.c
+ if exist $(SRC)\lev_yacc.c del $(SRC)\lev_yacc.c
+ if exist $(SRC)\dgn_lex.c del $(SRC)\dgn_lex.c
+ if exist $(SRC)\dgn_flex.c del $(SRC)\dgn_flex.c
+ if exist $(SRC)\dgn_yacc.c del $(SRC)\dgn_yacc.c
+ if exist recover.exe del recover.exe
+ 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 $(INCL)\pcvideo.h del $(INCL)\pcvideo.h
+ if exist $(INCL)\pctiles.h del $(INCL)\pctiles.h
+ if exist $(INCL)\portio.h del $(INCL)\portio.h
+ if exist $(INCL)\tile.h del $(INCL)\tile.h
+ if exist monstr.c del monstr.c
+ if exist vis_tab.c del vis_tab.c
+ if exist $(SRC)\panic.c del $(SRC)\panic.c
+ if exist $(SRC)\makedefs.c del $(SRC)\makedefs.c
+ if exist $(SRC)\recover.c del $(SRC)\recover.c
+ if exist $(SRC)\lev_main.c del $(SRC)\lev_main.c
+ if exist $(SRC)\dlb_main.c del $(SRC)\dlb_main.c
+ if exist $(SRC)\dgn_main.c del $(SRC)\dgn_main.c
+ if exist $(SRC)\wintty.c del $(SRC)\wintty.c
+ if exist $(SRC)\topl.c del $(SRC)\topl.c
+ if exist $(SRC)\getline.c del $(SRC)\getline.c
+ if exist $(SRC)\termcap.c del $(SRC)\termcap.c
+ if exist $(SRC)\tile2bin.c del $(SRC)\tile2bin.c
+ if exist $(SRC)\msdos.c del $(SRC)\msdos.c
+ if exist $(SRC)\pckeys.c del $(SRC)\pckeys.c
+ if exist $(SRC)\video.c del $(SRC)\video.c
+ if exist $(SRC)\vidtxt.c del $(SRC)\vidtxt.c
+ if exist $(SRC)\vidvga.c del $(SRC)\vidvga.c
+ if exist $(SRC)\sound.c del $(SRC)\sound.c
+ if exist $(SRC)\tilemap.c del $(SRC)\tilemap.c
+ if exist $(SRC)\gifread.c del $(SRC)\gifread.c
+ if exist $(SRC)\ppmwrite.c del $(SRC)\ppmwrite.c
+ if exist $(SRC)\pcmain.c del $(SRC)\pcmain.c
+ if exist $(SRC)\pcunix.c del $(SRC)\pcunix.c
+ if exist $(SRC)\pcsys.c del $(SRC)\pcsys.c
+ if exist $(SRC)\pctty.c del $(SRC)\pctty.c
+ if exist $(SRC)\tile.c del $(SRC)\tile.c
+ if exist $(SRC)\tiletext.c del $(SRC)\tiletext.c
+ if exist $(SRC)\pctiles.c del $(SRC)\pctiles.c
+ if exist $(SRC)\thintile.c del $(SRC)\thintile.c
+ if exist $(SRC)\thintile.exe del $(SRC)\thintile.exe
+ if exist $(SRC)\thintile.tag del $(SRC)\thintile.tag
+ if exist $(SRC)\til2bin2.exe del $(SRC)\til2bin2.exe
+ 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 vis_tab.c del vis_tab.c
+ if exist *.lnk del *.lnk
+ if exist *.def del *.def
+ if exist *.map del *.map
+ if exist a.out del a.out
+ if exist tilemap.exe del tilemap.exe
+ if exist tile2bin.exe del tile2bin.exe
+ if exist $(DAT)\data del $(DAT)\data
+ if exist $(DAT)\*.lev del $(DAT)\*.lev
+ if exist $(DAT)\dungeon del $(DAT)\dungeon
+ if exist $(DAT)\options del $(DAT)\options
+ if exist $(DAT)\oracles del $(DAT)\oracles
+ if exist $(DAT)\rumors del $(DAT)\rumors
+ if exist $(DAT)\quest.dat del $(DAT)\quest.dat
+ if exist $(DAT)\nhdat del $(DAT)\nhdat
+ if exist $(DAT)\dlb.lst del $(DAT)\dlb.lst
+ if exist $(DAT)\msdoshlp.txt del $(DAT)\msdoshlp.txt
+ if exist $(DAT)\dlb_main.exe del $(DAT)\dlb_main.exe
+ if exist $(DAT)\lev_comp.exe del $(DAT)\lev_comp.exe
+ if exist $(DAT)\dgn_comp.exe del $(DAT)\dgn_comp.exe
+ if exist sp_lev.tag del sp_lev.tag
+ if exist $(PLANAR_TIB) del $(PLANAR_TIB)
+ if exist $(OVERVIEW_TIB) del $(OVERVIEW_TIB)
+ if exist thintile.tag del thintile.tag
+ if exist thintile.exe del thintile.exe
+ if exist til2bin2.exe del til2bin2.exe
+ if exist $(INCL)\dgn_comp.h del $(INCL)\dgn_comp.h
+ if exist $(INCL)\lev_comp.h del $(INCL)\lev_comp.h
+ if exist $(DAT)\dungeon.pdf del $(DAT)\dungeon.pdf
+ if exist $(WSHR)\monthin.txt del $(WSHR)\monthin.txt
+ if exist $(WSHR)\objthin.txt del $(WSHR)\objthin.txt
+ if exist $(WSHR)\oththin.txt del $(WSHR)\oththin.txt
+
+#
+# Secondary Targets.
+#
+# The following include files depend on makedefs to be created.
+#
+# date.h should be remade every time any of the source or include
+# files is modified.
+
+
+$(INCL)\date.h : makedefs.exe
+ -makedefs -v
+
+$(INCL)\onames.h: makedefs.exe
+ -makedefs -o
+
+$(INCL)\pm.h: makedefs.exe
+ -makedefs -p
+
+monstr.c: makedefs.exe
+ -makedefs -m
+
+$(INCL)\vis_tab.h: makedefs.exe
+ -makedefs -z
+
+vis_tab.c: makedefs.exe
+ -makedefs -z
+
+#
+# Makedefs Stuff
+#
+
+makedefs.exe: $(MAKEOBJS)
+ $(LINK) $(LFLAGS) -omakedefs.exe $(MAKEOBJS)
+
+makedefs.c: $(UTIL)\makedefs.c
+ copy $(UTIL)\makedefs.c .
+
+makedefs.o: $(CONFIG_H) $(PERMONST_H) $(INCL)\objclass.h \
+ $(INCL)\monsym.h $(INCL)\qtext.h makedefs.c
+
+#
+# Level Compiler Dependencies
+#
+
+lev_comp.exe: $(SPLEVOBJS)
+ $(LINK) $(LFLAGS) -olev_comp.exe $(SPLEVOBJS)
+
+ifeq ($(YACC_LEX),Y)
+
+lev_yacc.o: $(HACK_H) $(SP_LEV_H) lev_yacc.c
+ $(CC) $(CFLAGS) -o$@ lev_yacc.c
+
+else
+
+lev_yacc.o: $(HACK_H) $(SP_LEV_H) $(INCL)\lev_comp.h lev_yacc.c
+ $(CC) $(CFLAGS) -o$@ lev_yacc.c
+
+endif
+
+lev_$(LEX).o: $(HACK_H) $(SP_LEV_H) $(INCL)\lev_comp.h \
+ lev_$(LEX).c
+ $(CC) $(CFLAGS) -o$@ lev_$(LEX).c
+
+lev_main.c: $(UTIL)\lev_main.c
+ copy $(UTIL)\lev_main.c .
+
+lev_main.o: $(HACK_H) $(INCL)\sp_lev.h $(INCL)\date.h lev_main.c
+
+$(INCL)\lev_comp.h: lev_yacc.c
+
+ifeq ($(YACC_LEX),Y)
+
+lev_yacc.c: $(UTIL)\lev_comp.y
+ $(YACC) -d $(DUTIL)/lev_comp.y
+ copy $(YTABC) $@
+ copy $(YTABH) $(INCL)\lev_comp.h
+ del $(YTABC)
+ del $(YTABH)
+
+lev_$(LEX).c: $(UTIL)\lev_comp.l
+ $(LEX) $(DUTIL)/lev_comp.l
+ copy $(LEXYYC) $@
+ del $(LEXYYC)
+else
+
+lev_yacc.c: $(SSHR)\lev_yacc.c
+ copy $(SSHR)\lev_yacc.c $@
+
+$(INCL)\lev_comp.h: $(SSHR)\lev_comp.h
+ copy $(SSHR)\lev_comp.h $@
+ touch $(DINCL)/lev_comp.h
+
+lev_$(LEX).c: $(SSHR)\lev_lex.c
+ copy $(SSHR)\lev_lex.c $@
+
+endif
+
+
+
+#
+# Dungeon Dependencies
+#
+
+dgn_comp.exe: $(DGNCOMPOBJS)
+ $(LINK) $(LFLAGS) -odgn_comp.exe $(DGNCOMPOBJS)
+
+ifeq ($(YACC_LEX),Y)
+
+dgn_yacc.o: $(HACK_H) $(DGN_FILE_H) dgn_yacc.c
+ $(CC) $(CFLAGS) -o$@ dgn_yacc.c
+
+else
+
+dgn_yacc.o: $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h dgn_yacc.c
+ $(CC) $(CFLAGS) -o$@ dgn_yacc.c
+
+endif
+
+dgn_$(LEX).o: $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h \
+ dgn_$(LEX).c
+ $(CC) $(CFLAGS) -o$@ dgn_$(LEX).c
+
+dgn_main.c: $(UTIL)\dgn_main.c
+ copy $(UTIL)\dgn_main.c .
+
+dgn_main.o: $(HACK_H)
+
+$(INCL)\dgn_comp.h: dgn_yacc.c
+
+ifeq ($(YACC_LEX),Y)
+
+dgn_yacc.c: $(UTIL)\dgn_comp.y
+ $(YACC) -d $(DUTIL)/dgn_comp.y
+ copy $(YTABC) $@
+ copy $(YTABH) $(INCL)\dgn_comp.h
+ del $(YTABC)
+ del $(YTABH)
+
+dgn_$(LEX).c: $(UTIL)\dgn_comp.l
+ $(LEX) $(DUTIL)/dgn_comp.l
+ copy $(LEXYYC) $@
+ del $(LEXYYC)
+
+else
+
+dgn_yacc.c: $(SSHR)\dgn_yacc.c
+ copy $(SSHR)\dgn_yacc.c $@
+
+$(INCL)\dgn_comp.h: $(SSHR)\dgn_comp.h
+ copy $(SSHR)\dgn_comp.h $@
+ touch $(DINCL)/dgn_comp.h
+
+dgn_$(LEX).c: $(SSHR)\dgn_lex.c
+ copy $(SSHR)\dgn_lex.c $@
+
+endif
+
+#
+# Recover Utility
+#
+
+recover.exe: $(RECOVOBJS)
+ $(LINK) $(LFLAGS) -orecover.exe recover.o
+
+recover.c: $(UTIL)\recover.c
+ copy $(UTIL)\recover.c .
+
+recover.o: $(CONFIG_H) recover.c
+ $(CC) $(CFLAGS) -o$@ recover.c
+
+
+#
+# Header file moves required for tile support
+#
+ifeq ($(SUPPRESS_GRAPHICS),Y)
+
+else
+
+$(INCL)\tile.h: $(WSHR)\tile.h
+ copy $(WSHR)\tile.h $@
+
+$(INCL)\pctiles.h: $(MSYS)\pctiles.h
+ copy $(MSYS)\pctiles.h $@
+
+$(INCL)\pcvideo.h: $(MSYS)\pcvideo.h
+ copy $(MSYS)\pcvideo.h $@
+
+$(INCL)\portio.h: $(MSYS)\portio.h
+ copy $(MSYS)\portio.h $@
+
+#
+# Tile Mapping
+#
+
+tile.c: tilemap.exe
+ @tilemap
+ @echo A new $@ has been created
+
+tilemap.exe: tilemap.o
+ $(LINK) $(LFLAGS) -otilemap.exe tilemap.o
+
+tilemap.c: $(WSHR)\tilemap.c
+ copy $(WSHR)\tilemap.c .
+
+tilemap.o: tilemap.c $(HACK_H) $(TILE_H)
+
+#
+# Tile Utilities
+#
+#
+# Required for tile support
+#
+
+NetHack1.tib: $(TILEFILES) tile2bin.exe
+ @echo Creating binary tile files (this may take some time)
+ @tile2bin
+
+NetHacko.tib: thintile.tag $(TILEFILES2) til2bin2.exe
+ @echo Creating overview binary tile files (this may take some time)
+ @til2bin2
+
+tile2bin.exe: tile2bin.o $(TEXTIO)
+ $(LINK) $(LFLAGS) -otile2bin.exe tile2bin.o $(TEXTIO)
+
+til2bin2.exe: til2bin2.o $(TEXTIO2)
+ $(LINK) $(LFLAGS) -otil2bin2.exe til2bin2.o $(TEXTIO2)
+
+thintile.exe: thintile.o
+ $(LINK) $(LFLAGS) -othintile.exe thintile.o
+
+thintile.c: $(WSHR)\thintile.c
+ copy $(WSHR)\thintile.c .
+
+thintile.o: $(HACK_H) $(INCL)\tile.h thintile.c
+ $(CC) $(CFLAGS) -o$@ thintile.c
+
+thintile.tag: thintile.exe $(TILEFILES)
+ thintile
+ @echo thintiles created >thintile.tag
+
+tile2bin.c: $(MSYS)\tile2bin.c
+ copy $(MSYS)\tile2bin.c .
+
+tile2bin.o: $(HACK_H) $(INCL)\tile.h $(INCL)\pctiles.h $(INCL)\pcvideo.h \
+ tile2bin.c
+
+til2bin2.o: $(HACK_H) $(INCL)\tile.h $(INCL)\pctiles.h $(INCL)\pcvideo.h \
+ tile2bin.c
+ $(CC) $(CFLAGS) -DTILE_X=8 -DOVERVIEW_FILE -o$@ tile2bin.c
+
+tiletext.o: $(CONFIG_H) $(INCL)\tile.h $(WSHR)\tiletext.c
+ copy $(WSHR)\tiletext.c .
+ $(CC) $(CFLAGS) -o$@ tiletext.c
+
+tiletex2.o: $(CONFIG_H) $(INCL)\tile.h $(WSHR)\tiletext.c
+ copy $(WSHR)\tiletext.c .
+ $(CC) $(CFLAGS) -DTILE_X=8 -o$@ tiletext.c
+
+tiletxt.o: $(CONFIG_H) $(INCL)\tile.h tilemap.c
+ $(CC) $(CFLAGS) -DTILETEXT -o$@ tilemap.c
+
+tiletxt2.o: $(CONFIG_H) $(INCL)\tile.h tilemap.c
+ $(CC) $(CFLAGS) -DTILETEXT -DTILE_X=8 -o$@ tilemap.c
+#
+# Optional GIF Utilities (for development)
+#
+
+gif2txt.exe: $(GIFREADERS) $(TEXTIO)
+ $(LINK) $(LFLAGS) -ogif2txt.exe $(GIFREADERS) $(TEXTIO)
+
+gif2txt2.exe: $(GIFREAD2) $(TEXTIO2)
+ $(LINK) $(LFLAGS) -ogif2txt2.exe $(GIFREAD2) $(TEXTIO2)
+
+txt2ppm.exe: $(PPMWRITERS) $(TEXTIO)
+ $(LINK) $(LFLAGS) -otxt2ppm.exe $(PPMWRITERS) $(TEXTIO)
+
+txt2ppm2.exe: $(PPMWRIT2) $(TEXTIO2)
+ $(LINK) $(LFLAGS) -otxt2ppm2.exe $(PPMWRIT2) $(TEXTIO2)
+
+gifread.c: $(WSHR)\gifread.c
+ copy $(WSHR)\gifread.c .
+
+gifread.o: $(CONFIG_H) $(INCL)\tile.h
+
+gifread2.o: $(CONFIG_H) $(INCL)\tile.h gifread.c
+ $(CC) $(CFLAGS) -DTILE_X=8 -o$@ gifread.c
+
+ppmwrite.c: $(WSHR)\ppmwrite.c
+ copy $(WSHR)\ppmwrite.c .
+
+ppmwrite.o: $(CONFIG_H) $(INCL)\tile.h
+
+ppmwrit2.o: $(CONFIG_H) $(INCL)\tile.h ppmwrite.c
+ $(CC) $(CFLAGS) -DTILE_X=8 -o$@ ppmwrite.c
+
+#
+# Optional tile viewer (development sources only)
+#
+
+viewtib.exe: viewtib.o
+ $(LINK) $(LFLAGS) -oviewtib.exe viewtib.o $(LIBRARIES)
+
+viewtib.c: $(MSYS)\viewtib.c
+ copy $(MSYS)\viewtib.c .
+
+viewtib.o: viewtib.c
+
+endif
+
+#
+# Other Util Dependencies.
+#
+
+alloc.o: $(CONFIG_H) alloc.c
+ $(CC) $(CFLAGS) -oalloc.o alloc.c
+
+drawing.o: $(CONFIG_H) drawing.c $(INCL)\pcvideo.h
+ $(CC) $(CFLAGS) -odrawing.o drawing.c
+
+decl.o: $(CONFIG_H) decl.c
+ $(CC) $(CFLAGS) -odecl.o decl.c
+
+monst.o: $(CONFIG_H) $(PERMONST_H) $(ESHK_H) \
+ $(EPRI_H) $(VAULT_H) $(INCL)\monsym.h \
+ $(INCL)\color.h monst.c
+ $(CC) $(CFLAGS) -omonst.o monst.c
+
+objects.o: $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h \
+ $(INCL)\prop.h $(INCL)\color.h objects.c
+ $(CC) $(CFLAGS) -oobjects.o objects.c
+
+panic.c: $(UTIL)\panic.c
+ copy $(UTIL)\panic.c .
+
+panic.o: $(CONFIG_H) panic.c
+
+
+
+#
+# make data.base an 8.3 filename to prevent an nmake warning
+#
+
+DATABASE = $(DAT)\data.bas
+
+
+dat.tag: $(DAT)\nhdat
+ @echo dat done >dat.tag
+
+$(DAT)\data: utility.tag $(DATABASE)
+ makedefs -d
+
+$(DAT)\rumors: utility.tag $(DAT)\rumors.tru $(DAT)\rumors.fal
+ makedefs -r
+
+$(DAT)\quest.dat: utility.tag $(DAT)\quest.txt
+ makedefs -q
+
+$(DAT)\oracles: utility.tag $(DAT)\oracles.txt
+ makedefs -h
+
+sp_lev.tag: 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)\tourist.des \
+ $(DAT)\valkyrie.des $(DAT)\wizard.des
+ copy $(SRC)\lev_comp.exe $(DAT)\lev_comp.exe
+ cd $(DAT)
+ lev_comp bigroom.des
+ lev_comp castle.des
+ lev_comp endgame.des
+ lev_comp gehennom.des
+ lev_comp knox.des
+ lev_comp mines.des
+ lev_comp medusa.des
+ lev_comp oracle.des
+ lev_comp sokoban.des
+ lev_comp tower.des
+ lev_comp yendor.des
+ lev_comp arch.des
+ lev_comp barb.des
+ lev_comp caveman.des
+ lev_comp healer.des
+ lev_comp knight.des
+ lev_comp monk.des
+ lev_comp priest.des
+ lev_comp ranger.des
+ lev_comp rogue.des
+ lev_comp samurai.des
+ lev_comp tourist.des
+ lev_comp valkyrie.des
+ lev_comp wizard.des
+ cd $(SRC)
+ echo sp_levs done > sp_lev.tag
+
+$(DAT)\dungeon: utility.tag $(DAT)\dungeon.def
+ @copy $(SRC)\dgn_comp.exe $(DAT)\dgn_comp.exe
+ makedefs -e
+ cd $(DAT)
+ dgn_comp dungeon.pdf
+ cd $(SRC)
+#
+# DLB stuff
+#
+#note that dir below assumes bin/dir.exe from djgpp distribution
+#
+$(DAT)\nhdat: dlb_main.exe $(DAT)\data $(DAT)\rumors $(DAT)\dungeon \
+ $(DAT)\oracles $(DAT)\quest.dat sp_lev.tag
+ @echo dat done >dat.tag
+ @cd $(DAT)
+ @copy $(MSYS)\msdoshlp.txt .
+ @echo data >dlb.lst
+ @echo dungeon >>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 license >>dlb.lst
+ @echo msdoshlp.txt >>dlb.lst
+ $(LS) *.lev >>dlb.lst
+ dlb_main cvIf dlb.lst nhdat
+ @cd $(SRC)
+
+dlb_main.exe: $(DLBOBJS)
+ $(LINK) $(LFLAGS) -odlb_main.exe $(DLBOBJS)
+ @copy $@ $(DAT)\dlb_main.exe
+
+
+dlb_main.o: $(UTIL)\dlb_main.c $(INCL)\config.h $(DLB_H)
+ copy $(UTIL)\dlb_main.c .
+ $(CC) $(CFLAGS) -odlb_main.o dlb_main.c
+
+# Game Dependencies
+# Some files require movement as Gnu make doesn't like unix style '/'
+# directory specs and djgcc doesn't like dos style directory specs.
+# So we get to copy stuff where we might need it. Fun eh?
+
+# sys/share
+main.o: $(HACK_H) $(DLB_H) $(SSHR)\pcmain.c
+ copy $(SSHR)\pcmain.c .
+ $(CC) $(CFLAGS) -o$@ pcmain.c
+
+tty.o: $(HACK_H) $(INCL)\wintty.h $(SSHR)\pctty.c
+ copy $(SSHR)\pctty.c .
+ $(CC) $(CFLAGS) -o$@ pctty.c
+
+unix.o: $(HACK_H) $(SSHR)\pcunix.c
+ copy $(SSHR)\pcunix.c .
+ $(CC) $(CFLAGS) -o$@ pcunix.c
+
+sys.o : $(HACK_H) $(SSHR)\pcsys.c
+ copy $(SSHR)\pcsys.c .
+ $(CC) $(CFLAGS) -o$@ pcsys.c
+
+# sys/msdos
+msdos.o : $(HACK_H) $(MSYS)\msdos.c
+ copy $(MSYS)\msdos.c .
+ $(CC) $(CFLAGS) -o$@ msdos.c
+
+pckeys.o : $(HACK_H) $(MSYS)\pckeys.c
+ copy $(MSYS)\pckeys.c .
+ $(CC) $(CFLAGS) -o$@ pckeys.c
+
+pctiles.o : $(HACK_H) $(MSYS)\pctiles.c $(INCL)\portio.h
+ copy $(MSYS)\pctiles.c .
+ $(CC) $(CFLAGS) -o$@ pctiles.c
+
+sound.o : $(HACK_H) $(MSYS)\sound.c $(INCL)\portio.h
+ copy $(MSYS)\sound.c .
+ $(CC) $(CFLAGS) -o$@ sound.c
+
+video.o : $(HACK_H) $(INCL)\pcvideo.h $(INCL)\portio.h $(MSYS)\video.c
+ copy $(MSYS)\video.c .
+ $(CC) $(CFLAGS) -o$@ video.c
+
+vidvga.o : $(HACK_H) $(INCL)\pcvideo.h $(INCL)\portio.h $(TILE_H) \
+ $(MSYS)\vidvga.c
+ copy $(MSYS)\vidvga.c .
+ $(CC) $(CFLAGS) -o$@ vidvga.c
+
+vidtxt.o : $(HACK_H) $(INCL)\pcvideo.h $(INCL)\portio.h $(TILE_H) \
+ $(MSYS)\vidtxt.c
+ copy $(MSYS)\vidtxt.c .
+ $(CC) $(CFLAGS) -o$@ vidtxt.c
+
+stubvid.o : $(HACK_H) $(MSYS)\video.c
+ copy $(MSYS)\video.c .
+ $(CC) $(CFLAGS) -DSTUBVIDEO -o$@ video.c
+
+
+# win/tty
+getline.o : $(HACK_H) $(INCL)\wintty.h $(WIN)\getline.c
+ copy $(WIN)\getline.c .
+ $(CC) $(CFLAGS) -o$@ getline.c
+
+termcap.o : $(CONFIG_H) $(WIN)\termcap.c
+ copy $(WIN)\termcap.c .
+ $(CC) $(CFLAGS) -o$@ termcap.c
+
+topl.o : $(CONFIG_H) $(WIN)\topl.c
+ copy $(WIN)\topl.c .
+ $(CC) $(CFLAGS) -o$@ topl.c
+
+wintty.o : $(HACK_H) $(WIN)\wintty.c
+ copy $(WIN)\wintty.c .
+ $(CC) $(CFLAGS) -o$@ wintty.c
+
+# src dependencies
+allmain.o: $(HACK_H)
+alloc.o: $(CONFIG_H)
+apply.o: $(HACK_H) $(INCL)\edog.h
+artifact.o: $(HACK_H) $(INCL)\artifact.h $(INCL)\artilist.h
+attrib.o: $(HACK_H) $(INCL)\artifact.h
+ball.o: $(HACK_H)
+bones.o: $(HACK_H) $(INCL)\lev.h
+botl.o: $(HACK_H)
+cmd.o: $(HACK_H) $(INCL)\func_tab.h
+dbridge.o: $(HACK_H)
+decl.o: $(HACK_H) $(INCL)\quest.h
+detect.o: $(HACK_H) $(INCL)\artifact.h
+dig.o: $(HACK_H)
+display.o: $(HACK_H)
+dlb.o: $(HACK_H) $(DLB_H)
+do.o: $(HACK_H) $(INCL)\lev.h
+do_name.o: $(HACK_H)
+do_wear.o: $(HACK_H)
+dog.o: $(HACK_H) $(INCL)\edog.h
+dogmove.o: $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
+dokick.o: $(HACK_H) $(ESHK_H)
+dothrow.o: $(HACK_H)
+drawing.o: $(HACK_H) $(INCL)\tcap.h
+dungeon.o: $(HACK_H) $(INCL)\dgn_file.h
+eat.o: $(HACK_H)
+end.o: $(HACK_H) $(ESHK_H)
+engrave.o: $(HACK_H) $(INCL)\lev.h
+exper.o: $(HACK_H)
+explode.o: $(HACK_H)
+extralev.o: $(HACK_H)
+files.o: $(HACK_H)
+fountain.o: $(HACK_H)
+hack.o: $(HACK_H)
+hacklib.o: $(HACK_H)
+invent.o: $(HACK_H) $(INCL)\artifact.h
+light.o: $(HACK_H) $(INCL)\lev.h
+lock.o: $(HACK_H)
+mail.o: $(HACK_H) $(INCL)\mail.h
+makemon.o: $(HACK_H) $(EPRI_H) $(EMIN_H) $(INCL)\edog.h
+mcastu.o: $(HACK_H)
+mapglyph.o: $(HACK_H)
+mhitm.o: $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h
+mhitu.o: $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h
+minion.o: $(HACK_H) $(EMIN_H) $(EPRI_H)
+mklev.o: $(HACK_H)
+mkmap.o: $(HACK_H) $(INCL)\sp_lev.h
+mkmaze.o: $(HACK_H) $(INCL)\sp_lev.h
+mkobj.o: $(HACK_H) $(INCL)\artifact.h $(INCL)\prop.h
+mkroom.o: $(HACK_H)
+mon.o: $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
+mondata.o: $(HACK_H) $(ESHK_H) $(EPRI_H)
+monmove.o: $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
+monst.o: $(CONFIG_H) $(PERM_H) $(ESHK_H) $(EPRI_H) \
+ $(INCL)\color.h $(INCL)\monsym.h $(INCL)\vault.h
+mplayer.o: $(HACK_H)
+mthrowu.o: $(HACK_H)
+muse.o: $(HACK_H)
+music.o: $(HACK_H)
+o_init.o: $(HACK_H)
+objects.o: $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h \
+ $(INCL)\prop.h $(SKILLS_H) $(INCL)\color.h
+objnam.o: $(HACK_H)
+options.o: $(CONFIG_H) $(HACK_H) $(INCL)\objclass.h $(INCL)\flag.h \
+ $(INCL)\tcap.h
+pager.o: $(HACK_H)
+pickup.o: $(HACK_H)
+pline.o: $(HACK_H) $(EPRI_H)
+polyself.o: $(HACK_H)
+potion.o: $(HACK_H)
+pray.o: $(HACK_H) $(EPRI_H)
+priest.o: $(HACK_H) $(INCL)\mfndpos.h $(ESHK_H) $(EPRI_H) $(EMIN_H)
+quest.o: $(HACK_H) $(INCL)\quest.h $(INCL)\qtext.h
+questpgr.o: $(HACK_H) $(INCL)\qtext.h
+read.o: $(HACK_H)
+rect.o: $(HACK_H)
+region.o: $(HACK_H)
+restore.o: $(HACK_H) $(INCL)\lev.h $(INCL)\tcap.h $(INCL)\quest.h
+rip.o: $(HACK_H)
+rnd.o: $(HACK_H)
+role.o: $(HACK_H)
+rumors.o: $(HACK_H)
+save.o: $(HACK_H) $(INCL)\lev.h $(INCL)\quest.h
+shk.o: $(HACK_H) $(ESHK_H)
+shknam.o: $(HACK_H) $(ESHK_H)
+sit.o: $(HACK_H) $(INCL)\artifact.h
+sounds.o: $(HACK_H) $(INCL)\edog.h
+sp_lev.o: $(HACK_H) $(INCL)\sp_lev.h $(INCL)\align.h $(INCL)\rect.h
+spell.o: $(HACK_H)
+steal.o: $(HACK_H)
+steed.o: $(HACK_H)
+teleport.o: $(HACK_H)
+tile.o: $(HACK_H) $(TILE_H)
+timeout.o: $(HACK_H)
+topten.o: $(HACK_H)
+track.o: $(HACK_H)
+trap.o: $(HACK_H)
+u_init.o: $(HACK_H)
+uhitm.o: $(HACK_H)
+vault.o: $(HACK_H) $(INCL)\vault.h
+version.o: $(HACK_H) $(INCL)\patchlev.h
+vision.o: $(HACK_H) $(INCL)\vis_tab.h
+weapon.o: $(HACK_H)
+were.o: $(HACK_H)
+wield.o: $(HACK_H)
+windows.o: $(HACK_H) $(INCL)\wintty.h
+wizard.o: $(HACK_H) $(INCL)\qtext.h
+worm.o: $(HACK_H) $(INCL)\lev.h
+worn.o: $(HACK_H)
+write.o: $(HACK_H)
+zap.o: $(HACK_H)
+
+# end of file