# SCCS Id: @(#)Makefile.MGW 3.3 2000/10/22 # Copyright (c) NetHack PC Development Team 1996. # Modified from the GCC and Visual C++ makefiles by Jaakko Peltonen. # PC NetHack 3.3 Makefile for mingw 2.95.2 # # Minimalist Gnu gcc compiler for Windows (mingw) # Requires Gnu Make utility (V3.73 or greater) # # For questions or comments: jaakko.peltonen@hut.fi # # In addition to your C compiler, # # if you want to change you will need a # files with suffix workalike for # .y yacc # .l lex # # The utilities flex (lex) and bison (yacc) are included with the # djgpp distribution and work quite well. This makefile assumes # you have them installed correctly. # # Note: They don't come with all distributions (like the one I have). # But they're not necessary, so don't worry if you don't have them. # - Jaakko Peltonen ####################################################################### # Section 1: Game Installation Variables # NOTE: Make sure GAMEDIR exists before make is started. # # The GNU Make has a problem if you include a drive spec below (unfortunately). GAMEDIR = ..\compiled GAME = nethack GAMEFILE = $(GAMEDIR)\$(GAME).exe # # Comment the line below if you don't want to store all the level files, # help files, etc. in a single library file. # USE_DLB = Y # # Optional high-quality BSD random number generation routines # (see pcconf.h). Set to nothing if not used. # RANDOM = random.o #RANDOM = # # Source directories # # gcc likes unix style directory specs DINCL = ../include DDAT = ../dat DDOC = ../doc DUTIL = ../util DSRC = ../src DSSYS = ../sys/share DNTSYS = ../sys/winnt DWIN = ../win DWSHR = ../win/share # But we must use dos directory specs to find src files, so.... INCL = ..\include DAT = ..\dat DOC = ..\doc UTIL = ..\util SRC = ..\src SSYS = ..\sys\share NTSYS = ..\sys\winnt WIN = ..\win WSHR = ..\win\share ##################################################################### # Section 2: Executable File Info. # ($(MAKE) macro is often predefined, so we use $(MAKEBIN) instead.) # CC = f:/mingw/bin/gcc LINK = f:/mingw/bin/gcc WINDRES = f:/mingw/bin/windres MAKEBIN = f:/mingw/bin/make # # If you have a Unix-style ls.exe command, you can use either choice below # #LS = ls -1 # Unix-style ls.exe LS = dir /l/b # DOS command # # Lexical Parser Info. # 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 ############################################################################# # # Section 3: Compilation mechanics. # Nothing below this line should have to be changed. # #Do not uncomment these for 3.3.0 #TILEGAME = $(OBJ)\tile.o #TILEDEF = -DTILES #TILEHDR = #SOUND = $(OBJ)\ntsound.o SOUND = # Changing this conditional block is not recommended ifeq ($(USE_DLB),Y) DLBFLG = -DDLB else DLBFLG = endif ifeq ($(USE_DLB),Y) DLB = nhdat else DLB = endif # # Since this MINGW makefile is primarily for the graphical window port "Falcon's Eye", # I'll leave out the support for blind players. If you wish to # include it, though, it should be easy to do based on the GCC makefile. # Notice that USE_TILES has not been defined here. # CFLAGS = -c -O -I../include $(DLBFLG) -DWIN32CON LFLAGS = LIBRARIES = DXLIBRARIES = -mwindows -lddraw -ldsound -lwinmm # # Utility Objects. # 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 DGNCOMPOBJS = dgn_yacc.o dgn_$(LEX).o dgn_main.o \ alloc.o panic.o RECOVOBJS = recover.o # # Tile related object files. # These are not invoked during a normal game build. # TEXT_IO = tiletext.o tiletxt.o drawing.o \ decl.o monst.o objects.o GIFREADERS = gifread.o alloc.o panic.o PPMWRITERS = ppmwrite.o alloc.o panic.o TILEFILES = $(WSHR)\monsters.txt $(WSHR)\objects.txt $(WSHR)\other.txt # # Data librarian object # DLBOBJ = dlb.o DLBOBJS = dlb_main.o dlb.o alloc.o panic.o # # Object files for the game itself. # VOBJ01 = allmain.o alloc.o apply.o artifact.o VOBJ02 = attrib.o ball.o bones.o botl.o VOBJ03 = cmd.o dbridge.o decl.o detect.o VOBJ04 = dig.o display.o do.o do_name.o VOBJ05 = do_wear.o dog.o dogmove.o dokick.o VOBJ06 = dothrow.o drawing.o dungeon.o eat.o VOBJ07 = end.o engrave.o exper.o explode.o VOBJ08 = extralev.o files.o fountain.o hack.o VOBJ09 = hacklib.o invent.o light.o lock.o VOBJ10 = mail.o main.o makemon.o mcastu.o VOBJ11 = mhitm.o mhitu.o minion.o mklev.o VOBJ12 = mkmap.o mkmaze.o mkobj.o mkroom.o VOBJ13 = mon.o mondata.o monmove.o monst.o VOBJ14 = monstr.o mplayer.o mthrowu.o muse.o VOBJ15 = music.o o_init.o objects.o objnam.o VOBJ16 = options.o pager.o pickup.o pline.o VOBJ17 = polyself.o potion.o pray.o priest.o VOBJ18 = quest.o questpgr.o $(RANDOM) read.o VOBJ19 = rect.o region.o restore.o rip.o VOBJ20 = rnd.o role.o rumors.o save.o VOBJ21 = shk.o shknam.o sit.o sounds.o VOBJ22 = sp_lev.o spell.o steal.o steed.o VOBJ23 = teleport.o timeout.o topten.o track.o VOBJ24 = trap.o u_init.o uhitm.o vault.o VOBJ25 = vis_tab.o vision.o weapon.o were.o VOBJ26 = wield.o windows.o wizard.o worm.o VOBJ27 = worn.o write.o zap.o VOBJ28 = winjtp.o jtp_win.o jtp_def.o jtp_gen.o VOBJ29 = jtp_gfl.o jtp_gra.o jtp_keys.o jtp_mou.o jtp_txt.o TTYOBJ = topl.o getline.o wintty.o SOBJ = winnt.o sys.o nttty.o unix.o \ $(SOUND) mapimail.o nhlan.o jtp_dirx.o jtpdmain.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) $(VOBJ24) $(VOBJ25) \ $(VOBJ26) $(VOBJ27) $(VOBJ28) $(VOBJ29) TILOBJ = $(TILEGAME) VVOBJ = version.o # # Header objects # #NTCONF_H = $(INCL)\ntwarn.h $(INCL)\ntconf.h $(INCL)\micro.h \ NTCONF_H = $(INCL)\ntconf.h $(INCL)\micro.h \ $(INCL)\system.h $(INCL)\config.h PERMONST_H = $(INCL)\monattk.h $(INCL)\monflag.h YOUPROP_H = $(INCL)\prop.h $(PERMONST_H) $(INCL)\pm.h YOU_H = $(INCL)\attrib.h $(INCL)\monst.h $(YOUPROP_H) DECL_H = $(INCL)\quest.h $(INCL)\spell.h $(INCL)\color.h \ $(INCL)\obj.h $(YOU_H) $(INCL)\onames.h CONFIG_H = $(INCL)\tradstdc.h $(INCL)\coord.h $(NTCONF_H) HACK_H = $(CONFIG_H) $(INCL)\dungeon.h $(INCL)\align.h $(INCL)\monsym.h \ $(INCL)\mkroom.h $(INCL)\objclass.h $(DECL_H) $(INCL)\trap.h \ $(INCL)\flag.h $(INCL)\rm.h $(INCL)\vision.h $(INCL)\mondata.h \ $(INCL)\wintype.h $(INCL)\engrave.h $(INCL)\rect.h \ $(INCL)\winprocs.h $(INCL)\trampoli.h \ $(INCL)\align.h TILE_H = ..\win\share\tile.h ALIGN_H = $(INCL)\align.h ARTIFACT_H = $(INCL)\artifact.h ARTILIST_H = $(INCL)\artilist.h COLOR_H = $(INCL)\color.h DATE_H = $(INCL)\date.h DLB_H = $(INCL)\dlb.h DGN_FILE_H = $(INCL)\dgn_file.h EMIN_H = $(INCL)\emin.h EPRI_H = $(INCL)\epri.h ESHK_H = $(INCL)\eshk.h EDOG_H = $(INCL)\edog.h FUNC_TAB_H = $(INCL)\func_tab.h LEV_H = $(INCL)\lev.h LEV_COMP_H = $(INCL)\lev_comp.h MAIL_H = $(INCL)\mail.h MFNDPOS_H = $(INCL)\mfndpos.h MONSYM_H = $(INCL)\monsym.h NHLAN_H = $(INCL)\nhlan.h OBJ_H = $(INCL)\obj.h OBJCLASS_H = $(INCL)\objclass.h OBJECTS_H = $(INCL)\objects.h PROP_H = $(INCL)\prop.h QTEXT_H = $(INCL)\qtext.h QUEST_H = $(INCL)\quest.h SKILLS_H = $(INCL)\skills.h SP_LEV_H = $(INCL)\sp_lev.h TERMCAP_H = $(INCL)\tcap.h VAULT_H = $(INCL)\vault.h VIS_TAB_H = $(INCL)\vis_tab.h WINTTY_H = $(INCL)\wintty.h WIN32API_H = $(INCL)\win32api.h WIN32_H = $(INCL)\nhwin32.h PATCHLEVEL_H = $(INCL)\patchlevel.h DATABASE = $(DAT)\data.base ####################################################################### # # TARGETS # # The default target (so that just typing 'make' is useful). # default: $(GAMEFILE) # # The main target. # all: install.tag util: utility.tag install: install.tag utility.tag: $(INCL)\date.h $(INCL)\onames.h $(INCL)\pm.h \ $(SRC)\monstr.c $(SRC)\vis_tab.c \ lev_comp.exe $(VIS_TAB_H) \ dgn_comp.exe recover.exe $(TILEUTIL) @echo utilities made >$@ @echo utilities made. 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) if exist $(GAMEDIR)\makefile. del $(GAMEDIR)\makefile. endif ifdef TERMLIB copy $(SSYS)\termcap $(GAMEDIR) endif if exist *.tib copy *.tib $(GAMEDIR) copy $(NTSYS)\winnt.cnf $(GAMEDIR)\defaults.nh copy recover.exe $(GAMEDIR) copy $(DOC)\guidebook.txt $(GAMEDIR) if exist $(DOC)\recover.txt copy $(DOC)\recover.txt $(GAMEDIR) if exist $(DOC)\nethack.txt copy $(DOC)\nethack.txt $(GAMEDIR) copy $(WIN)\jtp\gamedata\defaults.nh $(GAMEDIR) copy $(WIN)\jtp\gamedata\nethack.ico $(GAMEDIR) copy $(WIN)\jtp\gamedata\readme.txt $(GAMEDIR) mkdir $(GAMEDIR)\config copy $(WIN)\jtp\gamedata\config\*.* $(GAMEDIR)\config mkdir $(GAMEDIR)\graphics copy $(WIN)\jtp\gamedata\graphics\*.* $(GAMEDIR)\graphics mkdir $(GAMEDIR)\sound copy $(WIN)\jtp\gamedata\sound\*.* $(GAMEDIR)\sound mkdir $(GAMEDIR)\manual copy $(WIN)\jtp\gamedata\manual\*.* $(GAMEDIR)\manual echo install done > install.tag 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)\sokoban.des \ $(DAT)\tourist.des $(DAT)\valkyrie.des $(DAT)\wizard.des cd $(DAT) $(DSRC)/lev_comp bigroom.des $(DSRC)/lev_comp castle.des $(DSRC)/lev_comp endgame.des $(DSRC)/lev_comp gehennom.des $(DSRC)/lev_comp knox.des $(DSRC)/lev_comp mines.des $(DSRC)/lev_comp medusa.des $(DSRC)/lev_comp oracle.des $(DSRC)/lev_comp sokoban.des $(DSRC)/lev_comp tower.des $(DSRC)/lev_comp yendor.des $(DSRC)/lev_comp arch.des $(DSRC)/lev_comp barb.des $(DSRC)/lev_comp caveman.des $(DSRC)/lev_comp healer.des $(DSRC)/lev_comp knight.des $(DSRC)/lev_comp monk.des $(DSRC)/lev_comp priest.des $(DSRC)/lev_comp ranger.des $(DSRC)/lev_comp rogue.des $(DSRC)/lev_comp samurai.des $(DSRC)/lev_comp tourist.des $(DSRC)/lev_comp valkyrie.des $(DSRC)/lev_comp wizard.des cd $(SRC) echo sp_levs done > sp_lev.tag # The next section below links the NetHack executable. It's a bit convoluted: # the link command line is too long for the linker, so the objects must be # written into a 'linker script' for linking. ALLOBJ = $(TILOBJ) $(SOBJ) $(DLBOBJ) $(TTYOBJ) $(WOBJ) $(VOBJ) $(VVOBJ) # Name of the linker script file GAMESCRIPT = nhscript.txt # Name of the Windows resource object RESOURCEFILE = jtp_res.o $(RESOURCEFILE): $(WIN)\jtp\jtp_res.rc $(WIN)\jtp\gamedata\nethack.ico copy $(WIN)\jtp\jtp_res.rc . copy $(WIN)\jtp\gamedata\nethack.ico . $(WINDRES) -i jtp_res.rc --include-dir $(DINCL) -o $(RESOURCEFILE) $(GAMESCRIPT): $(ALLOBJ) echo SECTIONS > $(GAMESCRIPT) echo { >> $(GAMESCRIPT) echo } >> $(GAMESCRIPT) echo INPUT( $(VOBJ01) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ02) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ03) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ04) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ05) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ06) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ07) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ08) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ09) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ10) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ11) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ12) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ13) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ14) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ15) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ16) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ17) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ18) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ19) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ20) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ21) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ22) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ23) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ24) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ25) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ26) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ27) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ28) ) >> $(GAMESCRIPT) echo INPUT( $(VOBJ29) ) >> $(GAMESCRIPT) echo INPUT( $(SOBJ) $(TILOBJ) $(VVOBJ) ) >> $(GAMESCRIPT) echo INPUT( $(DLBOBJ) $(TTYOBJ) $(WOBJ) ) >> $(GAMESCRIPT) $(GAMEFILE): utility.tag $(GAMESCRIPT) $(RESOURCEFILE) $(LINK) $(LFLAGS) -o$(GAME).exe $(GAMESCRIPT) $(RESOURCEFILE) $(LIBRARIES) $(DXLIBRARIES) copy $(GAME).exe $(GAMEFILE) del $(GAME).exe # # 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. # makedefs.exe: $(MAKEOBJS) $(LINK) $(LFLAGS) -o$@ $(MAKEOBJS) makedefs.o: $(CONFIG_H) $(PERMONST_H) $(OBJCLASS_H) \ $(MONSYM_H) $(QTEXT_H) $(PATCHLEVEL_H) \ $(UTIL)\makedefs.c $(CC) $(CFLAGS) -o$@ $(DUTIL)/makedefs.c $(INCL)\date.h : makedefs.exe makedefs -v $(INCL)\onames.h : makedefs.exe makedefs -o $(INCL)\pm.h : makedefs.exe makedefs -p #$(INCL)\trap.h : makedefs.exe # $(UTIL)\makedefs -t $(SRC)\monstr.c: makedefs.exe makedefs -m $(INCL)\vis_tab.h: makedefs.exe makedefs -z $(SRC)\vis_tab.c: makedefs.exe makedefs -z # # Level Compiler Dependencies # lev_comp.exe: $(SPLEVOBJS) $(LINK) $(LFLAGS) -o$@ $(SPLEVOBJS) ifeq ($(YACC_LEX),Y) lev_yacc.o: $(HACK_H) $(SP_LEV_H) $(UTIL)\lev_yacc.c $(CC) $(CFLAGS) -o$@ $(DUTIL)/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.o: $(HACK_H) $(INCL)\sp_lev.h $(INCL)\date.h $(UTIL)\lev_main.c $(CC) $(CFLAGS) -o$@ $(DUTIL)/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: $(SSYS)\lev_yacc.c copy $(SSYS)\lev_yacc.c $@ $(INCL)\lev_comp.h: $(SSYS)\lev_comp.h copy $(SSYS)\lev_comp.h $@ touch $(DINCL)/lev_comp.h lev_$(LEX).c: $(SSYS)\lev_lex.c copy $(SSYS)\lev_lex.c $@ endif # # Dungeon Compiler Dependencies # dgn_comp.exe: $(DGNCOMPOBJS) $(LINK) $(LFLAGS) -o$@ $(DGNCOMPOBJS) ifeq ($(YACC_LEX),Y) dgn_yacc.o: $(HACK_H) $(DGN_FILE_H) $(UTIL)\dgn_yacc.c $(CC) $(CFLAGS) -o$@ $(DUTIL)/dgn_yacc.c else dgn_yacc.o: $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h $(UTIL)\dgn_yacc.c $(CC) $(CFLAGS) -o$@ $(DUTIL)/dgn_yacc.c endif dgn_$(LEX).o: $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h \ $(UTIL)\dgn_$(LEX).c $(CC) $(CFLAGS) -o$@ $(DUTIL)/dgn_$(LEX).c dgn_main.o: $(HACK_H) $(CC) $(CFLAGS) -o$@ $(DUTIL)/dgn_main.c $(INCL)\dgn_comp.h: $(UTIL)\dgn_yacc.c ifeq ($(YACC_LEX),Y) $(UTIL)\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) $(UTIL)\dgn_$(LEX).c: $(UTIL)\dgn_comp.l $(LEX) $(DUTIL)/dgn_comp.l copy $(LEXYYC) $@ del $(LEXYYC) else $(UTIL)\dgn_yacc.c: $(SSYS)\dgn_yacc.c copy $(SSYS)\dgn_yacc.c $@ $(INCL)\dgn_comp.h: $(SSYS)\dgn_comp.h copy $(SSYS)\dgn_comp.h $@ touch $(DINCL)/dgn_comp.h $(UTIL)\dgn_$(LEX).c: $(SSYS)\dgn_lex.c copy $(SSYS)\dgn_lex.c $@ endif # # Secondary Targets. # # # Header files NOT distributed in ..\include # $(INCL)\win32api.h: $(NTSYS)\win32api.h copy $(NTSYS)\win32api.h $@ # # Recover Utility # recover.exe: $(RECOVOBJS) $(LINK) $(LFLAGS) -o$@ recover.o recover.o: $(CONFIG_H) $(UTIL)\recover.c $(INCL)\win32api.h $(CC) $(CFLAGS) -o$@ $(DUTIL)/recover.c ifeq ($(SUPPRESS_GRAPHICS),Y) else # # Tile Mapping # $(SRC)\tile.c: tilemap.exe @echo A new $@ has been created @tilemap tilemap.exe: tilemap.o $(LINK) $(LFLAGS) -o$@ tilemap.o tilemap.o: $(WSHR)\tilemap.c $(HACK_H) $(CC) $(CFLAGS) -o$@ $(DWSHR)/tilemap.c # # Tile Utilities # # # Required for tile support # # These are not quite right (I didn't need them, so I didn't # spend much time on them). - Jaakko Peltonen # 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 $(TEXT_IO) $(LINK) $(LFLAGS) -otile2bin.exe tile2bin.o $(TEXT_IO) 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 tiletex2.o: $(CONFIG_H) $(INCL)\tile.h $(WSHR)\tiletext.c copy $(WSHR)\tiletext.c . $(CC) $(CFLAGS) -DTILE_X=8 -o$@ tiletext.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 # # DLB stuff # $(DAT)\nhdat: 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 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 $(LS) *.lev >>dlb.lst $(DSRC)/dlb_main cIf dlb.lst nhdat cd $(SRC) dlb_main.exe: $(DLBOBJS) $(LINK) $(LFLAGS) -o$@ $(DLBOBJS) dlb_main.o: $(UTIL)\dlb_main.c $(INCL)\config.h $(DLB_H) $(CC) $(CFLAGS) -o$@ $(DUTIL)/dlb_main.c # # Housekeeping # spotless: clean if exist $(DATE_H) del $(DATE_H) if exist $(INCL)\onames.h del $(INCL)\onames.h if exist $(INCL)\pm.h del $(INCL)\pm.h if exist $(VIS_TAB_H) del $(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 $(UTIL)\*.lnk del $(UTIL)\*.lnk if exist $(UTIL)\*.map del $(UTIL)\*.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 sp_lev.tag del 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 recover.exe del recover.exe clean: if exist *.o del *.o if exist utility.tag del utility.tag 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)\*.lnk del $(SRC)\*.lnk if exist $(SRC)\*.map del $(SRC)\*.map # # OTHER DEPENDENCIES # # # dat dependencies # 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 $(DAT)\dungeon: utility.tag $(DAT)\dungeon.def makedefs -e cd $(DAT) $(DSRC)/dgn_comp dungeon.pdf cd $(SRC) # # Util Dependencies. # panic.o: $(UTIL)\panic.c $(CONFIG_H) copy $(UTIL)\panic.c panic.c $(CC) $(CFLAGS) -opanic.o panic.c # # from win\share # tiletxt.o: $(WSHR)\tilemap.c $(HACK_H) copy $(WSHR)\tilemap.c tilemap.c $(CC) $(CFLAGS) -DTILETEXT -otiletxt.o tilemap.c gifread.o: $(WSHR)\gifread.c $(CONFIG_H) $(TILE_H) copy $(WSHR)\gifread.c gifread.c $(CC) $(CFLAGS) -I$(WSHR) -ogifread.o gifread.c ppmwrite.o: $(WSHR)\ppmwrite.c $(CONFIG_H) $(TILE_H) copy $(WSHR)\ppmwrite.c ppmwrite.c $(CC) $(CFLAGS) -I$(WSHR) -oppmwrite.o ppmwrite.c tiletext.o: $(WSHR)\tiletext.c $(CONFIG_H) $(TILE_H) copy $(WSHR)\tiletext.c tiletext.c $(CC) $(CFLAGS) -I$(WSHR) -otiletext.o tiletext.c # # from win\tty # getline.o: $(WIN)\tty\getline.c $(HACK_H) $(INCL)\func_tab.h copy $(WIN)\tty\getline.c getline.c $(CC) $(CFLAGS) -ogetline.o getline.c termcap.o: $(WIN)\tty\termcap.c $(HACK_H) $(INCL)\tcap.h copy $(win)\tty\termcap.c termcap.c $(CC) $(CFLAGS) -otermcap.o termcap.c topl.o: $(WIN)\tty\topl.c $(HACK_H) $(INCL)\tcap.h copy $(WIN)\tty\topl.c topl.c $(CC) $(CFLAGS) -otopl.o topl.c wintty.o: $(WIN)\tty\wintty.c $(HACK_H) $(INCL)\dlb.h \ $(PATCHLEVEL_H) $(INCL)\tcap.h copy $(WIN)\tty\wintty.c wintty.c $(CC) $(CFLAGS) -owintty.o wintty.c # # from win\jtp # jtp_def.o : $(INCL)\jtp_def.h $(WIN)\jtp\jtp_def.c copy $(WIN)\jtp\jtp_def.c . $(CC) $(CFLAGS) -DUSE_DIRECTX_SYSCALLS -o$@ jtp_def.c jtp_gen.o : $(INCL)\jtp_def.h $(INCL)\jtp_gen.h $(WIN)\jtp\jtp_gen.c copy $(WIN)\jtp\jtp_gen.c . $(CC) $(CFLAGS) -DUSE_DIRECTX_SYSCALLS -o$@ jtp_gen.c jtp_gfl.o : $(INCL)\jtp_def.h $(INCL)\jtp_gfl.h $(WIN)\jtp\jtp_gfl.c copy $(WIN)\jtp\jtp_gfl.c . $(CC) $(CFLAGS) -DUSE_DIRECTX_SYSCALLS -o$@ jtp_gfl.c jtp_gra.o : $(INCL)\jtp_def.h $(INCL)\jtp_gra.h $(WIN)\jtp\jtp_gra.c copy $(WIN)\jtp\jtp_gra.c . $(CC) $(CFLAGS) -DUSE_DIRECTX_SYSCALLS -o$@ jtp_gra.c jtp_dos.o : $(INCL)\jtp_def.h $(INCL)\jtp_dos.h $(WIN)\jtp\jtp_dos.c copy $(WIN)\jtp\jtp_dos.c . $(CC) $(CFLAGS) -DUSE_DIRECTX_SYSCALLS -o$@ jtp_dos.c jtp_txt.o : $(INCL)\jtp_def.h $(INCL)\jtp_txt.h $(WIN)\jtp\jtp_txt.c copy $(WIN)\jtp\jtp_txt.c . $(CC) $(CFLAGS) -DUSE_DIRECTX_SYSCALLS -o$@ jtp_txt.c jtp_mou.o : $(INCL)\jtp_def.h $(INCL)\jtp_mou.h $(WIN)\jtp\jtp_mou.c copy $(WIN)\jtp\jtp_mou.c . $(CC) $(CFLAGS) -DUSE_DIRECTX_SYSCALLS -o$@ jtp_mou.c jtp_keys.o : $(HACK_H) $(WIN)\jtp\jtp_keys.c copy $(WIN)\jtp\jtp_keys.c . $(CC) $(CFLAGS) -DUSE_DIRECTX_SYSCALLS -o$@ jtp_keys.c jtp_win.o : $(INCL)\jtp_def.h $(INCL)\jtp_gen.h $(INCL)\jtp_gfl.h $(INCL)\jtp_gra.h $(INCL)\jtp_txt.h $(INCL)\jtp_mou.h $(INCL)\jtp_keys.h $(INCL)\jtp_win.h $(WIN)\jtp\jtp_win.c copy $(WIN)\jtp\jtp_win.c . $(CC) $(CFLAGS) -DUSE_DIRECTX_SYSCALLS -o$@ jtp_win.c winjtp.o : $(INCL)\jtp_def.h $(INCL)\jtp_win.h $(INCL)\winjtp.h $(WIN)\jtp\winjtp.c copy $(WIN)\jtp\winjtp.c . $(CC) $(CFLAGS) -DUSE_DIRECTX_SYSCALLS -o$@ winjtp.c jtp_dirx.o : $(INCL)\jtp_dirx.h $(WIN)\jtp\jtp_dirx.c copy $(WIN)\jtp\jtp_dirx.c . $(CC) $(CFLAGS) -x c++ -fvtable-thunks -DUSE_DIRECTX_SYSCALLS -o$@ jtp_dirx.c jtpdmain.o : $(INCL)\jtpdmain.h $(WIN)\jtp\jtpdmain.c copy $(WIN)\jtp\jtpdmain.c . $(CC) $(CFLAGS) -DUSE_DIRECTX_SYSCALLS -x c++ -o$@ jtpdmain.c # # from sys\share # main.o: $(SSYS)\pcmain.c $(HACK_H) $(INCL)\dlb.h copy $(SSYS)\pcmain.c pcmain.c $(CC) $(CFLAGS) -DUSE_DIRECTX_SYSCALLS -omain.o pcmain.c sys.o: $(SSYS)\pcsys.c $(HACK_H) copy $(SSYS)\pcsys.c pcsys.c $(CC) $(CFLAGS) -osys.o pcsys.c tty.o: $(SSYS)\pctty.c $(HACK_H) copy $(SSYS)\pctty.c pctty.c $(CC) $(CFLAGS) -DUSE_DIRECTX_SYSCALLS -otty.o pctty.c unix.o: $(SSYS)\pcunix.c $(HACK_H) copy $(SSYS)\pcunix.c pcunix.c $(CC) $(CFLAGS) -ounix.o pcunix.c random.o: $(SSYS)\random.c $(HACK_H) copy $(SSYS)\random.c random.c $(CC) $(CFLAGS) -orandom.o random.c nhlan.o: $(HACK_H) $(NHLAN_H) $(SSYS)\nhlan.c copy $(SSYS)\nhlan.c nhlan.c $(CC) $(CFLAGS) -onhlan.o nhlan.c # # from sys\winnt # nttty.o: $(NTSYS)\nttty.c $(HACK_H) $(WINTTY_H) \ $(TILE_H) $(WIN32API_H) copy $(NTSYS)\nttty.c nttty.c $(CC) $(CFLAGS) -DUSE_DIRECTX_SYSCALLS -I$(WSHR) -onttty.o nttty.c winnt.o: $(NTSYS)\winnt.c $(HACK_H) $(WIN32API_H) copy $(NTSYS)\winnt.c winnt.c $(CC) $(CFLAGS) -DUSE_DIRECTX_SYSCALLS $(NTSUB) -owinnt.o winnt.c ntsound.o: $(NTSYS)\ntsound.c $(HACK_H) copy $(NTSYS)\ntsound.c ntsound.c $(CC) $(CFLAGS) $(NTSUB) -ontsound.o ntsound.c mapimail.o: $(NTSYS)\mapimail.c $(HACK_H) $(NHLAN_H) copy $(NTSYS)\mapimail.c mapimail.c $(CC) $(CFLAGS) -DMAPI_VERBOSE -omapimail.o mapimail.c # # from src # #$(O)alloc.o: $(SRC)\alloc.c $(CONFIG_H) # @$(cc) $(CFLAGSG) $(NTSUB) -Fo$@ $(SRC)\alloc.c #$(O)end.o: $(SRC)\end.c $(HACK_H) $(ESHK_H) $(DLB_H) # @$(cc) $(CFLAGSG) $(NTSUB) -Fo$@ $(SRC)\end.c #$(O)version.o: $(SRC)\version.c $(HACK_H) $(DATE_H) $(PATCHLEVEL_H) # @$(cc) $(CFLAGSG) $(NTSUB) -Fo$@ $(SRC)\version.c #$(O)vis_tab.o: $(SRC)\vis_tab.c $(HACK_H) $(VIS_TAB_H) # @$(cc) $(CFLAGSG) $(NTSUB) -Fo$@ $(SRC)\vis_tab.c allmain.o: $(SRC)\allmain.c $(HACK_H) $(CC) $(CFLAGS) -DUSE_DIRECTX_SYSCALLS -oallmain.o allmain.c alloc.o: $(SRC)\alloc.c $(CONFIG_H) $(CC) $(CFLAGS) -oalloc.o alloc.c apply.o: $(SRC)\apply.c $(HACK_H) $(INCL)\edog.h $(CC) $(CFLAGS) -oapply.o apply.c artifact.o: $(SRC)\artifact.c $(HACK_H) $(INCL)\artifact.h $(INCL)\artilist.h $(CC) $(CFLAGS) -oartifact.o artifact.c attrib.o: $(SRC)\attrib.c $(HACK_H) $(INCL)\artifact.h $(CC) $(CFLAGS) -oattrib.o attrib.c ball.o: $(SRC)\ball.c $(HACK_H) bones.o: $(SRC)\bones.c $(HACK_H) $(INCL)\lev.h botl.o: $(SRC)\botl.c $(HACK_H) cmd.o: $(SRC)\cmd.c $(HACK_H) $(INCL)\func_tab.h dbridge.o: $(SRC)\dbridge.c $(HACK_H) decl.o: $(SRC)\decl.c $(HACK_H) detect.o: $(SRC)\detect.c $(HACK_H) $(INCL)\artifact.h dig.o: $(SRC)\dig.c $(HACK_H) $(INCL)\edog.h display.o: $(SRC)\display.c $(HACK_H) dlb.o: $(SRC)\dlb.c $(CONFIG_H) $(INCL)\dlb.h do.o: $(SRC)\do.c $(HACK_H) $(INCL)\lev.h do_name.o: $(SRC)\do_name.c $(HACK_H) do_wear.o: $(SRC)\do_wear.c $(HACK_H) dog.o: $(SRC)\dog.c $(HACK_H) $(INCL)\edog.h dogmove.o: $(SRC)\dogmove.c $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h dokick.o: $(SRC)\dokick.c $(HACK_H) $(INCL)\eshk.h dothrow.o: $(SRC)\dothrow.c $(HACK_H) drawing.o: $(SRC)\drawing.c $(HACK_H) $(INCL)\tcap.h dungeon.o: $(SRC)\dungeon.c $(HACK_H) $(INCL)\dgn_file.h $(INCL)\dlb.h eat.o: $(SRC)\eat.c $(HACK_H) end.o: $(SRC)\end.c $(HACK_H) $(INCL)\eshk.h $(INCL)\dlb.h engrave.o: $(SRC)\engrave.c $(HACK_H) $(INCL)\lev.h exper.o: $(SRC)\exper.c $(HACK_H) explode.o: $(SRC)\explode.c $(HACK_H) extralev.o: $(SRC)\extralev.c $(HACK_H) files.o: $(SRC)\files.c $(HACK_H) $(INCL)\dlb.h fountain.o: $(SRC)\fountain.c $(HACK_H) hack.o: $(SRC)\hack.c $(HACK_H) hacklib.o: $(SRC)\hacklib.c $(HACK_H) invent.o: $(SRC)\invent.c $(HACK_H) $(INCL)\artifact.h light.o: $(SRC)\light.c $(HACK_H) $(INCL)\lev.h lock.o: $(SRC)\lock.c $(HACK_H) mail.o: $(SRC)\mail.c $(HACK_H) $(INCL)\mail.h makemon.o: $(SRC)\makemon.c $(HACK_H) $(INCL)\epri.h $(INCL)\emin.h \ $(INCL)\edog.h mcastu.o: $(SRC)\mcastu.c $(HACK_H) mhitm.o: $(SRC)\mhitm.c $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h mhitu.o: $(SRC)\mhitu.c $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h minion.o: $(SRC)\minion.c $(HACK_H) $(INCL)\emin.h $(INCL)\epri.h mklev.o: $(SRC)\mklev.c $(HACK_H) mkmap.o: $(SRC)\mkmap.c $(HACK_H) $(INCL)\sp_lev.h mkmaze.o: $(SRC)\mkmaze.c $(HACK_H) $(INCL)\sp_lev.h $(INCL)\lev.h mkobj.o: $(SRC)\mkobj.c $(HACK_H) $(INCL)\artifact.h mkroom.o: $(SRC)\mkroom.c $(HACK_H) mon.o: $(SRC)\mon.c $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h mondata.o: $(SRC)\mondata.c $(HACK_H) $(INCL)\eshk.h $(INCL)\epri.h monmove.o: $(SRC)\monmove.c $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h monst.o: $(SRC)\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 monstr.o: $(SRC)\monstr.c $(CONFIG_H) mplayer.o: $(SRC)\mplayer.c $(HACK_H) mthrowu.o: $(SRC)\mthrowu.c $(HACK_H) muse.o: $(SRC)\muse.c $(HACK_H) $(INCL)\edog.h music.o: $(SRC)\music.c $(HACK_H) #interp.c o_init.o: $(SRC)\o_init.c $(HACK_H) $(INCL)\lev.h objects.o: $(SRC)\objects.c $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h \ $(INCL)\prop.h $(INCL)\skills.h $(INCL)\color.h objnam.o: $(SRC)\objnam.c $(HACK_H) options.o: $(SRC)\options.c $(CONFIG_H) $(INCL)\objclass.h $(INCL)\flag.h \ $(HACK_H) $(INCL)\tcap.h pager.o: $(SRC)\pager.c $(HACK_H) $(INCL)\dlb.h pickup.o: $(SRC)\pickup.c $(HACK_H) pline.o: $(SRC)\pline.c $(HACK_H) $(INCL)\epri.h polyself.o: $(SRC)\polyself.c $(HACK_H) potion.o: $(SRC)\potion.c $(HACK_H) pray.o: $(SRC)\pray.c $(HACK_H) $(INCL)\epri.h priest.o: $(SRC)\priest.c $(HACK_H) $(INCL)\mfndpos.h $(INCL)\eshk.h \ $(INCL)\epri.h $(INCL)\emin.h quest.o: $(SRC)\quest.c $(HACK_H) $(INCL)\qtext.h questpgr.o: $(SRC)\questpgr.c $(HACK_H) $(INCL)\dlb.h $(INCL)\qtext.h read.o: $(SRC)\read.c $(HACK_H) rect.o: $(SRC)\rect.c $(HACK_H) region.o: $(SRC)\region.c $(HACK_H) restore.o: $(SRC)\restore.c $(HACK_H) $(INCL)\lev.h $(INCL)\tcap.h rip.o: $(SRC)\rip.c $(HACK_H) rnd.o: $(SRC)\rnd.c $(HACK_H) role.o: $(SRC)\role.c $(HACK_H) rumors.o: $(SRC)\rumors.c $(HACK_H) $(INCL)\lev.h $(INCL)\dlb.h save.o: $(SRC)\save.c $(HACK_H) $(INCL)\lev.h shk.o: $(SRC)\shk.c $(HACK_H) $(INCL)\eshk.h shknam.o: $(SRC)\shknam.c $(HACK_H) $(INCL)\eshk.h sit.o: $(SRC)\sit.c $(HACK_H) $(INCL)\artifact.h sounds.o: $(SRC)\sounds.c $(HACK_H) $(INCL)\edog.h sp_lev.o: $(SRC)\sp_lev.c $(HACK_H) $(INCL)\dlb.h $(INCL)\sp_lev.h spell.o: $(SRC)\spell.c $(HACK_H) steal.o: $(SRC)\steal.c $(HACK_H) steed.o: $(SRC)\steed.c $(HACK_H) teleport.o: $(SRC)\teleport.c $(HACK_H) timeout.o: $(SRC)\timeout.c $(HACK_H) $(INCL)\lev.h topten.o: $(SRC)\topten.c $(HACK_H) $(INCL)\dlb.h $(PATCHLEVEL_H) track.o: $(SRC)\track.c $(HACK_H) trap.o: $(SRC)\trap.c $(HACK_H) u_init.o: $(SRC)\u_init.c $(HACK_H) uhitm.o: $(SRC)\uhitm.c $(HACK_H) vault.o: $(SRC)\vault.c $(HACK_H) $(INCL)\vault.h version.o: $(SRC)\version.c $(HACK_H) $(INCL)\date.h $(PATCHLEVEL_H) vision.o: $(SRC)\vision.c $(HACK_H) $(INCL)\vis_tab.h weapon.o: $(SRC)\weapon.c $(HACK_H) were.o: $(SRC)\were.c $(HACK_H) wield.o: $(SRC)\wield.c $(HACK_H) windows.o: $(SRC)\windows.c $(HACK_H) $(INCL)\wingem.h wizard.o: $(SRC)\wizard.c $(HACK_H) $(INCL)\qtext.h worm.o: $(SRC)\worm.c $(HACK_H) $(INCL)\lev.h worn.o: $(SRC)\worn.c $(HACK_H) write.o: $(SRC)\write.c $(HACK_H) zap.o: $(SRC)\zap.c $(HACK_H) # end of file