# SCCS Id: @(#)Makefile.gcc 3.4 $Date: 2003/11/16 04:50:57 $ # Copyright (c) NetHack PC Development Team 1993-2003 # # NetHack 3.4.x Makefile for MinGW # # Win32 Compilers Tested: # - MinGW 1.0 (gcc version 2.95.3-6) (Console NetHack only) # - MinGW 2.0 (gcc version 3.2) # # If you don't have this compiler, you can get it at: # http://www.mingw.org/ # # This is used for building two versions of NetHack: # A tty port utilizing the Win32 Console I/O subsystem, Console # NetHack; # A Win32 native port built on the Windows API, Graphical NetHack or # NetHackW. # # 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. # # -- # Dion Nicolaas #============================================================================== # Graphical interface # Set to Y for a graphical version # Set to anything else (or undefine) for a tty version #GRAPHICAL = Y # Debug # Set to Y for Debug support (to produce debug information) # Set to anything else (or undefine) for a "release" version # You can set your debug options below. DEBUG = Y cc = gcc rc = windres link = gcc cflags = -mms-bitfields lflags = ifeq "$(DEBUG)" "Y" cdebug = -g linkdebug = -g else cdebug = linkdebug = endif # # Set the gamedir according to your preference. # If not present prior to compilation it gets created. ifeq "$(GRAPHICAL)" "Y" # Game Name GAME = NetHackW else # Game Name GAME = NetHack endif # Game directory GAMEDIR = ../binary # # Source directories. Makedefs hardcodes these, don't change them. # # NetHack include files INCL = ../include # NetHack data files DAT = ../dat # NetHack documentation files DOC = ../doc # Utility source UTIL = ../util # Main source SRC = ../src # Shared system files SSYS = ../sys/share # NT Win32 specific files NTSYS = ../sys/winnt # window port files (tty) TTY = ../win/tty # window port files (Win32) WIN32 = ../win/win32 # Tile support files WSHR = ../win/share # # 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 = #=============================================== #======= End of Modification Section =========== #=============================================== ################################################ # # # Nothing below here should have to be changed.# # # ################################################ ifeq "$(GRAPHICAL)" "Y" WINPORT = $(O)tile.o $(O)mhaskyn.o $(O)mhdlg.o \ $(O)mhfont.o $(O)mhinput.o $(O)mhmain.o $(O)mhmap.o \ $(O)mhmenu.o $(O)mhmsgwnd.o $(O)mhrip.o $(O)mhsplash.o \ $(O)mhstatus.o $(O)mhtext.o $(O)mswproc.o $(O)winhack.o WINPFLAG = -DTILES -DMSWIN_GRAPHICS -D_WIN32_IE=0x0400 NHRES = $(O)winres.o WINPINC = -I$(WIN32) WINPHDR = $(WIN32)/mhaskyn.h $(WIN32)/mhdlg.h $(WIN32)/mhfont.h \ $(WIN32)/mhinput.h $(WIN32)/mhmain.h $(WIN32)/mhmap.h \ $(WIN32)/mhmenu.h $(WIN32)/mhmsg.h $(WIN32)/mhmsgwnd.h \ $(WIN32)/mhrip.h $(WIN32)/mhstatus.h \ $(WIN32)/mhtext.h $(WIN32)/resource.h $(WIN32)/winMS.h WINPLIBS = -lcomctl32 -lwinmm else WINPORT = $(O)nttty.o WINPFLAG= -DWIN32CON WINPHDR = NHRES = $(O)console.o WINPINC = WINPLIBS = -lwinmm endif TILEUTIL16 = $(UTIL)/tile2bmp.exe TILEBMP16 = $(SRC)/tiles.bmp TILEUTIL32 = $(UTIL)/til2bm32.exe TILEBMP32 = $(SRC)/tiles32.bmp SOUND = $(OBJ)/ntsound.o #SOUND = # To store all the level files, # help files, etc. in a single library file. # USE_DLB = Y is left uncommented USE_DLB = Y ifeq "$(USE_DLB)" "Y" DLBFLG = -DDLB else DLBFLG = endif #========================================== # Setting up the compiler and linker # macros. All builds include the base ones. #========================================== CFLAGSBASE = -c $(cflags) -I$(INCL) $(WINPINC) $(cdebug) LFLAGSBASEC = $(linkdebug) LFLAGSBASEG = $(linkdebug) -mwindows #========================================== # Util builds #========================================== CFLAGSU = $(CFLAGSBASE) $(WINPFLAG) LFLAGSU = $(LFLAGSBASEC) #========================================== # - Game build #========================================== CFLAGS = $(CFLAGSBASE) $(WINPFLAG) $(DLBFLG) lflags = $(LFLAGSBASE) ifeq "$(GRAPHICAL)" "Y" lflags = $(LFLAGSBASEG) else lflags = $(LFLAGSBASEC) endif GAMEFILE = $(GAMEDIR)/$(GAME).exe # whole thing ifeq "$(USE_DLB)" "Y" DLB = nhdat else DLB = endif #========================================== #================ RULES ================== #========================================== .SUFFIXES: .exe .o .til .uu .c .y .l #========================================== # Rules for files in src #========================================== $(OBJ)/%.o : /%.c $(cc) $(CFLAGS) -o$@ $< $(OBJ)/%.o : $(SRC)/%.c $(cc) $(CFLAGS) -o$@ $< #========================================== # Rules for files in sys/share #========================================== $(OBJ)/%.o : $(SSYS)/%.c $(cc) $(CFLAGS) -o$@ $< #========================================== # Rules for files in sys/winnt #========================================== $(OBJ)/%.o : $(NTSYS)/%.c $(cc) $(CFLAGS) -o$@ $< $(INCL)/%.h : $(NTSYS)/%.h @copy $< $@ #========================================== # Rules for files in util #========================================== $(OBJ)/%.o : $(UTIL)/%.c $(cc) $(CFLAGSU) -o$@ $< #========================================== # Rules for files in win/share #========================================== $(OBJ)/%.o : $(WSHR)/%.c $(cc) $(CFLAGS) -o$@ $< $(INCL)/%.h : $(WSHR)/%.h @copy $< $@ #{$(WSHR)}.txt{$(DAT)}.txt: # @copy $< $@ #========================================== # Rules for files in win/tty #========================================== $(OBJ)/%.o : $(TTY)/%.c $(cc) $(CFLAGS) -o$@ $< #========================================== # Rules for files in win/win32 #========================================== $(OBJ)/%.o : $(WIN32)/%.c $(cc) $(CFLAGS) -o$@ $< #========================================== #================ 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 TILEFILES = $(WSHR)/monsters.txt $(WSHR)/objects.txt $(WSHR)/other.txt # # These are not invoked during a normal game build in 3.4 # TEXT_IO = $(O)tiletext.o $(O)tiletxt.o $(O)drawing.o \ $(O)decl.o $(O)monst.o $(O)objects.o TEXT_IO32 = $(O)tilete32.o $(O)tiletx32.o $(O)drawing.o \ $(O)decl.o $(O)monst.o $(O)objects.o GIFREADERS = $(O)gifread.o $(O)alloc.o $(O)panic.o GIFREADERS32 = $(O)gifrd32.o $(O)alloc.o $(O)panic.o PPMWRITERS = $(O)ppmwrite.o $(O)alloc.o $(O)panic.o # # 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)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)pcunix.o \ $(SOUND) $(O)pcmain.o $(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) WINPOBJ = $(WINPORT) VVOBJ = $(O)version.o ALLOBJ = $(WINPOBJ) $(SOBJ) $(DLBOBJ) $(TTYOBJ) $(WOBJ) $(OBJS) $(VVOBJ) ifeq "$(GRAPHICAL)" "Y" OPTIONS_FILE = $(DAT)/guioptions else OPTIONS_FILE = $(DAT)/ttyoptions endif #========================================== # 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 ================== #========================================== # Since DOS doesn't allow / as path separator, and GCC doesn't allow \ as # path separator, we must change all pathnames when performing DOS commands. # This is done by blindly applying $(subst /,\, ...) on every command. # Where any command contain / for another reason (switch char, or echoing # comment lines to lev/dungeon files) a little more care is taken. # # The default make target (so just typing 'nmake' is useful). # default : $(GAMEFILE) # # The main target. # $(GAME) : $(O)obj.tag $(O)utility.tag graphicschk $(GAMEFILE) @echo $(GAME) is up to date. # # Everything # all : install install: graphicschk $(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) ifeq "$(USE_DLB)" "Y" $(subst /,\,copy nhdat $(GAMEDIR)) $(subst /,\,copy $(DAT)/license $(GAMEDIR)) $(subst /,\,copy $(DAT)/opthelp $(GAMEDIR)) else $(subst /,\,copy $(DAT)/*. $(GAMEDIR)) $(subst /,\,copy $(DAT)/*.dat $(GAMEDIR)) $(subst /,\,copy $(DAT)/*.lev $(GAMEDIR)) $(subst /,\,if exist $(GAMEDIR)/makefile del $(GAMEDIR)/makefile) endif $(subst /,\,if exist $(DOC)/guidebook.txt copy $(DOC)/guidebook.txt $(GAMEDIR)/Guidebook.txt) $(subst /,\,if exist $(DOC)/nethack.txt copy $(DOC)/nethack.txt $(GAMEDIR)/NetHack.txt) $(subst /,\,copy $(NTSYS)/defaults.nh $(GAMEDIR)/defaults.nh) $(subst /,\,echo install done > $@) # copy $(NTSYS)/winnt.hlp $(GAMEDIR) recover: $(U)recover.exe $(subst /,\,if exist $(U)recover.exe copy $(U)recover.exe $(GAMEDIR)) $(subst /,\,if exist $(DOC)/recover.txt copy $(DOC)/recover.txt $(GAMEDIR)/recover.txt) $(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 $(subst /,\,$(U)lev_comp $(DAT)/bigroom.des) $(subst /,\,$(U)lev_comp $(DAT)/castle.des) $(subst /,\,$(U)lev_comp $(DAT)/endgame.des) $(subst /,\,$(U)lev_comp $(DAT)/gehennom.des) $(subst /,\,$(U)lev_comp $(DAT)/knox.des) $(subst /,\,$(U)lev_comp $(DAT)/mines.des) $(subst /,\,$(U)lev_comp $(DAT)/medusa.des) $(subst /,\,$(U)lev_comp $(DAT)/oracle.des) $(subst /,\,$(U)lev_comp $(DAT)/sokoban.des) $(subst /,\,$(U)lev_comp $(DAT)/tower.des) $(subst /,\,$(U)lev_comp $(DAT)/yendor.des) $(subst /,\,$(U)lev_comp $(DAT)/arch.des) $(subst /,\,$(U)lev_comp $(DAT)/barb.des) $(subst /,\,$(U)lev_comp $(DAT)/caveman.des) $(subst /,\,$(U)lev_comp $(DAT)/healer.des) $(subst /,\,$(U)lev_comp $(DAT)/knight.des) $(subst /,\,$(U)lev_comp $(DAT)/monk.des) $(subst /,\,$(U)lev_comp $(DAT)/priest.des) $(subst /,\,$(U)lev_comp $(DAT)/ranger.des) $(subst /,\,$(U)lev_comp $(DAT)/rogue.des) $(subst /,\,$(U)lev_comp $(DAT)/samurai.des) $(subst /,\,$(U)lev_comp $(DAT)/tourist.des) $(subst /,\,$(U)lev_comp $(DAT)/valkyrie.des) $(subst /,\,$(U)lev_comp $(DAT)/wizard.des) $(subst /,\,copy *.lev $(DAT)) $(subst /,\,del *.lev) $(subst /,\,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 $(TILEUTIL16) $(subst /,\,@echo utilities made >$@) @echo utilities made. tileutil: $(U)gif2txt.exe $(U)gif2tx32.exe $(U)txt2ppm.exe @echo Optional tile development utilities are up to date. ifeq "$(GRAPHICAL)" "Y" $(NHRES): $(TILEBMP16) $(WIN32)/winhack.rc $(WIN32)/mnsel.bmp \ $(WIN32)/mnselcnt.bmp $(WIN32)/mnunsel.bmp \ $(WIN32)/petmark.bmp $(WIN32)/NetHack.ico $(WIN32)/rip.bmp \ $(WIN32)/splash.bmp @$(rc) -o$@ --include-dir $(WIN32) -i $(WIN32)/winhack.rc else $(NHRES): $(NTSYS)/console.rc $(NTSYS)/NetHack.ico @$(rc) -o$@ --include-dir $(NTSYS) -i $(NTSYS)/console.rc endif #========================================== # The main target. #========================================== $(O)gamedir.tag: $(subst /,\,@if not exist $(GAMEDIR)/*.* echo creating directory $(GAMEDIR)) $(subst /,\,@if not exist $(GAMEDIR)/*.* mkdir $(GAMEDIR)) $(subst /,\,@echo directory created > $@) ifeq "$(GRAPHICAL)" "Y" $(GAMEFILE) : $(ALLOBJ) $(NHRES) $(O)gamedir.tag else $(GAMEFILE) : $(ALLOBJ) $(NHRES) $(O)gamedir.tag \ $(GAMEDIR)/nhdefkey.dll $(GAMEDIR)/nh340key.dll $(GAMEDIR)/nhraykey.dll endif @echo Linking.... @$(link) $(lflags) -o$@ $(ALLOBJ) $(NHRES) $(WINPLIBS) $(subst /,\,@if exist $(O)install.tag del $(O)install.tag) $(O)nhdefkey.o: $(cc) $(CFLAGS) -DBUILD_DLL -o$@ $(NTSYS)/nhdefkey.c $(GAMEDIR)/nhdefkey.dll : $(O)nhdefkey.o $(O)gamedir.tag @echo Linking $@ $(cc) -shared -Wl,--export-all-symbols \ -Wl,--add-stdcall-alias -o $@ $< $(O)nh340key.o: $(cc) $(CFLAGS) -DBUILD_DLL -o$@ $(NTSYS)/nh340key.c $(GAMEDIR)/nh340key.dll : $(O)nh340key.o $(O)gamedir.tag @echo Linking $@ $(cc) -shared -Wl,--export-all-symbols \ -Wl,--add-stdcall-alias -o $@ $< $(O)nhraykey.o: $(cc) $(CFLAGS) -DBUILD_DLL -o$@ $(NTSYS)/nhraykey.c $(GAMEDIR)/nhraykey.dll : $(O)nhraykey.o $(O)gamedir.tag @echo Linking $@ $(cc) -shared -Wl,--export-all-symbols \ -Wl,--add-stdcall-alias -o $@ $< $(GAME)_.ico : $(NTSYS)/$(GAME).ico $(subst /,\,@copy $(NTSYS)/$(GAME).ico $@) #========================================== # Create directory for holding object files #========================================== graphicschk: ifeq "$(GRAPHICAL)" "Y" @echo ---- @echo NOTE: This build will include tile support. @echo ---- endif $(subst /,\,@echo graphicschk > graphicschk) # # Secondary Targets. # #========================================== # Makedefs Stuff #========================================== $(U)makedefs.exe: $(MAKEOBJS) @$(link) $(LFLAGSU) -o$@ $(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 $(O)obj.tag $(cc) $(CFLAGSU) -o$@ $(U)makedefs.c # # date.h should be remade every time any of the source or include # files is modified. # $(INCL)/date.h $(OPTIONS_FILE): $(U)makedefs.exe $(subst /,\,$(U)makedefs -v) #$(OPTIONS_FILE): $(U)makedefs.exe # $(subst /,\,$(U)makedefs -v) $(INCL)/onames.h : $(U)makedefs.exe $(subst /,\,$(U)makedefs -o) $(INCL)/pm.h : $(U)makedefs.exe $(subst /,\,$(U)makedefs -p) #$(INCL)/trap.h : $(U)makedefs.exe # $(U)makedefs -t $(SRC)/monstr.c: $(U)makedefs.exe $(subst /,\,$(U)makedefs -m) $(INCL)/vis_tab.h: $(U)makedefs.exe $(subst /,\,$(U)makedefs -z) $(SRC)/vis_tab.c: $(U)makedefs.exe $(subst /,\,$(U)makedefs -z) #========================================== # uudecode utility and uuencoded targets #========================================== $(U)uudecode.exe: $(O)uudecode.o @$(link) $(LFLAGSU) -o$@ $(O)uudecode.o $(O)uudecode.o: $(SSYS)/uudecode.c $(NTSYS)/NetHack.ico : $(U)uudecode.exe $(NTSYS)/nhico.uu $(subst /,\,$(U)uudecode.exe $(NTSYS)/nhico.uu) $(subst /,\,copy NetHack.ico $@) del NetHack.ico $(WIN32)/NetHack.ico : $(NTSYS)/NetHack.ico $(subst /,\,copy $< $@) $(WIN32)/mnsel.bmp: $(U)uudecode.exe $(WIN32)/mnsel.uu $(subst /,\,$(U)uudecode.exe $(WIN32)/mnsel.uu) $(subst /,\,copy mnsel.bmp $@) del mnsel.bmp $(WIN32)/mnselcnt.bmp: $(U)uudecode.exe $(WIN32)/mnselcnt.uu $(subst /,\,$(U)uudecode.exe $(WIN32)/mnselcnt.uu) $(subst /,\,copy mnselcnt.bmp $@) del mnselcnt.bmp $(WIN32)/mnunsel.bmp: $(U)uudecode.exe $(WIN32)/mnunsel.uu $(subst /,\,$(U)uudecode.exe $(WIN32)/mnunsel.uu) $(subst /,\,copy mnunsel.bmp $@) del mnunsel.bmp $(WIN32)/petmark.bmp: $(U)uudecode.exe $(WIN32)/petmark.uu $(subst /,\,$(U)uudecode.exe $(WIN32)/petmark.uu) $(subst /,\,copy petmark.bmp $@) del petmark.bmp $(WIN32)/rip.bmp: $(U)uudecode.exe $(WIN32)/rip.uu $(subst /,\,$(U)uudecode.exe $(WIN32)/rip.uu) $(subst /,\,copy rip.bmp $@) del rip.bmp $(WIN32)/splash.bmp: $(U)uudecode.exe $(WIN32)/splash.uu $(subst /,\,$(U)uudecode.exe $(WIN32)/splash.uu) $(subst /,\,copy splash.bmp $@) del splash.bmp #========================================== # Level Compiler Stuff #========================================== LEVCFLAGS=$(cflags) -c -DWIN32 -D_WIN32 -I../include $(cdebug) -DDLB $(U)lev_comp.exe: $(SPLEVOBJS) @echo Linking $@... @$(link) $(LFLAGSU) -o$@ $(SPLEVOBJS) $(O)lev_yacc.o: $(HACK_H) $(SP_LEV_H) $(INCL)/lev_comp.h $(U)lev_yacc.c $(cc) $(LEVCFLAGS) -o$@ $(U)lev_yacc.c $(O)lev_$(LEX).o: $(HACK_H) $(INCL)/lev_comp.h $(SP_LEV_H) \ $(U)lev_$(LEX).c $(cc) $(LEVCFLAGS) -o$@ $(U)lev_$(LEX).c $(O)lev_main.o: $(U)lev_main.c $(HACK_H) $(SP_LEV_H) $(cc) $(LEVCFLAGS) -o$@ $(U)lev_main.c $(U)lev_yacc.c $(INCL)/lev_comp.h : $(U)lev_comp.y ifeq "$(DO_YACC)" "YACC_ACT" $(subst /,\,$(YACC) -d $(U)lev_comp.y) $(subst /,\,copy $(YTABC) $(U)lev_yacc.c) $(subst /,\,copy $(YTABH) $(INCL)/lev_comp.h) $(subst /,\,@del $(YTABC)) $(subst /,\,@del $(YTABH)) 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. $(subst /,\,@copy $(SSYS)/lev_yacc.c $(U)lev_yacc.c >nul) $(subst /,\,@copy $(SSYS)/lev_comp.h $(INCL)/lev_comp.h >nul) $(subst /,\,echo.>>$(U)lev_yacc.c) $(subst /,\,echo.>>$(INCL)/lev_comp.h) endif $(U)lev_$(LEX).c: $(U)lev_comp.l ifeq "$(DO_LEX)" "LEX_ACT" $(subst /,\,$(LEX) $(FLEXSKEL) $(U)lev_comp.l) $(subst /,\,copy $(LEXYYC) $@) $(subst /,\,@del $(LEXYYC)) 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. $(subst /,\,@copy $(SSYS)/lev_lex.c $@ >nul) $(subst /,\,echo.>>$@) endif #========================================== # Dungeon Compiler Stuff #========================================== $(U)dgn_comp.exe: $(DGNCOMPOBJS) @echo Linking $@... @$(link) $(LFLAGSU) -o$@ $(DGNCOMPOBJS) $(O)dgn_yacc.o: $(HACK_H) $(DGN_FILE_H) $(INCL)/dgn_comp.h $(U)dgn_yacc.c $(cc) $(LEVCFLAGS) -o$@ $(U)dgn_yacc.c $(O)dgn_$(LEX).o: $(HACK_H) $(DGN_FILE_H) $(INCL)/dgn_comp.h \ $(U)dgn_$(LEX).c $(cc) $(LEVCFLAGS) -o$@ $(U)dgn_$(LEX).c $(O)dgn_main.o: $(HACK_H) $(U)dgn_main.c $(cc) $(LEVCFLAGS) -o$@ $(U)dgn_main.c $(U)dgn_yacc.c $(INCL)/dgn_comp.h : $(U)dgn_comp.y ifeq "$(DO_YACC)" "YACC_ACT" $(subst /,\,$(YACC) -d $(U)dgn_comp.y) $(subst /,\,copy $(YTABC) $(U)dgn_yacc.c) $(subst /,\,copy $(YTABH) $(INCL)/dgn_comp.h) $(subst /,\,@del $(YTABC)) $(subst /,\,@del $(YTABH)) 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. $(subst /,\,@copy $(SSYS)/dgn_yacc.c $(U)dgn_yacc.c >nul) $(subst /,\,@copy $(SSYS)/dgn_comp.h $(INCL)/dgn_comp.h >nul) $(subst /,\,echo.>>$(U)dgn_yacc.c) $(subst /,\,echo.>>$(INCL)/dgn_comp.h) endif $(U)dgn_$(LEX).c: $(U)dgn_comp.l ifeq "$(DO_LEX)" "LEX_ACT" $(subst /,\,$(LEX) $(FLEXSKEL) $(U)dgn_comp.l) $(subst /,\,copy $(LEXYYC) $@) $(subst /,\,@del $(LEXYYC)) 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. $(subst /,\,@copy $(SSYS)/dgn_lex.c $@ >nul) $(subst /,\,echo.>>$@) endif #========================================== # Create directory for holding object files #========================================== $(O)obj.tag: $(subst /,\,@if not exist $(OBJ)/*.* echo creating directory $(OBJ)) $(subst /,\,@if not exist $(OBJ)/*.* mkdir $(OBJ)) $(subst /,\,@echo directory created > $@) #========================================== #=========== SECONDARY TARGETS ============ #========================================== #=========================================== # Header files NOT distributed in ../include #=========================================== $(INCL)/win32api.h: $(NTSYS)/win32api.h $(subst /,\,copy $(NTSYS)/win32api.h $@) #========================================== # DLB utility and nhdat file creation #========================================== $(U)dlb_main.exe: $(DLBOBJ) $(O)dlb.o @$(link) $(LFLAGSU) -o$@ $(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) -o$@ $(SRC)/dlb.c $(O)dlb_main.o: $(UTIL)/dlb_main.c $(INCL)/config.h $(INCL)/dlb.h $(cc) $(CFLAGS) -o$@ $(UTIL)/dlb_main.c $(DAT)/porthelp: $(NTSYS)/porthelp $(subst /,\,@copy $(NTSYS)/porthelp $@ >nul) nhdat: $(U)dlb_main.exe $(DAT)/data $(DAT)/oracles $(OPTIONS_FILE) \ $(DAT)/quest.dat $(DAT)/rumors $(DAT)/help $(DAT)/hh $(DAT)/cmdhelp \ $(DAT)/history $(DAT)/opthelp $(DAT)/wizhelp $(DAT)/dungeon \ $(DAT)/porthelp $(DAT)/license $(O)sp_lev.tag $(subst /,\,echo data >$(DAT)/dlb.lst) $(subst /,\,echo oracles >>$(DAT)/dlb.lst) $(subst /,\,if exist $(DAT)/options echo options >>$(DAT)/dlb.lst) $(subst /,\,if exist $(DAT)/ttyoptions echo ttyoptions >>$(DAT)/dlb.lst) $(subst /,\,if exist $(DAT)/guioptions echo guioptions >>$(DAT)/dlb.lst) $(subst /,\,if exist $(DAT)/porthelp echo porthelp >>$(DAT)/dlb.lst) $(subst /,\,echo quest.dat >>$(DAT)/dlb.lst) $(subst /,\,echo rumors >>$(DAT)/dlb.lst) $(subst /,\,echo help >>$(DAT)/dlb.lst) $(subst /,\,echo hh >>$(DAT)/dlb.lst) $(subst /,\,echo cmdhelp >>$(DAT)/dlb.lst) $(subst /,\,echo history >>$(DAT)/dlb.lst) $(subst /,\,echo opthelp >>$(DAT)/dlb.lst) $(subst /,\,echo wizhelp >>$(DAT)/dlb.lst) $(subst /,\,echo dungeon >>$(DAT)/dlb.lst) $(subst /,\,echo license >>$(DAT)/dlb.lst) dir /l /b /-p $(subst /,\,$(DAT)/*.lev >>$(DAT)/dlb.lst) $(subst /,\,$(U)dlb_main CcIf $(DAT) dlb.lst $(SRC)/nhdat) #========================================== # Recover Utility #========================================== $(U)recover.exe: $(RECOVOBJS) $(link) $(LFLAGSU) -o$@ $(RECOVOBJS) $(O)recover.o: $(CONFIG_H) $(U)recover.c $(INCL)/win32api.h $(cc) $(CFLAGSU) -o$@ $(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) -o$@ $(O)tilemap.o $(O)tilemap.o: $(WSHR)/tilemap.c $(HACK_H) $(cc) $(CFLAGSU) -o$@ $(WSHR)/tilemap.c $(O)tiletx32.o: $(WSHR)/tilemap.c $(HACK_H) $(cc) $(CFLAGS) -DTILETEXT -DTILE_X=32 -DTILE_Y=32 -o$@ $(WSHR)/tilemap.c $(O)tiletxt.o: $(WSHR)/tilemap.c $(HACK_H) $(cc) $(CFLAGS) -DTILETEXT -o$@ $(WSHR)/tilemap.c $(O)gifread.o: $(WSHR)/gifread.c $(CONFIG_H) $(TILE_H) $(cc) $(CFLAGS) -I$(WSHR) -o$@ $(WSHR)/gifread.c $(O)gifrd32.o: $(WSHR)/gifread.c $(CONFIG_H) $(TILE_H) $(cc) $(CFLAGS) -I$(WSHR) -DTILE_X=32 -DTILE_Y=32 -o$@ $(WSHR)/gifread.c $(O)ppmwrite.o: $(WSHR)/ppmwrite.c $(CONFIG_H) $(TILE_H) $(cc) $(CFLAGS) -I$(WSHR) -o$@ $(WSHR)/ppmwrite.c $(O)tiletext.o: $(WSHR)/tiletext.c $(CONFIG_H) $(TILE_H) $(cc) $(CFLAGS) -I$(WSHR) -o$@ $(WSHR)/tiletext.c $(O)tilete32.o: $(WSHR)/tiletext.c $(CONFIG_H) $(TILE_H) $(cc) $(CFLAGS) -I$(WSHR) -DTILE_X=32 -DTILE_Y=32 -o$@ $(WSHR)/tiletext.c #========================================== # Optional Tile Utilities #========================================== $(U)gif2txt.exe: $(GIFREADERS) $(TEXT_IO) @echo Linking $@... @$(link) $(LFLAGSU) -o$@ $(GIFREADERS) $(TEXT_IO) $(U)gif2tx32.exe: $(GIFREADERS32) $(TEXT_IO32) @echo Linking $@... @$(link) $(LFLAGSU) -o$@ $(GIFREADERS32) $(TEXT_IO32) $(U)txt2ppm.exe: $(PPMWRITERS) $(TEXT_IO) @echo Linking $@... @$(link) $(LFLAGSU) -o$@ $(PPMWRITERS) $(TEXT_IO) ifeq "$(GRAPHICAL)" "Y" $(TILEBMP16): $(TILEUTIL16) $(TILEFILES) @echo Creating 16x16 binary tile files (this may take some time) $(subst /,\,@$(U)tile2bmp $(TILEBMP16)) #$(TILEBMP32): $(TILEUTIL32) $(TILEFILES32) # @echo Creating 32x32 binary tile files (this may take some time) # $(subst /,\,@$(U)til2bm32 $(TILEBMP32)) else $(TILEBMP16): $(TILEBMP32): endif $(U)tile2bmp.exe: $(O)tile2bmp.o $(TEXT_IO) @echo Linking $@... @$(link) $(LFLAGSU) -o$@ $(O)tile2bmp.o $(TEXT_IO) $(U)til2bm32.exe: $(O)til2bm32.o $(TEXT_IO32) @echo Linking $@... @$(link) $(LFLAGSU) -o$@ $(O)til2bm32.o $(TEXT_IO32) $(O)tile2bmp.o: $(WSHR)/tile2bmp.c $(HACK_H) $(TILE_H) $(INCL)/win32api.h $(cc) $(CFLAGS) -I$(WSHR) -o$@ $(WSHR)/tile2bmp.c $(O)til2bm32.o: $(WSHR)/til2bm32.c $(HACK_H) $(TILE_H) $(INCL)/win32api.h $(cc) $(CFLAGS) -I$(WSHR) -DTILE_X=32 -DTILE_Y=32 -o$@ $(WSHR)/til2bm32.c #========================================== # Housekeeping #========================================== spotless: clean $(subst /,\,if exist graphicschk del graphicschk) $(subst /,\,if exist $(INCL)/date.h del $(INCL)/date.h) $(subst /,\,if exist $(INCL)/onames.h del $(INCL)/onames.h) $(subst /,\,if exist $(INCL)/pm.h del $(INCL)/pm.h) $(subst /,\,if exist $(INCL)/vis_tab.h del $(INCL)/vis_tab.h) $(subst /,\,if exist $(SRC)/vis_tab.c del $(SRC)/vis_tab.c) $(subst /,\,if exist $(SRC)/tile.c del $(SRC)/tile.c) $(subst /,\,if exist $(U)*.lnk del $(U)*.lnk) $(subst /,\,if exist $(U)*.map del $(U)*.map) $(subst /,\,if exist $(DAT)/data del $(DAT)/data) $(subst /,\,if exist $(DAT)/rumors del $(DAT)/rumors) $(subst /,\,if exist $(DAT)/???-fil?.lev del $(DAT)/???-fil?.lev) $(subst /,\,if exist $(DAT)/???-goal.lev del $(DAT)/???-goal.lev) $(subst /,\,if exist $(DAT)/???-loca.lev del $(DAT)/???-loca.lev) $(subst /,\,if exist $(DAT)/???-strt.lev del $(DAT)/???-strt.lev) $(subst /,\,if exist $(DAT)/air.lev del $(DAT)/air.lev) $(subst /,\,if exist $(DAT)/asmodeus.lev del $(DAT)/asmodeus.lev) $(subst /,\,if exist $(DAT)/astral.lev del $(DAT)/astral.lev) $(subst /,\,if exist $(DAT)/baalz.lev del $(DAT)/baalz.lev) $(subst /,\,if exist $(DAT)/bigrm-*.lev del $(DAT)/bigrm-*.lev) $(subst /,\,if exist $(DAT)/castle.lev del $(DAT)/castle.lev) $(subst /,\,if exist $(DAT)/data del $(DAT)/data) $(subst /,\,if exist $(DAT)/dungeon del $(DAT)/dungeon) $(subst /,\,if exist $(DAT)/dungeon.pdf del $(DAT)/dungeon.pdf) $(subst /,\,if exist $(DAT)/earth.lev del $(DAT)/earth.lev) $(subst /,\,if exist $(DAT)/fakewiz?.lev del $(DAT)/fakewiz?.lev) $(subst /,\,if exist $(DAT)/fire.lev del $(DAT)/fire.lev) $(subst /,\,if exist $(DAT)/juiblex.lev del $(DAT)/juiblex.lev) $(subst /,\,if exist $(DAT)/knox.lev del $(DAT)/knox.lev) $(subst /,\,if exist $(DAT)/medusa-?.lev del $(DAT)/medusa-?.lev) $(subst /,\,if exist $(DAT)/mine*.lev del $(DAT)/mine*.lev) $(subst /,\,if exist $(DAT)/options del $(DAT)/options) $(subst /,\,if exist $(DAT)/ttyoptions del $(DAT)/ttyoptions) $(subst /,\,if exist $(DAT)/guioptions del $(DAT)/guioptions) $(subst /,\,if exist $(DAT)/oracle.lev del $(DAT)/oracle.lev) $(subst /,\,if exist $(DAT)/oracles del $(DAT)/oracles) $(subst /,\,if exist $(DAT)/orcus.lev del $(DAT)/orcus.lev) $(subst /,\,if exist $(DAT)/rumors del $(DAT)/rumors) $(subst /,\,if exist $(DAT)/quest.dat del $(DAT)/quest.dat) $(subst /,\,if exist $(DAT)/sanctum.lev del $(DAT)/sanctum.lev) $(subst /,\,if exist $(DAT)/soko?-?.lev del $(DAT)/soko?-?.lev) $(subst /,\,if exist $(DAT)/tower?.lev del $(DAT)/tower?.lev) $(subst /,\,if exist $(DAT)/valley.lev del $(DAT)/valley.lev) $(subst /,\,if exist $(DAT)/water.lev del $(DAT)/water.lev) $(subst /,\,if exist $(DAT)/wizard?.lev del $(DAT)/wizard?.lev) $(subst /,\,if exist $(O)sp_lev.tag del $(O)sp_lev.tag) $(subst /,\,if exist $(SRC)/monstr.c del $(SRC)/monstr.c) $(subst /,\,if exist $(SRC)/vis_tab.c del $(SRC)/vis_tab.c) $(subst /,\,if exist $(U)recover.exe del $(U)recover.exe) $(subst /,\,if exist $(DAT)/dlb.lst del $(DAT)/dlb.lst) $(subst /,\,if exist nhdat. del nhdat.) $(subst /,\,if exist $(O)install.tag del $(O)install.tag) $(subst /,\,if exist $(O)obj.tag del $(O)obj.tag) $(subst /,\,if exist $(O)gamedir.tag del $(O)gamedir.tag) ifneq "$(OBJ)" "" $(subst /,\,rmdir $(OBJ)) /s /Q endif clean: $(subst /,\,if exist $(O)*.o del $(O)*.o) $(subst /,\,if exist $(O)utility.tag del $(O)utility.tag) $(subst /,\,if exist $(U)makedefs.exe del $(U)makedefs.exe) $(subst /,\,if exist $(U)lev_comp.exe del $(U)lev_comp.exe) $(subst /,\,if exist $(U)dgn_comp.exe del $(U)dgn_comp.exe) $(subst /,\,if exist $(SRC)/*.lnk del $(SRC)/*.lnk) $(subst /,\,if exist $(SRC)/*.map del $(SRC)/*.map) $(subst /,\,if exist $(TILEBMP16) del $(TILEBMP16)) $(subst /,\,if exist $(TILEBMP32) del $(TILEBMP32)) #=================================================================== # OTHER DEPENDENCIES #=================================================================== # # dat dependencies # $(DAT)/data: $(O)utility.tag $(DATABASE) $(subst /,\,$(U)makedefs -d) $(DAT)/rumors: $(O)utility.tag $(DAT)/rumors.tru $(DAT)/rumors.fal $(subst /,\,$(U)makedefs -r) $(DAT)/quest.dat: $(O)utility.tag $(DAT)/quest.txt $(subst /,\,$(U)makedefs -q) $(DAT)/oracles: $(O)utility.tag $(DAT)/oracles.txt $(subst /,\,$(U)makedefs -h) $(DAT)/dungeon: $(O)utility.tag $(DAT)/dungeon.def $(subst /,\,$(U)makedefs -e) $(subst /,\,$(U)dgn_comp $(DAT)/dungeon.pdf) # # NT dependencies # $(O)nttty.o: $(HACK_H) $(TILE_H) $(INCL)/win32api.h $(NTSYS)/nttty.c $(cc) $(CFLAGS) -I$(WSHR) -o$@ $(NTSYS)/nttty.c $(O)winnt.o: $(HACK_H) $(INCL)/win32api.h $(NTSYS)/winnt.c $(cc) $(CFLAGS) -o$@ $(NTSYS)/winnt.c $(O)ntsound.o: $(HACK_H) $(NTSYS)/ntsound.c $(cc) $(CFLAGS) -o$@ $(NTSYS)/ntsound.c $(O)mapimail.o: $(HACK_H) $(INCL)/nhlan.h $(NTSYS)/mapimail.c $(cc) $(CFLAGS) -DMAPI_VERBOSE -o$@ $(NTSYS)/mapimail.c # # util dependencies # $(O)panic.o: $(U)panic.c $(CONFIG_H) $(cc) $(CFLAGS) -o$@ $(U)panic.c # # The rest are stolen from sys/unix/Makefile.src, # with the following changes: # * ../include changed to $(INCL) # * -c (which is included in CFLAGS) substituted # with -o$@ # * targets prefixed with $(O) # * $(CC) changed to $(cc) # 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) -o$@ ../sys/atari/tos.c $(O)pcmain.o: ../sys/share/pcmain.c $(HACK_H) $(INCL)/dlb.h \ $(INCL)/win32api.h $(cc) $(CFLAGS) -o$@ ../sys/share/pcmain.c $(O)pcsys.o: ../sys/share/pcsys.c $(HACK_H) $(cc) $(CFLAGS) -o$@ ../sys/share/pcsys.c $(O)pctty.o: ../sys/share/pctty.c $(HACK_H) $(cc) $(CFLAGS) -o$@ ../sys/share/pctty.c $(O)pcunix.o: ../sys/share/pcunix.c $(HACK_H) $(cc) $(CFLAGS) -o$@ ../sys/share/pcunix.c $(O)random.o: ../sys/share/random.c $(HACK_H) $(cc) $(CFLAGS) -o$@ ../sys/share/random.c $(O)ioctl.o: ../sys/share/ioctl.c $(HACK_H) $(INCL)/tcap.h $(cc) $(CFLAGS) -o$@ ../sys/share/ioctl.c $(O)unixtty.o: ../sys/share/unixtty.c $(HACK_H) $(cc) $(CFLAGS) -o$@ ../sys/share/unixtty.c $(O)unixmain.o: ../sys/unix/unixmain.c $(HACK_H) $(INCL)/dlb.h $(cc) $(CFLAGS) -o$@ ../sys/unix/unixmain.c $(O)unixunix.o: ../sys/unix/unixunix.c $(HACK_H) $(cc) $(CFLAGS) -o$@ ../sys/unix/unixunix.c $(O)unixres.o: ../sys/unix/unixres.c $(CONFIG_H) $(cc) $(CFLAGS) -o$@ ../sys/unix/unixres.c $(O)bemain.o: ../sys/be/bemain.c $(HACK_H) $(INCL)/dlb.h $(cc) $(CFLAGS) -o$@ ../sys/be/bemain.c $(O)getline.o: ../win/tty/getline.c $(HACK_H) $(INCL)/func_tab.h $(cc) $(CFLAGS) -o$@ ../win/tty/getline.c $(O)termcap.o: ../win/tty/termcap.c $(HACK_H) $(INCL)/tcap.h $(cc) $(CFLAGS) -o$@ ../win/tty/termcap.c $(O)topl.o: ../win/tty/topl.c $(HACK_H) $(INCL)/tcap.h $(cc) $(CFLAGS) -o$@ ../win/tty/topl.c $(O)wintty.o: ../win/tty/wintty.c $(HACK_H) $(INCL)/dlb.h \ $(INCL)/patchlevel.h $(INCL)/tcap.h $(cc) $(CFLAGS) -o$@ ../win/tty/wintty.c $(O)Window.o: ../win/X11/Window.c $(INCL)/xwindowp.h $(INCL)/xwindow.h \ $(CONFIG_H) $(cc) $(CFLAGS) -o$@ ../win/X11/Window.c $(O)dialogs.o: ../win/X11/dialogs.c $(CONFIG_H) $(cc) $(CFLAGS) -o$@ ../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) -o$@ ../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) -o$@ ../win/X11/winmap.c $(O)winmenu.o: ../win/X11/winmenu.c $(HACK_H) $(INCL)/winX.h $(cc) $(CFLAGS) -o$@ ../win/X11/winmenu.c $(O)winmesg.o: ../win/X11/winmesg.c $(INCL)/xwindow.h $(HACK_H) $(INCL)/winX.h $(cc) $(CFLAGS) -o$@ ../win/X11/winmesg.c $(O)winmisc.o: ../win/X11/winmisc.c $(HACK_H) $(INCL)/func_tab.h \ $(INCL)/winX.h $(cc) $(CFLAGS) -o$@ ../win/X11/winmisc.c $(O)winstat.o: ../win/X11/winstat.c $(HACK_H) $(INCL)/winX.h $(cc) $(CFLAGS) -o$@ ../win/X11/winstat.c $(O)wintext.o: ../win/X11/wintext.c $(HACK_H) $(INCL)/winX.h $(INCL)/xwindow.h $(cc) $(CFLAGS) -o$@ ../win/X11/wintext.c $(O)winval.o: ../win/X11/winval.c $(HACK_H) $(INCL)/winX.h $(cc) $(CFLAGS) -o$@ ../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) -o$@ ../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) -o$@ ../win/gnome/gnbind.c $(O)gnglyph.o: ../win/gnome/gnglyph.c ../win/gnome/gnglyph.h $(INCL)/tile2x11.h $(cc) $(CFLAGS) $(GNOMEINC) -o$@ ../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) -o$@ ../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) -o$@ ../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) -o$@ ../win/gnome/gnmenu.c $(O)gnmesg.o: ../win/gnome/gnmesg.c ../win/gnome/gnmesg.h ../win/gnome/gnsignal.h $(cc) $(CFLAGS) $(GNOMEINC) -o$@ ../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) -o$@ ../win/gnome/gnopts.c $(O)gnplayer.o: ../win/gnome/gnplayer.c ../win/gnome/gnplayer.h \ ../win/gnome/gnmain.h $(HACK_H) $(cc) $(CFLAGS) $(GNOMEINC) -o$@ ../win/gnome/gnplayer.c $(O)gnsignal.o: ../win/gnome/gnsignal.c ../win/gnome/gnsignal.h \ ../win/gnome/gnmain.h $(cc) $(CFLAGS) $(GNOMEINC) -o$@ ../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) -o$@ ../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) -o$@ ../win/gnome/gntext.c $(O)gnworn.o: ../win/gnome/gnworn.c ../win/gnome/gnworn.h ../win/gnome/gnglyph.h \ ../win/gnome/gnsignal.h ../win/gnome/gnomeprv.h $(cc) $(CFLAGS) $(GNOMEINC) -o$@ ../win/gnome/gnworn.c $(O)gnyesno.o: ../win/gnome/gnyesno.c ../win/gnome/gnbind.h ../win/gnome/gnyesno.h $(cc) $(CFLAGS) $(GNOMEINC) -o$@ ../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) -o$@ ../win/gem/wingem.c $(O)wingem1.o: ../win/gem/wingem1.c $(INCL)/gem_rsc.h $(INCL)/load_img.h \ $(INCL)/gr_rect.h $(INCL)/wintype.h $(INCL)/wingem.h $(cc) $(CFLAGS) -o$@ ../win/gem/wingem1.c $(O)load_img.o: ../win/gem/load_img.c $(INCL)/load_img.h $(cc) $(CFLAGS) -o$@ ../win/gem/load_img.c $(O)gr_rect.o: ../win/gem/gr_rect.c $(INCL)/gr_rect.h $(cc) $(CFLAGS) -o$@ ../win/gem/gr_rect.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)/tile2x11.h \ $(INCL)/qt_win.h $(INCL)/qt_clust.h $(INCL)/qt_kde0.h \ $(INCL)/qt_xpms.h qt_win.moc qt_kde0.moc qttableview.moc $(CXX) $(CXXFLAGS) -o$@ ../win/Qt/qt_win.cpp $(O)qt_clust.o: ../win/Qt/qt_clust.cpp $(INCL)/qt_clust.h $(CXX) $(CXXFLAGS) -o$@ ../win/Qt/qt_clust.cpp $(O)qttableview.o: ../win/Qt/qttableview.cpp $(INCL)/qttableview.h $(CXX) $(CXXFLAGS) -o$@ ../win/Qt/qttableview.cpp $(O)monstr.o: monstr.c $(CONFIG_H) $(O)vis_tab.o: vis_tab.c $(CONFIG_H) $(INCL)/vis_tab.h $(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) $(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) $(INCL)/edog.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) $(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) $(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 \ $(INCL)/epri.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 $(INCL)/edog.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) $(INCL)/lev.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 $(INCL)/epri.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