From: jwalz Date: Sat, 5 Jan 2002 21:05:57 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: MOVE2GIT~3714 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6977b3123a3dbca4baa950a41bd71425e58fbe87;p=nethack *** empty log message *** --- diff --git a/sys/msdos/template.mak b/sys/msdos/template.mak new file mode 100644 index 000000000..15284952d --- /dev/null +++ b/sys/msdos/template.mak @@ -0,0 +1,2232 @@ +# SCCS Id: @(#)template.mak 3.3 96/10/25 +# Copyright (c) NetHack PC Development Team 1996 +# +?BEGIN? +?SCCS? +?MSC? +# PC NetHack 3.3 Makefile for Microsoft(tm) "C" >= 7.0 and MSVC >= 1.0 +?ENDMSC? +?BC? +# PC NetHack 3.3 Makefile for Borland C++ 3.1. +?ENDBC? +# +# Nota Bene: Before you get to here you should have already read +# the Install.dos file located in the sys/msdos directory. +?BC? +# Additionally, you should run this makefile with the -N +# Microsoft Compatibility option. +# +# This Makefile is for use with Borland C++ version 3.1. +# +# This Makefile is specific to Borland's MAKE which is supplied with the +# compiler. It supports only one overlay management facility - VROOMM. +# (This Makefile won't work with make45l or NDMAKE) +?ENDBC? +?MSC? +# +# This Makefile is for use with Microsoft C version 7 and Microsoft Visual C++ +# Professional Edition (MSVC) version 1.0 or greater. +# +# This Makefile is specific to Microsoft's NMAKE which is supplied with the +# more recent Microsoft C compilers. +# It supports only one overlay management facility - MOVE. +# (This Makefile won't work with make45l or NDMAKE) +# +# 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 or byacc) +# .l lex (such as flex) +?ENDMSC? + +# +# Game Installation Variables. +# NOTE: Make sure GAMEDIR exists before nmake is started. +# + +GAME = NetHack +GAMEDIR = c:\games\nethack + +# +# +# Directories +# + +DAT = ..\dat +DOC = ..\doc +INCL = ..\include +SRC = ..\src +OBJ = o +MSYS = ..\sys\msdos +SYS = ..\sys\share +UTIL = ..\util +WTTY = ..\win\tty +WSHR = ..\win\share + + +# +# Compiler File Info. +# ($(MAKE) macro is often predefined, so we use $(MAKEBIN) instead.) +# + +?MSC? +CC = cl # Compiler +LINK = link # Linker +ASM = masm # Assembler (not currently needed for MSC 7 and > ) +MAKEBIN = nmake +UUDECODE = uudecode # Unix style uudecoder +?ENDMSC? +?BC? +CC = bcc # Compiler +LINK = tlink # Linker +ASM = tasm # Assembler (not currently needed for BC) +MAKEBIN = make +UUDECODE = uudecode # Unix style uudecoder + +#BCTOP = c:\borlandc # main Borland C++ directory +BCTOP = c:\bc31 +?ENDBC? + +# +# 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 lines below, and uncomment +# the lower two. +?BC? +# +# On Borland C++, the newest versions of flex and bison provide +# problems when run from MAKE. +?ENDBC? +# + +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 for each) here. +# + +YACC = bison -y +#YACC = yacc +#YACC = byacc + +LEX = flex +#LEX = lex + +# +# - Specify your flex skeleton file (if needed). +# +FLEXSKEL = +#FLEXSKEL = -Sc:\tools16\flex.ske + +# +# - Your yacc (or work-alike) output files +# +YTABC = y_tab.c +YTABH = y_tab.h +#YTABC = ytab.c +#YTABH = ytab.h + +# +# - Your lex (or work-alike) output files +# +LEXYYC = lexyy.c +#LEXYYC = lex.yy.c + +# +# Optional high-quality BSD random number generation routines +# (see pcconf.h). Set to nothing if not used. +# + +RANDOM = $(OBJ)\random.o +#RANDOM = + +# +# If TERMLIB is #defined in the source (in include\pcconf.h), +# comment out the upper line and uncomment the lower. Make sure +# that TERMLIB contains the full pathname to the termcap library. + +TERMLIB = +#TERMLIB = $(SYS)\termcap.lib + +# +# MEMORY USAGE AND OVERLAYING +# +# Overlay Schema 1 +# +# - Minimal extended memory available, lots of 640K base RAM free +# Minimize overlay turns. Requires that a minimum of +?MSC? +# 560K RAM be free as follows: +# 430K Executable load requirement +# 60K Overlay buffer +# 70K for malloc() calls +# 560K Total memory requirement +?ENDMSC? +?BC? +# 607K RAM be free as follows: +# 462K Executable load requirement +# 115K for malloc() calls +# 30K Overlay buffer +# 607K Total memory requirement +?ENDBC? +# +# Overlay Schema 2 +# +# - Favor small load size, requires extended memory for bearable performance. +# If you have very little base 640K RAM available, but lots of extended +# memory for caching overlays, you might try this. (eg. A machine with +# lots of TSR's or network drivers). Do not try to set SCHEMA = 2 +# without a disk cache and extended memory. +?BC? +# 381K Executable load requirement +# 115K for malloc() calls +# 30K Overlay buffer +# 526K Total memory requirement +?ENDBC? +?MSC? +# 360K Executable load requirement +# 60K Overlay buffer +# 70K for malloc() calls +# 419K Total memory requirement +# +# Overlay Schema 3 +# +# - Minimal extended memory available, lots of 640K base RAM free +# Similar to schema1, but the overlay buffer is twice as large, so +# in theory more overlays can be resident at the same time. The cost is +# that the base memory requirement goes up considerably. +# This requires that you obtain the moveinit.c and moveapi.h files from +# your Microsoft C source/move directory, and place them into the src +# directory. Then apply the patch moveinit.pat file found in sys/msdos. +# Requirements: +# 360K Executable load requirement +# 95K Overlay buffer +# 70K for malloc() calls +# 525K Total memory requirement +?ENDMSC? +# +?BC? +# On Borland C++, you have to make a full rebuild of all object modules each +# time you change schemas. +# +?ENDBC? + +SCHEMA = 1 + +# +# OPTIONAL TILE SUPPORT. +# +# This release of NetHack allows you to build a version of NetHack +# that will draw 16x16 color tiles on the display to represent +# NetHack maps, objects, monsters, etc. on machines with appropriate +# display hardware. Currently the only supported video hardware is +# VGA. +# +# Note: You can build NetHack with tile support and then choose +# whether to use it or not at runtime via the defaults.nh file option +# "video". +# + +TILESUPPORT = Y + +# +# C COMPILER AND LINKER SETTINGS +# +# For debugging ability, comment out the upper three +# macros and uncomment the lower three. You can also +# uncomment only either LDFLAGSU or LDFLAGSN if you +# want to include debug information only in the utilities +# or only in the game file. +?BC? + +# On Borland C++, you cannot include debug information for +# all the object modules because the linker cannot handle +# it. +?ENDBC? + +#CDFLAGS = +?MSC? +#LDFLAGSN = +?ENDMSC? +?BC? +LDFLAGSN = +?ENDBC? +#LDFLAGSU = + +?MSC? +CDFLAGS = /Zi # use debug info (compiler) +LDFLAGSN = /CO # use debug info (linker - game) +LDFLAGSU = /CO # use debug info (linker - utilities) +?ENDMSC? +?BC? +CDFLAGS = -v -vi # use debug info (compiler) +#LDFLAGSN = /v # use debug info (linker - game) +LDFLAGSU = /v # use debug info (linker - utilities) +?ENDBC? + +# +?MSC? +# - Force a change in the C warning level for all builds. +# (Its W0 setting in the CL environment variable will take +# precedence if left blank here). +?ENDMSC? +?BC? +# - Don't warn about unreachable code because flex generates a whole bunch +# of unreachable code warnings, which stops the compile process. +?ENDBC? +# + +?MSC? +CW = +#CW =/W3 +?ENDMSC? +?BC? +CW = -w-rch +?ENDBC? + +# +# Select whether to use pre-compiled headers or not. +# Set PRECOMPHEAD to Y to use pre-compiled headers, set it to anything +# else and pre-compiled headers will not be used. +# (Pre-compiled headers speed up compiles, but require a bit more +# disk space during the build. The pre-compiled headers can be deleted +# afterwards via DEL *.PCH if desired). +# + +PRECOMPHEAD = N + +# +# C Compiler Flags +# +?MSC? +# Note: +# +# CL environment variable should already be set to: +# CL= /AL /G2 /Oo /Gs /Gt16 /Zp1 /W0 /I..\include /nologo /DMOVERLAY +# +?ENDMSC? + +?MSC? +CFLAGS = /c +?ENDMSC? +?BC? +CFLAGS = -c +?ENDBC? + +# Uncomment the line below if you want to store all the level files, +# help files, etc. in a single library file (recommended). + +USE_DLB = Y + +# +######################################################################## +######################################################################## +# +# Nothing below here should have to be changed. +# +######################################################################## +######################################################################## +# +# Warning: +# +# Changing anything below here means that you should be *very* +# familiar with your compiler's workings, *very* knowledgeable +# about the overlay structure and mechanics of NetHack, and *very* +# confident in your understanding of Makefiles and Make utilities. +# +######################################################################## +# +# Default Make Procedure +# + +default: $(GAME) + +# +######################################################################## +# Tile preparation +# + +! IF ("$(TILESUPPORT)"=="Y") + +TILEGAME = $(OBJ)\tile.o $(OBJ)\pctiles.0 $(OBJ)\pctiles.b + +# +# - VGA Tile Support, uncomment these three lines. +# + +TILEVGA = $(OBJ)\vidvga.0 $(OBJ)\vidvga.1 $(OBJ)\vidvga.2 $(OBJ)\vidvga.b +PLANAR_TIB = NetHack1.tib +OVERVIEW_TIB = NetHacko.tib + +# +# Leave this line uncommented and unchanged. +TILEUTIL = $(TILEGAME) $(TILEVGA) $(UTIL)\tile2bin.exe $(UTIL)\til2bin2.exe \ + $(PLANAR_TIB) $(OVERVIEW_TIB) + +! ENDIF + +! IF ("$(USE_DLB)"=="Y") +DLB = nhdat +! ELSE +DLB = +! ENDIF + +# +############################################################################# +# +# General Overlay Schema Settings +# + +?MSC? +LNKOPT = schema$(SCHEMA).def +?ENDMSC? +?BC? +!include schema$(SCHEMA).bc +OVLINIT =$(OBJ)\ovlinit.o +?ENDBC? + +?MSC? +# +# - Specific Overlay Schema Settings +# + +! IF ($(SCHEMA)==1) +INTOVL = /DYNAMIC:1250 /NOE +OVLINIT = +! ENDIF + +! IF ($(SCHEMA)==2) +INTOVL = /DYNAMIC:1380 /NOE +OVLINIT = +! ENDIF + +! IF ($(SCHEMA)==3) +INTOVL = /DYNAMIC:1170 +OVLINIT = $(OBJ)\moveinit.o $(OBJ)\ovlinit.o +! ENDIF +?ENDMSC? + +# +############################################################################# +# +# C Compiler and Linker Setup Options +# (To Maintainer; modify only if absolutely necessary) +# + +?BC? +BCINCL = $(BCTOP)\include # include directory for main BC headers +BCLIB = $(BCTOP)\lib # library directory for main BC libraries +BCCFG = nethack.cfg # name of the nethack configuration file +?ENDBC? + +# +# Model +# + +?MSC? +MODEL = L +?ENDMSC? +?BC? +MODEL = h +?ENDBC? + +# +# - Optional C library specifier for those with non-standard +# libraries or a multiple-target library setup. +# + +CLIB = +?MSC? +#CLIB = llibcer /nod +?ENDMSC? + +?BC? +# +# Borland C++ libraries +# + +BCOVL = $(BCLIB)\OVERLAY +BCMDL = $(BCLIB)\C$(MODEL) + +?ENDBC? +# +# Compiler Options +# + +?MSC? +CNOLNK = /c # just generate .OBJ +CPCHUSE = /YuHACK.H # use precompiled headers +CPCHGEN = /YcHACK.H # generate precompiled headers +CPCHNAM = /Fp # set the name of the precompiled header file +CPCHEXT = .PCH # precompiled header extension +CDEFINE = /D # define a macro +CCSNAM = /NT # set the code segment name +COBJNAM = /Fo # name the .OBJ file +CNOOPT = /f- /Od # disable optimizations (must be first in line) + # /f- = don't use the "fast" compiler,its buggy +?ENDMSC? +?MSCMACRO:CSNAMOA= ? +?MSCMACRO:CSNAMOB=$(CCSNAM)$(@F) ? +?MSCMACRO:CSNAM0=$(CCSNAM)$(@F) ? +?MSCMACRO:CSNAM1=$(CCSNAM)$(@F) ? +?MSCMACRO:CSNAM2=$(CCSNAM)$(@F) ? +?MSCMACRO:CSNAM3=$(CCSNAM)$(@F) ? +?MSCMACRO:CSNAMB=$(CCSNAM)$(@F) ? +?BC? +CNOLNK = -c # just generate .OBJ +CPCHUSE = -Hu # use precompiled headers +CPCHGEN = -H # generate precompiled headers +CPCHNAM = -H= # set the name of the precompiled header file +CPCHEXT = .PCH # precompiled header extension +CDEFINE = -D # define a macro +CSTKSZ = -DSTKSIZ= # set stack size +CCSNAM = -zC # set the code segment name +COBJNAM = -o # name the .OBJ file +?ENDBC? +?BCMACRO:CSNAMOA=$$($(@B)_o) ? +?BCMACRO:CSNAMOB=$$($(@B)_o) ? +?BCMACRO:CSNAM0=$$($(@B)_0) ? +?BCMACRO:CSNAM1=$$($(@B)_1) ? +?BCMACRO:CSNAM2=$$($(@B)_2) ? +?BCMACRO:CSNAM3=$$($(@B)_3) ? +?BCMACRO:CSNAMB=$$($(@B)_b) ? + +# +# Linker Options +# + +?MSC? +LWCASE = /NOI # treat case as significant +LMAP = /MAP # create map file +LSTKSZ = /ST: # set stack size +LMAXSEG = /SE:400 # maximum number of segments allowed +LMAXALL = /CPARM:1 # maximum program memory allocation (?) +LINFO = /INFO # display link information while processing +?ENDMSC? +?BC? +LWCASE = /c # treat case as significant +LMAP = /m # create map file +LINIT = $(BCLIB)\C0$(MODEL) # initialization object file +LOVL = /oOVLY # overlay all needed segments +?ENDBC? + +# +# Stack Sizes +# + +STKSUTL = 4096 # Utilities Stack Size +STKSNRM = 5120 # Normal Stack Size + +?MSC? +LUSTACK = $(LSTKSZ)$(STKSUTL) # Utilities Stack Set for Linker +LNSTACK = $(LSTKSZ)$(STKSNRM) # Normal Stack Set for Linker +?ENDMSC? +?BC? +CUSTACK = $(CSTKSZ)$(STKSUTL) # Utilities Stack Set for Compiler +CNSTACK = $(CSTKSZ)$(STKSNRM) # Normal Stack Set for Compiler +?ENDBC? + + +# +######################################################################## +# DLB preparation +# + +! IF ("$(USE_DLB)"=="Y") +DLBFLG = $(CDEFINE)DLB +! ELSE +DLBFLG = +! ENDIF + +# +######################################################################## +# tile preparation +# + +! IF ("$(TILESUPPORT)"=="Y") +TILFLG = $(CDEFINE)USE_TILES +! ELSE +TILFLG = +! ENDIF + +############################################################################# +# +# Overlay switches +# + +COVL0 = $(CDEFINE)OVL0 +COVL1 = $(CDEFINE)OVL1 +COVL2 = $(CDEFINE)OVL2 +COVL3 = $(CDEFINE)OVL3 +COVLB = $(CDEFINE)OVLB + +# +# Flags +# + +FLAGOPT = $(DLBFLG) $(TILFLG) + +# +# Precompiled Header Section +# + +?BC? +#common options (placed in $(BCCFG)) +CFLGTOT = $(CDFLAGS) $(CFLAGS) $(FLAGOPT) $(CW) +#util builds +CFLAGSU = +$(BCCFG) $(CUSTACK) +#normal build, no PCH +CFLAGSN = +$(BCCFG) $(CNSTACK) +?ENDBC? +?MSC? +#util builds +CFLAGSU = $(CDFLAGS) $(CFLAGS) $(CW) $(FLAGOPT) $(CUSTACK) +#normal build, no PCH +CFLAGSN = $(CDFLAGS) $(CFLAGS) $(CW) $(FLAGOPT) $(CNSTACK) +?ENDMSC? +#no optimizations +CFLAGNO = $(CNOOPT) $(CFLAGSN) + +! IF ("$(PRECOMPHEAD)"!="Y") + +CFLAGCO = $(COVLO) +CFLAGUO = $(COVLO) +CFLAGC0 = $(COVL0) +CFLAGU0 = $(COVL0) +CFLAGC1 = $(COVL1) +CFLAGU1 = $(COVL1) +CFLAGC2 = $(COVL2) +CFLAGU2 = $(COVL2) +CFLAGC3 = $(COVL3) +CFLAGU3 = $(COVL3) +CFLAGCB = $(COVLB) +CFLAGUB = $(COVLB) +PCHO = +PCH0 = +PCH1 = +PCH2 = +PCH3 = +PCHB = + +precomp.msg: + @echo Not using precompiled headers... + +! ELSE + +# .o files +CFLAGUO = $(CPCHUSE) $(CPCHNAM)PHO$(CPCHEXT) $(COVLO) +CFLAGCO = $(CPCHGEN) $(CPCHNAM)PHO$(CPCHEXT) $(COVLO) +PCHO = PHO$(CPCHEXT) +# .0 files +CFLAGU0 = $(CPCHUSE) $(CPCHNAM)PH0$(CPCHEXT) $(COVL0) +CFLAGC0 = $(CPCHGEN) $(CPCHNAM)PH0$(CPCHEXT) $(COVL0) +PCH0 = PH0$(CPCHEXT) +# .1 files +CFLAGU1 = $(CPCHUSE) $(CPCHNAM)PH1$(CPCHEXT) $(COVL1) +CFLAGC1 = $(CPCHGEN) $(CPCHNAM)PH1$(CPCHEXT) $(COVL1) +PCH1 = PH1$(CPCHEXT) +# .2 files +CFLAGU2 = $(CPCHUSE) $(CPCHNAM)PH2$(CPCHEXT) $(COVL2) +CFLAGC2 = $(CPCHGEN) $(CPCHNAM)PH2$(CPCHEXT) $(COVL2) +PCH2 = PH2$(CPCHEXT) +# .3 files +CFLAGU3 = $(CPCHUSE) $(CPCHNAM)PH3$(CPCHEXT) $(COVL3) +CFLAGC3 = $(CPCHGEN) $(CPCHNAM)PH3$(CPCHEXT) $(COVL3) +PCH3 = PH3$(CPCHEXT) +# .B files +CFLAGUB = $(CPCHUSE) $(CPCHNAM)PHB$(CPCHEXT) $(COVLB) +CFLAGCB = $(CPCHGEN) $(CPCHNAM)PHB$(CPCHEXT) $(COVLB) +PCHB = PHB$(CPCHEXT) + +precomp.msg: + @echo Using precompiled headers... + +! ENDIF + + +?BC? +FLAGCO = $(CNSTACK) +CFLAGCO.CFG +FLAGUO = $(CNSTACK) +CFLAGUO.CFG +FLAGC0 = $(CNSTACK) +CFLAGC0.CFG +FLAGU0 = $(CNSTACK) +CFLAGU0.CFG +FLAGC1 = $(CNSTACK) +CFLAGC1.CFG +FLAGU1 = $(CNSTACK) +CFLAGU1.CFG +FLAGC2 = $(CNSTACK) +CFLAGC2.CFG +FLAGU2 = $(CNSTACK) +CFLAGU2.CFG +FLAGC3 = $(CNSTACK) +CFLAGC3.CFG +FLAGU3 = $(CNSTACK) +CFLAGU3.CFG +FLAGCB = $(CNSTACK) +CFLAGCB.CFG +FLAGUB = $(CNSTACK) +CFLAGUB.CFG +?ENDBC? +?MSC? +FLAGCO = $(CFLAGSN) $(CFLAGCO) +FLAGUO = $(CFLAGSN) $(CFLAGUO) +FLAGC0 = $(CFLAGSN) $(CFLAGC0) +FLAGU0 = $(CFLAGSN) $(CFLAGU0) +FLAGC1 = $(CFLAGSN) $(CFLAGC1) +FLAGU1 = $(CFLAGSN) $(CFLAGU1) +FLAGC2 = $(CFLAGSN) $(CFLAGC2) +FLAGU2 = $(CFLAGSN) $(CFLAGU2) +FLAGC3 = $(CFLAGSN) $(CFLAGC3) +FLAGU3 = $(CFLAGSN) $(CFLAGU3) +FLAGCB = $(CFLAGSN) $(CFLAGCB) +FLAGUB = $(CFLAGSN) $(CFLAGUB) +?ENDMSC? + +# End of Pre-compiled header section +#=========================================================================== + +?MSC? +# +# Controls whether MOVE tracing is enabled in the executable +# This should be left commented unless you are tinkering with the +# overlay structure of NetHack. The executable runs _very_ +# slowly when the movetr.lib is linked in. +# + +#MOVETR= movetr.lib + +# do not change this +! IF ("$(MOVETR)"!="") +MVTRCL = $(CDEFINE)MOVE_PROF +! ELSE +MVTRCL = +! ENDIF + +?ENDMSC? +# +# Linker options for building various things. +# + +LFLAGSU = $(LDFLAGSU) $(LUSTACK) $(LINIT) +LFLAGSN = $(LDFLAGSN) $(LNSTACK) $(LWCASE) $(LMAXSEG) $(INTOVL) $(LMAXALL) \ + $(LINFO) $(LINIT) $(LOVL) + +# +# Make Roolz dude. +# Due to the inadequacy of some makes these must accord with a +# topological sort of the generated-from relation... output on +# the left, input on the right. Trust me. +# + +.SUFFIXES: .exe .0 .1 .2 .3 .B .o .til .uu .c .y .l + +# +# Rules for files in src +# + + +.c{$(OBJ)}.o: + @$(CC) $(FLAGUO) ?[CSNAMOB]$(COBJNAM)$@ $< + +{$(SRC)}.c{$(OBJ)}.o: + $(CC) $(FLAGUO) ?[CSNAMOB]$(COBJNAM)$@ $< + +{$(SRC)}.c{$(OBJ)}.0: + $(CC) $(FLAGU0) ?[CSNAM0]$(COBJNAM)$@ $< + +{$(SRC)}.c{$(OBJ)}.1: + $(CC) $(FLAGU1) ?[CSNAM1]$(COBJNAM)$@ $< + +{$(SRC)}.c{$(OBJ)}.2: + $(CC) $(FLAGU2) ?[CSNAM2]$(COBJNAM)$@ $< + +{$(SRC)}.c{$(OBJ)}.3: + $(CC) $(FLAGU3) ?[CSNAM3]$(COBJNAM)$@ $< + +{$(SRC)}.c{$(OBJ)}.B: + $(CC) $(FLAGUB) ?[CSNAMB]$(COBJNAM)$@ $< + +# +# Rules for files in sys\share +# + +{$(SYS)}.c{$(OBJ)}.o: + $(CC) $(FLAGUO) ?[CSNAMOA]$(COBJNAM)$@ $< + +{$(SYS)}.c{$(OBJ)}.0: + $(CC) $(FLAGU0) ?[CSNAM0]$(COBJNAM)$@ $< + +{$(SYS)}.c{$(OBJ)}.1: + $(CC) $(FLAGU1) ?[CSNAM1]$(COBJNAM)$@ $< + +{$(SYS)}.c{$(OBJ)}.2: + $(CC) $(FLAGU2) ?[CSNAM2]$(COBJNAM)$@ $< + +{$(SYS)}.c{$(OBJ)}.3: + $(CC) $(FLAGU3) ?[CSNAM3]$(COBJNAM)$@ $< + +{$(SYS)}.c{$(OBJ)}.B: + $(CC) $(FLAGUB) ?[CSNAMB]$(COBJNAM)$@ $< + +# +# Rules for files in sys\msdos +# + +{$(MSYS)}.c{$(OBJ)}.o: + $(CC) $(FLAGUO) ?[CSNAMOA]$(COBJNAM)$@ $< + +{$(MSYS)}.c{$(OBJ)}.0: + $(CC) $(FLAGU0) ?[CSNAM0]$(COBJNAM)$@ $< + +{$(MSYS)}.c{$(OBJ)}.1: + $(CC) $(FLAGU1) ?[CSNAM1]$(COBJNAM)$@ $< + +{$(MSYS)}.c{$(OBJ)}.2: + $(CC) $(FLAGU2) ?[CSNAM2]$(COBJNAM)$@ $< + +{$(MSYS)}.c{$(OBJ)}.3: + $(CC) $(FLAGU3) ?[CSNAM3]$(COBJNAM)$@ $< + +{$(MSYS)}.c{$(OBJ)}.B: + $(CC) $(FLAGUB) ?[CSNAMB]$(COBJNAM)$@ $< + +{$(MSYS)}.h{$(INCL)}.h: + @copy $< $@ + +# +# Rules for files in util +# + +{$(UTIL)}.c{$(OBJ)}.o: + $(CC) $(CFLAGSU) ?[CSNAMOB]$(COBJNAM)$@ $< + +# +# Rules for files in win\share +# + +{$(WSHR)}.c.o: + @$(CC) $(FLAGUO) ?[CSNAMOA]$(COBJNAM)$@ $< + +{$(WSHR)}.c{$(OBJ)}.o: + @$(CC) $(FLAGUO) ?[CSNAMOA]$(COBJNAM)$@ $< + +{$(WSHR)}.h{$(INCL)}.h: + @copy $< $@ + +{$(WSHR)}.txt{$(DAT)}.txt: + @copy $< $@ + +# +# Rules for files in win\tty +# + +{$(WTTY)}.c{$(OBJ)}.o: + $(CC) $(FLAGUO) ?[CSNAMOA]$(COBJNAM)$@ $< + +{$(WTTY)}.c{$(OBJ)}.0: + $(CC) $(FLAGU0) ?[CSNAM0]$(COBJNAM)$@ $< + +{$(WTTY)}.c{$(OBJ)}.1: + $(CC) $(FLAGU1) ?[CSNAM1]$(COBJNAM)$@ $< + +{$(WTTY)}.c{$(OBJ)}.2: + $(CC) $(FLAGU2) ?[CSNAM2]$(COBJNAM)$@ $< + +{$(WTTY)}.c{$(OBJ)}.3: + $(CC) $(FLAGU3) ?[CSNAM3]$(COBJNAM)$@ $< + +{$(WTTY)}.c{$(OBJ)}.B: + $(CC) $(FLAGUB) ?[CSNAMB]$(COBJNAM)$@ $< + +# +# NETHACK OBJECTS +# +# This section creates shorthand macros for many objects +# referenced later on in the Makefile. +# + +# +# Shorten up the location for some files +# + +O = $(OBJ)\ # comment so \ isn't last char + +U = $(UTIL)\ # comment so \ isn't last char + +# +# 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 + +?LIST: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 $(O)stubvid.o +?ENDLIST? + +?LIST:DGNCOMPOBJS? + $(O)dgn_yacc.o $(O)dgn_$(LEX).o $(O)dgn_main.o + $(O)alloc.o $(O)panic.o +?ENDLIST? + +RECOVOBJS = $(O)recover.o + +?LIST:GIFREADERS? + $(O)gifread.o $(O)alloc.o $(O)panic.o +?ENDLIST? + +?LIST:TEXT_IO? + $(O)tiletext.o $(O)tiletxt.o $(O)drawing.o + $(O)decl.o $(O)monst.o $(O)objects.o + $(O)stubvid.o +?ENDLIST? + +PPMWRITERS = $(O)ppmwrite.o $(O)alloc.o $(O)panic.o + +?LIST:GIFREAD2? + $(O)gifread2.o $(O)alloc.o $(O)panic.o +?ENDLIST? + +?LIST:TEXT_IO2? + $(O)tiletex2.o $(O)tiletxt2.o $(O)drawing.o + $(O)decl.o $(O)monst.o $(O)objects.o + $(O)stubvid.o +?ENDLIST? + +PPMWRIT2 = $(O)ppmwrit2.o $(O)alloc.o $(O)panic.o + +TILEFILES = $(WSHR)\monsters.txt $(WSHR)\objects.txt $(WSHR)\other.txt + +TILEFILES2 = $(WSHR)\monthin.txt $(WSHR)\objthin.txt $(WSHR)\oththin.txt + +DLBOBJS = $(O)dlb_main.o $(O)dlb.o $(O)alloc.o $(O)panic.o + +# +# Object files for the game itself. +# + +OBJ01 = $(O)alloc.o $(RANDOM) $(O)decl.o $(O)objects.o \ + $(O)muse.o $(O)display.o $(O)vision.o \ + $(O)rect.o $(O)vis_tab.o $(O)monst.o $(O)wintty.o \ + $(O)files.o $(O)sys.o $(O)monstr.o $(O)minion.o \ + $(O)worm.o $(O)detect.o $(O)exper.o $(O)mplayer.o \ + $(O)uhitm.o $(O)pager.o $(O)windows.o $(O)quest.o \ + $(O)questpgr.o $(O)write.o $(O)drawing.o $(O)dokick.o \ + $(O)dothrow.o $(O)pickup.o $(O)pray.o $(O)spell.o \ + $(O)ball.o $(O)wield.o $(O)worn.o $(O)fountain.o \ + $(O)music.o $(O)rumors.o $(O)dlb.o $(O)sit.o \ + $(O)bones.o $(O)mklev.o $(O)save.o $(O)restore.o \ + $(O)mkmaze.o $(O)mkmap.o $(O)end.o $(O)o_init.o \ + $(O)options.o $(O)rip.o $(O)sound.o $(O)teleport.o \ + $(O)topten.o $(O)tty.o $(O)u_init.o $(O)extralev.o \ + $(O)sp_lev.o $(O)dig.o $(O)pckeys.o $(O)role.o \ + $(O)steed.o $(O)region.o + +OVL0 = $(O)allmain.0 $(O)apply.0 $(O)artifact.0 $(O)attrib.0 \ + $(O)botl.0 $(O)cmd.0 $(O)dbridge.0 $(O)do.0 \ + $(O)do_name.0 $(O)do_wear.0 $(O)dogmove.0 $(O)dungeon.0 \ + $(O)eat.0 $(O)engrave.0 $(O)hacklib.0 $(O)invent.0 \ + $(O)lock.0 $(O)pcmain.0 $(O)mail.0 $(O)makemon.0 \ + $(O)mcastu.0 $(O)mhitm.0 $(O)mhitu.0 $(O)mkobj.0 \ + $(O)mkroom.0 $(O)mon.0 $(O)mondata.0 $(O)monmove.0 \ + $(O)mthrowu.0 $(O)objnam.0 $(O)polyself.0 $(O)priest.0 \ + $(O)rnd.0 $(O)shknam.0 $(O)sounds.0 $(O)steal.0 \ + $(O)timeout.0 $(O)track.0 $(O)trap.0 $(O)vault.0 \ + $(O)weapon.0 $(O)were.0 $(O)wizard.0 $(O)msdos.0 \ + $(O)termcap.0 $(O)video.0 $(O)vidtxt.0 $(O)zap.0 \ + $(O)explode.0 $(O)shk.0 + +OVL1 = $(O)allmain.1 $(O)apply.1 $(O)artifact.1 $(O)attrib.1 \ + $(O)botl.1 $(O)cmd.1 $(O)dbridge.1 $(O)do.1 \ + $(O)do_wear.1 $(O)dog.1 $(O)dungeon.1 $(O)eat.1 \ + $(O)engrave.1 $(O)hack.1 $(O)hacklib.1 $(O)invent.1 \ + $(O)makemon.1 $(O)mhitu.1 $(O)mkobj.1 $(O)mon.1 \ + $(O)mondata.1 $(O)monmove.1 $(O)mthrowu.1 $(O)objnam.1 \ + $(O)pcmain.1 $(O)polyself.1 $(O)rnd.1 $(O)shk.1 \ + $(O)steal.1 $(O)timeout.1 $(O)track.1 $(O)trap.1 \ + $(O)weapon.1 $(O)getline.1 $(O)termcap.1 $(O)topl.1 \ + $(O)video.1 $(O)zap.1 $(O)explode.1 + +OVL2 = $(O)attrib.2 $(O)do.2 $(O)do_name.2 $(O)do_wear.2 \ + $(O)dog.2 $(O)engrave.2 $(O)hack.2 $(O)hacklib.2 \ + $(O)invent.2 $(O)makemon.2 $(O)mon.2 $(O)mondata.2 \ + $(O)monmove.2 $(O)getline.2 $(O)shk.2 $(O)topl.2 \ + $(O)trap.2 $(O)zap.2 + +OVL3 = $(O)do.3 $(O)hack.3 $(O)invent.3 $(O)light.3 \ + $(O)shk.3 $(O)trap.3 $(O)zap.3 + + +OVLB = $(O)allmain.B $(O)apply.B $(O)artifact.B $(O)attrib.B \ + $(O)botl.B $(O)cmd.B $(O)dbridge.B $(O)do.B \ + $(O)do_name.B $(O)do_wear.B $(O)dog.B $(O)dogmove.B \ + $(O)eat.B $(O)engrave.B $(O)hack.B $(O)hacklib.B \ + $(O)invent.B $(O)lock.B $(O)mail.B $(O)makemon.B \ + $(O)mcastu.B $(O)mhitm.B $(O)mhitu.B $(O)mkobj.B \ + $(O)mkroom.B $(O)mon.B $(O)mondata.B $(O)monmove.B \ + $(O)mthrowu.B $(O)objnam.B $(O)pcmain.B $(O)pline.B \ + $(O)polyself.B $(O)potion.B $(O)priest.B $(O)read.B \ + $(O)rnd.B $(O)shk.B $(O)shknam.B $(O)sounds.B \ + $(O)steal.B $(O)timeout.B $(O)track.B $(O)trap.B \ + $(O)vault.B $(O)weapon.B $(O)were.B $(O)wizard.B \ + $(O)msdos.B $(O)pcunix.B $(O)termcap.B $(O)topl.B \ + $(O)video.B $(O)vidtxt.B $(O)zap.B + +TILOBJ = $(TILEGAME) $(TILEVGA) + +VVOBJ = $(O)version.o + +NVOBJ = $(OBJ01) $(OVL0) $(OVL1) $(OVL2) \ + $(OVL3) $(OVLB) $(TILOBJ) + +ALLOBJ= $(NVOBJ) $(VVOBJ) $(OVLINIT) + +# +# Header objects +# + +# This comment copied from sys/unix/Makefile.src, +# extern.h is ignored, even though its declared function types may affect the +# compilation of all the .c files, since extern.h changes every time the +# type of an external function does, and we would spend all our time recompiling +# if we did not ignore it. +#EXTERN_H = $(INCL)\extern.h +EXTERN_H = +PCCONF_H = $(INCL)\pcconf.h $(INCL)\micro.h $(INCL)\system.h +PERMONST_H = $(INCL)\monattk.h $(INCL)\monflag.h $(INCL)\align.h +YOUPROP_H = $(INCL)\prop.h $(PERMONST_H) $(INCL)\pm.h $(INCL)\youprop.h \ + $(INCL)\mondata.h +YOU_H = $(INCL)\attrib.h $(INCL)\monst.h $(YOUPROP_H) $(INCL)\align.h +DECL_H = $(INCL)\quest.h $(INCL)\spell.h $(INCL)\color.h \ + $(INCL)\obj.h $(YOU_H) $(INCL)\onames.h $(INCL)\pm.h + +CONFIG_H = $(INCL)\tradstdc.h $(INCL)\coord.h $(PCCONF_H) $(INCL)\config.h +HACK_H = $(CONFIG_H) $(INCL)\dungeon.h $(INCL)\align.h $(INCL)\monsym.h \ + $(INCL)\mkroom.h $(INCL)\objclass.h $(DECL_H) \ + $(INCL)\timeout.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 $(EXTERN_H) \ + $(INCL)\winprocs.h $(INCL)\trampoli.h $(INCL)\display.h +TILE_H = $(INCL)\tile.h $(INCL)\pctiles.h +PCVIDEO_H = $(INCL)\portio.h $(INCL)\pcvideo.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 +DGN_FILE_H = $(INCL)\dgn_file.h +DLB_H = $(INCL)\dlb.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 +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 +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 + +# +# In the unix distribution this file is patchlevel.h, make it 8.3 here +# to avoid an nmake warning under dos. +# + +PATCHLEVEL_H = $(INCL)\patchlev.h + + +# +# The name of the game. +# + +GAMEFILE = $(GAMEDIR)\$(GAME).exe + +# +# make data.base an 8.3 filename to prevent an nmake warning +# + +DATABASE = $(DAT)\data.bas + +####################################################################### +# +# TARGETS + +# +# The main target. +# + +$(GAME): obj.tag envchk $(U)utility.tag $(GAMEFILE) + @echo $(GAME) is up to date. + +# +# Everything +# + +all : install + +install: $(GAME) install.tag + @echo Done. + + +install.tag: $(DAT)\data $(DAT)\rumors $(DAT)\dungeon \ + $(DAT)\oracles $(DAT)\quest.dat $(DAT)\sp_lev.tag $(DLB) +! IF ("$(USE_DLB)"=="Y") + copy nhdat $(GAMEDIR) + copy $(DAT)\license $(GAMEDIR) +! ELSE + copy $(DAT)\*. $(GAMEDIR) + copy $(DAT)\*.dat $(GAMEDIR) + copy $(DAT)\*.lev $(GAMEDIR) + copy $(MSYS)\msdoshlp.txt $(GAMEDIR) + if exist $(GAMEDIR)\makefile del $(GAMEDIR)\makefile +! ENDIF + copy $(SYS)\termcap $(GAMEDIR) + if exist $(DOC)\guideb*.txt copy $(DOC)\guideb*.txt $(GAMEDIR) + if exist $(DOC)\nethack.txt copy $(DOC)\nethack.txt $(GAMEDIR)\NetHack.txt + if exist $(DOC)\recover.txt copy $(DOC)\recover.txt $(GAMEDIR) + copy $(SYS)\nethack.cnf $(GAMEDIR)\defaults.nh + copy $(U)recover.exe $(GAMEDIR) + if exist *.tib copy *.tib $(GAMEDIR) + echo install done > $@ + +$(DAT)\sp_lev.tag: $(U)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)\elf.des $(DAT)\healer.des \ + $(DAT)\knight.des $(DAT)\priest.des $(DAT)\rogue.des \ + $(DAT)\samurai.des $(DAT)\tourist.des $(DAT)\valkyrie.des \ + $(DAT)\wizard.des + cd $(DAT) + $(U)lev_comp bigroom.des + $(U)lev_comp castle.des + $(U)lev_comp endgame.des + $(U)lev_comp gehennom.des + $(U)lev_comp knox.des + $(U)lev_comp mines.des + $(U)lev_comp medusa.des + $(U)lev_comp oracle.des + $(U)lev_comp tower.des + $(U)lev_comp yendor.des + $(U)lev_comp arch.des + $(U)lev_comp barb.des + $(U)lev_comp caveman.des + $(U)lev_comp elf.des + $(U)lev_comp healer.des + $(U)lev_comp knight.des + $(U)lev_comp priest.des + $(U)lev_comp rogue.des + $(U)lev_comp samurai.des + $(U)lev_comp tourist.des + $(U)lev_comp valkyrie.des + $(U)lev_comp wizard.des + cd $(SRC) + echo sp_levs done > $(DAT)\sp_lev.tag + +$(U)utility.tag: envchk $(INCL)\date.h $(INCL)\onames.h \ + $(INCL)\pm.h $(SRC)\monstr.c $(SRC)\vis_tab.c \ + $(U)lev_comp.exe $(VIS_TAB_H) $(U)dgn_comp.exe \ + $(U)recover.exe $(TILEUTIL) + @echo utilities made >$@ + @echo utilities made. + +tileutil: $(U)gif2txt.exe $(U)txt2ppm.exe + @echo Optional tile development utilities are up to date. + +?MSC? +# The section for linking the NetHack image looks a little strange at +# first, especially if you are used to UNIX makes, or NDMAKE. It is +# Microsoft nmake specific, and it gets around the problem of the link +# command line being too long for the linker. An "in-line" linker +# response file is generated temporarily. +# +# It takes advantage of the following features of nmake: +?ENDMSC? +# +# Inline files : +# Specifying the "<<" means to start an inline file. +# Another "<<" at the start of a line closes the +# inline file. +# +?MSC? +# Substitution within Macros: +# $(mymacro:string1=string2) replaces every +# occurrence of string1 with string2 in the +# macro mymacro. Special ascii key codes may be +# used in the substitution text by preceding it +# with ^ as we have done below. Every occurrence +# of a in $(ALLOBJ) is replaced by +# <+>. +# +?ENDMSC? +# DO NOT INDENT THE << below! +# + +?MSC? +$(GAMEFILE) : $(LNKOPT) $(ALLOBJ) +?ENDMSC? +?BC? +$(GAMEFILE) : $(ALLOBJ) +?ENDBC? + @echo Linking.... + $(LINK) $(LFLAGSN) @<<$(GAME).lnk +?BC? + $(ALLOBJ) +?ENDBC? +?MSC? + $(ALLOBJ:^ =+^ + ) +?ENDMSC? + $(GAMEFILE) + $(GAME) + $(TERMLIB) $(MOVETR) $(CLIB) $(BCOVL) $(BCMDL) +?MSC? + $(LNKOPT); +?ENDMSC? +<< + @if exist $(GAMEDIR)\$(GAME).bak del $(GAMEDIR)\$(GAME).bak + +# +# Makedefs Stuff +# + +$(U)makedefs.exe: $(MAKEOBJS) + @$(LINK) $(LFLAGSU) $(MAKEOBJS), $@,, $(CLIB) $(BCMDL); + +$(O)makedefs.o: $(CONFIG_H) $(PERMONST_H) $(OBJCLASS_H) \ + $(MONSYM_H) $(QTEXT_H) $(PATCHLEVEL_H) \ + $(U)makedefs.c + @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)makedefs.c + +# +# date.h should be remade every time any of the source or include +# files is modified. +# + +$(INCL)\date.h : $(U)makedefs.exe + $(U)makedefs -v + @echo A new $@ has been created. + +$(INCL)\onames.h : $(U)makedefs.exe + $(U)makedefs -o + +$(INCL)\pm.h : $(U)makedefs.exe + $(U)makedefs -p + +#$(INCL)\trap.h : $(U)makedefs.exe +# $(U)makedefs -t + +$(SRC)\monstr.c: $(U)makedefs.exe + $(U)makedefs -m + +$(INCL)\vis_tab.h: $(U)makedefs.exe + $(U)makedefs -z + +$(SRC)\vis_tab.c: $(U)makedefs.exe + $(U)makedefs -z + +# +# Level Compiler Stuff +# + +$(U)lev_comp.exe: $(SPLEVOBJS) + @echo Linking $@... +?MSC? + $(LINK) $(LFLAGSU) @<<$(@B).lnk +?ENDMSC? +?BC? + $(LINK) $(LFLAGSU) @&&! +?ENDBC? +?LINKLIST:SPLEVOBJS? + $@ + $(@B) + $(BCMDL); +?MSC? +<< +?ENDMSC? +?BC? +! +?ENDBC? + +$(O)lev_yacc.o: $(HACK_H) $(SP_LEV_H) $(INCL)\lev_comp.h $(U)lev_yacc.c + @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)lev_yacc.c + +$(O)lev_$(LEX).o: $(HACK_H) $(INCL)\lev_comp.h $(SP_LEV_H) \ + $(U)lev_$(LEX).c + $(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)lev_$(LEX).c + +$(O)lev_main.o: $(U)lev_main.c $(HACK_H) $(SP_LEV_H) + @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)lev_main.c + +$(U)lev_yacc.c $(INCL)\lev_comp.h : $(U)lev_comp.y +! IF "$(DO_YACC)"=="YACC_ACT" + $(YACC) -d -l $(U)lev_comp.y + copy $(YTABC) $(U)lev_yacc.c + copy $(YTABH) $(INCL)\lev_comp.h + @del $(YTABC) + @del $(YTABH) +! ELSE + @echo. + @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 + @echo from $(SYS) to $(U)lev_yacc.c, and copy the prebuilt + @echo lev_comp.h from $(SYS) to $(UTIL)\lev_comp.h + @echo and use those. + @echo. + copy $(SYS)\lev_yacc.c $@ >nul + touch $@ + copy $(SYS)\lev_comp.h $(INCL)\lev_comp.h >nul + touch $(INCL)\lev_comp.h +! ENDIF + +$(U)lev_$(LEX).c: $(U)lev_comp.l +! IF "$(DO_LEX)"=="LEX_ACT" + $(LEX) $(FLEXSKEL) $(U)lev_comp.l + copy $(LEXYYC) $@ + @del $(LEXYYC) +! ELSE + @echo. + @echo $(U)lev_comp.l has changed. To update $@ run $(LEX). + @echo. + @echo For now, we will copy a prebuilt lev_lex.c + @echo from $(SYS) to $@ and use it. + @echo. + copy $(SYS)\lev_lex.c $@ >nul + touch $@ +! ENDIF + +# +# Dungeon Stuff +# + +$(U)dgn_comp.exe: $(DGNCOMPOBJS) + @echo Linking $@... +?MSC? + $(LINK) $(LFLAGSU) @<<$(@B).lnk +?ENDMSC? +?BC? + $(LINK) $(LFLAGSU) @&&! +?ENDBC? +?LINKLIST:DGNCOMPOBJS? + $@ + $(@B) + $(BCMDL); +?MSC? +<< +?ENDMSC? +?BC? +! +?ENDBC? + +$(O)dgn_yacc.o: $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h \ + $(U)dgn_yacc.c + @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)dgn_yacc.c + +$(O)dgn_$(LEX).o: $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h \ + $(U)dgn_$(LEX).c + @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)dgn_$(LEX).c + +$(O)dgn_main.o: $(HACK_H) $(U)dgn_main.c + @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)dgn_main.c + +$(U)dgn_yacc.c $(INCL)\dgn_comp.h : $(U)dgn_comp.y +! IF "$(DO_YACC)"=="YACC_ACT" + $(YACC) -d -l $(U)dgn_comp.y + copy $(YTABC) $(U)dgn_yacc.c + copy $(YTABH) $(INCL)\dgn_comp.h + @del $(YTABC) + @del $(YTABH) +! ELSE + @echo. + @echo $(U)dgn_comp.y has changed. To update $@ and + @echo $(INCL)\dgn_comp.h run $(YACC). + @echo. + @echo For now, we will copy the prebuilt dgn_yacc.c from + @echo $(SYS) to $(U)dgn_yacc.c, and copy the prebuilt + @echo dgn_comp.h from $(SYS) to $(INCL)\dgn_comp.h + @echo and use those. + @echo. + copy $(SYS)\dgn_yacc.c $@ >nul + touch $@ + copy $(SYS)\dgn_comp.h $(INCL)\dgn_comp.h >nul + touch $(INCL)\dgn_comp.h +! ENDIF + +$(U)dgn_$(LEX).c: $(U)dgn_comp.l +! IF "$(DO_LEX)"=="LEX_ACT" + $(LEX) $(FLEXSKEL) $(U)dgn_comp.l + copy $(LEXYYC) $@ + @del $(LEXYYC) +! ELSE + @echo. + @echo $(U)dgn_comp.l has changed. To update $@ run $(LEX). + @echo. + @echo For now, we will copy a prebuilt dgn_lex.c + @echo from $(SYS) to $@ and use it. + @echo. + copy $(SYS)\dgn_lex.c $@ >nul + touch $@ +! ENDIF + + +obj.tag: + @if not exist $(O)*.* mkdir $(OBJ) + @echo directory $(OBJ) created + @echo directory $(OBJ) created >$@ + +?MSC? +# +# The correct switches for the C compiler depend on the CL environment +# variable being set correctly. This will check that it is. +# The correct setting needs to be: +# CL= /AL /G2 /Oo /Gs /Gt16 /Zp1 /W0 /I..\include /nologo /DMOVERLAY +# + +?ENDMSC? +envchk: precomp.msg +?MSC? +! IF ("$(CL)"=="") +! MESSAGE The CL environment variable is not defined! +! MESSAGE You must CD $(MSYS) and execute the SETUP.BAT procedure +! MESSAGE ie. setup MSC +! MESSAGE +! ERROR +! ELSE + @echo CL Environment variable is defined: + @echo CL=$(CL) +! ENDIF +?ENDMSC? +?COMMENT? +# CL= /AL /G2 /Oo /Gs /Gt16 /Zp1 /W0 /I..\include /nologo /DMOVERLAY +?ENDCOMMENT? +?BC? +# +# Borland Configuration File Section +# + @echo Making Borland configuration files... + @echo -Y -O -Z -Oe -Ob -Os -Ff -I$(BCINCL);$(INCL) > $(BCCFG) + @echo -m$(MODEL) -D__IO_H $(CFLGTOT) -DSTRNCMPI >> $(BCCFG) + @type $(BCCFG) > CFLAGCO.CFG + @type $(BCCFG) > CFLAGUO.CFG + @type $(BCCFG) > CFLAGC0.CFG + @type $(BCCFG) > CFLAGU0.CFG + @type $(BCCFG) > CFLAGC1.CFG + @type $(BCCFG) > CFLAGU1.CFG + @type $(BCCFG) > CFLAGC2.CFG + @type $(BCCFG) > CFLAGU2.CFG + @type $(BCCFG) > CFLAGC3.CFG + @type $(BCCFG) > CFLAGU3.CFG + @type $(BCCFG) > CFLAGCB.CFG + @type $(BCCFG) > CFLAGUB.CFG + @echo -Y $(CFLAGCO) >> CFLAGCO.CFG + @echo -Y $(CFLAGUO) >> CFLAGUO.CFG + @echo -Y $(CFLAGC0) >> CFLAGC0.CFG + @echo -Y $(CFLAGU0) >> CFLAGU0.CFG + @echo -Y $(CFLAGC1) >> CFLAGC1.CFG + @echo -Y $(CFLAGU1) >> CFLAGU1.CFG + @echo -Y $(CFLAGC2) >> CFLAGC2.CFG + @echo -Y $(CFLAGU2) >> CFLAGU2.CFG + @echo -Y $(CFLAGC3) >> CFLAGC3.CFG + @echo -Y $(CFLAGU3) >> CFLAGU3.CFG + @echo -Y $(CFLAGCB) >> CFLAGCB.CFG + @echo -Y $(CFLAGUB) >> CFLAGUB.CFG +?ENDBC? +! IF "$(TILEGAME)"=="" + @echo. + @echo NOTE: This build will NOT include tile support. + @echo. +! ELSE + @echo. + @echo This build includes tile support. + @echo. +! ENDIF + +# +# SECONDARY TARGETS +# + +# +# Header files NOT distributed in ..\include +# + +$(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 $@ + +# +# Recover Utility +# + +$(U)recover.exe: $(RECOVOBJS) + @$(LINK) $(LFLAGSU) $(RECOVOBJS),$@,, $(CLIB) $(BCMDL); + +# +# Tile Mapping +# + +$(SRC)\tile.c: $(U)tilemap.exe + @echo A new $@ is being created. + @$(U)tilemap + +$(U)tilemap.exe: $(O)tilemap.o + @$(LINK) $(LFLAGSU) $(O)tilemap.o,$@,, $(CLIB) $(BCMDL); + +$(O)tilemap.o: $(WSHR)\tilemap.c $(HACK_H) + $(CC) $(CFLAGSU) $(COBJNAM)$@ $(WSHR)\tilemap.c + + +# +# Tile Utilities +# + +# +# Optional (for development) +# + + + +# + +$(U)gif2txt.exe: $(GIFREADERS) $(TEXT_IO) + @$(LINK) $(LFLAGSU) $(GIFREADERS) $(TEXT_IO),$@,, \ + $(CLIB) $(BCMDL); + +$(U)txt2ppm.exe: $(PPMWRITERS) $(TEXT_IO) + @$(LINK) $(LFLAGSU) $(PPMWRITERS) $(TEXT_IO),$@,, \ + $(CLIB) $(BCMDL); + +$(U)gif2txt2.exe: $(GIFREAD2) $(TEXT_IO2) + @$(LINK) $(LFLAGSU) $(GIFREAD2) $(TEXT_IO2),$@,, \ + $(CLIB) $(BCMDL); + +$(U)txt2ppm2.exe: $(PPMWRIT2) $(TEXT_IO2) + @$(LINK) $(LFLAGSU) $(PPMWRIT2) $(TEXT_IO2),$@,, \ + $(CLIB) $(BCMDL); + +# +# Required for tile support +# + +NetHack1.tib: $(TILEFILES) $(U)tile2bin.exe + @echo Creating binary tile files (this may take some time) + @$(U)tile2bin + +NetHackO.tib: thintile.tag $(TILEFILES2) $(U)til2bin2.exe + @echo Creating overview binary tile files (this may take some time) + @$(U)til2bin2 + +thintile.tag: $(U)thintile.exe $(TILEFILES) + $(U)thintile + @echo thintiles created >thintile.tag + +$(U)tile2bin.exe: $(O)tile2bin.o $(TEXT_IO) + @echo Linking $@... +?MSC? + $(LINK) $(LFLAGSU) @<<$(@B).lnk +?ENDMSC? +?BC? + $(LINK) $(LFLAGSU) @&&! +?ENDBC? + $(O)tile2bin.o+ +?LINKLIST:TEXT_IO? + $@ + $(@B) + $(BCMDL); +?MSC? +<< +?ENDMSC? +?BC? +! +?ENDBC? + +$(U)til2bin2.exe: $(O)til2bin2.o $(TEXT_IO2) + @echo Linking $@... +?MSC? + $(LINK) $(LFLAGSU) @<<$(@B).lnk +?ENDMSC? +?BC? + $(LINK) $(LFLAGSU) @&&! +?ENDBC? + $(O)til2bin2.o+ +?LINKLIST:TEXT_IO2? + $@ + $(@B) + $(BCMDL); +?MSC? +<< +?ENDMSC? +?BC? +! +?ENDBC? + + +$(U)thintile.exe: $(O)thintile.o + @$(LINK) $(LFLAGSU) $(O)thintile.o,$@,, $(CLIB) $(BCMDL); + +$(O)thintile.o: $(HACK_H) $(INCL)\tile.h $(WSHR)\thintile.c + $(CC) $(CFLAGSU) $(COBJNAM)$@ $(WSHR)\thintile.c + +$(O)tile2bin.o: $(HACK_H) $(TILE_H) $(PCVIDEO_H) + $(CC) $(CFLAGSU) $(COBJNAM)$@ $(MSYS)\tile2bin.c + +$(O)til2bin2.o: $(HACK_H) $(TILE_H) $(PCVIDEO_H) + $(CC) $(CFLAGSU) $(CDEFINE)TILE_X=8 $(CDEFINE)OVERVIEW_FILE \ + $(COBJNAM)$@ $(MSYS)\tile2bin.c + +?COMMENT? +$(U)tile2btb.exe: $(O)tile2btb.o $(GIFREADERS) + @echo Linking $@... + $(LINK) $(LFLAGSU) @&&! + $(O)tile2btb.o+ +?LINKLIST:GIFREADERS? + $@ + $(@B) + $(BCMDL) $(BGI_LIB); +! + +$(O)tile2btb.o: $(HACK_H) $(TILE_H) $(PCVIDEO_H) $(MSYS)\tile2btb.c + $(CC) -DBGI_FILE $(CFLAGSU) $(COBJNAM)$@ $(MSYS)\tile2btb.c +?ENDCOMMENT? + +# +# DLB stuff +# + +nhdat: $(U)dlb_main.exe + @copy $(MSYS)\msdoshlp.txt $(DAT) + @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 + @echo msdoshlp.txt >>dlb.lst + @for %%N in (*.lev) do echo %%N >>dlb.lst + $(U)dlb_main cvIf dlb.lst $(SRC)\nhdat + @cd $(SRC) + +$(U)dlb_main.exe: $(DLBOBJS) + @$(LINK) $(LFLAGSU) $(DLBOBJS),$@,, $(CLIB) $(BCMDL); + +$(O)dlb_main.o: $(U)dlb_main.c $(INCL)\config.h $(DLB_H) + $(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)dlb_main.c + +# +# Housekeeping +# + +spotless: clean + rmdir $(OBJ) + 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 $(DAT)\rumors del $(DAT)\rumors + 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)\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)\*.lev del $(DAT)\*.lev + if exist $(DAT)\sp_lev.tag del $(DAT)\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 $(SRC)\$(PLANAR_TIB) del $(SRC)\$(PLANAR_TIB) + if exist $(SRC)\$(OVERVIEW_TIB) del $(SRC)\$(OVERVIEW_TIB) + if exist $(U)recover.exe del $(U)recover.exe + +clean: + if exist $(O)*.o del $(O)*.o + if exist $(O)*.0 del $(O)*.0 + if exist $(O)*.1 del $(O)*.1 + if exist $(O)*.2 del $(O)*.2 + if exist $(O)*.3 del $(O)*.3 + if exist $(O)*.b del $(O)*.b + if exist $(U)utility.tag del $(U)utility.tag + if exist $(U)makedefs.exe del $(U)makedefs.exe + if exist $(U)lev_comp.exe del $(U)lev_comp.exe + if exist $(U)dgn_comp.exe del $(U)dgn_comp.exe + if exist $(U)dlb_main.exe del $(U)dlb_main.exe + if exist $(SRC)\*.lnk del $(SRC)\*.lnk + if exist $(SRC)\*.map del $(SRC)\*.map + if exist $(SRC)\*$(CPCHEXT) del $(SRC)\*$(CPCHEXT) +?BC? + if exist $(SRC)\*.cfg del $(SRC)\*.cfg +?ENDBC? + if exist $(DAT)\dlb.lst del $(DAT)\dlb.lst + +pch.c: $(HACK_H) + @echo ^#include "hack.h" > $@ + @echo main(int argc, char *argv[]) >> $@ + @echo { >> $@ + @echo } >> $@ + @echo. >> $@ + +# +# OTHER DEPENDENCIES +# + +# +# Precompiled Header dependencies +# (We need to force the generation of these at the beginning) +# + +PHO$(CPCHEXT): $(HACK_H) pch.c + @echo Generating new precompiled header for .O files + @$(CC) $(FLAGCO) pch.c +PH0$(CPCHEXT): $(HACK_H) pch.c + @echo Generating new precompiled header for .0 files + @$(CC) $(FLAGC0) pch.c +PH1$(CPCHEXT): $(HACK_H) pch.c + @echo Generating new precompiled header for .1 files + @$(CC) $(FLAGC1) pch.c +PH2$(CPCHEXT): $(HACK_H) pch.c + @echo Generating new precompiled header for .2 files + @$(CC) $(FLAGC2) pch.c +PH3$(CPCHEXT): $(HACK_H) pch.c + @echo Generating new precompiled header for .3 files + @$(CC) $(FLAGC3) pch.c +PHB$(CPCHEXT): $(HACK_H) pch.c + @echo Generating new precompiled header for .B files + @$(CC) $(FLAGCB) pch.c + +?MSC? +# +# Compiler supplied, manually moved file - MOVEINIT.C. +# - This is only compiled if you selected the alternate overlay +# schema3. (MOVEAPI.H must reside in your include search list, +# and MOVEINIT.C must be in your src directory). The patch +# in sys/msdos/moveinit.pat must be applied to moveinit.c +# MS will not allow us to distribute an already patched version. + +$(O)moveinit.o: $(SRC)\moveinit.c + $(CC) $(CFLAGSN) $(COBJNAM)$@ $(MVTRCL) $(SRC)\moveinit.c + +$(SRC)\moveinit.c: + @echo. + @echo * CANNOT COMPLETE THE BUILD * + @echo You must manually copy moveinit.c and moveinit.h + @echo from your Microsoft C Compiler directory tree + @echo source/move directory and apply the sys/msdos/moveinit.pat + @echo patch to moveinit.c after doing so. + @echo. +?ENDMSC? + +?BC? +# Overlay initialization routines used by pcmain() at startup to +# determine EMS/XMS memory usage. + +# Comment out the following line if you don't want Borland C++ to check for +# extended memory. +RECOGNIZE_XMS = $(CDEFINE)RECOGNIZE_XMS + +?ENDBC? +?MSC? +# Overlay initialization routines used by MOVEINIT.C +?ENDMSC? + +$(O)ovlinit.o: $(MSYS)\ovlinit.c $(HACK_H) + $(CC) $(CFLAGSN) $(RECOGNIZE_XMS) $(COBJNAM)$@ $(MSYS)\ovlinit.c + +# +# dat dependencies +# + +$(DAT)\data: $(U)utility.tag $(DATABASE) + $(U)makedefs -d + +$(DAT)\rumors: $(U)utility.tag $(DAT)\rumors.tru $(DAT)\rumors.fal + $(U)makedefs -r + +$(DAT)\quest.dat: $(U)utility.tag $(DAT)\quest.txt + $(U)makedefs -q + +$(DAT)\oracles: $(U)utility.tag $(DAT)\oracles.txt + $(U)makedefs -h + +$(DAT)\dungeon: $(U)utility.tag $(DAT)\dungeon.def + $(U)makedefs -e + cd $(DAT) + $(U)dgn_comp dungeon.pdf + cd $(SRC) + +# +# Util Dependencies. +# + +$(O)panic.o: $(U)panic.c $(CONFIG_H) + $(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)panic.c + +$(O)recover.o: $(CONFIG_H) $(U)recover.c + $(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)recover.c + +# +# from win\share +# + +$(O)tiletxt.o: $(WSHR)\tilemap.c $(HACK_H) + $(CC) $(CFLAGSU) $(CDEFINE)TILETEXT $(COBJNAM)$@ $(WSHR)\tilemap.c + +$(O)tiletxt2.o: $(WSHR)\tilemap.c $(HACK_H) + $(CC) $(CFLAGSU) $(CDEFINE)TILETEXT \ + $(CDEFINE)TILE_X=8 $(COBJNAM)$@ $(WSHR)\tilemap.c + +$(O)gifread.o: $(WSHR)\gifread.c $(CONFIG_H) $(INCL)\tile.h + $(CC) $(CFLAGSU) $(COBJNAM)$@ $(WSHR)\gifread.c + +$(O)gifread2.o: $(WSHR)\gifread.c $(CONFIG_H) $(INCL)\tile.h + $(CC) $(CFLAGSU) $(COBJNAM)$@ $(CDEFINE)TILE_X=8 $(WSHR)\gifread.c + +$(O)ppmwrite.o: $(WSHR)\ppmwrite.c $(CONFIG_H) $(INCL)\tile.h + $(CC) $(CFLAGSU) $(COBJNAM)$@ $(WSHR)\ppmwrite.c + +$(O)ppmwrit2.o: $(WSHR)\ppmwrite.c $(CONFIG_H) $(INCL)\tile.h + $(CC) $(CFLAGSU) $(COBJNAM)$@ $(CDEFINE)TILE_X=8 $(WSHR)\ppmwrite.c + +$(O)tiletext.o: $(WSHR)\tiletext.c $(CONFIG_H) $(INCL)\tile.h + $(CC) $(CFLAGSU) $(COBJNAM)$@ $(WSHR)\tiletext.c + +$(O)tiletex2.o: $(WSHR)\tiletext.c $(CONFIG_H) $(INCL)\tile.h + $(CC) $(CFLAGSU) $(CDEFINE)TILE_X=8 $(COBJNAM)$@ $(WSHR)\tiletext.c + +# +# from win\tty +# + +$(O)getline.1: $(PCH1) $(WTTY)\getline.c $(HACK_H) $(WINTTY_H) $(FUNC_TAB_H) + $(CC) $(FLAGU1) ?[CSNAM1]$(COBJNAM)$@ $(WTTY)\getline.c + +$(O)getline.2: $(PCH2) $(WTTY)\getline.c $(HACK_H) $(WINTTY_H) $(FUNC_TAB_H) + $(CC) $(FLAGU2) ?[CSNAM2]$(COBJNAM)$@ $(WTTY)\getline.c + +$(O)termcap.0: $(PCH0) $(WTTY)\termcap.c $(HACK_H) $(WINTTY_H) $(TERMCAP_H) + $(CC) $(FLAGU0) ?[CSNAM0]$(COBJNAM)$@ $(WTTY)\termcap.c + +$(O)termcap.1: $(PCH1) $(WTTY)\termcap.c $(HACK_H) $(WINTTY_H) $(TERMCAP_H) + $(CC) $(FLAGU1) ?[CSNAM1]$(COBJNAM)$@ $(WTTY)\termcap.c + +$(O)termcap.B: $(PCHB) $(WTTY)\termcap.c $(HACK_H) $(WINTTY_H) $(TERMCAP_H) + $(CC) $(FLAGUB) ?[CSNAMB]$(COBJNAM)$@ $(WTTY)\termcap.c + +$(O)topl.1: $(PCH1) $(WTTY)\topl.c $(HACK_H) $(TERMCAP_H) $(WINTTY_H) + $(CC) $(FLAGU1) ?[CSNAM1]$(COBJNAM)$@ $(WTTY)\topl.c + +$(O)topl.2: $(PCH2) $(WTTY)\topl.c $(HACK_H) $(TERMCAP_H) $(WINTTY_H) + $(CC) $(FLAGU2) ?[CSNAM2]$(COBJNAM)$@ $(WTTY)\topl.c + +$(O)topl.B: $(PCHB) $(WTTY)\topl.c $(HACK_H) $(TERMCAP_H) $(WINTTY_H) + $(CC) $(FLAGUB) ?[CSNAMB]$(COBJNAM)$@ $(WTTY)\topl.c + +$(O)wintty.o: $(PCHO) $(CONFIG_H) $(WTTY)\wintty.c $(PATCHLEVEL_H) + $(CC) $(FLAGUO) ?[CSNAMOB]$(COBJNAM)$@ $(WTTY)\wintty.c + +# +# from sys\share +# + +$(O)pcmain.0: $(PCH0) $(HACK_H) $(SYS)\pcmain.c + $(CC) $(FLAGU0) ?[CSNAM0]$(COBJNAM)$@ $(SYS)\pcmain.c + +$(O)pcmain.1: $(PCH1) $(HACK_H) $(SYS)\pcmain.c + $(CC) $(FLAGU1) ?[CSNAM1]$(COBJNAM)$@ $(SYS)\pcmain.c + +$(O)pcmain.B: $(PCHB) $(HACK_H) $(SYS)\pcmain.c + $(CC) $(FLAGUB) ?[CSNAMB]$(COBJNAM)$@ $(SYS)\pcmain.c + +$(O)pcunix.B: $(PCHB) $(SYS)\pcunix.c $(HACK_H) + $(CC) $(FLAGUB) ?[CSNAMB]$(COBJNAM)$@ $(SYS)\pcunix.c + +$(O)tty.o: $(HACK_H) $(WINTTY_H) $(SYS)\pctty.c + $(CC) $(CFLAGSN) ?[CSNAMOB]$(COBJNAM)$@ $(SYS)\pctty.c + +$(O)sys.o: $(HACK_H) $(SYS)\pcsys.c + $(CC) $(CFLAGSN) ?[CSNAMOB]$(COBJNAM)$@ $(SYS)\pcsys.c + +$(O)random.o: $(PCHO) $(HACK_H) $(SYS)\random.c + $(CC) $(FLAGUO) ?[CSNAMOB]$(COBJNAM)$@ $(SYS)\random.c + +# +# from sys\msdos +# + +$(O)msdos.0: $(MSYS)\msdos.c $(HACK_H) $(PCVIDEO_H) +?BC? + $(CC) $(CFLAGSN) $(COVL0) $$($(@B)_0) $(COBJNAM)$@ $(MSYS)\msdos.c +?ENDBC? +?MSC? + $(CC) $(FLAGU0) $(CCSNAM)$(@F) $(COBJNAM)$@ $(MSYS)\msdos.c +?ENDMSC? +?COMMENT? + $(CC) $(CFLAGSN) $(COVL0) ?[CSNAM0]$(COBJNAM)$@ $(MSYS)\vidtxt.c +?ENDCOMMENT? + +$(O)msdos.B: $(MSYS)\msdos.c $(HACK_H) $(PCVIDEO_H) +?BC? + $(CC) $(CFLAGSN) $(COVLB) $$($(@B)_b) $(COBJNAM)$@ $(MSYS)\msdos.c +?ENDBC? +?MSC? + $(CC) $(FLAGUB) $(CCSNAM)$(@F) $(COBJNAM)$@ $(MSYS)\msdos.c +?ENDMSC? +?COMMENT? + $(CC) $(CFLAGSN) $(COVLB) ?[CSNAMB]$(COBJNAM)$@ $(MSYS)\vidtxt.c +?ENDCOMMENT? + +$(O)pctiles.0: $(PCH0) $(MSYS)\pctiles.c $(HACK_H) $(TILE_H) $(PCVIDEO_H) + $(CC) $(FLAGU0) ?[CSNAM0]$(COBJNAM)$@ $(MSYS)\pctiles.c + +$(O)pctiles.B: $(PCHB) $(MSYS)\pctiles.c $(HACK_H) $(TILE_H) $(PCVIDEO_H) + $(CC) $(FLAGUB) ?[CSNAMB]$(COBJNAM)$@ $(MSYS)\pctiles.c + +$(O)sound.o: $(PCH0) $(MSYS)\sound.c $(HACK_H) $(INCL)\portio.h + $(CC) $(FLAGUO) ?[CSNAMOB]$(COBJNAM)$@ $(MSYS)\sound.c + +$(O)pckeys.o: $(PCHO) $(MSYS)\pckeys.c $(HACK_H) $(PCVIDEO_H) + $(CC) $(FLAGUO) ?[CSNAMOB]$(COBJNAM)$@ $(MSYS)\pckeys.c + +$(O)stubvid.o : $(MSYS)\video.c $(HACK_H) + $(CC) $(FLAGUO) $(CDEFINE)STUBVIDEO ?[CSNAMOB]$(COBJNAM)$@ $(MSYS)\video.c + +$(O)video.0: $(PCH0) $(MSYS)\video.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \ + $(TILE_H) + $(CC) $(FLAGU0) ?[CSNAM0]$(COBJNAM)$@ $(MSYS)\video.c + +$(O)video.1: $(PCH1) $(MSYS)\video.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \ + $(TILE_H) + $(CC) $(FLAGU1) ?[CSNAM1]$(COBJNAM)$@ $(MSYS)\video.c + +$(O)video.B: $(PCHB) $(MSYS)\video.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \ + $(TILE_H) + $(CC) $(FLAGUB) ?[CSNAMB]$(COBJNAM)$@ $(MSYS)\video.c + +$(O)vidtxt.0: $(MSYS)\vidtxt.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) +?BC? + $(CC) $(CFLAGSN) $(COVL0) $$($(@B)_0) $(COBJNAM)$@ $(MSYS)\vidtxt.c +?ENDBC? +?MSC? + $(CC) $(FLAGU0) $(CCSNAM)$(@F) $(COBJNAM)$@ $(MSYS)\vidtxt.c +?ENDMSC? +?COMMENT? + $(CC) $(CFLAGSN) $(COVL0) ?[CSNAM0]$(COBJNAM)$@ $(MSYS)\vidtxt.c +?ENDCOMMENT? + +$(O)vidtxt.B: $(MSYS)\vidtxt.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) +?BC? + $(CC) $(CFLAGSN) $(COVLB) $$($(@B)_b) $(COBJNAM)$@ $(MSYS)\vidtxt.c +?ENDBC? +?MSC? + $(CC) $(FLAGUB) $(CCSNAM)$(@F) $(COBJNAM)$@ $(MSYS)\vidtxt.c +?ENDMSC? +?COMMENT? + $(CC) $(CFLAGSN) $(COVLB) ?[CSNAMB]$(COBJNAM)$@ $(MSYS)\vidtxt.c +?ENDCOMMENT? + +$(O)vidvga.0: $(PCH0) $(MSYS)\vidvga.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \ + $(TILE_H) + $(CC) $(FLAGU0) ?[CSNAM0]$(COBJNAM)$@ $(MSYS)\vidvga.c + +$(O)vidvga.1: $(PCH1) $(MSYS)\vidvga.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \ + $(TILE_H) + $(CC) $(FLAGU1) ?[CSNAM0]$(COBJNAM)$@ $(MSYS)\vidvga.c + +$(O)vidvga.2: $(PCH2) $(MSYS)\vidvga.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \ + $(TILE_H) + $(CC) $(FLAGU2) ?[CSNAM0]$(COBJNAM)$@ $(MSYS)\vidvga.c + +$(O)vidvga.B: $(PCHB) $(MSYS)\vidvga.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \ + $(TILE_H) + $(CC) $(FLAGUB) ?[CSNAMB]$(COBJNAM)$@ $(MSYS)\vidvga.c + +# +# from src +# + +$(O)alloc.o: $(SRC)\alloc.c $(CONFIG_H) + $(CC) $(CFLAGSN) ?[CSNAMOB]$(COBJNAM)$@ $(SRC)\alloc.c +$(O)ball.o: $(PCHO) $(SRC)\ball.c $(HACK_H) +$(O)bones.o: $(PCHO) $(SRC)\bones.c $(HACK_H) $(LEV_H) +$(O)decl.o: $(PCHO) $(SRC)\decl.c $(HACK_H) $(QUEST_H) +$(O)detect.o: $(PCHO) $(SRC)\detect.c $(HACK_H) $(ARTIFACT_H) +$(O)dig.o: $(PCHO) $(SRC)\dig.c $(HACK_H) $(EDOG_H) # check dep +$(O)display.o: $(PCHO) $(SRC)\display.c $(HACK_H) +$(O)dlb.o: $(SRC)\dlb.c $(DLB_H) $(HACK_H) + $(CC) $(CFLAGSN) ?[CSNAMOB]$(COBJNAM)$@ $(SRC)\dlb.c +$(O)dokick.o: $(PCHO) $(SRC)\dokick.c $(HACK_H) $(ESHK_H) +$(O)dothrow.o: $(PCHO) $(SRC)\dothrow.c $(HACK_H) +$(O)drawing.o: $(SRC)\drawing.c $(HACK_H) $(TERMCAP_H) + $(CC) $(CFLAGSN) ?[CSNAMOB]$(COBJNAM)$@ $(SRC)\drawing.c +$(O)end.o: $(SRC)\end.c $(HACK_H) $(ESHK_H) $(DLB_H) + $(CC) $(CFLAGSN) ?[CSNAMOB]$(COBJNAM)$@ $(SRC)\end.c +$(O)exper.o: $(PCHO) $(SRC)\exper.c $(HACK_H) +$(O)extralev.o: $(PCHO) $(SRC)\extralev.c $(HACK_H) +$(O)files.o: $(PCHO) $(SRC)\files.c $(HACK_H) $(DLB_H) +$(O)fountain.o: $(PCHO) $(SRC)\fountain.c $(HACK_H) +$(O)minion.o: $(PCHO) $(SRC)\minion.c $(HACK_H) $(EMIN_H) $(EPRI_H) +$(O)mklev.o: $(PCHO) $(SRC)\mklev.c $(HACK_H) +$(O)mkmap.o: $(PCHO) $(SRC)\mkmap.c $(HACK_H) $(SP_LEV_H) +$(O)mkmaze.o: $(PCHO) $(SRC)\mkmaze.c $(HACK_H) $(SP_LEV_H) $(LEV_H) +$(O)monst.o: $(SRC)\monst.c $(CONFIG_H) $(PERMONST_H) $(MONSYM_H) \ + $(ESHK_H) $(EPRI_H) $(COLOR_H) $(ALIGN_H) + $(CC) $(CFLAGSN) ?[CSNAMOB]$(COBJNAM)$@ $(SRC)\monst.c +$(O)monstr.o: $(SRC)\monstr.c $(CONFIG_H) + $(CC) $(CFLAGSN) ?[CSNAMOB]$(COBJNAM)$@ $(SRC)\monstr.c +$(O)mplayer.o: $(PCHO) $(SRC)\mplayer.c $(HACK_H) +$(O)muse.o: $(PCHO) $(SRC)\muse.c $(HACK_H) +$(O)music.o: $(PCHO) $(SRC)\music.c $(HACK_H) +$(O)o_init.o: $(PCHO) $(SRC)\o_init.c $(HACK_H) $(LEV_H) +$(O)objects.o: $(SRC)\objects.c $(CONFIG_H) $(OBJ_H) $(OBJCLASS_H) \ + $(PROP_H) $(COLOR_H) + $(CC) $(CFLAGSN) ?[CSNAMOB]$(COBJNAM)$@ $(SRC)\objects.c +$(O)options.o: $(SRC)\options.c $(HACK_H) $(TERMCAP_H) $(OBJCLASS_H) + $(CC) $(CFLAGSN) ?[CSNAMOB]$(COBJNAM)$@ $(SRC)\options.c +$(O)pager.o: $(SRC)\pager.c $(HACK_H) $(DLB_H) + $(CC) $(CFLAGNO) $(COBJNAM)$@ ?[CSNAMOA]$(SRC)\pager.c +$(O)pickup.o: $(PCHO) $(SRC)\pickup.c $(HACK_H) +$(O)pray.o: $(PCHO) $(SRC)\pray.c $(HACK_H) $(EPRI_H) +$(O)quest.o: $(PCHO) $(SRC)\quest.c $(HACK_H) $(QUEST_H) $(QTEXT_H) +$(O)questpgr.o: $(PCHO) $(SRC)\questpgr.c $(HACK_H) $(QTEXT_H) $(DLB_H) +$(O)rect.o: $(PCHO) $(SRC)\rect.c $(HACK_H) +$(O)region.o: $(PCHO) $(SRC)\region.c $(HACK_H) +$(O)restore.o: $(PCHO) $(SRC)\restore.c $(HACK_H) $(LEV_H) $(TERMCAP_H) \ + $(QUEST_H) +$(O)rip.o: $(PCHO) $(SRC)\rip.c $(HACK_H) +$(O)role.o: $(PCHO) $(SRC)\role.c $(HACK_H) +$(O)rumors.o: $(PCHO) $(SRC)\rumors.c $(HACK_H) $(DLB_H) +$(O)save.o: $(PCHO) $(SRC)\save.c $(HACK_H) $(LEV_H) $(QUEST_H) +$(O)sit.o: $(PCHO) $(SRC)\sit.c $(HACK_H) $(ARTIFACT_H) +$(O)steed.o: $(PCHO) $(SRC)\steed.c $(HACK_H) +$(O)sp_lev.o: $(PCHO) $(SRC)\sp_lev.c $(HACK_H) $(SP_LEV_H) $(DLB_H) +$(O)spell.o: $(PCHO) $(SRC)\spell.c $(HACK_H) +$(O)teleport.o: $(PCHO) $(SRC)\teleport.c $(HACK_H) # check dep +$(O)tile.o: $(PCHO) $(SRC)\tile.c $(HACK_H) +$(O)topten.o: $(PCHO) $(SRC)\topten.c $(HACK_H) $(DLB_H) $(PATCHLEVEL_H) +$(O)u_init.o: $(PCHO) $(SRC)\u_init.c $(HACK_H) +$(O)uhitm.o: $(PCHO) $(SRC)\uhitm.c $(HACK_H) +$(O)version.o: $(PCHO) $(SRC)\version.c $(HACK_H) $(PATCHLEVEL_H) +$(O)vision.o: $(PCHO) $(SRC)\vision.c $(HACK_H) $(VIS_TAB_H) +$(O)vis_tab.o: $(SRC)\vis_tab.c $(HACK_H) $(VIS_TAB_H) + $(CC) $(CFLAGSN) ?[CSNAMOB]$(COBJNAM)$@ $(SRC)\vis_tab.c +$(O)wield.o: $(PCHO) $(SRC)\wield.c $(HACK_H) +$(O)windows.o: $(PCHO) $(SRC)\windows.c $(HACK_H) $(WINTTY_H) +$(O)worm.o: $(PCHO) $(SRC)\worm.c $(HACK_H) $(LEV_H) +$(O)worn.o: $(PCHO) $(SRC)\worn.c $(HACK_H) +$(O)write.o: $(PCHO) $(SRC)\write.c $(HACK_H) + +# +# Overlays +# + +# OVL0 +# + +$(O)allmain.0: $(PCH0) $(SRC)\allmain.c $(HACK_H) +$(O)apply.0: $(PCH0) $(SRC)\apply.c $(HACK_H) $(EDOG_H) +$(O)artifact.0: $(PCH0) $(SRC)\artifact.c $(HACK_H) $(ARTIFACT_H) $(ARTILIST_H) +$(O)attrib.0: $(PCH0) $(SRC)\attrib.c $(HACK_H) +$(O)botl.0: $(PCH0) $(SRC)\botl.c $(HACK_H) +$(O)cmd.0: $(PCH0) $(SRC)\cmd.c $(HACK_H) $(FUNC_TAB_H) +$(O)dbridge.0: $(PCH0) $(SRC)\dbridge.c $(HACK_H) +$(O)do.0: $(PCH0) $(SRC)\do.c $(HACK_H) $(LEV_H) +$(O)do_name.0: $(PCH0) $(SRC)\do_name.c $(HACK_H) +$(O)do_wear.0: $(PCH0) $(SRC)\do_wear.c $(HACK_H) +$(O)dogmove.0: $(PCH0) $(SRC)\dogmove.c $(HACK_H) $(MFNDPOS_H) $(EDOG_H) +$(O)dungeon.0: $(PCH0) $(SRC)\dungeon.c $(HACK_H) $(ALIGN_H) $(DGN_FILE_H) \ + $(DLB_H) +$(O)eat.0: $(PCH0) $(SRC)\eat.c $(HACK_H) +$(O)engrave.0: $(PCH0) $(SRC)\engrave.c $(HACK_H) $(LEV_H) +$(O)explode.0: $(PCH0) $(SRC)\explode.c $(HACK_H) +$(O)hacklib.0: $(PCH0) $(SRC)\hacklib.c $(HACK_H) +$(O)invent.0: $(PCH0) $(SRC)\invent.c $(HACK_H) $(ARTIFACT_H) +$(O)lock.0: $(PCH0) $(SRC)\lock.c $(HACK_H) +$(O)mail.0: $(PCH0) $(SRC)\mail.c $(HACK_H) $(MAIL_H) $(PATCHLEVEL_H) +$(O)makemon.0: $(PCH0) $(SRC)\makemon.c $(HACK_H) $(EPRI_H) $(EMIN_H) +$(O)mcastu.0: $(PCH0) $(SRC)\mcastu.c $(HACK_H) +$(O)mhitm.0: $(PCH0) $(SRC)\mhitm.c $(HACK_H) $(ARTIFACT_H) $(EDOG_H) +$(O)mhitu.0: $(PCH0) $(SRC)\mhitu.c $(HACK_H) $(ARTIFACT_H) $(EDOG_H) +$(O)mkobj.0: $(PCH0) $(SRC)\mkobj.c $(HACK_H) $(ARTIFACT_H) $(PROP_H) +$(O)mkroom.0: $(PCH0) $(SRC)\mkroom.c $(HACK_H) +$(O)mon.0: $(PCH0) $(SRC)\mon.c $(HACK_H) $(MFNDPOS_H) $(EDOG_H) +$(O)mondata.0: $(PCH0) $(SRC)\mondata.c $(HACK_H) $(ESHK_H) $(EPRI_H) +$(O)monmove.0: $(PCH0) $(SRC)\monmove.c $(HACK_H) $(MFNDPOS_H) $(ARTIFACT_H) +$(O)mthrowu.0: $(PCH0) $(SRC)\mthrowu.c $(HACK_H) +$(O)objnam.0: $(PCH0) $(SRC)\objnam.c $(HACK_H) +$(O)polyself.0: $(PCH0) $(SRC)\polyself.c $(HACK_H) +$(O)priest.0: $(PCH0) $(SRC)\priest.c $(HACK_H) $(MFNDPOS_H) $(ESHK_H) \ + $(EPRI_H) $(EMIN_H) +$(O)rnd.0: $(PCH0) $(SRC)\rnd.c $(HACK_H) +$(O)shk.0: $(PCH0) $(SRC)\shk.c $(HACK_H) $(ESHK_H) +$(O)shknam.0: $(PCH0) $(SRC)\shknam.c $(HACK_H) $(ESHK_H) +$(O)sounds.0: $(PCH0) $(SRC)\sounds.c $(HACK_H) $(EDOG_H) +$(O)steal.0: $(PCH0) $(SRC)\steal.c $(HACK_H) +$(O)timeout.0: $(PCH0) $(SRC)\timeout.c $(HACK_H) $(LEV_H) +$(O)track.0: $(PCH0) $(SRC)\track.c $(HACK_H) +$(O)trap.0: $(PCH0) $(SRC)\trap.c $(HACK_H) +$(O)vault.0: $(PCH0) $(SRC)\vault.c $(HACK_H) $(VAULT_H) +$(O)weapon.0: $(PCH0) $(SRC)\weapon.c $(HACK_H) +$(O)were.0: $(PCH0) $(SRC)\were.c $(HACK_H) +$(O)wizard.0: $(PCH0) $(SRC)\wizard.c $(HACK_H) $(QTEXT_H) +$(O)zap.0: $(PCH0) $(SRC)\zap.c $(HACK_H) + +# +# OVL1 +# + +$(O)allmain.1: $(PCH1) $(SRC)\allmain.c $(HACK_H) +$(O)apply.1: $(PCH1) $(SRC)\apply.c $(HACK_H) $(EDOG_H) +$(O)artifact.1: $(PCH1) $(SRC)\artifact.c $(HACK_H) $(ARTIFACT_H) $(ARTILIST_H) +$(O)attrib.1: $(PCH1) $(SRC)\attrib.c $(HACK_H) +$(O)botl.1: $(PCH1) $(SRC)\botl.c $(HACK_H) +$(O)cmd.1: $(PCH1) $(SRC)\cmd.c $(HACK_H) $(FUNC_TAB_H) +$(O)dbridge.1: $(PCH1) $(SRC)\dbridge.c $(HACK_H) +$(O)do.1: $(PCH1) $(SRC)\do.c $(HACK_H) $(LEV_H) +$(O)do_wear.1: $(PCH1) $(SRC)\do_wear.c $(HACK_H) +$(O)dog.1: $(PCH1) $(SRC)\dog.c $(HACK_H) $(EDOG_H) +$(O)dungeon.1: $(PCH1) $(SRC)\dungeon.c $(HACK_H) $(ALIGN_H) $(DGN_FILE_H) $(DLB_H) +$(O)eat.1: $(PCH1) $(SRC)\eat.c $(HACK_H) +$(O)engrave.1: $(PCH1) $(SRC)\engrave.c $(HACK_H) $(LEV_H) +$(O)explode.1: $(PCH1) $(SRC)\explode.c $(HACK_H) +$(O)hack.1: $(PCH1) $(SRC)\hack.c $(HACK_H) +$(O)hacklib.1: $(PCH1) $(SRC)\hacklib.c $(HACK_H) +$(O)invent.1: $(PCH1) $(SRC)\invent.c $(HACK_H) $(ARTIFACT_H) +$(O)makemon.1: $(PCH1) $(SRC)\makemon.c $(HACK_H) $(EPRI_H) $(EMIN_H) +$(O)mhitu.1: $(PCH1) $(SRC)\mhitu.c $(HACK_H) $(ARTIFACT_H) $(EDOG_H) +$(O)mkobj.1: $(PCH1) $(SRC)\mkobj.c $(HACK_H) $(ARTIFACT_H) $(PROP_H) +$(O)mon.1: $(PCH1) $(SRC)\mon.c $(HACK_H) $(MFNDPOS_H) $(EDOG_H) +$(O)mondata.1: $(PCH1) $(SRC)\mondata.c $(HACK_H) $(ESHK_H) $(EPRI_H) +$(O)monmove.1: $(PCH1) $(SRC)\monmove.c $(HACK_H) $(MFNDPOS_H) $(ARTIFACT_H) +$(O)mthrowu.1: $(PCH1) $(SRC)\mthrowu.c $(HACK_H) +$(O)objnam.1: $(PCH1) $(SRC)\objnam.c $(HACK_H) +$(O)polyself.1: $(PCH1) $(SRC)\polyself.c $(HACK_H) +$(O)rnd.1: $(PCH1) $(SRC)\rnd.c $(HACK_H) +$(O)shk.1: $(PCH1) $(SRC)\shk.c $(HACK_H) $(ESHK_H) +$(O)steal.1: $(PCH1) $(SRC)\steal.c $(HACK_H) +$(O)timeout.1: $(PCH1) $(SRC)\timeout.c $(HACK_H) $(LEV_H) +$(O)track.1: $(PCH1) $(SRC)\track.c $(HACK_H) +$(O)trap.1: $(PCH1) $(SRC)\trap.c $(HACK_H) +$(O)weapon.1: $(PCH1) $(SRC)\weapon.c $(HACK_H) +$(O)zap.1: $(PCH1) $(SRC)\zap.c $(HACK_H) + +# +# OVL2 +# + +$(O)attrib.2: $(PCH2) $(SRC)\attrib.c $(HACK_H) +$(O)do.2: $(PCH2) $(SRC)\do.c $(HACK_H) $(LEV_H) +$(O)do_name.2: $(PCH2) $(SRC)\do_name.c $(HACK_H) +$(O)do_wear.2: $(PCH2) $(SRC)\do_wear.c $(HACK_H) +$(O)dog.2: $(PCH2) $(SRC)\dog.c $(HACK_H) $(EDOG_H) +$(O)engrave.2: $(PCH2) $(SRC)\engrave.c $(HACK_H) $(LEV_H) +$(O)hack.2: $(PCH2) $(SRC)\hack.c $(HACK_H) +$(O)hacklib.2: $(PCH2) $(SRC)\hacklib.c $(HACK_H) +$(O)invent.2: $(PCH2) $(SRC)\invent.c $(HACK_H) $(ARTIFACT_H) +$(O)makemon.2: $(PCH2) $(SRC)\makemon.c $(HACK_H) $(EPRI_H) $(EMIN_H) +$(O)mon.2: $(PCH2) $(SRC)\mon.c $(HACK_H) $(MFNDPOS_H) $(EDOG_H) +$(O)mondata.2: $(PCH2) $(SRC)\mondata.c $(HACK_H) $(ESHK_H) $(EPRI_H) +$(O)monmove.2: $(PCH2) $(SRC)\monmove.c $(HACK_H) $(MFNDPOS_H) $(ARTIFACT_H) +$(O)shk.2: $(PCH2) $(SRC)\shk.c $(HACK_H) $(ESHK_H) +$(O)trap.2: $(PCH2) $(SRC)\trap.c $(HACK_H) +$(O)zap.2: $(PCH2) $(SRC)\zap.c $(HACK_H) + +# +# OVL3 +# + +$(O)do.3: $(PCH3) $(SRC)\do.c $(HACK_H) $(LEV_H) +$(O)hack.3: $(PCH3) $(SRC)\hack.c $(HACK_H) +$(O)invent.3: $(PCH3) $(SRC)\invent.c $(HACK_H) $(ARTIFACT_H) +$(O)light.3: $(PCH3) $(SRC)\light.c $(HACK_H) +$(O)shk.3: $(PCH3) $(SRC)\shk.c $(HACK_H) $(ESHK_H) +$(O)trap.3: $(PCH3) $(SRC)\trap.c $(HACK_H) +$(O)zap.3: $(PCH3) $(SRC)\zap.c $(HACK_H) + +# +# OVLB +# + +$(O)allmain.B: $(PCHB) $(SRC)\allmain.c $(HACK_H) +$(O)apply.B: $(PCHB) $(SRC)\apply.c $(HACK_H) $(EDOG_H) +$(O)artifact.B: $(PCHB) $(SRC)\artifact.c $(HACK_H) $(ARTIFACT_H) $(ARTILIST_H) +$(O)attrib.B: $(PCHB) $(SRC)\attrib.c $(HACK_H) +$(O)botl.B: $(PCHB) $(SRC)\botl.c $(HACK_H) +$(O)cmd.B: $(PCHB) $(SRC)\cmd.c $(HACK_H) $(FUNC_TAB_H) +$(O)dbridge.B: $(PCHB) $(SRC)\dbridge.c $(HACK_H) +$(O)do.B: $(PCHB) $(SRC)\do.c $(HACK_H) $(LEV_H) +$(O)do_name.B: $(PCHB) $(SRC)\do_name.c $(HACK_H) +$(O)do_wear.B: $(PCHB) $(SRC)\do_wear.c $(HACK_H) +$(O)dog.B: $(PCHB) $(SRC)\dog.c $(HACK_H) $(EDOG_H) +$(O)dogmove.B: $(PCHB) $(SRC)\dogmove.c $(HACK_H) $(MFNDPOS_H) $(EDOG_H) +$(O)eat.B: $(PCHB) $(SRC)\eat.c $(HACK_H) +$(O)engrave.B: $(PCHB) $(SRC)\engrave.c $(HACK_H) $(LEV_H) +$(O)hack.B: $(PCHB) $(SRC)\hack.c $(HACK_H) +$(O)hacklib.B: $(PCHB) $(SRC)\hacklib.c $(HACK_H) +$(O)invent.B: $(PCHB) $(SRC)\invent.c $(HACK_H) $(ARTIFACT_H) +$(O)lock.B: $(PCHB) $(SRC)\lock.c $(HACK_H) +$(O)mail.B: $(PCHB) $(SRC)\mail.c $(HACK_H) $(MAIL_H) $(PATCHLEVEL_H) +$(O)makemon.B: $(PCHB) $(SRC)\makemon.c $(HACK_H) $(EPRI_H) $(EMIN_H) +$(O)mcastu.B: $(PCHB) $(SRC)\mcastu.c $(HACK_H) +$(O)mhitm.B: $(PCHB) $(SRC)\mhitm.c $(HACK_H) $(ARTIFACT_H) $(EDOG_H) +$(O)mhitu.B: $(PCHB) $(SRC)\mhitu.c $(HACK_H) $(ARTIFACT_H) $(EDOG_H) +$(O)mkobj.B: $(PCHB) $(SRC)\mkobj.c $(HACK_H) $(ARTIFACT_H) $(PROP_H) +$(O)mkroom.B: $(PCHB) $(SRC)\mkroom.c $(HACK_H) +$(O)mon.B: $(PCHB) $(SRC)\mon.c $(HACK_H) $(MFNDPOS_H) $(EDOG_H) +$(O)mondata.B: $(PCHB) $(SRC)\mondata.c $(HACK_H) $(ESHK_H) $(EPRI_H) +$(O)monmove.B: $(PCHB) $(SRC)\monmove.c $(HACK_H) $(MFNDPOS_H) $(ARTIFACT_H) +$(O)mthrowu.B: $(PCHB) $(SRC)\mthrowu.c $(HACK_H) +$(O)objnam.B: $(PCHB) $(SRC)\objnam.c $(HACK_H) +$(O)pline.B: $(SRC)\pline.c $(HACK_H) $(EPRI_H) + $(CC) $(CFLAGSN) ?[CSNAMB]$(COBJNAM)$@ $(SRC)\pline.c +$(O)polyself.B: $(PCHB) $(SRC)\polyself.c $(HACK_H) +$(O)potion.B: $(PCHB) $(SRC)\potion.c $(HACK_H) +$(O)priest.B: $(PCHB) $(SRC)\priest.c $(HACK_H) $(MFNDPOS_H) $(ESHK_H) \ + $(EPRI_H) $(EMIN_H) +$(O)read.B: $(PCHB) $(SRC)\read.c $(HACK_H) +$(O)rnd.B: $(PCHB) $(SRC)\rnd.c $(HACK_H) +$(O)shk.B: $(PCHB) $(SRC)\shk.c $(HACK_H) $(ESHK_H) +$(O)shknam.B: $(PCHB) $(SRC)\shknam.c $(HACK_H) $(ESHK_H) +$(O)sounds.B: $(PCHB) $(SRC)\sounds.c $(HACK_H) $(EDOG_H) +$(O)steal.B: $(PCHB) $(SRC)\steal.c $(HACK_H) +$(O)timeout.B: $(PCHB) $(SRC)\timeout.c $(HACK_H) $(LEV_H) +$(O)track.B: $(PCHB) $(SRC)\track.c $(HACK_H) +$(O)trap.B: $(PCHB) $(SRC)\trap.c $(HACK_H) +$(O)vault.B: $(PCHB) $(SRC)\vault.c $(HACK_H) $(VAULT_H) +$(O)weapon.B: $(PCHB) $(SRC)\weapon.c $(HACK_H) +$(O)were.B: $(PCHB) $(SRC)\were.c $(HACK_H) +$(O)wizard.B: $(PCHB) $(SRC)\wizard.c $(HACK_H) $(QTEXT_H) +$(O)zap.B: $(PCHB) $(SRC)\zap.c $(HACK_H) + +# end of file