932 lines
25 KiB
Scala
932 lines
25 KiB
Scala
# SCCS Id : @(#)Makefile.SC 3.4 1996/10/14
|
|
# Copyright (c) NetHack Development Team 1996.
|
|
#
|
|
# Symantec C compiler V7.2
|
|
# Written for Symantec SMAKE utility
|
|
#
|
|
# NOTE: This Makefile has not been tested for NetHack 3.4.0
|
|
#
|
|
# For questions or comments : nethack-bugs@linc.cis.upenn.edu
|
|
#
|
|
# In addition to your C compiler,
|
|
#
|
|
# if you want to change you will need a
|
|
# files with suffix workalike for
|
|
# .y yacc
|
|
# .l lex
|
|
#
|
|
|
|
# Game Installation Variables
|
|
# NOTE : Make sure GAMEDIR exists before make is started.
|
|
|
|
GAME = nethack
|
|
GAMEDIR = c:\games\nethacks
|
|
|
|
#
|
|
# Directories, gnu utilities like unix style directory specs
|
|
#
|
|
|
|
DUTIL = ../util
|
|
|
|
# But we must use dos directory specs to find src files, so....
|
|
|
|
DAT = ..\dat
|
|
DOC = ..\doc
|
|
INCL = ..\include
|
|
MSYS = ..\sys\msdos
|
|
SRC = ..\src
|
|
SSHR = ..\sys\share
|
|
UTIL = ..\util
|
|
WIN = ..\win\tty
|
|
WSHR = ..\win\share
|
|
|
|
#
|
|
# Executables.
|
|
|
|
CC = sc
|
|
LINK = link
|
|
MAKEBIN = smake
|
|
|
|
# if you have a uudecode program, add its name here
|
|
# otherwise leave blank
|
|
UUDECODE =
|
|
|
|
|
|
#
|
|
# Special libraries and how to link them in.
|
|
|
|
LIBS =
|
|
|
|
# To build a DOS-extended executable uncomment the top line.
|
|
# To build a WIN32 console executable uncomment the second line.
|
|
|
|
TARGENV=DOS_EXTENDED
|
|
#TARGENV=WIN32_CONSOLE
|
|
|
|
#
|
|
# Yacc/Lex ... if you got 'em.
|
|
#
|
|
# If you have yacc/lex or a work-alike set YACC_LEX to Y
|
|
#
|
|
YACC_LEX = N
|
|
|
|
# If YACC_LEX is Y above, set the following to values appropriate for
|
|
# your tools.
|
|
#
|
|
YACC = bison -y
|
|
LEX = flex
|
|
YTABC = y_tab.c
|
|
YTABH = y_tab.h
|
|
LEXYYC = lexyy.c
|
|
|
|
#
|
|
# Uncomment the line below if you want to store all the level files,
|
|
# help files, etc. in a single library file.
|
|
|
|
USE_DLB = N
|
|
|
|
#############################################################################
|
|
#
|
|
# nothing below this line should have to be changed
|
|
#
|
|
|
|
GAMEFILE = $(GAMEDIR)\$(GAME).exe
|
|
|
|
LIBRARIES = $(LIBS) $(TERMLIB)
|
|
|
|
# Changing this conditional block is not recommended
|
|
!IF "$(USE_DLB)"=="Y"
|
|
DLBFLG = -DDLB
|
|
!ELSE
|
|
DLBFLG =
|
|
!ENDIF
|
|
|
|
#######################################
|
|
!IF "$(TARGENV)"=="DOS_EXTENDED"
|
|
|
|
# DOS Extended Executable
|
|
# Flags.
|
|
#
|
|
# Debugging
|
|
CFLAGS = -c -Nc -w- -w2 -w3 -mx -g -I../include $(DLBFLG)
|
|
LFLAGS = /NOI /XREF /DETAILED /DEBUG cx
|
|
# Normal
|
|
#CFLAGS = -c -Nc -w- -w2 -w3 -mx -I../include $(DLBFLG)
|
|
#LFLAGS = /NOI /MAP cx
|
|
|
|
!ELSE
|
|
|
|
# WIN32 Console Executable
|
|
# Flags.
|
|
#
|
|
# Debugging
|
|
#CFLAGS = -c -o -Nc -w- -w2 -w3 -mx -g -gt -I../include $(DLBFLG)
|
|
#LFLAGS = /NOI /XREF /DETAILED /DEBUG cx
|
|
|
|
# Normal
|
|
CFLAGS = -c -o -Nc -w- -w2 -w3 -mx -gt -I../include $(DLBFLG)
|
|
LFLAGS = /NOI /MAP cx
|
|
!ENDIF
|
|
|
|
#
|
|
# Utility Objects.
|
|
#
|
|
|
|
MAKEOBJS = makedefs.o monst.o objects.o
|
|
|
|
SPLEVOBJS = lev_yacc.o lev_$(LEX).o lev_main.o alloc.o \
|
|
monst.o objects.o panic.o \
|
|
drawing.o decl.o
|
|
|
|
DGNCOMPOBJS = dgn_yacc.o dgn_$(LEX).o dgn_main.o alloc.o \
|
|
panic.o
|
|
|
|
RECOVOBJS = recover.o
|
|
|
|
# Tile related object files.
|
|
|
|
TILOBJ = tile.o pctiles.o vidvga.o
|
|
|
|
TEXTIO = tiletext.o tiletxt.o drawing.o decl.o monst.o objects.o
|
|
|
|
TEXTIO2 = tiletex2.o tiletxt2.o drawing.o decl.o monst.o objects.o
|
|
|
|
PLANAR_TIB = NetHack1.tib
|
|
|
|
OVERVIEW_TIB = NetHacko.tib
|
|
|
|
#TILEUTIL = $(TILOBJ) $(UTIL)\tile2bin.exe $(UTIL)\til2bin2.exe \
|
|
# $(PLANAR_TIB) $(OVERVIEW_TIB)
|
|
|
|
TILEUTIL =
|
|
|
|
TILEFILES = $(WSHR)\monsters.txt $(WSHR)\objects.txt $(WSHR)\other.txt
|
|
|
|
TILEFILES2 = $(WSHR)\monthin.txt $(WSHR)\objthin.txt $(WSHR)\oththin.txt
|
|
|
|
GIFREADERS = gifread.o alloc.o panic.o
|
|
|
|
GIFREAD2 = gifread2.o alloc.o panic.o
|
|
|
|
GIFWRITERS = gifwrite.o alloc.o panic.o
|
|
|
|
GIFWRIT2 = gifwrit2.o alloc.o panic.o
|
|
|
|
DLBOBJ = dlb.o
|
|
|
|
# Object files for the game itself.
|
|
|
|
VOBJ01 = allmain.o alloc.o apply.o artifact.o attrib.o
|
|
VOBJ02 = ball.o bones.o botl.o cmd.o dbridge.o
|
|
VOBJ03 = decl.o detect.o display.o do.o do_name.o
|
|
VOBJ04 = do_wear.o dog.o dogmove.o dokick.o dothrow.o
|
|
VOBJ05 = drawing.o dungeon.o eat.o end.o engrave.o
|
|
VOBJ06 = exper.o explode.o extralev.o files.o fountain.o
|
|
VOBJ07 = getline.o hack.o hacklib.o invent.o lock.o
|
|
VOBJ08 = mail.o main.o makemon.o mcastu.o mhitm.o
|
|
VOBJ09 = mhitu.o minion.o mkmap.o mklev.o mkmaze.o
|
|
VOBJ10 = mkobj.o mkroom.o mon.o mondata.o monmove.o
|
|
VOBJ11 = monst.o monstr.o mplayer.o mthrowu.o muse.o
|
|
VOBJ12 = music.o o_init.o objects.o objnam.o options.o
|
|
VOBJ13 = pickup.o pline.o polyself.o potion.o quest.o
|
|
VOBJ14 = questpgr.o pager.o pray.o priest.o read.o
|
|
VOBJ15 = rect.o restore.o rip.o rnd.o role.o
|
|
VOBJ16 = rumors.o save.o shk.o shknam.o sit.o
|
|
VOBJ17 = sounds.o sp_lev.o spell.o steal.o steed.o
|
|
VOBJ18 = termcap.o timeout.o topl.o topten.o track.o
|
|
VOBJ19 = trap.o u_init.o uhitm.o vault.o vision.o
|
|
VOBJ20 = vis_tab.o weapon.o were.o wield.o windows.o
|
|
VOBJ21 = wintty.o wizard.o worm.o worn.o write.o
|
|
VOBJ22 = zap.o light.o dlb.o dig.o teleport.o
|
|
VOBJ23 = random.o
|
|
|
|
SOBJ = msdos.o sound.o sys.o tty.o unix.o video.o \
|
|
vidtxt.o pckeys.o
|
|
|
|
VVOBJ = version.o
|
|
|
|
VOBJ = $(VOBJ01) $(VOBJ02) $(VOBJ03) $(VOBJ04) $(VOBJ05) \
|
|
$(VOBJ06) $(VOBJ07) $(VOBJ08) $(VOBJ09) $(VOBJ10) \
|
|
$(VOBJ11) $(VOBJ12) $(VOBJ13) $(VOBJ14) $(VOBJ15) \
|
|
$(VOBJ16) $(VOBJ17) $(VOBJ18) $(VOBJ19) $(VOBJ20) \
|
|
$(VOBJ21) $(VOBJ22) $(VOBJ23)
|
|
|
|
#ALLOBJ = $(VOBJ) $(SOBJ) $(TILOBJ) $(VVOBJ)
|
|
ALLOBJ = $(VOBJ) $(SOBJ) $(VVOBJ)
|
|
|
|
#
|
|
# Header Objects.
|
|
#
|
|
|
|
DGN_FILE_H = $(INCL)\align.h $(INCL)\dgn_file.h
|
|
DUNGEON_H = $(INCL)\align.h $(INCL)\dungeon.h
|
|
EMIN_H = $(DUNGEON_H) $(INCL)\emin.h
|
|
EPRI_H = $(DUNGEON_H) $(INCL)\align.h $(INCL)\epri.h
|
|
ESHK_H = $(DUNGEON_H) $(INCL)\eshk.h
|
|
MONDATA_H = $(INCL)\align.h $(INCL)\mondata.h
|
|
MONST_H = $(INCL)\align.h $(INCL)\monst.h
|
|
PERMONST_H = $(INCL)\monattk.h $(INCL)\monflag.h $(INCL)\align.h \
|
|
$(INCL)\permonst.h
|
|
RM_H = $(INCL)\align.h $(INCL)\rm.h
|
|
SP_LEV_H = $(INCL)\align.h $(INCL)\sp_lev.h
|
|
VAULT_H = $(DUNGEON_H) $(INCL)\vault.h
|
|
YOUPROP_H = $(PERMONST_H) $(MONDATA_H) $(INCL)\prop.h \
|
|
$(INCL)\pm.h $(INCL)\youprop.h
|
|
YOU_H = $(MONST_H) $(YOUPROP_H) $(INCL)\align.h \
|
|
$(INCL)\attrib.h $(INCL)\you.h
|
|
DISPLAY_H = $(MONDATA_H) $(INCL)\vision.h $(INCL)\display.h
|
|
PCCONF_H = $(INCL)\micro.h $(INCL)\system.h $(INCL)\pcconf.h
|
|
CONFIG_H = $(GLOBAL_H) $(INCL)\tradstdc.h $(INCL)\config1.h \
|
|
$(INCL)\config.h
|
|
DECL_H = $(YOU_H) $(INCL)\spell.h $(INCL)\color.h \
|
|
$(INCL)\obj.h $(INCL)\onames.h $(INCL)\pm.h \
|
|
$(INCL)\decl.h
|
|
GLOBAL_H = $(PCCONF_H) $(INCL)\coord.h $(INCL)\global.h
|
|
HACK_H = $(CONFIG_H) $(DUNGEON_H) $(DECL_H) \
|
|
$(DISPLAY_H) $(INCL)\monsym.h $(INCL)\mkroom.h \
|
|
$(INCL)\objclass.h $(INCL)\trap.h $(INCL)\flag.h \
|
|
$(RM_H) $(INCL)\vision.h $(INCL)\wintype.h \
|
|
$(INCL)\engrave.h $(INCL)\rect.h \
|
|
$(INCL)\trampoli.h $(INCL)\hack.h
|
|
DLB_H = $(INCL)\dlb.h
|
|
TILE_H = $(INCL)\tile.h $(INCL)\pctiles.h
|
|
|
|
!IF "$(USE_DLB)"=="Y"
|
|
DLB = dlb
|
|
DLBOBJS = dlb_main.o dlb.o alloc.o panic.o
|
|
!ELSE
|
|
DLB =
|
|
DLBOBJS =
|
|
!ENDIF
|
|
|
|
#
|
|
# Make Rules.
|
|
#
|
|
|
|
.SUFFIXES : .exe .o .c .y .l
|
|
|
|
.c.o :
|
|
$(CC) $(CFLAGS) -o$@ $<
|
|
|
|
#
|
|
# Primary Targets.
|
|
#
|
|
|
|
# The default target.
|
|
|
|
default : $(GAMEFILE)
|
|
|
|
all : install.tag
|
|
|
|
util : utility.tag
|
|
|
|
install : install.tag
|
|
|
|
utility.tag : $(INCL)\date.h $(INCL)\trap.h $(INCL)\onames.h \
|
|
$(INCL)\pm.h monstr.c vis_tab.c \
|
|
$(UTIL)\lev_comp.exe $(UTIL)\dgn_comp.exe \
|
|
$(UTIL)\recover.exe $(TILEUTIL)
|
|
echo utilities made > utility.tag
|
|
|
|
gifutil : $(UTIL)\gif2txt.exe $(UTIL)\txt2gif.exe
|
|
echo Optional GIF development utilities are up to date.
|
|
|
|
install.tag : dat.tag $(GAMEFILE)
|
|
!IF "$(USE_DLB)"=="Y"
|
|
copy $(DAT)\nhdat $(GAMEDIR)
|
|
copy $(DAT)\license $(GAMEDIR)
|
|
!ELSE
|
|
copy $(DAT)\*. $(GAMEDIR)
|
|
copy $(DAT)\*.dat $(GAMEDIR)
|
|
copy $(DAT)\*.lev $(GAMEDIR)
|
|
copy $(MSYS)\msdoshlp.txt $(GAMEDIR)
|
|
if exist $(GAMEDIR)\makefile. del $(GAMEDIR)\makefile.
|
|
!ENDIF
|
|
copy $(SSHR)\termcap $(GAMEDIR)
|
|
copy *.tib $(GAMEDIR)
|
|
copy $(SSHR)\NetHack.cnf $(GAMEDIR)\defaults.nh
|
|
copy $(UTIL)\recover.exe $(GAMEDIR)
|
|
copy $(DOC)\guideb*.txt $(GAMEDIR)
|
|
echo install done > install.tag
|
|
|
|
# The main target.
|
|
|
|
$(GAMEFILE) : utility.tag $(ALLOBJ)
|
|
$(LINK) /STACK:100000 $(LFLAGS) @<<$(GAME).lnk
|
|
$(ALLOBJ:^ =+^
|
|
)
|
|
$(GAMEFILE)
|
|
$(GAME);
|
|
<<KEEP
|
|
|
|
#
|
|
# Housekeeping.
|
|
#
|
|
|
|
clean :
|
|
del *.o
|
|
del *.map
|
|
del $(UTIL)\dlb_main.exe
|
|
if exist utility.tag del utility.tag
|
|
if exist install.tag del install.tag
|
|
if exist dat.tag del dat.tag
|
|
spotless : clean
|
|
if exist $(GAME).lnk del $(GAME).lnk
|
|
if exist $(UTIL)\makedefs.exe del $(UTIL)\makedefs.exe
|
|
if exist $(UTIL)\lev_comp.exe del $(UTIL)\lev_comp.exe
|
|
if exist $(UTIL)\dgn_comp.exe del $(UTIL)\dgn_comp.exe
|
|
if exist $(UTIL)\recover.exe del $(UTIL)\recover.exe
|
|
if exist $(INCL)\onames.h del $(INCL)\onames.h
|
|
if exist $(INCL)\pm.h del $(INCL)\pm.h
|
|
if exist $(INCL)\vis_tab.h del $(INCL)\vis_tab.h
|
|
if exist $(INCL)\pcvideo.h del $(INCL)\pcvideo.h
|
|
if exist $(INCL)\pctiles.h del $(INCL)\pctiles.h
|
|
if exist $(INCL)\portio.h del $(INCL)\portio.h
|
|
if exist $(INCL)\tile.h del $(INCL)\tile.h
|
|
if exist $(SRC)\monstr.c del $(SRC)\monstr.c
|
|
if exist $(SRC)\vis_tab.c del $(SRC)\vis_tab.c
|
|
if exist $(SRC)\tile.c del $(SRC)\tile.c
|
|
if exist $(INCL)\date.h del $(INCL)\date.h
|
|
if exist $(INCL)\onames.h del $(INCL)\onames.h
|
|
if exist $(INCL)\pm.h del $(INCL)\pm.h
|
|
if exist $(INCL)\vis_tab.h del $(INCL)\vis_tab.h
|
|
if exist *.lnk del *.lnk
|
|
if exist *.map del *.map
|
|
if exist $(UTIL)\tilemap.exe del $(UTIL)\tilemap.exe
|
|
if exist $(UTIL)\tile2bin.exe del $(UTIL)\tile2bin.exe
|
|
if exist $(UTIL)\til2bin2.exe del $(UTIL)\til2bin2.exe
|
|
if exist $(UTIL)\viewtib.exe del $(UTIL)\viewtib.exe
|
|
if exist $(DAT)\data del $(DAT)\data
|
|
if exist $(DAT)\*.lev del $(DAT)\*.lev
|
|
if exist $(DAT)\data del $(DAT)\data
|
|
if exist $(DAT)\dungeon del $(DAT)\dungeon
|
|
if exist $(DAT)\options del $(DAT)\options
|
|
if exist $(DAT)\oracles del $(DAT)\oracles
|
|
if exist $(DAT)\rumors del $(DAT)\rumors
|
|
if exist $(DAT)\quest.dat del $(DAT)\quest.dat
|
|
if exist $(DAT)\nhdat del $(DAT)\nhdat
|
|
if exist $(DAT)\dlb.lst del $(DAT)\dlb.lst
|
|
if exist sp_lev.tag del sp_lev.tag
|
|
if exist $(PLANAR_TIB) del $(PLANAR_TIB)
|
|
if exist $(OVERVIEW_TIB) del $(OVERVIEW_TIB)
|
|
|
|
#
|
|
# Secondary Targets.
|
|
#
|
|
# The following include files depend on makedefs to be created.
|
|
#
|
|
# date.h should be remade every time any of the source or include
|
|
# files is modified.
|
|
|
|
|
|
$(INCL)\date.h : $(UTIL)\makedefs.exe
|
|
$(UTIL)\makedefs -v
|
|
|
|
$(INCL)\onames.h : $(UTIL)\makedefs.exe
|
|
$(UTIL)\makedefs -o
|
|
|
|
$(INCL)\pm.h : $(UTIL)\makedefs.exe
|
|
$(UTIL)\makedefs -p
|
|
|
|
monstr.c : $(UTIL)\makedefs.exe
|
|
$(UTIL)\makedefs -m
|
|
|
|
$(INCL)\vis_tab.h : $(UTIL)\makedefs.exe
|
|
$(UTIL)\makedefs -z
|
|
|
|
vis_tab.c : $(UTIL)\makedefs.exe
|
|
$(UTIL)\makedefs -z
|
|
|
|
#
|
|
# Makedefs Stuff
|
|
#
|
|
|
|
$(UTIL)\makedefs.exe : $(MAKEOBJS)
|
|
$(LINK) $(LFLAGS) $(MAKEOBJS),$@
|
|
|
|
makedefs.o : $(CONFIG_H) $(PERMONST_H) $(INCL)\objclass.h \
|
|
$(INCL)\monsym.h $(INCL)\qtext.h $(UTIL)\makedefs.c
|
|
$(CC) $(CFLAGS) -o$@ $(UTIL)\makedefs.c
|
|
|
|
#
|
|
# Level Compiler Dependencies
|
|
#
|
|
|
|
$(UTIL)\lev_comp.exe : $(SPLEVOBJS)
|
|
$(LINK) $(LFLAGS) $(SPLEVOBJS),$@
|
|
|
|
!IF "$(YACC_LEX)"=="Y"
|
|
|
|
lev_yacc.o : $(HACK_H) $(SP_LEV_H) $(UTIL)\lev_yacc.c
|
|
$(CC) $(CFLAGS) -o$@ $(UTIL)\lev_yacc.c
|
|
|
|
lev_$(LEX).o : $(HACK_H) $(SP_LEV_H) $(INCL)\lev_comp.h \
|
|
lev_$(LEX).c
|
|
$(CC) $(CFLAGS) -o$@ lev_$(LEX).c
|
|
|
|
$(INCL)\lev_comp.h : $(UTIL)\lev_yacc.c
|
|
|
|
$(UTIL)\lev_yacc.c : $(UTIL)\lev_comp.y
|
|
$(YACC) -d $(DUTIL)/lev_comp.y
|
|
copy $(YTABC) $@
|
|
copy $(YTABH) $(INCL)\lev_comp.h
|
|
del $(YTABC)
|
|
del $(YTABH)
|
|
|
|
$(UTIL)\lev_$(LEX).c : $(UTIL)\lev_comp.l
|
|
$(LEX) $(DUTIL)/lev_comp.l
|
|
copy $(LEXYYC) $@
|
|
del $(LEXYYC)
|
|
|
|
!ELSE
|
|
|
|
lev_yacc.o : $(HACK_H) $(SP_LEV_H) $(INCL)\lev_comp.h $(SSHR)\lev_yacc.c
|
|
$(CC) $(CFLAGS) -o$@ $(SSHR)\lev_yacc.c
|
|
|
|
lev_$(LEX).o : $(HACK_H) $(SP_LEV_H) $(INCL)\lev_comp.h $(SSHR)\lev_lex.c
|
|
$(CC) $(CFLAGS) -o$@ $(SSHR)\lev_lex.c
|
|
|
|
$(INCL)\lev_comp.h : $(SSHR)\lev_comp.h
|
|
copy $(SSHR)\lev_comp.h $@
|
|
|
|
$(UTIL)\lev_$(LEX).c : $(SSHR)\lev_lex.c
|
|
copy $(SSHR)\lev_lex.c $@
|
|
|
|
$(UTIL)\lev_yacc.c : $(SSHR)\lev_yacc.c
|
|
copy $(SSHR)\lev_yacc.c $@
|
|
|
|
!ENDIF
|
|
|
|
lev_main.o : $(HACK_H) $(UTIL)\lev_main.c
|
|
$(CC) $(CFLAGS) -o$@ $(UTIL)\lev_main.c
|
|
|
|
#
|
|
# Dungeon Dependencies
|
|
#
|
|
|
|
$(UTIL)\dgn_comp.exe : $(DGNCOMPOBJS)
|
|
$(LINK) $(LFLAGS) $(DGNCOMPOBJS),$@
|
|
|
|
!IF "$(YACC_LEX)"=="Y"
|
|
|
|
dgn_yacc.o : $(HACK_H) $(DGN_FILE_H) $(UTIL)\dgn_yacc.c
|
|
$(CC) $(CFLAGS) -o$@ $(UTIL)\dgn_yacc.c
|
|
|
|
$(UTIL)\dgn_yacc.c : $(UTIL)\dgn_comp.y
|
|
$(YACC) -d $(DUTIL)/dgn_comp.y
|
|
copy $(YTABC) $@
|
|
copy $(YTABH) $(INCL)\dgn_comp.h
|
|
del $(YTABC)
|
|
del $(YTABH)
|
|
|
|
$(UTIL)\dgn_$(LEX).c : $(UTIL)\dgn_comp.l
|
|
$(LEX) $(DUTIL)/dgn_comp.l
|
|
copy $(LEXYYC) $@
|
|
del $(LEXYYC)
|
|
|
|
dgn_$(LEX).o : $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h $(UTIL)\dgn_$(LEX).c
|
|
$(CC) $(CFLAGS) -o$@ $(UTIL)\dgn_$(LEX).c
|
|
|
|
$(INCL)\dgn_comp.h : $(UTIL)\dgn_yacc.c
|
|
|
|
!ELSE
|
|
|
|
dgn_yacc.o : $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h $(SSHR)\dgn_yacc.c
|
|
$(CC) $(CFLAGS) -I$(SSHR) -o$@ $(SSHR)\dgn_yacc.c
|
|
|
|
dgn_$(LEX).o : $(HACK_H) $(DGN_FILE_H) $(SSHR)\dgn_comp.h $(SSHR)\dgn_lex.c
|
|
$(CC) $(CFLAGS) -o$@ $(SSHR)\dgn_lex.c
|
|
|
|
$(INCL)\dgn_comp.h : $(SSHR)\dgn_comp.h
|
|
copy $(SSHR)\dgn_comp.h $@
|
|
|
|
!ENDIF
|
|
|
|
dgn_main.o : $(HACK_H) $(UTIL)\dgn_main.c
|
|
$(CC) $(CFLAGS) -o$@ $(UTIL)\dgn_main.c
|
|
|
|
#
|
|
# Recover Utility
|
|
#
|
|
|
|
$(UTIL)\recover.exe : $(RECOVOBJS)
|
|
$(LINK) $(LFLAGS) recover.o,$@
|
|
|
|
recover.o : $(CONFIG_H) $(UTIL)\recover.c
|
|
$(CC) $(CFLAGS) -o$@ $(UTIL)\recover.c
|
|
|
|
|
|
#
|
|
# Header file moves required for tile support
|
|
#
|
|
|
|
$(INCL)\tile.h : $(WSHR)\tile.h
|
|
copy $(WSHR)\tile.h $@
|
|
|
|
$(INCL)\pctiles.h : $(MSYS)\pctiles.h
|
|
copy $(MSYS)\pctiles.h $@
|
|
|
|
$(INCL)\pcvideo.h : $(MSYS)\pcvideo.h
|
|
copy $(MSYS)\pcvideo.h $@
|
|
|
|
$(INCL)\portio.h : $(MSYS)\portio.h
|
|
copy $(MSYS)\portio.h $@
|
|
|
|
#
|
|
# Tile Mapping
|
|
#
|
|
tile.o : $(HACK_H) $(TILE_H) tile.c
|
|
$(CC) $(CFLAGS) -o$@ tile.c
|
|
|
|
tile.c : $(UTIL)\tilemap.exe
|
|
$(UTIL)\tilemap
|
|
@echo A new $@ has been created
|
|
|
|
$(UTIL)\tilemap.exe : tilemap.o
|
|
$(LINK) $(LFLAGS) tilemap.o,$@
|
|
|
|
tilemap.o : $(WSHR)\tilemap.c $(HACK_H) $(TILE_H)
|
|
$(CC) $(CFLAGS) -o$@ $(WSHR)\tilemap.c
|
|
|
|
#
|
|
# Tile Utilities
|
|
#
|
|
#
|
|
# Required for tile support
|
|
#
|
|
|
|
NetHack1.tib : $(TILEFILES) $(UTIL)\tile2bin.exe
|
|
@echo Creating binary tile files (this may take some time)
|
|
$(UTIL)\tile2bin
|
|
|
|
NetHacko.tib : thintile.tag $(TILEFILES2) $(UTIL)\til2bin2.exe
|
|
@echo Creating overview binary tile files (this may take some time)
|
|
$(UTIL)\til2bin2
|
|
|
|
$(UTIL)\tile2bin.exe : tile2bin.o $(TEXTIO)
|
|
$(LINK) $(LFLAGS) tile2bin.o $(TEXTIO),$@
|
|
|
|
$(UTIL)\til2bin2.exe : til2bin2.o $(TEXTIO2)
|
|
$(LINK) $(LFLAGS) til2bin2.o $(TEXTIO2),$@
|
|
|
|
$(UTIL)\thintile.exe : thintile.o
|
|
$(LINK) $(LFLAGS) thintile.o,$@
|
|
|
|
thintile.o : $(HACK_H) $(INCL)\tile.h $(WSHR)\thintile.c
|
|
$(CC) $(CFLAGS) -o$@ $(WSHR)\thintile.c
|
|
|
|
thintile.tag : $(UTIL)\thintile.exe $(TILEFILES)
|
|
$(UTIL)\thintile
|
|
@echo thintiles created >thintile.tag
|
|
|
|
tile2bin.o : $(HACK_H) $(INCL)\tile.h $(INCL)\pctiles.h $(INCL)\pcvideo.h \
|
|
$(MSYS)\tile2bin.c
|
|
$(CC) $(CFLAGS) -o$@ $(MSYS)\tile2bin.c
|
|
|
|
til2bin2.o : $(HACK_H) $(INCL)\tile.h $(INCL)\pctiles.h $(INCL)\pcvideo.h \
|
|
$(MSYS)\tile2bin.c
|
|
$(CC) $(CFLAGS) -DTILE_X=8 -DOVERVIEW_FILE -o$@ $(MSYS)\tile2bin.c
|
|
|
|
tiletext.o : $(CONFIG_H) $(INCL)\tile.h $(WSHR)\tiletext.c
|
|
$(CC) $(CFLAGS) -o$@ $(WSHR)\tiletext.c
|
|
|
|
tiletex2.o : $(CONFIG_H) $(INCL)\tile.h $(WSHR)\tiletext.c
|
|
$(CC) $(CFLAGS) -DTILE_X=8 -o$@ $(WSHR)\tiletext.c
|
|
|
|
tiletxt.o : $(CONFIG_H) $(INCL)\tile.h $(WSHR)\tilemap.c
|
|
$(CC) $(CFLAGS) -DTILETEXT -o$@ $(WSHR)\tilemap.c
|
|
|
|
tiletxt2.o : $(CONFIG_H) $(INCL)\tile.h $(WSHR)\tilemap.c
|
|
$(CC) $(CFLAGS) -DTILETEXT -DTILE_X=8 -o$@ $(WSHR)\tilemap.c
|
|
#
|
|
# Optional GIF Utilities (for development)
|
|
#
|
|
|
|
$(UTIL)\gif2txt.exe : $(GIFREADERS) $(TEXTIO)
|
|
$(LINK) $(LFLAGS) $(GIFREADERS) $(TEXTIO)
|
|
|
|
$(UTIL)\gif2txt2.exe : $(GIFREAD2) $(TEXTIO2)
|
|
$(LINK) $(LFLAGS) $(GIFREAD2) $(TEXTIO2)
|
|
|
|
$(UTIL)\txt2gif.exe : $(GIFWRITERS) $(TEXTIO)
|
|
$(LINK) $(LFLAGS) $(GIFWRITERS) $(TEXTIO)
|
|
|
|
$(UTIL)\txt2gif2.exe : $(GIFWRIT2) $(TEXTIO2)
|
|
$(LINK) $(LFLAGS) $(GIFWRIT2) $(TEXTIO2)
|
|
|
|
gifread.o : $(CONFIG_H) $(INCL)\tile.h $(WSHR)\gifread.c
|
|
$(CC) $(CFLAGS) -o$@ $(WSHR)\gifread.c
|
|
|
|
gifread2.o : $(CONFIG_H) $(INCL)\tile.h gifread.c
|
|
$(CC) $(CFLAGS) -DTILE_X=8 -o$@ $(WSHR)\gifread.c
|
|
|
|
gifwrite.o : $(CONFIG_H) $(INCL)\tile.h $(WSHR)\gifwrite.c
|
|
$(CC) $(CFLAGS) -o$@ $(WSHR)\gifwrite.c
|
|
|
|
gifwrit2.o : $(CONFIG_H) $(INCL)\tile.h $(WSHR)\gifwrite.c
|
|
$(CC) $(CFLAGS) -DTILE_X=8 -o$@ $(WSHR)\gifwrite.c
|
|
|
|
#
|
|
# Optional tile viewer (development sources only)
|
|
#
|
|
|
|
$(UTIL)\viewtib.exe : viewtib.o
|
|
$(LINK) $(LFLAGS) viewtib.o,$@
|
|
|
|
viewtib.o : $(MSYS)\viewtib.c
|
|
$(CC) $(CFLAGS) -o$@ $(MSYS)\viewtib.c
|
|
|
|
#
|
|
# Other Util Dependencies.
|
|
#
|
|
|
|
alloc.o : $(CONFIG_H) alloc.c
|
|
$(CC) $(CFLAGS) -o$@ alloc.c
|
|
|
|
drawing.o : $(CONFIG_H) drawing.c
|
|
$(CC) $(CFLAGS) -o$@ drawing.c
|
|
|
|
decl.o : $(CONFIG_H) decl.c
|
|
$(CC) $(CFLAGS) -o$@ decl.c
|
|
|
|
monst.o : $(CONFIG_H) $(PERMONST_H) $(ESHK_H) \
|
|
$(EPRI_H) $(VAULT_H) $(INCL)\monsym.h \
|
|
$(INCL)\color.h monst.c
|
|
$(CC) $(CFLAGS) -o$@ monst.c
|
|
|
|
objects.o : $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h \
|
|
$(INCL)\prop.h $(INCL)\color.h objects.c
|
|
$(CC) $(CFLAGS) -o$@ objects.c
|
|
|
|
panic.o : $(CONFIG_H) $(UTIL)\panic.c
|
|
$(CC) $(CFLAGS) -o$@ $(UTIL)\panic.c
|
|
|
|
|
|
|
|
|
|
#
|
|
# make data.base an 8.3 filename to prevent an nmake warning
|
|
#
|
|
|
|
DATABASE = $(DAT)\data.bas
|
|
|
|
|
|
dat.tag : $(DAT)\data $(DAT)\rumors $(DAT)\dungeon \
|
|
$(DAT)\oracles $(DAT)\quest.dat sp_lev.tag $(DLB)
|
|
@echo dat done >dat.tag
|
|
|
|
$(DAT)\data : utility.tag $(DATABASE)
|
|
$(UTIL)\makedefs -d
|
|
|
|
$(DAT)\rumors : utility.tag $(DAT)\rumors.tru $(DAT)\rumors.fal
|
|
$(UTIL)\makedefs -r
|
|
|
|
$(DAT)\quest.dat : utility.tag $(DAT)\quest.txt
|
|
$(UTIL)\makedefs -q
|
|
|
|
$(DAT)\oracles : utility.tag $(DAT)\oracles.txt
|
|
$(UTIL)\makedefs -h
|
|
|
|
sp_lev.tag : utility.tag $(DAT)\bigroom.des $(DAT)\castle.des \
|
|
$(DAT)\endgame.des $(DAT)\gehennom.des $(DAT)\knox.des \
|
|
$(DAT)\medusa.des $(DAT)\oracle.des $(DAT)\tower.des \
|
|
$(DAT)\yendor.des $(DAT)\arch.des $(DAT)\barb.des \
|
|
$(DAT)\caveman.des $(DAT)\healer.des $(DAT)\knight.des \
|
|
$(DAT)\monk.des $(DAT)\priest.des $(DAT)\ranger.des \
|
|
$(DAT)\rogue.des $(DAT)\samurai.des $(DAT)\tourist.des \
|
|
$(DAT)\valkyrie.des $(DAT)\wizard.des
|
|
cd $(DAT)
|
|
$(UTIL)\lev_comp bigroom.des
|
|
$(UTIL)\lev_comp castle.des
|
|
$(UTIL)\lev_comp endgame.des
|
|
$(UTIL)\lev_comp gehennom.des
|
|
$(UTIL)\lev_comp knox.des
|
|
$(UTIL)\lev_comp mines.des
|
|
$(UTIL)\lev_comp medusa.des
|
|
$(UTIL)\lev_comp oracle.des
|
|
$(UTIL)\lev_comp sokoban.des
|
|
$(UTIL)\lev_comp tower.des
|
|
$(UTIL)\lev_comp yendor.des
|
|
$(UTIL)\lev_comp arch.des
|
|
$(UTIL)\lev_comp barb.des
|
|
$(UTIL)\lev_comp caveman.des
|
|
$(UTIL)\lev_comp healer.des
|
|
$(UTIL)\lev_comp knight.des
|
|
$(UTIL)\lev_comp monk.des
|
|
$(UTIL)\lev_comp priest.des
|
|
$(UTIL)\lev_comp ranger.des
|
|
$(UTIL)\lev_comp rogue.des
|
|
$(UTIL)\lev_comp samurai.des
|
|
$(UTIL)\lev_comp tourist.des
|
|
$(UTIL)\lev_comp valkyrie.des
|
|
$(UTIL)\lev_comp wizard.des
|
|
cd $(SRC)
|
|
echo sp_levs done > sp_lev.tag
|
|
|
|
$(DAT)\dungeon : utility.tag $(DAT)\dungeon.def
|
|
$(UTIL)\makedefs -e
|
|
cd $(DAT)
|
|
$(UTIL)\dgn_comp dungeon.pdf
|
|
cd $(SRC)
|
|
#
|
|
# DLB stuff
|
|
#
|
|
dlb : $(UTIL)\dlb_main.exe
|
|
cd $(DAT)
|
|
copy $(MSYS)\msdoshlp.txt .
|
|
@echo data >dlb.lst
|
|
@echo dungeon >>dlb.lst
|
|
@echo oracles >>dlb.lst
|
|
@echo options >>dlb.lst
|
|
@echo quest.dat >>dlb.lst
|
|
@echo rumors >>dlb.lst
|
|
@echo help >>dlb.lst
|
|
@echo hh >>dlb.lst
|
|
@echo cmdhelp >>dlb.lst
|
|
@echo history >>dlb.lst
|
|
@echo opthelp >>dlb.lst
|
|
@echo wizhelp >>dlb.lst
|
|
@echo license >>dlb.lst
|
|
@echo msdoshlp.txt >>dlb.lst
|
|
for %%N in (*.lev) do echo %%N >>dlb.lst
|
|
$(UTIL)\dlb_main cvIf dlb.lst nhdat
|
|
cd $(SRC)
|
|
|
|
$(UTIL)\dlb_main.exe : $(DLBOBJS)
|
|
$(LINK) /STACK:65000 $(LFLAGS) $(DLBOBJS),$@
|
|
|
|
dlb_main.o : $(UTIL)\dlb_main.c $(INCL)\config.h $(DLB_H)
|
|
$(CC) $(CFLAGS) -odlb_main.o $(UTIL)\dlb_main.c
|
|
|
|
# Game Dependencies
|
|
# Some files require movement as Gnu make doesn't like unix style '/'
|
|
# directory specs and djgcc doesn't like dos style directory specs.
|
|
# So we get to copy stuff where we might need it. Fun eh?
|
|
|
|
# sys/share
|
|
main.o : $(HACK_H) $(DLB_H) $(SSHR)\pcmain.c
|
|
$(CC) $(CFLAGS) -o$@ $(SSHR)\pcmain.c
|
|
|
|
tty.o : $(HACK_H) $(INCL)\wintty.h $(SSHR)\pctty.c
|
|
$(CC) $(CFLAGS) -o$@ $(SSHR)\pctty.c
|
|
|
|
unix.o : $(HACK_H) $(SSHR)\pcunix.c
|
|
$(CC) $(CFLAGS) -o$@ $(SSHR)\pcunix.c
|
|
|
|
sys.o : $(HACK_H) $(SSHR)\pcsys.c
|
|
$(CC) $(CFLAGS) -o$@ $(SSHR)\pcsys.c
|
|
|
|
random.o : $(HACK_H) $(SSHR)\random.c
|
|
$(CC) $(CFLAGS) -o$@ $(SSHR)\random.c
|
|
|
|
# sys/msdos
|
|
msdos.o : $(HACK_H) $(MSYS)\msdos.c
|
|
$(CC) $(CFLAGS) -o$@ $(MSYS)\msdos.c
|
|
|
|
pckeys.o : $(HACK_H) $(MSYS)\pckeys.c
|
|
$(CC) $(CFLAGS) -o$@ $(MSYS)\pckeys.c
|
|
|
|
pctiles.o : $(HACK_H) $(MSYS)\pctiles.c $(INCL)\portio.h
|
|
$(CC) $(CFLAGS) -o$@ $(MSYS)\pctiles.c
|
|
|
|
sound.o : $(HACK_H) $(MSYS)\sound.c $(INCL)\portio.h
|
|
$(CC) $(CFLAGS) -o$@ $(MSYS)\sound.c
|
|
|
|
video.o : $(HACK_H) $(INCL)\pcvideo.h $(INCL)\portio.h $(MSYS)\video.c
|
|
$(CC) $(CFLAGS) -o$@ $(MSYS)\video.c
|
|
|
|
vidvga.o : $(HACK_H) $(INCL)\pcvideo.h $(INCL)\portio.h $(TILE_H) \
|
|
$(MSYS)\vidvga.c
|
|
$(CC) $(CFLAGS) -e -o$@ $(MSYS)\vidvga.c
|
|
|
|
vidtxt.o : $(HACK_H) $(INCL)\pcvideo.h $(INCL)\portio.h $(TILE_H) \
|
|
$(MSYS)\vidtxt.c
|
|
$(CC) $(CFLAGS) -o$@ $(MSYS)\vidtxt.c
|
|
|
|
|
|
|
|
# win/tty
|
|
getline.o : $(HACK_H) $(INCL)\wintty.h $(WIN)\getline.c
|
|
$(CC) $(CFLAGS) -o$@ $(WIN)\getline.c
|
|
|
|
termcap.o : $(CONFIG_H) $(WIN)\termcap.c
|
|
$(CC) $(CFLAGS) -o$@ $(WIN)\termcap.c
|
|
|
|
topl.o : $(CONFIG_H) $(WIN)\topl.c
|
|
$(CC) $(CFLAGS) -o$@ $(WIN)\topl.c
|
|
|
|
wintty.o : $(CONFIG_H) $(WIN)\wintty.c
|
|
$(CC) $(CFLAGS) -o$@ $(WIN)\wintty.c
|
|
|
|
# src dependencies
|
|
allmain.o : $(HACK_H)
|
|
alloc.o : $(CONFIG_H)
|
|
apply.o : $(HACK_H) $(INCL)\edog.h
|
|
artifact.o : $(HACK_H) $(INCL)\artifact.h $(INCL)\artilist.h
|
|
attrib.o : $(HACK_H) $(INCL)\artifact.h
|
|
ball.o : $(HACK_H)
|
|
bones.o : $(HACK_H) $(INCL)\lev.h
|
|
botl.o : $(HACK_H)
|
|
cmd.o : $(HACK_H) $(INCL)\func_tab.h
|
|
dbridge.o : $(HACK_H)
|
|
decl.o : $(HACK_H) $(INCL)\quest.h
|
|
detect.o : $(HACK_H) $(INCL)\artifact.h
|
|
dig.o : $(HACK_H)
|
|
display.o : $(HACK_H)
|
|
dlb.o : $(HACK_H) $(DLB_H)
|
|
do.o : $(HACK_H) $(INCL)\lev.h
|
|
do_name.o : $(HACK_H)
|
|
do_wear.o : $(HACK_H)
|
|
dog.o : $(HACK_H) $(INCL)\edog.h
|
|
dogmove.o : $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
|
|
dokick.o : $(HACK_H) $(ESHK_H)
|
|
dothrow.o : $(HACK_H)
|
|
drawing.o : $(HACK_H) $(INCL)\tcap.h
|
|
dungeon.o : $(HACK_H) $(INCL)\dgn_file.h
|
|
eat.o : $(HACK_H)
|
|
end.o : $(HACK_H) $(ESHK_H)
|
|
engrave.o : $(HACK_H) $(INCL)\lev.h
|
|
exper.o : $(HACK_H)
|
|
explode.o : $(HACK_H)
|
|
extralev.o : $(HACK_H)
|
|
files.o : $(HACK_H)
|
|
fountain.o : $(HACK_H)
|
|
hack.o : $(HACK_H)
|
|
hacklib.o : $(HACK_H)
|
|
invent.o : $(HACK_H) $(INCL)\artifact.h
|
|
light.o : $(HACK_H) $(INCL)\lev.h
|
|
lock.o : $(HACK_H)
|
|
mail.o : $(HACK_H) $(INCL)\mail.h
|
|
makemon.o : $(HACK_H) $(EPRI_H) $(EMIN_H)
|
|
mcastu.o : $(HACK_H)
|
|
mhitm.o : $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h
|
|
mhitu.o : $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h
|
|
minion.o : $(HACK_H) $(EMIN_H) $(EPRI_H)
|
|
mklev.o : $(HACK_H)
|
|
mkmap.o : $(HACK_H) $(INCL)\sp_lev.h
|
|
mkmaze.o : $(HACK_H) $(INCL)\sp_lev.h
|
|
mkobj.o : $(HACK_H) $(INCL)\artifact.h $(INCL)\prop.h
|
|
mkroom.o : $(HACK_H)
|
|
mon.o : $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
|
|
mondata.o : $(HACK_H) $(ESHK_H) $(EPRI_H)
|
|
monmove.o : $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
|
|
monst.o : $(CONFIG_H) $(PERM_H) $(ESHK_H) $(EPRI_H) \
|
|
$(INCL)\color.h $(INCL)\monsym.h $(INCL)\vault.h
|
|
mplayer.o : $(HACK_H)
|
|
mthrowu.o : $(HACK_H)
|
|
muse.o : $(HACK_H)
|
|
music.o : $(HACK_H)
|
|
o_init.o : $(HACK_H)
|
|
objects.o : $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h \
|
|
$(INCL)\prop.h $(INCL)\color.h
|
|
objnam.o : $(HACK_H)
|
|
options.o : $(CONFIG_H) $(HACK_H) $(INCL)\objclass.h $(INCL)\flag.h \
|
|
$(INCL)\tcap.h
|
|
pager.o : $(HACK_H)
|
|
pickup.o : $(HACK_H)
|
|
pline.o : $(HACK_H) $(EPRI_H)
|
|
polyself.o : $(HACK_H)
|
|
potion.o : $(HACK_H)
|
|
pray.o : $(HACK_H) $(EPRI_H)
|
|
priest.o : $(HACK_H) $(INCL)\mfndpos.h $(ESHK_H) $(EPRI_H) $(EMIN_H)
|
|
quest.o : $(HACK_H) $(INCL)\quest.h $(INCL)\qtext.h
|
|
questpgr.o : $(HACK_H) $(INCL)\qtext.h
|
|
read.o : $(HACK_H)
|
|
region.o : $(HACK_H)
|
|
rect.o : $(HACK_H)
|
|
restore.o : $(HACK_H) $(INCL)\lev.h $(INCL)\tcap.h $(INCL)\quest.h
|
|
rip.o : $(HACK_H)
|
|
rnd.o : $(HACK_H)
|
|
role.o : $(HACK_H)
|
|
rumors.o : $(HACK_H)
|
|
save.o : $(HACK_H) $(INCL)\lev.h $(INCL)\quest.h
|
|
shk.o : $(HACK_H) $(ESHK_H)
|
|
shknam.o : $(HACK_H) $(ESHK_H)
|
|
sit.o : $(HACK_H) $(INCL)\artifact.h
|
|
sounds.o : $(HACK_H) $(INCL)\edog.h
|
|
sp_lev.o : $(HACK_H) $(INCL)\sp_lev.h $(INCL)\align.h $(INCL)\rect.h
|
|
spell.o : $(HACK_H)
|
|
steal.o : $(HACK_H)
|
|
steed.o : $(HACK_H)
|
|
teleport.o : $(HACK_H)
|
|
timeout.o : $(HACK_H)
|
|
topten.o : $(HACK_H)
|
|
track.o : $(HACK_H)
|
|
trap.o : $(HACK_H)
|
|
u_init.o : $(HACK_H)
|
|
uhitm.o : $(HACK_H)
|
|
vault.o : $(HACK_H) $(INCL)\vault.h
|
|
version.o : $(HACK_H) $(INCL)\patchlev.h
|
|
vision.o : $(HACK_H) $(INCL)\vis_tab.h
|
|
weapon.o : $(HACK_H)
|
|
were.o : $(HACK_H)
|
|
wield.o : $(HACK_H)
|
|
windows.o : $(HACK_H) $(INCL)\wintty.h
|
|
wizard.o : $(HACK_H) $(INCL)\qtext.h
|
|
worm.o : $(HACK_H) $(INCL)\lev.h
|
|
worn.o : $(HACK_H)
|
|
write.o : $(HACK_H)
|
|
zap.o : $(HACK_H)
|
|
|
|
# end of file
|