Use lua for special level files
Game is playable, and should compile on linux and Windows. Assumes you have a lua 5.3 library available. Removes level compiler and associated files. Replaces special level des-files with lua scripts. Exposes some NetHack internals to lua: - des-table with commands to create special levels - nh-table with NetHack core commands - nhc-table with some constants - u-table with some player-specific data (u-struct) - selection userdata Adds some rudimentary tests. Adds new extended command #wizloadlua to run a specific script, and #wizloaddes to run a specific level-creation script. nhlib.lua is loaded for every lua script. Download and untar lua: mkdir lib cd lib curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz tar zxf lua-5.3.5.tar.gz Then make nethack normally.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# NetHack 3.6 Makefile.GCC $NHDT-Date: 1519600525 2018/02/25 23:15:25 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.34 $
|
||||
# Copyright (c) NetHack PC Development Team 1996-2006.
|
||||
# Copyright (c) NetHack PC Development Team 1996-2019.
|
||||
# PC NetHack 3.6 Makefile for djgpp V2
|
||||
#
|
||||
# Gnu gcc compiler for msdos (djgpp)
|
||||
@@ -25,6 +25,28 @@ GAME = nethack
|
||||
# The GNU Make has a problem if you include a drive spec below (unfortunately).
|
||||
GAMEDIR =../binary
|
||||
|
||||
# Optional PDCurses support
|
||||
# Uncomment these and set them appropriately if you want to
|
||||
# include curses port support alongside TTY support in your
|
||||
# NetHack.exe binary.
|
||||
#
|
||||
# You'll have to set PDCURSES_H to the correct location of the
|
||||
# PDCurses header (.h) files and PDCURSES_C to the location
|
||||
# of your PDCurses C files which must already be resident on
|
||||
# your machine.
|
||||
#
|
||||
ADD_CURSES=Y
|
||||
PDCURSES_TOP=../../pdcurses
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Location of LUA
|
||||
ADD_LUA=Y
|
||||
LUATOP=../../lua-535
|
||||
|
||||
#
|
||||
#==============================================================================
|
||||
# This marks the end of the BUILD DECISIONS section.
|
||||
#==============================================================================
|
||||
#
|
||||
# Directories, gcc likes unix style directory specs
|
||||
#
|
||||
@@ -38,6 +60,7 @@ SRC = ../src
|
||||
SSHR = ../sys/share
|
||||
UTIL = ../util
|
||||
WIN = ../win/tty
|
||||
WCURSES = ../win/curses
|
||||
WSHR = ../win/share
|
||||
|
||||
#
|
||||
@@ -67,7 +90,8 @@ LIBRARIES = $(LIBS) $(TERMLIB)
|
||||
# If you have yacc/lex or a work-alike set YACC_LEX to Y
|
||||
#
|
||||
YACC_LEX = N
|
||||
ifeq ($(YACC_LEX),Y)
|
||||
|
||||
ifeq "$(YACC_LEX)" "Y"
|
||||
DO_YACC = YACC_ACT
|
||||
DO_LEX = LEX_ACT
|
||||
endif
|
||||
@@ -138,97 +162,39 @@ SUPPRESS_GRAPHICS =
|
||||
GAMEFILE = $(GAMEDIR)/$(GAME).exe
|
||||
|
||||
# Changing this conditional block is not recommended
|
||||
ifeq ($(USE_DLB),Y)
|
||||
ifeq "$(USE_DLB)" "Y"
|
||||
DLBFLG = -DDLB
|
||||
else
|
||||
DLBFLG =
|
||||
endif
|
||||
|
||||
#
|
||||
# Flags.
|
||||
#
|
||||
ifeq ($(SUPPRESS_GRAPHICS),Y)
|
||||
TERMLIB =
|
||||
# Build NetHack suitable for blind players
|
||||
|
||||
# Debugging
|
||||
#cflags = -pg -c -I../include $(DLBFLG) -DSUPPRESS_GRAPHICS
|
||||
#LFLAGS = -pg
|
||||
|
||||
cflags = -c -O -I../include $(DLBFLG) -DSUPPRESS_GRAPHICS
|
||||
LFLAGS =
|
||||
|
||||
else
|
||||
|
||||
# Debugging
|
||||
#cflags = -g -c -I../include $(DLBFLG) -DUSE_TILES
|
||||
#LFLAGS = -g
|
||||
|
||||
# Normal
|
||||
cflags = -c -O -I../include $(DLBFLG) -DUSE_TILES
|
||||
LFLAGS =
|
||||
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 : $(SSHR)/%.c
|
||||
$(CC) $(cflags) -o$@ $<
|
||||
|
||||
#==========================================
|
||||
# Rules for files in sys/msdos
|
||||
#==========================================
|
||||
|
||||
$(OBJ)/%.o : $(MSYS)/%.c
|
||||
$(CC) $(cflags) -I../sys/msdos -o$@ $<
|
||||
|
||||
#==========================================
|
||||
# Rules for files in util
|
||||
#==========================================
|
||||
|
||||
$(OBJ)/%.o : $(UTIL)/%.c
|
||||
$(CC) $(cflags) -o$@ $<
|
||||
|
||||
#==========================================
|
||||
# Rules for files in win/share
|
||||
#==========================================
|
||||
|
||||
$(OBJ)/%.o : $(WSHR)/%.c
|
||||
$(CC) $(cflags) -I../win/share -o$@ $<
|
||||
|
||||
#{$(WSHR)}.txt{$(DAT)}.txt:
|
||||
# copy $< $@
|
||||
|
||||
#==========================================
|
||||
# Rules for files in win/tty
|
||||
#==========================================
|
||||
|
||||
$(OBJ)/%.o : $(TTY)/%.c
|
||||
$(CC) $(cflags) -o$@ $<
|
||||
|
||||
#==========================================
|
||||
#================ MACROS ==================
|
||||
#==========================================
|
||||
# This section creates shorthand macros for many objects
|
||||
# referenced later on in the Makefile.
|
||||
#
|
||||
# Have windows path styles available for use in commands
|
||||
#
|
||||
W_OBJ =$(subst /,\, $(OBJ))
|
||||
W_INCL =$(subst /,\, $(INCL))
|
||||
W_DAT =$(subst /,\, $(DAT))
|
||||
W_DOC =$(subst /,\, $(DOC))
|
||||
W_UTIL =$(subst /,\, $(UTIL))
|
||||
W_SRC =$(subst /,\, $(SRC))
|
||||
W_SSYS =$(subst /,\, $(SSYS))
|
||||
W_MSWSYS =$(subst /,\, $(MSWSYS))
|
||||
W_TTY =$(subst /,\, $(TTY))
|
||||
W_MSWIN =$(subst /,\, $(MSWIN))
|
||||
ifeq "$(ADD_CURSES)" "Y"
|
||||
W_WCURSES =$(subst /,\, $(WCURSES))
|
||||
endif
|
||||
W_WSHR =$(subst /,\, $(WSHR))
|
||||
W_GAMEDIR =$(subst /,\, $(GAMEDIR))
|
||||
|
||||
#
|
||||
# Shorten up the location for some files
|
||||
#
|
||||
@@ -245,15 +211,19 @@ VGAOBJ = $(O)vidvga.o $(O)vidvesa.o
|
||||
|
||||
MAKESRC = makedefs.c
|
||||
|
||||
ifneq "$(ADD_LUA)" "Y"
|
||||
SPLEVSRC = lev_yacc.c lev_$(LEX).c lev_main.c panic.c
|
||||
endif
|
||||
|
||||
DGNCOMPSRC = dgn_yacc.c dgn_$(LEX).c dgn_main.c
|
||||
|
||||
MAKEOBJS = $(O)makedefs.o $(O)monst.o $(O)objects.o
|
||||
MAKEDEFSOBJS = $(O)makedefs.o $(O)monst.o $(O)objects.o
|
||||
|
||||
ifneq "$(ADD_LUA)" "Y"
|
||||
SPLEVOBJS = $(O)lev_yacc.o $(O)lev_$(LEX).o $(O)lev_main.o $(O)alloc.o \
|
||||
$(O)monst.o $(O)objects.o $(O)panic.o \
|
||||
$(O)drawing.o $(O)decl.o $(O)stubvid.o
|
||||
endif
|
||||
|
||||
DGNCOMPOBJS = $(O)dgn_yacc.o $(O)dgn_$(LEX).o $(O)dgn_main.o $(O)alloc.o \
|
||||
$(O)panic.o
|
||||
@@ -339,21 +309,97 @@ VOBJ19 = $(O)trap.o $(O)u_init.o $(O)uhitm.o $(O)vault.o $(O)vision.o
|
||||
VOBJ20 = $(O)vis_tab.o $(O)weapon.o $(O)were.o $(O)wield.o $(O)windows.o
|
||||
VOBJ21 = $(O)wintty.o $(O)wizard.o $(O)worm.o $(O)worn.o $(O)write.o
|
||||
VOBJ22 = $(O)zap.o $(O)light.o $(O)dlb.o $(O)dig.o $(O)teleport.o
|
||||
VOBJ23 = $(O)region.o $(O)sys.o $(REGEX)
|
||||
VOBJ23 = $(O)region.o $(O)sys.o $(REGEX) $(O)isaac64.o
|
||||
VOBJ24 = $(O)sfbase.o $(O)sfdata.o
|
||||
VOBJ25 = $(O)sfstruct.o $(O)sfascii.o $(O)sflendian.o
|
||||
|
||||
SOBJ = $(O)msdos.o $(O)pcsys.o $(O)tty.o $(O)unix.o \
|
||||
$(O)video.o $(O)vidtxt.o $(O)pckeys.o
|
||||
|
||||
VVOBJ = $(O)version.o
|
||||
|
||||
ifeq "$(ADD_LUA)" "Y"
|
||||
LUAOBJ = $(O)nhlua.o $(O)nhlsel.o
|
||||
endif
|
||||
|
||||
ifeq "$(ADD_CURSES)" "Y"
|
||||
CURSESOBJ= $(O)cursdial.o $(O)cursinit.o $(O)cursinvt.o $(O)cursmain.o \
|
||||
$(O)cursmesg.o $(O)cursmisc.o $(O)cursstat.o $(O)curswins.o
|
||||
else
|
||||
CURSESOBJ=
|
||||
endif
|
||||
|
||||
VOBJ = $(VOBJ01) $(VOBJ02) $(VOBJ03) $(VOBJ04) $(VOBJ05) \
|
||||
$(VOBJ06) $(VOBJ07) $(VOBJ08) $(VOBJ09) $(VOBJ10) \
|
||||
$(VOBJ11) $(VOBJ12) $(VOBJ13) $(VOBJ14) $(VOBJ15) \
|
||||
$(VOBJ16) $(VOBJ17) $(VOBJ18) $(VOBJ19) $(VOBJ20) \
|
||||
$(VOBJ21) $(VOBJ22) $(VOBJ23)
|
||||
$(VOBJ21) $(VOBJ22) $(VOBJ23) $(VOBJ24) $(VOBJ25) \
|
||||
$(CURSESOBJ) $(LUAOBJ)
|
||||
|
||||
ALLOBJ = $(VOBJ) $(SOBJ) $(TILOBJ) $(TILOBJ2) $(VVOBJ)
|
||||
|
||||
ifeq "$(ADD_LUA)" "Y"
|
||||
#===============-=================================================
|
||||
# LUA library
|
||||
# Source from http://www.lua.org/ftp/lua-5.3.5.tar.gz
|
||||
#=================================================================
|
||||
|
||||
LUASRC = $(LUATOP)/src
|
||||
LUALIB = $(O)lua535s.a
|
||||
LUADLL = $(O)lua535.a
|
||||
LUAINCL = -I$(LUASRC)
|
||||
#LUAFLAGS = unix added -lm here?
|
||||
LUATARGETS = lua.exe luac.exe $(LUADLL) $(LUALIB)
|
||||
|
||||
LUASRCFILES = lapi.c lauxlib.c lbaselib.c lbitlib.c lcode.c \
|
||||
lcorolib.c lctype.c ldblib.c ldebug.c ldo.c \
|
||||
ldump.c lfunc.c lgc.c linit.c liolib.c llex.c \
|
||||
lmathlib.c lmem.c loadlib.c lobject.c lopcodes.c \
|
||||
loslib.c lparser.c lstate.c lstring.c lstrlib.c \
|
||||
ltable.c ltablib.c ltm.c lundump.c lutf8lib.c \
|
||||
lvm.c lzio.c
|
||||
|
||||
LUAOBJFILES = $(O)lapi.o $(O)lauxlib.o $(O)lbaselib.o $(O)lbitlib.o \
|
||||
$(O)lcode.o $(O)lcorolib.o $(O)lctype.o $(O)ldblib.o \
|
||||
$(O)ldebug.o $(O)ldo.o $(O)ldump.o $(O)lfunc.o \
|
||||
$(O)lgc.o $(O)linit.o $(O)liolib.o $(O)llex.o \
|
||||
$(O)lmathlib.o $(O)lmem.o $(O)loadlib.o $(O)lobject.o \
|
||||
$(O)lopcodes.o $(O)loslib.o $(O)lparser.o $(O)lstate.o \
|
||||
$(O)lstring.o $(O)lstrlib.o $(O)ltable.o $(O)ltablib.o \
|
||||
$(O)ltm.o $(O)lundump.o $(O)lutf8lib.o $(O)lvm.o $(O)lzio.o
|
||||
endif
|
||||
|
||||
ifeq "$(ADD_CURSES)" "Y"
|
||||
#==========================================
|
||||
# PDCurses build macros
|
||||
#==========================================
|
||||
PDCURSES_CURSES_H = $(PDCURSES_TOP)/curses.h
|
||||
PDCURSES_CURSPRIV_H = $(PDCURSES_TOP)/curspriv.h
|
||||
PDCURSES_HEADERS = $(PDCURSES_CURSES_H) $(PDCURSES_CURSPRIV_H)
|
||||
PDCSRC = $(PDCURSES_TOP)/pdcurses
|
||||
PDCDOS = $(PDCURSES_TOP)/dos
|
||||
PDCLIBOBJS = $(O)addch.o $(O)addchstr.o $(O)addstr.o $(O)attr.o $(O)beep.o \
|
||||
$(O)bkgd.o $(O)border.o $(O)clear.o $(O)color.o $(O)delch.o $(O)deleteln.o \
|
||||
$(O)getch.o $(O)getstr.o $(O)getyx.o $(O)inch.o $(O)inchstr.o \
|
||||
$(O)initscr.o $(O)inopts.o $(O)insch.o $(O)insstr.o $(O)instr.o $(O)kernel.o \
|
||||
$(O)keyname.o $(O)mouse.o $(O)move.o $(O)outopts.o $(O)overlay.o $(O)pad.o \
|
||||
$(O)panel.o $(O)printw.o $(O)refresh.o $(O)scanw.o $(O)scr_dump.o $(O)scroll.o \
|
||||
$(O)slk.o $(O)termattr.o $(O)touch.o $(O)util.o $(O)window.o \
|
||||
$(O)debug.o
|
||||
|
||||
PDCOBJS = $(O)pdcclip.o $(O)pdcdisp.o $(O)pdcgetsc.o $(O)pdckbd.o \
|
||||
$(O)pdcscrn.o $(O)pdcsetsc.o $(O)pdcutil.o
|
||||
|
||||
#PDCOBJS = $(O)pdcclip.o $(O)pdcdisp.o $(O)pdcgetsc.o $(O)pdckbd.o $(O)pdcscrn.o \
|
||||
# $(O)pdcsetsc.o $(O)pdcutil.o
|
||||
|
||||
PDCLIB = $(O)pdcurses.a
|
||||
|
||||
PDCINCL = -I$(PDCURSES_TOP) -I$(PDCSRC) -I$(PDCDOS)
|
||||
else
|
||||
PDCLIB =
|
||||
endif
|
||||
|
||||
#==========================================
|
||||
# Header file macros
|
||||
#==========================================
|
||||
@@ -410,6 +456,117 @@ DJ1 = $(dir $(DJGPP))
|
||||
CWSDPMI = $(subst /,\,$(DJ1))bin\CWSDPMI.*
|
||||
endif
|
||||
|
||||
#==========================================
|
||||
# More compiler setup macros
|
||||
#==========================================
|
||||
#
|
||||
ifeq "$(ADD_CURSES)" "Y"
|
||||
CURSESDEF=-D"CURSES_GRAPHICS" -D"CURSES_BRIEF_INCLUDE"
|
||||
else
|
||||
CURSESDEF=
|
||||
CURSESLIB=
|
||||
endif
|
||||
|
||||
INCLDIR=-I../include -I../sys/msdos $(LUAINCL)
|
||||
|
||||
# Debugging
|
||||
#cflags = -pg -c $(INCLDIR) $(DLBFLG) $(CURSESDEF) -DSUPPRESS_GRAPHICS
|
||||
#LFLAGS = -pg
|
||||
|
||||
cflags = -c -O $(INCLDIR) $(DLBFLG) $(CURSESDEF) -DSUPPRESS_GRAPHICS
|
||||
LFLAGS =
|
||||
|
||||
# Debugging
|
||||
#cflags = -g -c $(INCLDIR) $(DLBFLG) $(CURSESDEF) -DUSE_TILES
|
||||
#LFLAGS = -g
|
||||
|
||||
# Normal
|
||||
cflags = -c -O $(INCLDIR) $(DLBFLG) $(CURSESDEF) -DUSE_TILES
|
||||
LFLAGS =
|
||||
|
||||
#==========================================
|
||||
#================ 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 : $(SSHR)/%.c
|
||||
$(CC) $(cflags) -o$@ $<
|
||||
|
||||
#==========================================
|
||||
# Rules for files in sys/msdos
|
||||
#==========================================
|
||||
|
||||
$(OBJ)/%.o : $(MSYS)/%.c
|
||||
$(CC) $(cflags) -I../sys/msdos -o$@ $<
|
||||
|
||||
#==========================================
|
||||
# Rules for files in util
|
||||
#==========================================
|
||||
|
||||
$(OBJ)/%.o : $(UTIL)/%.c
|
||||
$(CC) $(cflags) -o$@ $<
|
||||
|
||||
#==========================================
|
||||
# Rules for files in win/share
|
||||
#==========================================
|
||||
|
||||
$(OBJ)/%.o : $(WSHR)/%.c
|
||||
$(CC) $(cflags) -I../win/share -o$@ $<
|
||||
|
||||
#{$(WSHR)}.txt{$(DAT)}.txt:
|
||||
# copy $< $@
|
||||
|
||||
#==========================================
|
||||
# Rules for files in win/tty
|
||||
#==========================================
|
||||
|
||||
$(OBJ)/%.o : $(TTY)/%.c
|
||||
$(CC) $(cflags) -o$@ $<
|
||||
|
||||
#==========================================
|
||||
# Rules for files in win/curses
|
||||
#==========================================
|
||||
|
||||
$(OBJ)/%.o : $(WCURSES)/%.c
|
||||
$(CC) -DPDC_NCMOUSE $(PDCINCL) $(cflags) -o$@ $<
|
||||
|
||||
#==========================================
|
||||
# Rules for files in PDCurses
|
||||
#==========================================
|
||||
|
||||
$(OBJ)/%.o : $(PDCURSES_TOP)/%.c
|
||||
$(CC) $(PDCINCL) $(cflags) -o$@ $<
|
||||
|
||||
$(OBJ)/%.o : $(PDCSRC)/%.c
|
||||
$(CC) $(PDCINCL) $(cflags) -o$@ $<
|
||||
|
||||
$(OBJ)/%.o : $(PDCDOS)/%.c
|
||||
$(CC) $(PDCINCL) $(cflags) -o$@ $<
|
||||
|
||||
ifeq "$(ADD_LUA)" "Y"
|
||||
#==========================================
|
||||
# Rules for LUA files
|
||||
#==========================================
|
||||
|
||||
$(OBJ)/%.o : $(LUASRC)/%.c
|
||||
$(CC) $(cflags) -o$@ $<
|
||||
endif
|
||||
|
||||
#==========================================
|
||||
# Primary Targets.
|
||||
#==========================================
|
||||
@@ -425,9 +582,14 @@ default: $(GAMEFILE)
|
||||
|
||||
util: $(O)utility.tag
|
||||
|
||||
$(O)utility.tag: $(INCL)/date.h $(INCL)/trap.h $(INCL)/onames.h \
|
||||
$(INCL)/pm.h monstr.c vis_tab.c \
|
||||
$(U)lev_comp.exe $(U)dgn_comp.exe $(TILEUTIL)
|
||||
ifneq "$(ADD_LUA)" "Y"
|
||||
LEVCOMPEXE = $(U)lev_comp.exe
|
||||
else
|
||||
LEVCOMPEXE =
|
||||
endif
|
||||
$(O)utility.tag: $(INCL)/date.h $(INCL)/trap.h $(INCL)/onames.h \
|
||||
$(INCL)/pm.h monstr.c vis_tab.c $(LEVCOMPEXE) \
|
||||
$(U)dgn_comp.exe $(TILEUTIL)
|
||||
$(subst /,\,echo utilities made > $@)
|
||||
|
||||
tileutil: $(U)gif2txt.exe $(U)txt2ppm.exe
|
||||
@@ -444,7 +606,11 @@ ifeq ($(USE_DLB),Y)
|
||||
else
|
||||
@$(subst /,\,copy $(DAT)/*. $(GAMEDIR))
|
||||
@$(subst /,\,copy $(DAT)/*.dat $(GAMEDIR))
|
||||
ifeq "$(ADD_LUA)" "Y"
|
||||
@$(subst /,\,copy $(DAT)/*.lua $(GAMEDIR))
|
||||
else
|
||||
@$(subst /,\,copy $(DAT)/*.lev $(GAMEDIR))
|
||||
endif
|
||||
@$(subst /,\,copy $(MSYS)/msdoshlp.txt $(GAMEDIR))
|
||||
@$(subst /,\,if exist $(GAMEDIR)/makefile. del $(GAMEDIR)/makefile.)
|
||||
endif
|
||||
@@ -455,7 +621,7 @@ endif
|
||||
@$(subst /,\,if exist $(DAT)/symbols copy $(DAT)/symbols $(GAMEDIR))
|
||||
@$(subst /,\,copy $(SSHR)/NetHack.cnf $(GAMEDIR)/defaults.nh)
|
||||
-@$(subst /,\,touch $(GAMEDIR)/record)
|
||||
@$(subst /,\,copy $(DOC)/guidebo*.txt $(GAMEDIR))
|
||||
@$(subst /,\,copy $(DOC)/guideb*.txt $(GAMEDIR))
|
||||
@$(subst /,\,copy ../sys/winnt/sysconf $(GAMEDIR))
|
||||
@$(subst /,\,if exist $(DOC)/nethack.txt copy $(DOC)/nethack.txt $(GAMEDIR))
|
||||
ifdef CWSDPMI
|
||||
@@ -469,7 +635,8 @@ endif
|
||||
# The main target.
|
||||
#==========================================
|
||||
|
||||
$(GAMEFILE): $(O)obj.tag $(PATCHLEV_H) $(O)utility.tag $(ALLOBJ) $(O)$(GAME).lnk
|
||||
$(GAMEFILE): $(O)obj.tag $(PATCHLEV_H) $(PDCLIB) $(LUATARGETS) \
|
||||
$(O)utility.tag $(ALLOBJ) $(O)$(GAME).lnk
|
||||
@if exist temp.a del temp.a
|
||||
@ar ru temp.a $(VOBJ01)
|
||||
@ar ru temp.a $(VOBJ02)
|
||||
@@ -494,11 +661,20 @@ $(GAMEFILE): $(O)obj.tag $(PATCHLEV_H) $(O)utility.tag $(ALLOBJ) $(O)$(GAME).lnk
|
||||
@ar ru temp.a $(VOBJ21)
|
||||
@ar ru temp.a $(VOBJ22)
|
||||
@ar ru temp.a $(VOBJ23)
|
||||
@ar ru temp.a $(VOBJ24)
|
||||
@ar ru temp.a $(VOBJ25)
|
||||
@ar ru temp.a $(SOBJ)
|
||||
@ar ru temp.a $(TILOBJ)
|
||||
@ar ru temp.a $(TILOBJ2)
|
||||
@ar ru temp.a $(VVOBJ)
|
||||
$(LINK) $(LFLAGS) -o$(GAME).exe temp.a $(LIBRARIES) $(ZLIB)
|
||||
ifeq "$(ADD_LUA)" "Y"
|
||||
@ar ru temp.a $(LUAOBJ)
|
||||
endif
|
||||
ifeq "$(ADD_CURSES)" "Y"
|
||||
@ar ru temp.a $(CURSESOBJ)
|
||||
endif
|
||||
$(LINK) $(LFLAGS) -o$(GAME).exe temp.a \
|
||||
$(PDCLIB) $(LUALIB) $(LIBRARIES) $(ZLIB)
|
||||
@$(subst /,\,stubedit $(GAME).exe minstack=2048K)
|
||||
@$(subst /,\,copy $(GAME).exe $(GAMEFILE))
|
||||
@$(subst /,\,del $(GAME).exe)
|
||||
@@ -527,86 +703,18 @@ $(O)$(GAME).lnk: $(ALLOBJ)
|
||||
echo $(VOBJ21) >> $(subst /,\,$@)
|
||||
echo $(VOBJ22) >> $(subst /,\,$@)
|
||||
echo $(VOBJ23) >> $(subst /,\,$@)
|
||||
echo $(VOBJ24) >> $(subst /,\,$@)
|
||||
echo $(VOBJ25) >> $(subst /,\,$@)
|
||||
echo $(SOBJ) >> $(subst /,\,$@)
|
||||
echo $(TILOBJ) >> $(subst /,\,$@)
|
||||
echo $(TILOBJ2) >> $(subst /,\,$@)
|
||||
echo $(VVOBJ) >> $(subst /,\,$@)
|
||||
|
||||
|
||||
#==========================================
|
||||
# Housekeeping.
|
||||
#==========================================
|
||||
|
||||
clean:
|
||||
$(subst /,\,if exist $(O)*.o del $(O)*.o)
|
||||
$(subst /,\,if exist $(O)dat.tag del $(O)dat.tag)
|
||||
$(subst /,\,if exist $(O)install.tag del $(O)install.tag)
|
||||
$(subst /,\,if exist $(O)$(GAME).lnk del $(O)$(GAME).lnk)
|
||||
$(subst /,\,if exist $(O)obj.tag del $(O)obj.tag)
|
||||
$(subst /,\,if exist $(O)sp_lev.tag del $(O)sp_lev.tag)
|
||||
$(subst /,\,if exist $(O)thintile.tag del $(O)thintile.tag)
|
||||
$(subst /,\,if exist $(O)utility.tag del $(O)utility.tag)
|
||||
$(subst /,\,if exist temp.a del temp.a)
|
||||
|
||||
spotless: clean
|
||||
|
||||
$(subst /,\,if exist $(U)lev_flex.c del $(U)lev_flex.c)
|
||||
$(subst /,\,if exist $(U)lev_lex.c del $(U)lev_lex.c)
|
||||
$(subst /,\,if exist $(U)lev_yacc.c del $(U)lev_yacc.c)
|
||||
$(subst /,\,if exist $(U)dgn_flex.c del $(U)dgn_flex.c)
|
||||
$(subst /,\,if exist $(U)dgn_lex.c del $(U)dgn_lex.c)
|
||||
$(subst /,\,if exist $(U)dgn_yacc.c del $(U)lev_yacc.c)
|
||||
$(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 $(U)recover.exe del $(U)recover.exe)
|
||||
$(subst /,\,if exist $(U)tilemap.exe del $(U)tilemap.exe)
|
||||
$(subst /,\,if exist $(U)tile2bmp.exe del $(U)tile2bmp.exe)
|
||||
$(subst /,\,if exist $(U)tile2bin.exe del $(U)tile2bin.exe)
|
||||
$(subst /,\,if exist $(U)til2bin2.exe del $(U)til2bin2.exe)
|
||||
$(subst /,\,if exist $(U)thintile.exe del $(U)thintile.exe)
|
||||
$(subst /,\,if exist $(U)dlb_main.exe del $(U)dlb_main.exe)
|
||||
$(subst /,\,if exist $(INCL)/vis_tab.h del $(INCL)/vis_tab.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)/date.h del $(INCL)/date.h)
|
||||
$(subst /,\,if exist $(INCL)/dgn_comp.h del $(INCL)/dgn_comp.h)
|
||||
$(subst /,\,if exist $(INCL)/lev_comp.h del $(INCL)/lev_comp.h)
|
||||
$(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 $(SRC)/tile.c del $(SRC)/tile.c)
|
||||
$(subst /,\,if exist $(DAT)/options del $(DAT)/options)
|
||||
$(subst /,\,if exist $(DAT)/data del $(DAT)/data)
|
||||
$(subst /,\,if exist $(DAT)/rumors del $(DAT)/rumors)
|
||||
$(subst /,\,if exist $(DAT)/dungeon.pdf del $(DAT)/dungeon.pdf)
|
||||
$(subst /,\,if exist $(DAT)/dungeon del $(DAT)/dungeon)
|
||||
$(subst /,\,if exist $(DAT)/oracles del $(DAT)/oracles)
|
||||
$(subst /,\,if exist $(DAT)/quest.dat del $(DAT)/quest.dat)
|
||||
$(subst /,\,if exist $(DAT)/bogusmon del $(DAT)/bogusmon)
|
||||
$(subst /,\,if exist $(DAT)/engrave del $(DAT)/engrave)
|
||||
$(subst /,\,if exist $(DAT)/epitaph del $(DAT)/epitaph)
|
||||
$(subst /,\,if exist $(DAT)/dlb.lst del $(DAT)/dlb.lst)
|
||||
$(subst /,\,if exist $(DAT)/nhdat del $(DAT)/nhdat)
|
||||
$(subst /,\,if exist $(DAT)/*.lev del $(DAT)/*.lev)
|
||||
$(subst /,\,if exist $(TILE_BMP) del $(TILE_BMP))
|
||||
$(subst /,\,if exist $(WSHR)/monthin.txt del $(WSHR)/monthin.txt)
|
||||
$(subst /,\,if exist $(WSHR)/objthin.txt del $(WSHR)/objthin.txt)
|
||||
$(subst /,\,if exist $(WSHR)/oththin.txt del $(WSHR)/oththin.txt)
|
||||
|
||||
#==========================================
|
||||
# Create directory for holding object files
|
||||
#==========================================
|
||||
|
||||
$(O)obj.tag:
|
||||
-$(subst /,\,@if not exist $(OBJ)/*.* mkdir $(OBJ))
|
||||
@$(subst /,\,@echo directory created > $@)
|
||||
|
||||
#===========================================
|
||||
# Work around some djgpp long file name woes
|
||||
#===========================================
|
||||
|
||||
$(PATCHLEV_H):
|
||||
@$(subst /,\,if not exist $@ copy $(INCL)/patchlevel.h $(INCL)/patchlev.h)
|
||||
ifeq "$(ADD_LUA)" "Y"
|
||||
echo $(LUAOBJ) >> $(subst /,\,$@)
|
||||
endif
|
||||
ifeq "$(ADD_CURSES)" "Y"
|
||||
echo $(CURSESOBJ) >> $(subst /,\,$@)
|
||||
endif
|
||||
|
||||
#==========================================
|
||||
#=========== SECONDARY TARGETS ============
|
||||
@@ -640,12 +748,13 @@ vis_tab.c: $(U)makedefs.exe
|
||||
# Makedefs Stuff
|
||||
#==========================================
|
||||
|
||||
$(U)makedefs.exe: $(MAKEOBJS)
|
||||
$(LINK) $(LFLAGS) -o$@ $(MAKEOBJS)
|
||||
$(U)makedefs.exe: $(MAKEDEFSOBJS)
|
||||
$(LINK) $(LFLAGS) -o$@ $(MAKEDEFSOBJS)
|
||||
|
||||
$(O)makedefs.o: $(CONFIG_H) $(PERMONST_H) $(INCL)/objclass.h \
|
||||
$(INCL)/monsym.h $(INCL)/qtext.h $(U)makedefs.c
|
||||
|
||||
ifneq "$(ADD_LUA)" "Y"
|
||||
#==========================================
|
||||
# Level Compiler Dependencies
|
||||
#==========================================
|
||||
@@ -718,6 +827,7 @@ else
|
||||
@$(subst /,\,copy $(SSHR)/lev_lex.c $@)
|
||||
@$(subst /,\,echo.>>$@)
|
||||
endif
|
||||
endif
|
||||
|
||||
#==========================================
|
||||
# Dungeon Dependencies
|
||||
@@ -900,6 +1010,13 @@ $(O)viewtib.o: $(MSYS)/viewtib.c
|
||||
|
||||
endif
|
||||
|
||||
#==========================================
|
||||
# PDCurses Library
|
||||
#==========================================
|
||||
|
||||
$(O)pdcurses.a : $(PDCLIBOBJS) $(PDCOBJS)
|
||||
ar rcs $@ $(PDCLIBOBJS) $(PDCOBJS)
|
||||
|
||||
#==========================================
|
||||
# Other Util Dependencies.
|
||||
#==========================================
|
||||
@@ -954,7 +1071,9 @@ $(DAT)/engrave: $(O)utility.tag $(DAT)/engrave.txt
|
||||
$(DAT)/epitaph: $(O)utility.tag $(DAT)/epitaph.txt
|
||||
@$(subst /,\,$(U)makedefs.exe -s)
|
||||
|
||||
$(O)sp_lev.tag: $(O)utility.tag $(DAT)/bigroom.des $(DAT)/castle.des \
|
||||
ifneq "$(ADD_LUA)" "Y"
|
||||
$(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 \
|
||||
@@ -988,6 +1107,9 @@ $(O)sp_lev.tag: $(O)utility.tag $(DAT)/bigroom.des $(DAT)/castle.des \
|
||||
@$(subst /,\,$(U)lev_comp valkyrie.des)
|
||||
@$(subst /,\,$(U)lev_comp wizard.des)
|
||||
@$(subst /,\,cd $(SRC))
|
||||
else
|
||||
$(O)sp_lev.tag: $(O)utility.tag
|
||||
endif
|
||||
@$(subst /,\,echo sp_levs done > $@)
|
||||
|
||||
$(DAT)/dungeon: $(O)utility.tag $(DAT)/dungeon.def
|
||||
@@ -1011,7 +1133,11 @@ $(DAT)/nhdat: $(U)dlb_main.exe $(DAT)/data $(DAT)/rumors $(DAT)/dungeon \
|
||||
@$(LS) data dungeon oracles options quest.dat rumors help hh >dlb.lst
|
||||
@$(LS) cmdhelp history opthelp wizhelp license msdoshlp.txt >>dlb.lst
|
||||
@$(LS) bogusmon engrave epitaph tribute >>dlb.lst
|
||||
ifeq "$(ADD_LUA)" "Y"
|
||||
$(LS) $(subst /,\,*.lua) >>dlb.lst
|
||||
else
|
||||
$(LS) $(subst /,\,*.lev) >>dlb.lst
|
||||
endif
|
||||
@$(subst /,\,$(U)dlb_main cvIf dlb.lst nhdat)
|
||||
@$(subst /,\,cd $(SRC))
|
||||
|
||||
@@ -1021,6 +1147,100 @@ $(U)dlb_main.exe: $(DLBOBJS)
|
||||
$(O)dlb_main.o: $(U)dlb_main.c $(INCL)/config.h $(DLB_H)
|
||||
$(CC) $(cflags) -o$@ $(U)dlb_main.c
|
||||
|
||||
#=============================================================
|
||||
# LUA
|
||||
#=============================================================
|
||||
|
||||
lua.exe: $(O)lua.o $(LUALIB)
|
||||
$(link) $(LFLAGS) -o$@ $(O)lua.o $(LUALIB)
|
||||
|
||||
luac.exe: $(O)luac.o $(O)lua535s.a
|
||||
$(link) $(LFLAGSU) -o$@ $(O)luac.o $(LUALIB)
|
||||
|
||||
$(O)lua535.a: $(LUAOBJFILES)
|
||||
$(cc) -shared -Wl,--export-all-symbols \
|
||||
-Wl,--add-stdcall-alias -o $@ $<
|
||||
|
||||
$(O)lua535s.a: $(LUAOBJFILES)
|
||||
ar rcs $@ $(LUAOBJFILES)
|
||||
|
||||
$(O)lua.o: $(LUASRC)/lua.c
|
||||
$(O)luac.o: $(LUASRC)/luac.c
|
||||
|
||||
#==========================================
|
||||
# Housekeeping.
|
||||
#==========================================
|
||||
|
||||
clean:
|
||||
$(subst /,\,if exist $(O)*.o del $(O)*.o)
|
||||
$(subst /,\,if exist $(O)dat.tag del $(O)dat.tag)
|
||||
$(subst /,\,if exist $(O)install.tag del $(O)install.tag)
|
||||
$(subst /,\,if exist $(O)$(GAME).lnk del $(O)$(GAME).lnk)
|
||||
$(subst /,\,if exist $(O)obj.tag del $(O)obj.tag)
|
||||
$(subst /,\,if exist $(O)sp_lev.tag del $(O)sp_lev.tag)
|
||||
$(subst /,\,if exist $(O)thintile.tag del $(O)thintile.tag)
|
||||
$(subst /,\,if exist $(O)utility.tag del $(O)utility.tag)
|
||||
$(subst /,\,if exist temp.a del temp.a)
|
||||
|
||||
spotless: clean
|
||||
|
||||
$(subst /,\,if exist $(U)dgn_flex.c del $(U)dgn_flex.c)
|
||||
$(subst /,\,if exist $(U)dgn_lex.c del $(U)dgn_lex.c)
|
||||
$(subst /,\,if exist $(U)makedefs.exe del $(U)makedefs.exe)
|
||||
$(subst /,\,if exist $(U)dgn_comp.exe del $(U)dgn_comp.exe)
|
||||
$(subst /,\,if exist $(U)recover.exe del $(U)recover.exe)
|
||||
$(subst /,\,if exist $(U)tilemap.exe del $(U)tilemap.exe)
|
||||
$(subst /,\,if exist $(U)tile2bmp.exe del $(U)tile2bmp.exe)
|
||||
$(subst /,\,if exist $(U)tile2bin.exe del $(U)tile2bin.exe)
|
||||
$(subst /,\,if exist $(U)til2bin2.exe del $(U)til2bin2.exe)
|
||||
$(subst /,\,if exist $(U)thintile.exe del $(U)thintile.exe)
|
||||
$(subst /,\,if exist $(U)dlb_main.exe del $(U)dlb_main.exe)
|
||||
$(subst /,\,if exist $(INCL)/vis_tab.h del $(INCL)/vis_tab.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)/date.h del $(INCL)/date.h)
|
||||
$(subst /,\,if exist $(INCL)/dgn_comp.h del $(INCL)/dgn_comp.h)
|
||||
ifneq "$(ADD_LUA)" "Y"
|
||||
$(subst /,\,if exist $(INCL)/lev_comp.h del $(INCL)/lev_comp.h)
|
||||
endif
|
||||
$(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 $(SRC)/tile.c del $(SRC)/tile.c)
|
||||
$(subst /,\,if exist $(DAT)/options del $(DAT)/options)
|
||||
$(subst /,\,if exist $(DAT)/data del $(DAT)/data)
|
||||
$(subst /,\,if exist $(DAT)/rumors del $(DAT)/rumors)
|
||||
$(subst /,\,if exist $(DAT)/dungeon.pdf del $(DAT)/dungeon.pdf)
|
||||
$(subst /,\,if exist $(DAT)/dungeon del $(DAT)/dungeon)
|
||||
$(subst /,\,if exist $(DAT)/oracles del $(DAT)/oracles)
|
||||
$(subst /,\,if exist $(DAT)/quest.dat del $(DAT)/quest.dat)
|
||||
$(subst /,\,if exist $(DAT)/bogusmon del $(DAT)/bogusmon)
|
||||
$(subst /,\,if exist $(DAT)/engrave del $(DAT)/engrave)
|
||||
$(subst /,\,if exist $(DAT)/epitaph del $(DAT)/epitaph)
|
||||
$(subst /,\,if exist $(DAT)/dlb.lst del $(DAT)/dlb.lst)
|
||||
$(subst /,\,if exist $(DAT)/nhdat del $(DAT)/nhdat)
|
||||
ifneq "$(ADD_LUA)" "Y"
|
||||
$(subst /,\,if exist $(DAT)/*.lev del $(DAT)/*.lev)
|
||||
endif
|
||||
$(subst /,\,if exist $(TILE_BMP) del $(TILE_BMP))
|
||||
$(subst /,\,if exist $(WSHR)/monthin.txt del $(WSHR)/monthin.txt)
|
||||
$(subst /,\,if exist $(WSHR)/objthin.txt del $(WSHR)/objthin.txt)
|
||||
$(subst /,\,if exist $(WSHR)/oththin.txt del $(WSHR)/oththin.txt)
|
||||
|
||||
#==========================================
|
||||
# Create directory for holding object files
|
||||
#==========================================
|
||||
|
||||
$(O)obj.tag:
|
||||
-$(subst /,\,@if not exist $(OBJ)/*.* mkdir $(OBJ))
|
||||
@$(subst /,\,@echo directory created > $@)
|
||||
|
||||
#===========================================
|
||||
# Work around some djgpp long file name woes
|
||||
#===========================================
|
||||
|
||||
$(PATCHLEV_H):
|
||||
@$(subst /,\,if not exist $@ copy $(INCL)/patchlevel.h $(INCL)/patchlev.h)
|
||||
|
||||
#==========================================
|
||||
# Game Dependencies
|
||||
#==========================================
|
||||
@@ -1269,6 +1489,8 @@ $(O)mplayer.o: mplayer.c $(HACK_H)
|
||||
$(O)mthrowu.o: mthrowu.c $(HACK_H)
|
||||
$(O)muse.o: muse.c $(HACK_H)
|
||||
$(O)music.o: music.c $(HACK_H) #interp.c
|
||||
$(O)nhlua.o: nhlua.c $(HACK_H)
|
||||
$(O)nhlsel.o: nhlsel.c $(HACK_H)
|
||||
$(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
|
||||
|
||||
@@ -16,10 +16,9 @@ goto err_set
|
||||
echo Checking to see if directories are set up properly ...
|
||||
if not exist ..\..\include\hack.h goto err_dir
|
||||
if not exist ..\..\src\hack.c goto err_dir
|
||||
if not exist ..\..\dat\wizard.des goto err_dir
|
||||
if not exist ..\..\dat\wizard1.lua goto err_dir
|
||||
if not exist ..\..\util\makedefs.c goto err_dir
|
||||
if not exist ..\..\win\tty\wintty.c goto err_dir
|
||||
if not exist ..\share\lev_yacc.c goto err_dir
|
||||
echo Directories OK.
|
||||
|
||||
if not exist ..\..\binary\* mkdir ..\..\binary
|
||||
|
||||
@@ -62,7 +62,7 @@ extern int attrib_text_normal; /* text mode normal attribute */
|
||||
extern int attrib_gr_normal; /* graphics mode normal attribute */
|
||||
extern int attrib_gr_intense; /* graphics mode intense attribute */
|
||||
extern boolean inmap; /* in the map window */
|
||||
extern boolean restoring;
|
||||
/* extern boolean g.restoring; */
|
||||
|
||||
/*
|
||||
* Global Variables
|
||||
@@ -609,7 +609,7 @@ int x, y;
|
||||
clipx = clipxmax - (viewport_size - 1);
|
||||
}
|
||||
if (clipx != oldx) {
|
||||
if (on_level(&u.uz0, &u.uz) && !restoring)
|
||||
if (on_level(&u.uz0, &u.uz) && !g.restoring)
|
||||
/* (void) doredraw(); */
|
||||
vesa_redrawmap();
|
||||
}
|
||||
|
||||
@@ -435,7 +435,7 @@ static void
|
||||
vga_cliparound(x, y)
|
||||
int x, y;
|
||||
{
|
||||
extern boolean restoring;
|
||||
/* extern boolean g.restoring; */
|
||||
int oldx = clipx;
|
||||
|
||||
if (!iflags.tile_view || iflags.over_view || iflags.traditional_view)
|
||||
@@ -449,7 +449,7 @@ int x, y;
|
||||
clipx = clipxmax - (viewport_size - 1);
|
||||
}
|
||||
if (clipx != oldx) {
|
||||
if (on_level(&u.uz0, &u.uz) && !restoring)
|
||||
if (on_level(&u.uz0, &u.uz) && !g.restoring)
|
||||
/* (void) doredraw(); */
|
||||
vga_redrawmap(1);
|
||||
}
|
||||
|
||||
3310
sys/share/lev_lex.c
3310
sys/share/lev_lex.c
File diff suppressed because it is too large
Load Diff
4985
sys/share/lev_yacc.c
4985
sys/share/lev_yacc.c
File diff suppressed because it is too large
Load Diff
@@ -185,17 +185,17 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
|
||||
int fd;
|
||||
boolean have_syscf = FALSE;
|
||||
|
||||
(void) strncpy(hackdir, dir, PATHLEN - 1);
|
||||
hackdir[PATHLEN - 1] = '\0';
|
||||
(void) strncpy(g.hackdir, dir, PATHLEN - 1);
|
||||
g.hackdir[PATHLEN - 1] = '\0';
|
||||
#ifdef NOCWD_ASSUMPTIONS
|
||||
{
|
||||
int prefcnt;
|
||||
|
||||
fqn_prefix[0] = (char *) alloc(strlen(hackdir) + 2);
|
||||
Strcpy(fqn_prefix[0], hackdir);
|
||||
append_slash(fqn_prefix[0]);
|
||||
g.fqn_prefix[0] = (char *) alloc(strlen(g.hackdir) + 2);
|
||||
Strcpy(g.fqn_prefix[0], g.hackdir);
|
||||
append_slash(g.fqn_prefix[0]);
|
||||
for (prefcnt = 1; prefcnt < PREFIX_COUNT; prefcnt++)
|
||||
fqn_prefix[prefcnt] = fqn_prefix[0];
|
||||
g.fqn_prefix[prefcnt] = g.fqn_prefix[0];
|
||||
|
||||
#if defined(MSDOS)
|
||||
/* sysconf should be searched for in this location */
|
||||
@@ -204,11 +204,11 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
|
||||
if ((sptr = index(envp, ';')) != 0)
|
||||
*sptr = '\0';
|
||||
if (strlen(envp) > 0) {
|
||||
fqn_prefix[SYSCONFPREFIX] =
|
||||
g.fqn_prefix[SYSCONFPREFIX] =
|
||||
(char *) alloc(strlen(envp) + 10);
|
||||
Strcpy(fqn_prefix[SYSCONFPREFIX], envp);
|
||||
append_slash(fqn_prefix[SYSCONFPREFIX]);
|
||||
Strcat(fqn_prefix[SYSCONFPREFIX], "NetHack\\");
|
||||
Strcpy(g.fqn_prefix[SYSCONFPREFIX], envp);
|
||||
append_slash(g.fqn_prefix[SYSCONFPREFIX]);
|
||||
Strcat(g.fqn_prefix[SYSCONFPREFIX], "NetHack\\");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -229,7 +229,7 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
|
||||
/* No SYSCF_FILE where there should be one, and
|
||||
without an installer, a user may not be able
|
||||
to place one there. So, let's try somewhere else... */
|
||||
fqn_prefix[SYSCONFPREFIX] = fqn_prefix[0];
|
||||
g.fqn_prefix[SYSCONFPREFIX] = g.fqn_prefix[0];
|
||||
|
||||
/* Is there a SYSCF_FILE there? */
|
||||
fd = open(fqname(SYSCF_FILE, SYSCONFPREFIX, 0), O_RDONLY);
|
||||
@@ -247,10 +247,10 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
|
||||
if ((sptr = index(envp, ';')) != 0)
|
||||
*sptr = '\0';
|
||||
if (strlen(envp) > 0) {
|
||||
fqn_prefix[CONFIGPREFIX] =
|
||||
g.fqn_prefix[CONFIGPREFIX] =
|
||||
(char *) alloc(strlen(envp) + 2);
|
||||
Strcpy(fqn_prefix[CONFIGPREFIX], envp);
|
||||
append_slash(fqn_prefix[CONFIGPREFIX]);
|
||||
Strcpy(g.fqn_prefix[CONFIGPREFIX], envp);
|
||||
append_slash(g.fqn_prefix[CONFIGPREFIX]);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -286,11 +286,11 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
|
||||
if (iflags.BIOS && iflags.use_color)
|
||||
set_colors();
|
||||
#endif
|
||||
if (!hackdir[0])
|
||||
if (!g.hackdir[0])
|
||||
#if !defined(LATTICE) && !defined(AMIGA)
|
||||
Strcpy(hackdir, orgdir);
|
||||
Strcpy(g.hackdir, orgdir);
|
||||
#else
|
||||
Strcpy(hackdir, HACKDIR);
|
||||
Strcpy(g.hackdir, HACKDIR);
|
||||
#endif
|
||||
if (argc > 1) {
|
||||
if (argcheck(argc, argv, ARG_VERSION) == 2)
|
||||
@@ -317,7 +317,7 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
|
||||
}
|
||||
if (!*dir)
|
||||
error("Flag -d must be followed by a directory name.");
|
||||
Strcpy(hackdir, dir);
|
||||
Strcpy(g.hackdir, dir);
|
||||
}
|
||||
if (argc > 1) {
|
||||
/*
|
||||
@@ -326,7 +326,7 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
|
||||
*/
|
||||
if (!strncmp(argv[1], "-s", 2)) {
|
||||
#if defined(CHDIR) && !defined(NOCWD_ASSUMPTIONS)
|
||||
chdirx(hackdir, 0);
|
||||
chdirx(g.hackdir, 0);
|
||||
#endif
|
||||
#ifdef SYSCF
|
||||
initoptions();
|
||||
@@ -366,7 +366,7 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
|
||||
* code parallel to other ports.
|
||||
*/
|
||||
#if defined(CHDIR) && !defined(NOCWD_ASSUMPTIONS)
|
||||
chdirx(hackdir, 1);
|
||||
chdirx(g.hackdir, 1);
|
||||
#endif
|
||||
|
||||
#if defined(MSDOS)
|
||||
|
||||
@@ -19,9 +19,6 @@ all: $(VARDAT) spec_levs quest_levs dungeon
|
||||
../util/dgn_comp:
|
||||
(cd ../util ; $(MAKE) dgn_comp)
|
||||
|
||||
../util/lev_comp:
|
||||
(cd ../util ; $(MAKE) lev_comp)
|
||||
|
||||
../util/tile2x11:
|
||||
(cd ../util ; $(MAKE) tile2x11)
|
||||
|
||||
@@ -126,39 +123,10 @@ options: ../util/makedefs
|
||||
../util/makedefs -v
|
||||
|
||||
|
||||
spec_levs: ../util/lev_comp \
|
||||
bigroom.des castle.des endgame.des gehennom.des knox.des medusa.des \
|
||||
mines.des oracle.des sokoban.des tower.des yendor.des
|
||||
../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 medusa.des
|
||||
../util/lev_comp mines.des
|
||||
../util/lev_comp oracle.des
|
||||
../util/lev_comp sokoban.des
|
||||
../util/lev_comp tower.des
|
||||
../util/lev_comp yendor.des
|
||||
spec_levs:
|
||||
touch spec_levs
|
||||
|
||||
quest_levs: ../util/lev_comp \
|
||||
Arch.des Barb.des Caveman.des Healer.des Knight.des Monk.des \
|
||||
Priest.des Ranger.des Rogue.des Samurai.des Tourist.des Valkyrie.des \
|
||||
Wizard.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
|
||||
quest_levs:
|
||||
touch quest_levs
|
||||
|
||||
dungeon: dungeon.def ../util/makedefs ../util/dgn_comp
|
||||
|
||||
@@ -67,14 +67,12 @@ MANEXT = 6
|
||||
|
||||
# manual installation for most BSD-style systems
|
||||
GAMEMANCREATE = cat nethack.6 | $(NHGREP) >
|
||||
LEVMANCREATE = cat lev_comp.6 | $(NHGREP) >
|
||||
DGNMANCREATE = cat dgn_comp.6 | $(NHGREP) >
|
||||
RCVRMANCREATE = cat recover.6 | $(NHGREP) >
|
||||
DLBMANCREATE = cat dlb.6 | $(NHGREP) >
|
||||
MDMANCREATE = cat makedefs.6 | $(NHGREP) >
|
||||
# manual installation for most SYSV-style systems
|
||||
# GAMEMANCREATE = cat nethack.6 | $(NHGREP) | nroff -man - >
|
||||
# LEVMANCREATE = cat lev_comp.6 | $(NHGREP) | nroff -man - >
|
||||
# DGNMANCREATE = cat dgn_comp.6 | $(NHGREP) | nroff -man - >
|
||||
# RCVRMANCREATE = cat recover.6 | $(NHGREP) | nroff -man - >
|
||||
# DLBMANCREATE = cat dlb.6 | $(NHGREP) | nroff -man - >
|
||||
@@ -82,14 +80,13 @@ MDMANCREATE = cat makedefs.6 | $(NHGREP) >
|
||||
|
||||
manpages:
|
||||
-$(GAMEMANCREATE) $(MANDIR)/$(GAME).$(MANEXT)
|
||||
-$(LEVMANCREATE) $(MANDIR)/lev_comp.$(MANEXT)
|
||||
-$(DGNMANCREATE) $(MANDIR)/dgn_comp.$(MANEXT)
|
||||
-$(RCVRMANCREATE) $(MANDIR)/recover.$(MANEXT)
|
||||
-$(DLBMANCREATE) $(MANDIR)/dlb.$(MANEXT)
|
||||
-$(MDMANCREATE) $(MANDIR)/makedefs.$(MANEXT)
|
||||
|
||||
# manual creation for distribution
|
||||
DISTRIB = Guidebook.txt nethack.txt lev_comp.txt dgn_comp.txt recover.txt \
|
||||
DISTRIB = Guidebook.txt nethack.txt dgn_comp.txt recover.txt \
|
||||
dlb.txt makedefs.txt
|
||||
|
||||
distrib: $(DISTRIB)
|
||||
@@ -100,8 +97,6 @@ Guidebook.txt : Guidebook.mn tmac.n tmac.nh
|
||||
MAN2TXT = $(NHGREP) | nroff -man - | $(COLCMD)
|
||||
nethack.txt : nethack.6
|
||||
cat nethack.6 | $(MAN2TXT) > nethack.txt
|
||||
lev_comp.txt : lev_comp.6
|
||||
cat lev_comp.6 | $(MAN2TXT) > lev_comp.txt
|
||||
dgn_comp.txt : dgn_comp.6
|
||||
cat dgn_comp.6 | $(MAN2TXT) > dgn_comp.txt
|
||||
recover.txt : recover.6
|
||||
|
||||
@@ -49,7 +49,7 @@ SHELL=/bin/sh
|
||||
# for UNIX systems
|
||||
SYSSRC = ../sys/share/ioctl.c ../sys/share/unixtty.c ../sys/unix/unixmain.c \
|
||||
../sys/unix/unixunix.c ../sys/unix/unixres.c
|
||||
SYSOBJ = ioctl.o unixmain.o unixtty.o unixunix.o unixres.o
|
||||
SYSOBJ = ioctl.o unixmain.o unixtty.o unixunix.o unixres.o liblua.a
|
||||
#
|
||||
# for Systos
|
||||
# SYSSRC = ../sys/atari/tos.c ../sys/share/pcmain.c ../sys/share/pcsys.c \
|
||||
@@ -173,6 +173,10 @@ GNOMEINC=-I/usr/lib/glib/include -I/usr/lib/gnome-libs/include -I../win/gnome
|
||||
#CFLAGS = -O -I../include
|
||||
#LFLAGS =
|
||||
|
||||
CFLAGS += -I../lib/lua-5.3.5/src
|
||||
# -lm required by lua
|
||||
LIBS += -lm
|
||||
|
||||
# The Qt and Be window systems are written in C++, while the rest of
|
||||
# NetHack is standard C. If using Qt, uncomment the LINK line here to get
|
||||
# the C++ libraries linked in.
|
||||
@@ -360,7 +364,7 @@ WINCURSESLIB = -lncurses
|
||||
# If ZLIB_COMP is defined in config.h this is necessary to link with zlib.
|
||||
# LIBS = -lz
|
||||
#
|
||||
LIBS =
|
||||
# LIBS =
|
||||
|
||||
# make NetHack
|
||||
GAME = nethack
|
||||
@@ -443,7 +447,7 @@ HACKCSRC = allmain.c alloc.c apply.c artifact.c attrib.c ball.c bones.c \
|
||||
dungeon.c eat.c end.c engrave.c exper.c explode.c extralev.c \
|
||||
files.c fountain.c hack.c hacklib.c invent.c isaac64.c light.c \
|
||||
lock.c mail.c makemon.c mapglyph.c mcastu.c mhitm.c mhitu.c \
|
||||
minion.c mklev.c mkmap.c \
|
||||
minion.c mklev.c mkmap.c nhlua.c nhlsel.c \
|
||||
mkmaze.c mkobj.c mkroom.c mon.c mondata.c monmove.c monst.c \
|
||||
mplayer.c mthrowu.c muse.c music.c o_init.c objects.c objnam.c \
|
||||
options.c pager.c pickup.c pline.c polyself.c potion.c pray.c \
|
||||
@@ -487,7 +491,7 @@ CSOURCES = $(HACKCSRC) $(SYSCSRC) $(WINCSRC) $(CHAINSRC) $(GENCSRC)
|
||||
|
||||
# all .h files except date.h, onames.h, pm.h, and vis_tab.h which would
|
||||
# cause dependency loops if run through "make depend"
|
||||
# and dgn_comp.h, dgn_file.h, lev_comp.h, special level & dungeon files.
|
||||
# and dgn_comp.h, dgn_file.h, special level & dungeon files.
|
||||
#
|
||||
HACKINCL = align.h amiconf.h artifact.h artilist.h attrib.h beconf.h botl.h \
|
||||
color.h config.h config1.h context.h coord.h decl.h def_os2.h \
|
||||
@@ -501,7 +505,7 @@ HACKINCL = align.h amiconf.h artifact.h artilist.h attrib.h beconf.h botl.h \
|
||||
wincurs.h winX.h winprocs.h wintype.h you.h youprop.h
|
||||
|
||||
HSOURCES = $(HACKINCL) date.h onames.h pm.h vis_tab.h \
|
||||
lev_comp.h dgn_comp.h dgn_file.h
|
||||
dgn_comp.h dgn_file.h
|
||||
|
||||
# the following .o's _must_ be made before any others (for makedefs)
|
||||
FIRSTOBJ = monst.o objects.o
|
||||
@@ -512,7 +516,7 @@ HOBJ = $(FIRSTOBJ) allmain.o alloc.o apply.o artifact.o attrib.o ball.o \
|
||||
drawing.o dungeon.o eat.o end.o engrave.o exper.o explode.o \
|
||||
extralev.o files.o fountain.o hack.o hacklib.o invent.o isaac64.o \
|
||||
light.o lock.o mail.o makemon.o mapglyph.o mcastu.o mhitm.o mhitu.o \
|
||||
minion.o mklev.o mkmap.o \
|
||||
minion.o mklev.o mkmap.o nhlua.o nhlsel.o \
|
||||
mkmaze.o mkobj.o mkroom.o mon.o mondata.o monmove.o \
|
||||
mplayer.o mthrowu.o muse.o music.o o_init.o objnam.o options.o \
|
||||
pager.o pickup.o pline.o polyself.o potion.o pray.o priest.o \
|
||||
@@ -1061,6 +1065,8 @@ mplayer.o: mplayer.c $(HACK_H)
|
||||
mthrowu.o: mthrowu.c $(HACK_H)
|
||||
muse.o: muse.c $(HACK_H)
|
||||
music.o: music.c $(HACK_H) #interp.c
|
||||
nhlua.o: nhlua.c $(HACK_H)
|
||||
nhlsel.o: nhlsel.c $(HACK_H)
|
||||
o_init.o: o_init.c $(HACK_H) ../include/lev.h
|
||||
objects.o: objects.c $(CONFIG_H) ../include/obj.h ../include/objclass.h \
|
||||
../include/prop.h ../include/skills.h ../include/color.h
|
||||
|
||||
@@ -80,18 +80,19 @@ VARDAT = $(VARDATD) $(VARDATND)
|
||||
|
||||
DATHELP = help hh cmdhelp keyhelp history opthelp wizhelp
|
||||
|
||||
SPEC_LEVS = asmodeus.lev baalz.lev bigrm-*.lev castle.lev fakewiz?.lev \
|
||||
juiblex.lev knox.lev medusa-?.lev minend-?.lev minefill.lev \
|
||||
minetn-?.lev oracle.lev orcus.lev sanctum.lev soko?-?.lev \
|
||||
tower?.lev valley.lev wizard?.lev \
|
||||
astral.lev air.lev earth.lev fire.lev water.lev
|
||||
QUEST_LEVS = ???-goal.lev ???-fil?.lev ???-loca.lev ???-strt.lev
|
||||
SPEC_LEVS = asmodeus.lua baalz.lua bigrm-*.lua castle.lua fakewiz?.lua \
|
||||
juiblex.lua knox.lua medusa-?.lua minend-?.lua minefill.lua \
|
||||
minetn-?.lua oracle.lua orcus.lua sanctum.lua soko?-?.lua \
|
||||
tower?.lua valley.lua wizard?.lua nhlib.lua \
|
||||
astral.lua air.lua earth.lua fire.lua water.lua
|
||||
QUEST_LEVS = ???-goal.lua ???-fil?.lua ???-loca.lua ???-strt.lua
|
||||
|
||||
DATNODLB = $(VARDATND) license symbols
|
||||
DATDLB = $(DATHELP) dungeon tribute $(SPEC_LEVS) $(QUEST_LEVS) $(VARDATD)
|
||||
DAT = $(DATNODLB) $(DATDLB)
|
||||
|
||||
$(GAME):
|
||||
( cd lib/lua-5.3.5/src && make a && cp liblua.a ../../../src/ )
|
||||
( cd src ; $(MAKE) )
|
||||
|
||||
all: $(GAME) recover Guidebook $(VARDAT) dungeon spec_levs check-dlb
|
||||
@@ -133,7 +134,6 @@ quest.dat: $(GAME)
|
||||
( cd dat ; $(MAKE) quest.dat )
|
||||
|
||||
spec_levs: dungeon
|
||||
( cd util ; $(MAKE) lev_comp )
|
||||
( cd dat ; $(MAKE) spec_levs )
|
||||
( cd dat ; $(MAKE) quest_levs )
|
||||
|
||||
@@ -288,6 +288,7 @@ clean:
|
||||
( cd src ; $(MAKE) clean )
|
||||
( cd util ; $(MAKE) clean )
|
||||
( cd doc ; $(MAKE) clean )
|
||||
( cd lib/lua-5.3.5/src && $(MAKE) clean )
|
||||
|
||||
# 'make spotless' returns the source tree to near-distribution condition.
|
||||
# it removes .o files, executables, and compiled data files
|
||||
|
||||
@@ -97,6 +97,9 @@ NHSROOT=..
|
||||
#CFLAGS = -O -I../include
|
||||
#LFLAGS =
|
||||
|
||||
CFLAGS += -I../lib/lua-5.3.5/src
|
||||
LFLAGS += -lm
|
||||
|
||||
# we specify C preprocessor flags via CFLAGS; files built with default rules
|
||||
# might include $(CPPFLAGS) which could get a value from user's environment;
|
||||
# we avoid that by forcing it empty rather than by overriding default rules
|
||||
@@ -183,11 +186,10 @@ HACK_H = ../src/hack.h-t
|
||||
|
||||
# utility .c files
|
||||
MAKESRC = makedefs.c
|
||||
SPLEVSRC = lev_yacc.c lev_lex.c lev_main.c
|
||||
DGNCOMPSRC = dgn_yacc.c dgn_lex.c dgn_main.c
|
||||
RECOVSRC = recover.c
|
||||
DLBSRC = dlb_main.c
|
||||
UTILSRCS = $(MAKESRC) panic.c $(SPLEVSRC) $(DGNCOMPSRC) $(RECOVSRC) $(DLBSRC)
|
||||
UTILSRCS = $(MAKESRC) panic.c $(DGNCOMPSRC) $(RECOVSRC) $(DLBSRC)
|
||||
READTAGSSRC = readtags.c
|
||||
|
||||
# files that define all monsters and objects
|
||||
@@ -203,9 +205,6 @@ OALLOC = $(OBJDIR)/alloc.o panic.o
|
||||
# object files for makedefs
|
||||
MAKEOBJS = makedefs.o $(OMONOBJ)
|
||||
|
||||
# object files for special levels compiler
|
||||
SPLEVOBJS = lev_yacc.o lev_lex.o lev_main.o $(OALLOC) $(ONAMING)
|
||||
|
||||
# object files for dungeon compiler
|
||||
DGNCOMPOBJS = dgn_yacc.o dgn_lex.o dgn_main.o $(OALLOC)
|
||||
|
||||
@@ -268,52 +267,6 @@ lintdefs:
|
||||
panic.o: panic.c $(CONFIG_H)
|
||||
|
||||
|
||||
# dependencies for lev_comp
|
||||
#
|
||||
lev_comp: $(SPLEVOBJS)
|
||||
$(CC) $(LFLAGS) -o lev_comp $(SPLEVOBJS) $(LIBS)
|
||||
|
||||
lev_yacc.o: lev_yacc.c $(HACK_H) ../include/sp_lev.h
|
||||
lev_main.o: lev_main.c $(HACK_H) ../include/sp_lev.h ../include/tcap.h \
|
||||
../include/date.h
|
||||
|
||||
# see lev_comp.l for WEIRD_LEX discussion
|
||||
# egrep will return failure if it doesn't find anything, but we know there
|
||||
# is one "_cplusplus" inside a comment
|
||||
lev_lex.o: lev_lex.c $(HACK_H) ../include/lev_comp.h ../include/sp_lev.h
|
||||
$(CC) -c $(CFLAGS) -DWEIRD_LEX=`egrep -c _cplusplus lev_lex.c` lev_lex.c
|
||||
|
||||
# '$(YACC) -d' generates both $(YTABC) and $(YTABH) in one run
|
||||
../include/lev_comp.h: lev_yacc.c
|
||||
|
||||
lev_yacc.c: lev_comp.y
|
||||
$(YACC) $(YACCDIST) -d lev_comp.y
|
||||
sed -e 's#"$(YTABC)"#"$@"#' -e 's#$(YTABC):#$@:#' $(YTABC) > $@ \
|
||||
&& rm $(YTABC)
|
||||
sed -e 's#"$(YTABH)"#"lev_comp.h"#' $(YTABH) > ../include/lev_comp.h \
|
||||
&& rm $(YTABH)
|
||||
|
||||
lev_lex.c: lev_comp.l
|
||||
$(LEX) $(FLEXDIST) lev_comp.l
|
||||
sed -e 's#"$(LEXYYC)"#"$@"#' -e 's# *$$##' \
|
||||
-e 's#static void yyunput#void yyunput#' $(LEXYYC) > $@ \
|
||||
&& rm $(LEXYYC)
|
||||
# note: flex code construction using m4 macros results in some trailing
|
||||
# spaces; <space><space><star> is basic RE substitute for <space><plus>
|
||||
# and we don't bother stripping trailing tabs because that gets messy;
|
||||
# make expands <dollar><dollar> into <dollar> which is RE end-of-line.
|
||||
# flex also creates yyunput() as a static routine, but lev_comp doesn't
|
||||
# use it so compiler complaints can ensue; recent flex versions honor
|
||||
# NO_YY_UNPUT to suppress it, but older ones don't; making it global to
|
||||
# avoid an "unused function" warning is simpler than trying to remove
|
||||
# the whole thing (although full 'lint' may still complain).
|
||||
|
||||
# with all of extern.h's functions to complain about, we drown in
|
||||
# 'defined but not used' without -u
|
||||
lintlev:
|
||||
@lint -axhu -I../include -DLINT $(SPLEVSRC) $(CALLOC) $(CNAMING) | sed '/_flsbuf/d'
|
||||
|
||||
|
||||
# dependencies for dgn_comp
|
||||
#
|
||||
dgn_comp: $(DGNCOMPOBJS)
|
||||
@@ -550,12 +503,6 @@ $(CONFIG_H): ../include/config.h
|
||||
|
||||
# 'make dist' => put generated lex and yacc sources into place for distribution
|
||||
SYSSHARE=../sys/share/
|
||||
$(SYSSHARE)lev_lex.c: lev_lex.c
|
||||
cp lev_lex.c $@
|
||||
$(SYSSHARE)lev_yacc.c: lev_yacc.c
|
||||
cp lev_yacc.c $@
|
||||
$(SYSSHARE)lev_comp.h: ../include/lev_comp.h
|
||||
cp ../include/lev_comp.h $@
|
||||
$(SYSSHARE)dgn_lex.c: dgn_lex.c
|
||||
cp dgn_lex.c $@
|
||||
$(SYSSHARE)dgn_yacc.c: dgn_yacc.c
|
||||
@@ -563,8 +510,7 @@ $(SYSSHARE)dgn_yacc.c: dgn_yacc.c
|
||||
$(SYSSHARE)dgn_comp.h: ../include/dgn_comp.h
|
||||
cp ../include/dgn_comp.h $@
|
||||
|
||||
dist: $(SYSSHARE)lev_lex.c $(SYSSHARE)lev_yacc.c $(SYSSHARE)lev_comp.h \
|
||||
$(SYSSHARE)dgn_lex.c $(SYSSHARE)dgn_yacc.c $(SYSSHARE)dgn_comp.h
|
||||
dist: $(SYSSHARE)dgn_lex.c $(SYSSHARE)dgn_yacc.c $(SYSSHARE)dgn_comp.h
|
||||
@echo 'pre-generated lex and yacc sources are in place in sys/share'
|
||||
|
||||
tags: $(UTILSRCS)
|
||||
@@ -574,9 +520,9 @@ clean:
|
||||
-rm -f *.o
|
||||
|
||||
spotless: clean
|
||||
-rm -f lev_lex.c lev_yacc.c dgn_lex.c dgn_yacc.c
|
||||
-rm -f ../include/lev_comp.h ../include/dgn_comp.h
|
||||
-rm -f dgn_lex.c dgn_yacc.c
|
||||
-rm -f ../include/dgn_comp.h
|
||||
-rm -f ../include/tile.h tiletxt.c
|
||||
-rm -f makedefs lev_comp dgn_comp recover dlb
|
||||
-rm -f makedefs dgn_comp recover dlb
|
||||
-rm -f gif2txt txt2ppm tile2x11 tile2img.ttp xpm2img.ttp \
|
||||
tilemap tileedit tile2bmp
|
||||
|
||||
@@ -20,7 +20,8 @@ VARDIR = $(HACKDIR)
|
||||
|
||||
POSTINSTALL=cp -n sys/unix/sysconf $(INSTDIR)/sysconf; $(CHOWN) $(GAMEUID) $(INSTDIR)/sysconf; $(CHGRP) $(GAMEGRP) $(INSTDIR)/sysconf; chmod $(VARFILEPERM) $(INSTDIR)/sysconf;
|
||||
|
||||
CFLAGS=-g -O -I../include -DNOTPARMDECL -DDLB
|
||||
CFLAGS=-g -O -I../include -DNOTPARMDECL
|
||||
CFLAGS+=-DDLB
|
||||
CFLAGS+=-DCOMPRESS=\"/bin/gzip\" -DCOMPRESS_EXTENSION=\".gz\"
|
||||
CFLAGS+=-DSYSCF -DSYSCF_FILE=\"$(HACKDIR)/sysconf\" -DSECURE
|
||||
CFLAGS+=-DTIMED_DELAY
|
||||
@@ -33,7 +34,6 @@ CFLAGS+=-DCURSES_GRAPHICS
|
||||
#CFLAGS+=-DSCORE_ON_BOTL
|
||||
#CFLAGS+=-DMSGHANDLER
|
||||
#CFLAGS+=-DTTY_TILES_ESCCODES
|
||||
#CFLAGS+=-DDLB
|
||||
|
||||
LINK=$(CC)
|
||||
# Only needed for GLIBC stack trace:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# NetHack 3.6 Makefile.gcc $NHDT-Date: 1546174698 2018/12/30 12:58:18 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.71 $
|
||||
# NetHack 3.7 Makefile.gcc $NHDT-Date: 1546174698 2018/12/30 12:58:18 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.71 $
|
||||
# Copyright (c) 2010 by Michael Allison
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
#
|
||||
@@ -30,15 +30,24 @@
|
||||
# If you have any questions read the sys/winnt/Install.nt file included
|
||||
# with the distribution.
|
||||
#==============================================================================
|
||||
# BUILD DECISIONS SECTION
|
||||
# DECISIONS SECTION
|
||||
#
|
||||
# There are currently only 4 decisions that you have to make.
|
||||
# Build Options Decisions
|
||||
#
|
||||
# There are currently 4 decisions that you can choose to make.
|
||||
# None of the 4 decisions are absolutely required because defaults are in place:
|
||||
# 1. Where do you want your build to end up?
|
||||
# 2. Do you want debug information in the executable?
|
||||
# 3. Do you want to explicitly override auto-detection of a 32-bit or 64-bit target?
|
||||
# 4. Do you want to include any optional interfaces in the port?
|
||||
# 4a) curses
|
||||
# 4b) Qt
|
||||
#
|
||||
# Mandatory LUA source Location
|
||||
#
|
||||
# LUA source code or is required to build NetHack-3.7.
|
||||
# LUATOP must point to the location of the LUA sources.
|
||||
#
|
||||
#-----------------------------------------------------------------------------------------
|
||||
#=========================================================================================
|
||||
|
||||
@@ -116,7 +125,19 @@ TARGET_CPU=x86
|
||||
# Other libraries are placed in a subdirectory of your home directory, either
|
||||
# x86libs or x64libs depending on whether you're building for 64 bits.
|
||||
#
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Location of LUA
|
||||
#
|
||||
# Original source needs to be obtained from:
|
||||
# http://www.lua.org/ftp/lua-5.3.5.tar.gz
|
||||
#
|
||||
# This build assumes that the LUA sources are located
|
||||
# at the specified location. If they are actually elsewhere
|
||||
# you'll need to specify the correct spot below in order to
|
||||
# successfully build NetHack-3.7.
|
||||
#
|
||||
ADD_LUA=Y
|
||||
LUATOP=../../lua-5.3.5
|
||||
#
|
||||
#==============================================================================
|
||||
# This marks the end of the BUILD DECISIONS section.
|
||||
@@ -251,16 +272,10 @@ U = $(UTIL)/
|
||||
|
||||
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
|
||||
|
||||
LEVCOMPOBJS = $(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
|
||||
|
||||
@@ -313,7 +328,13 @@ VOBJ24 = $(O)track.o $(O)trap.o $(O)u_init.o $(O)uhitm.o
|
||||
VOBJ25 = $(O)vault.o $(O)vis_tab.o $(O)vision.o $(O)weapon.o
|
||||
VOBJ26 = $(O)were.o $(O)wield.o $(O)windows.o $(O)wizard.o
|
||||
VOBJ27 = $(O)worm.o $(O)worn.o $(O)write.o $(O)zap.o
|
||||
#VOBJ28 = $(O)win10.o
|
||||
VOBJ28 = $(O)sfbase.o $(O)sfdata.o
|
||||
VOBJ29 = $(O)sfstruct.o $(O)sfascii.o $(O)sflendian.o
|
||||
#VOBJ31 = $(O)win10.o
|
||||
|
||||
ifeq "$(ADD_LUA)" "Y"
|
||||
LUAOBJ = $(O)nhlua.c $(O)nhlsel.c
|
||||
endif
|
||||
|
||||
DLBOBJ = $(O)dlb.o
|
||||
|
||||
@@ -389,10 +410,39 @@ SOUND = $(OBJ)/ntsound.o
|
||||
|
||||
VVOBJ = $(O)version.o
|
||||
|
||||
ALLOBJ = $(SOBJ) $(DLBOBJ) $(WOBJ) $(OBJS) $(VVOBJ)
|
||||
ALLOBJ = $(SOBJ) $(DLBOBJ) $(WOBJ) $(OBJS) $(VVOBJ) $(LUAOBJ)
|
||||
|
||||
OPTIONS_FILE = $(DAT)\options
|
||||
|
||||
#===============-=================================================
|
||||
# LUA library
|
||||
# Source from http://www.lua.org/ftp/lua-5.3.5.tar.gz
|
||||
#=================================================================
|
||||
|
||||
LUASRC = $(LUATOP)/src
|
||||
LUALIB = $(O)lua-5.3.5.static.a
|
||||
LUADLL = $(O)lua-5.3.5.a
|
||||
LUAINCL = -I$(LUASRC)
|
||||
#LUAFLAGS = unix added -lm here?
|
||||
LUATARGETS = lua.exe luac.exe $(LUADLL) $(LUALIB)
|
||||
|
||||
LUASRCFILES = lapi.c lauxlib.c lbaselib.c lbitlib.c lcode.c \
|
||||
lcorolib.c lctype.c ldblib.c ldebug.c ldo.c \
|
||||
ldump.c lfunc.c lgc.c linit.c liolib.c llex.c \
|
||||
lmathlib.c lmem.c loadlib.c lobject.c lopcodes.c \
|
||||
loslib.c lparser.c lstate.c lstring.c lstrlib.c \
|
||||
ltable.c ltablib.c ltm.c lundump.c lutf8lib.c \
|
||||
lvm.c lzio.c
|
||||
|
||||
LUAOBJFILES = $(O)lapi.o $(O)lauxlib.o $(O)lbaselib.o $(O)lbitlib.o \
|
||||
$(O)lcode.o $(O)lcorolib.o $(O)lctype.o $(O)ldblib.o \
|
||||
$(O)ldebug.o $(O)ldo.o $(O)ldump.o $(O)lfunc.o \
|
||||
$(O)lgc.o $(O)linit.o $(O)liolib.o $(O)llex.o \
|
||||
$(O)lmathlib.o $(O)lmem.o $(O)loadlib.o $(O)lobject.o \
|
||||
$(O)lopcodes.o $(O)loslib.o $(O)lparser.o $(O)lstate.o \
|
||||
$(O)lstring.o $(O)lstrlib.o $(O)ltable.o $(O)ltablib.o \
|
||||
$(O)ltm.o $(O)lundump.o $(O)lutf8lib.o $(O)lvm.o $(O)lzio.o
|
||||
|
||||
ifeq "$(ADD_CURSES)" "Y"
|
||||
#==========================================
|
||||
# PDCurses build macros
|
||||
@@ -448,7 +498,6 @@ HACK_H = $(INCL)/hack.h $(CONFIG_H) $(INCL)/align.h $(INCL)/context.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
|
||||
|
||||
@@ -469,11 +518,7 @@ CURSDEF=
|
||||
CURSESLIB=
|
||||
endif
|
||||
|
||||
ifneq "$(ADD_CURSES)" "Y"
|
||||
INCLDIR=-I../include -I../sys/winnt
|
||||
else
|
||||
INCLDIR=-I../include -I../sys/winnt
|
||||
endif
|
||||
INCLDIR=-I../include -I../sys/winnt $(LUAINCL)
|
||||
|
||||
#==========================================
|
||||
#==========================================
|
||||
@@ -655,49 +700,11 @@ $(OBJ)/%.o : $(PDCWINCON)/%.c
|
||||
$(cc) $(PDCINCL) $(CFLAGS) -o$@ $<
|
||||
|
||||
#==========================================
|
||||
# Level Compiler Info
|
||||
# Rules for LUA files
|
||||
#==========================================
|
||||
|
||||
# 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
|
||||
YACC=
|
||||
|
||||
#LEX = lex
|
||||
#LEX = flex
|
||||
LEX=
|
||||
|
||||
#
|
||||
# - Specify your flex skeleton file (if needed).
|
||||
#
|
||||
|
||||
FLEXSKEL =
|
||||
#FLEXSKEL = -S../tools/flex.ske
|
||||
|
||||
YTABC = y_tab.c
|
||||
YTABH = y_tab.h
|
||||
LEXYYC = lexyy.c
|
||||
|
||||
export YACC
|
||||
export LEX
|
||||
export FLEXSKEL
|
||||
export YTABC
|
||||
export YTABH
|
||||
export LEXYYC
|
||||
$(OBJ)/%.o : $(LUASRC)/%.c
|
||||
$(cc) $(CFLAGS) -o$@ $<
|
||||
|
||||
#==========================================
|
||||
# Rules for files in win/Qt4
|
||||
@@ -762,7 +769,7 @@ ifeq "$(USE_DLB)" "Y"
|
||||
else
|
||||
$(subst /,\,copy $(DAT)/*. $(GAMEDIR))
|
||||
$(subst /,\,copy $(DAT)/*.dat $(GAMEDIR))
|
||||
$(subst /,\,copy $(DAT)/*.lev $(GAMEDIR))
|
||||
# $(subst /,\,copy $(DAT)/*.lua $(GAMEDIR))
|
||||
$(subst /,\,if exist $(GAMEDIR)/makefile del $(GAMEDIR)/makefile)
|
||||
endif
|
||||
$(subst /,\,if not exist $(GAMEDIR)/sysconf copy $(MSWSYS)/sysconf $(GAMEDIR))
|
||||
@@ -781,44 +788,11 @@ 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)levcomp $(DAT)/bigroom.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/castle.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/endgame.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/gehennom.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/knox.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/mines.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/medusa.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/oracle.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/sokoban.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/tower.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/yendor.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/arch.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/barb.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/caveman.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/healer.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/knight.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/monk.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/priest.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/ranger.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/rogue.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/samurai.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/tourist.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/valkyrie.des)
|
||||
$(subst /,\,$(U)levcomp $(DAT)/wizard.des)
|
||||
$(subst /,\,copy *.lev $(DAT))
|
||||
$(subst /,\,del *.lev)
|
||||
$(O)sp_lev.tag: $(O)utility.tag
|
||||
$(subst /,\,echo sp_levs done > $(O)sp_lev.tag)
|
||||
|
||||
$(O)utility.tag: $(INCL)/date.h $(INCL)/onames.h $(INCL)/pm.h \
|
||||
$(SRC)/vis_tab.c $(U)levcomp.exe $(INCL)/vis_tab.h \
|
||||
$(SRC)/vis_tab.c $(INCL)/vis_tab.h \
|
||||
$(U)dgncomp.exe $(TILEUTIL16)
|
||||
$(subst /,\,@echo utilities made >$@)
|
||||
@echo utilities made.
|
||||
@@ -845,10 +819,11 @@ gamedir.tag:
|
||||
test -d $(GAMEDIR) && echo directory created > $@
|
||||
|
||||
$(GAMEDIR)/NetHack.exe : gamedir.tag $(PDCLIB) $(O)tile.o $(O)nttty.o $(O)guistub.o \
|
||||
$(ALLOBJ) $(TTYOBJ) $(GUIOBJ) $(O)conres.o $(KEYDLLS)
|
||||
$(ALLOBJ) $(TTYOBJ) $(GUIOBJ) $(O)conres.o $(KEYDLLS) \
|
||||
$(LUATARGETS)
|
||||
@echo Linking $@...
|
||||
$(link) $(lflags) -o$@ $(ALLOBJ) $(TTYOBJ) $(O)nttty.o $(O)tile.o \
|
||||
$(O)guistub.o $(O)conres.o $(PDCLIB) $(conlibs) -static -lstdc++
|
||||
$(O)guistub.o $(O)conres.o $(PDCLIB) $(LUALIB) $(conlibs) -static -lstdc++
|
||||
$(subst /,\,@if exist $(O)install.tag del $(O)install.tag)
|
||||
|
||||
# NetHackW
|
||||
@@ -861,10 +836,11 @@ $(GAMEDIR)/NetHack.exe : gamedir.tag $(PDCLIB) $(O)tile.o $(O)nttty.o $(O)guistu
|
||||
|
||||
ifneq "$(SKIP_NETHACKW)" "Y"
|
||||
$(GAMEDIR)/NetHackW.exe : gamedir.tag $(PDCLIB) $(O)tile.o $(O)ttystub.o \
|
||||
$(ALLOBJ) $(TTYOBJ) $(GUIOBJ) $(O)winres.o $(KEYDLLS)
|
||||
$(ALLOBJ) $(TTYOBJ) $(GUIOBJ) $(O)winres.o $(KEYDLLS) \
|
||||
$(LUATARGETS)
|
||||
@echo Linking $@...
|
||||
$(link) $(lflags) -mwindows -o$@ $(ALLOBJ) $(GUIOBJ) $(O)tile.o $(O)ttystub.o \
|
||||
$(O)winres.o $(PDCLIB) $(guilibs) -static -lstdc++
|
||||
$(O)winres.o $(PDCLIB) $(guilibs) $(LUALIB) -static -lstdc++
|
||||
$(subst /,\,@if exist $(O)install.tag del $(O)install.tag)
|
||||
endif
|
||||
|
||||
@@ -1022,35 +998,6 @@ $(MSWIN)/splash.bmp: $(U)uudecode.exe $(MSWIN)/splash.uu
|
||||
$(subst /,\,copy splash.bmp $@)
|
||||
del splash.bmp
|
||||
|
||||
|
||||
#==========================================
|
||||
# Level Compiler Stuff
|
||||
#==========================================
|
||||
|
||||
LEVCFLAGS=$(cflags) -c -DWIN32 -D_WIN32 -I../include $(cdebug) -DDLB
|
||||
|
||||
$(U)lev_yacc.c: $(U)lev_comp.y
|
||||
mingw32-make -C ../util -f ../win/win32/levstuff-mingw32.mak $(U)lev_yacc.c
|
||||
|
||||
$(U)lev_lex.c: $(HACK_H) $(U)lev_comp.l
|
||||
mingw32-make -C ../util -f ../win/win32/levstuff-mingw32.mak $(U)lev_lex.c
|
||||
|
||||
$(INCL)/lev_comp.h:
|
||||
mingw32-make -C ../include -f ../win/win32/levstuff-mingw32.mak $(INCL)/lev_comp.h
|
||||
|
||||
$(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)levcomp.exe: $(LEVCOMPOBJS)
|
||||
@echo Linking $@...
|
||||
$(link) $(LFLAGSU) -o$@ $(LEVCOMPOBJS)
|
||||
|
||||
#==========================================
|
||||
# Dungeon Compiler Stuff
|
||||
#==========================================
|
||||
@@ -1144,7 +1091,7 @@ nhdat$(NHV): $(U)dlb_main.exe $(DAT)/data $(DAT)/oracles $(OPTIONS_FILE) \
|
||||
$(subst /,\,echo epitaph >>$(DAT)/dlb.lst)
|
||||
$(subst /,\,echo bogusmon >>$(DAT)/dlb.lst)
|
||||
$(subst /,\,echo tribute >>$(DAT)/dlb.lst)
|
||||
dir /l /b /-p $(subst /,\,$(DAT)/*.lev >>$(DAT)/dlb.lst)
|
||||
dir /l /b /-p $(subst /,\,*.lua >>$(DAT)/dlb.lst)
|
||||
$(subst /,\,$(U)dlb_main CcIf $(DAT) dlb.lst $(SRC)/nhdat)
|
||||
|
||||
#==========================================
|
||||
@@ -1239,6 +1186,27 @@ $(O)til2bm32.o: $(WSHR)/til2bm32.c $(HACK_H) $(TILE_H) $(MSWSYS)/win32api.h
|
||||
$(O)pdcurses.a : $(PDCLIBOBJS) $(PDCOBJS)
|
||||
ar rcs $@ $(PDCLIBOBJS) $(PDCOBJS)
|
||||
|
||||
|
||||
#=============================================================
|
||||
# LUA
|
||||
#=============================================================
|
||||
|
||||
lua.exe: $(O)lua.o $(LUALIB)
|
||||
$(link) $(LFLAGSU) -o$@ $(O)lua.o $(LUALIB)
|
||||
|
||||
luac.exe: $(O)luac.o $(LUALIB)
|
||||
$(link) $(LFLAGSU) -o$@ $(O)luac.o $(LUALIB)
|
||||
|
||||
lua5.3.5.dll: $(LUAOBJFILES)
|
||||
$(cc) -shared -Wl,--export-all-symbols \
|
||||
-Wl,--add-stdcall-alias -o $@ $<
|
||||
|
||||
lua5.3.5-static.a: $(LUAOBJFILES)
|
||||
ar rcs $@ $(LUAOBJFILES)
|
||||
|
||||
$(O)lua.o: $(LUASRC)/lua.c
|
||||
$(O)luac.o: $(LUASRC)/luac.c
|
||||
|
||||
#==========================================
|
||||
# Housekeeping
|
||||
#==========================================
|
||||
@@ -1269,42 +1237,44 @@ ifneq "$(W_DAT)" ""
|
||||
if exist $(W_DAT)\engrave del $(W_DAT)\engrave
|
||||
if exist $(W_DAT)\epitaph del $(W_DAT)\epitaph
|
||||
if exist $(W_DAT)\bogusmon del $(W_DAT)\bogusmon
|
||||
if exist $(W_DAT)\???-fil?.lev del $(W_DAT)\???-fil?.lev
|
||||
if exist $(W_DAT)\???-goal.lev del $(W_DAT)\???-goal.lev
|
||||
if exist $(W_DAT)\???-loca.lev del $(W_DAT)\???-loca.lev
|
||||
if exist $(W_DAT)\???-strt.lev del $(W_DAT)\???-strt.lev
|
||||
if exist $(W_DAT)\air.lev del $(W_DAT)\air.lev
|
||||
if exist $(W_DAT)\asmodeus.lev del $(W_DAT)\asmodeus.lev
|
||||
if exist $(W_DAT)\astral.lev del $(W_DAT)\astral.lev
|
||||
if exist $(W_DAT)\baalz.lev del $(W_DAT)\baalz.lev
|
||||
if exist $(W_DAT)\bigrm-*.lev del $(W_DAT)\bigrm-*.lev
|
||||
if exist $(W_DAT)\castle.lev del $(W_DAT)\castle.lev
|
||||
if exist $(W_DAT)\data del $(W_DAT)\data
|
||||
if exist $(W_DAT)\oracles del $(W_DAT)\oracles
|
||||
if exist $(W_DAT)\rumors del $(W_DAT)\rumors
|
||||
if exist $(W_DAT)\quest.dat del $(W_DAT)\quest.dat
|
||||
if exist $(W_DAT)\dungeon del $(W_DAT)\dungeon
|
||||
if exist $(W_DAT)\dungeon.pdf del $(W_DAT)\dungeon.pdf
|
||||
if exist $(W_DAT)\earth.lev del $(W_DAT)\earth.lev
|
||||
if exist $(W_DAT)\fakewiz?.lev del $(W_DAT)\fakewiz?.lev
|
||||
if exist $(W_DAT)\fire.lev del $(W_DAT)\fire.lev
|
||||
if exist $(W_DAT)\juiblex.lev del $(W_DAT)\juiblex.lev
|
||||
if exist $(W_DAT)\knox.lev del $(W_DAT)\knox.lev
|
||||
if exist $(W_DAT)\medusa-?.lev del $(W_DAT)\medusa-?.lev
|
||||
if exist $(W_DAT)\mine*.lev del $(W_DAT)\mine*.lev
|
||||
if exist $(W_DAT)\data del $(W_DAT)\data
|
||||
if exist $(W_DAT)\options del $(W_DAT)\options
|
||||
if exist $(W_DAT)\ttyoptions del $(W_DAT)\ttyoptions
|
||||
if exist $(W_DAT)\guioptions del $(W_DAT)\guioptions
|
||||
if exist $(W_DAT)\oracle.lev del $(W_DAT)\oracle.lev
|
||||
if exist $(W_DAT)\oracles del $(W_DAT)\oracles
|
||||
if exist $(W_DAT)\orcus.lev del $(W_DAT)\orcus.lev
|
||||
if exist $(W_DAT)\rumors del $(W_DAT)\rumors
|
||||
if exist $(W_DAT)\quest.dat del $(W_DAT)\quest.dat
|
||||
if exist $(W_DAT)\sanctum.lev del $(W_DAT)\sanctum.lev
|
||||
if exist $(W_DAT)\soko?-?.lev del $(W_DAT)\soko?-?.lev
|
||||
if exist $(W_DAT)\tower?.lev del $(W_DAT)\tower?.lev
|
||||
if exist $(W_DAT)\valley.lev del $(W_DAT)\valley.lev
|
||||
if exist $(W_DAT)\water.lev del $(W_DAT)\water.lev
|
||||
if exist $(W_DAT)\wizard?.lev del $(W_DAT)\wizard?.lev
|
||||
if exist $(W_DAT)\dlb.lst del $(W_DAT)\dlb.lst
|
||||
if exist $(W_DAT)\porthelp del $(W_DAT)\porthelp
|
||||
ifdef OBSOLETE_LEVEL_COMPILER
|
||||
if exist $(W_DAT)\???-fil?.des del $(W_DAT)\???-fil?.des
|
||||
if exist $(W_DAT)\???-goal.des del $(W_DAT)\???-goal.des
|
||||
if exist $(W_DAT)\???-loca.des del $(W_DAT)\???-loca.des
|
||||
if exist $(W_DAT)\???-strt.des del $(W_DAT)\???-strt.des
|
||||
if exist $(W_DAT)\air.des del $(W_DAT)\air.des
|
||||
if exist $(W_DAT)\asmodeus.des del $(W_DAT)\asmodeus.des
|
||||
if exist $(W_DAT)\astral.des del $(W_DAT)\astral.des
|
||||
if exist $(W_DAT)\baalz.des del $(W_DAT)\baalz.des
|
||||
if exist $(W_DAT)\bigrm-*.des del $(W_DAT)\bigrm-*.des
|
||||
if exist $(W_DAT)\castle.des del $(W_DAT)\castle.des
|
||||
if exist $(W_DAT)\earth.des del $(W_DAT)\earth.des
|
||||
if exist $(W_DAT)\fakewiz?.des del $(W_DAT)\fakewiz?.des
|
||||
if exist $(W_DAT)\fire.des del $(W_DAT)\fire.des
|
||||
if exist $(W_DAT)\juiblex.des del $(W_DAT)\juiblex.des
|
||||
if exist $(W_DAT)\knox.des del $(W_DAT)\knox.des
|
||||
if exist $(W_DAT)\medusa-?.des del $(W_DAT)\medusa-?.des
|
||||
if exist $(W_DAT)\mine*.des del $(W_DAT)\mine*.des
|
||||
if exist $(W_DAT)\oracle.des del $(W_DAT)\oracle.des
|
||||
if exist $(W_DAT)\orcus.des del $(W_DAT)\orcus.des
|
||||
if exist $(W_DAT)\sanctum.des del $(W_DAT)\sanctum.des
|
||||
if exist $(W_DAT)\soko?-?.des del $(W_DAT)\soko?-?.des
|
||||
if exist $(W_DAT)\tower?.des del $(W_DAT)\tower?.des
|
||||
if exist $(W_DAT)\valley.des del $(W_DAT)\valley.des
|
||||
if exist $(W_DAT)\water.des del $(W_DAT)\water.des
|
||||
if exist $(W_DAT)\wizard?.des del $(W_DAT)\wizard?.des
|
||||
endif
|
||||
endif
|
||||
ifneq "$(W_OBJ)" ""
|
||||
if exist $(W_OBJ)\sp_lev.tag del $(W_OBJ)\sp_lev.tag
|
||||
@@ -1358,7 +1328,6 @@ clean:
|
||||
if exist $(O)utility.tag del $(O)utility.tag
|
||||
ifneq "$(W_UTIL)" ""
|
||||
if exist $(W_UTIL)\makedefs.exe del $(W_UTIL)\makedefs.exe
|
||||
if exist $(W_UTIL)\levcomp.exe del $(W_UTIL)\levcomp.exe
|
||||
if exist $(W_UTIL)\dgncomp.exe del $(W_UTIL)\dgncomp.exe
|
||||
endif
|
||||
ifneq "$(W_SRC)" ""
|
||||
@@ -1375,8 +1344,6 @@ ifneq "$(W_OBJ)" ""
|
||||
if exist $(W_OBJ)\dlb_main.MAP del $(W_OBJ)\dlb_main.MAP
|
||||
if exist $(W_OBJ)\dlb_main.PDB del $(W_OBJ)\dlb_main.PDB
|
||||
if exist $(W_OBJ)\gamedir.tag del $(W_OBJ)\gamedir.tag
|
||||
if exist $(W_OBJ)\levcomp.MAP del $(W_OBJ)\levcomp.MAP
|
||||
if exist $(W_OBJ)\levcomp.PDB del $(W_OBJ)\levcomp.PDB
|
||||
if exist $(W_OBJ)\makedefs.MAP del $(W_OBJ)\makedefs.MAP
|
||||
if exist $(W_OBJ)\makedefs.PDB del $(W_OBJ)\makedefs.PDB
|
||||
if exist $(W_OBJ)\NetHack.MAP del $(W_OBJ)\NetHack.MAP
|
||||
@@ -1708,6 +1675,8 @@ $(O)mplayer.o: mplayer.c $(HACK_H)
|
||||
$(O)mthrowu.o: mthrowu.c $(HACK_H)
|
||||
$(O)muse.o: muse.c $(HACK_H)
|
||||
$(O)music.o: music.c $(HACK_H) #interp.c
|
||||
$(O)nhlua.o: nhlua.c $(HACK_H)
|
||||
$(O)nhlsel.o: nhlsel.c $(HACK_H)
|
||||
$(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
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#==============================================================================
|
||||
# Build Tools Environment
|
||||
#
|
||||
# NetHack 3.6.x Makefile for MS Visual Studio Visual C++ compiler
|
||||
# NetHack 3.7 Makefile for MS Visual Studio Visual C++ compiler
|
||||
#
|
||||
# Visual Studio Compilers Tested:
|
||||
# - Microsoft Visual Studio 2017 Community Edition
|
||||
@@ -29,15 +29,22 @@
|
||||
# If you have any questions read the sys/winnt/Install.nt file included
|
||||
# with the distribution.
|
||||
#========================================================================================
|
||||
# BUILD DECISIONS SECTION
|
||||
# DECISIONS SECTION
|
||||
#
|
||||
# There are currently only 4 decisions that you can choose to make, and none are
|
||||
# absolutely required because defaults are in place:
|
||||
# Build Options Decisions
|
||||
#
|
||||
# There are currently 4 decisions that you can choose to make.
|
||||
# none of the 4 decisions are absolutely required because defaults are in place:
|
||||
# 1. Where do you want your build to end up?
|
||||
# 2. Do you want debug information in the executable?
|
||||
# 3. Do you want to explicitly override auto-detection of a 32-bit or 64-bit target?
|
||||
# 4. Do you want to include the optional curses port?
|
||||
#
|
||||
# Mandatory LUA source Location
|
||||
#
|
||||
# LUA source code or is required to build NetHack-3.7.
|
||||
# LUATOP must point to the location of the LUA sources.
|
||||
#
|
||||
#-----------------------------------------------------------------------------------------
|
||||
#=========================================================================================
|
||||
|
||||
@@ -72,8 +79,21 @@ DEBUGINFO = Y
|
||||
# PDCurses header (.h) files and PDCURSES_C to the location
|
||||
# of your PDCurses C files.
|
||||
#
|
||||
#ADD_CURSES=Y
|
||||
#PDCURSES_TOP=..\..\pdcurses
|
||||
ADD_CURSES=Y
|
||||
PDCURSES_TOP=..\..\pdcurses
|
||||
#
|
||||
#---------------------------------------------------------------
|
||||
# Location of LUA
|
||||
#
|
||||
# Original source needs to be obtained from:
|
||||
# http://www.lua.org/ftp/lua-5.3.5.tar.gz
|
||||
#
|
||||
# This build assumes that the LUA sources are located
|
||||
# at the specified location. If they are actually elsewhere
|
||||
# you'll need to specify the correct spot below in order to
|
||||
# successfully build NetHack-3.7.
|
||||
#
|
||||
LUATOP=..\..\lua-5.3.5
|
||||
#
|
||||
#==============================================================================
|
||||
# This marks the end of the BUILD DECISIONS section.
|
||||
@@ -88,7 +108,6 @@ DEBUGINFO = Y
|
||||
# Nothing below here should have to be changed.#
|
||||
# #
|
||||
################################################
|
||||
|
||||
#
|
||||
#==============================================================================
|
||||
#
|
||||
@@ -181,8 +200,10 @@ MAKESRC = $(U)makedefs.c
|
||||
|
||||
MAKEOBJS = $(O)makedefs.o $(O)monst.o $(O)objects.o
|
||||
|
||||
!IFDEF OBSOLETE_LEVEL_COMPILER
|
||||
LEVCOMPOBJS = $(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
|
||||
!ENDIF
|
||||
|
||||
DGNCOMPOBJS = $(O)dgn_yacc.o $(O)dgn_lex.o $(O)dgn_main.o \
|
||||
$(O)alloc.o $(O)panic.o
|
||||
@@ -239,6 +260,8 @@ VOBJ27 = $(O)worm.o $(O)worn.o $(O)write.o $(O)zap.o
|
||||
VOBJ28 = $(O)sfbase.o $(O)sfdata.o
|
||||
VOBJ29 = $(O)sfstruct.o $(O)sfascii.o $(O)sflendian.o
|
||||
|
||||
LUAOBJ = $(O)nhlua.o $(O)nhlsel.o
|
||||
|
||||
DLBOBJ = $(O)dlb.o
|
||||
|
||||
REGEX = $(O)cppregex.o
|
||||
@@ -287,10 +310,38 @@ SOUND = $(OBJ)\ntsound.o
|
||||
|
||||
VVOBJ = $(O)version.o
|
||||
|
||||
ALLOBJ = $(SOBJ) $(DLBOBJ) $(WOBJ) $(OBJS) $(VVOBJ)
|
||||
ALLOBJ = $(SOBJ) $(DLBOBJ) $(WOBJ) $(OBJS) $(VVOBJ) $(LUAOBJ)
|
||||
|
||||
OPTIONS_FILE = $(DAT)\options
|
||||
|
||||
#===============-=================================================
|
||||
# LUA library
|
||||
# Source from http://www.lua.org/ftp/lua-5.3.5.tar.gz
|
||||
#=================================================================
|
||||
|
||||
LUASRC = $(LUATOP)\src
|
||||
LUALIB = $(O)lua5.3.5-static.lib
|
||||
LUADLL = $(O)lua5.3.5.dll
|
||||
LUAINCL = /I$(LUASRC)
|
||||
LUATARGETS = lua.exe luac.exe $(LUADLL) $(LUALIB)
|
||||
|
||||
LUASRCFILES = lapi.c lauxlib.c lbaselib.c lbitlib.c lcode.c \
|
||||
lcorolib.c lctype.c ldblib.c ldebug.c ldo.c \
|
||||
ldump.c lfunc.c lgc.c linit.c liolib.c llex.c \
|
||||
lmathlib.c lmem.c loadlib.c lobject.c lopcodes.c \
|
||||
loslib.c lparser.c lstate.c lstring.c lstrlib.c \
|
||||
ltable.c ltablib.c ltm.c lundump.c lutf8lib.c \
|
||||
lvm.c lzio.c
|
||||
|
||||
LUAOBJFILES = $(O)lapi.o $(O)lauxlib.o $(O)lbaselib.o $(O)lbitlib.o \
|
||||
$(O)lcode.o $(O)lcorolib.o $(O)lctype.o $(O)ldblib.o \
|
||||
$(O)ldebug.o $(O)ldo.o $(O)ldump.o $(O)lfunc.o \
|
||||
$(O)lgc.o $(O)linit.o $(O)liolib.o $(O)llex.o \
|
||||
$(O)lmathlib.o $(O)lmem.o $(O)loadlib.o $(O)lobject.o \
|
||||
$(O)lopcodes.o $(O)loslib.o $(O)lparser.o $(O)lstate.o \
|
||||
$(O)lstring.o $(O)lstrlib.o $(O)ltable.o $(O)ltablib.o \
|
||||
$(O)ltm.o $(O)lundump.o $(O)lutf8lib.o $(O)lvm.o $(O)lzio.o
|
||||
|
||||
!IF "$(ADD_CURSES)" == "Y"
|
||||
#===============-=================================================
|
||||
# PDCurses build macros
|
||||
@@ -349,7 +400,9 @@ HACK_H = $(INCL)\hack.h $(CONFIG_H) $(INCL)\align.h $(INCL)\context.h \
|
||||
|
||||
LEV_H = $(INCL)\lev.h
|
||||
DGN_FILE_H = $(INCL)\dgn_file.h
|
||||
!IFDEF OBSOLETE_LEVEL_COMPILER
|
||||
LEV_COMP_H = $(INCL)\lev_comp.h
|
||||
!ENDIF
|
||||
SP_LEV_H = $(INCL)\sp_lev.h
|
||||
TILE_H = ..\win\share\tile.h
|
||||
|
||||
@@ -548,11 +601,7 @@ conlibs = $(baselibs)
|
||||
guilibs = $(winlibs)
|
||||
#
|
||||
|
||||
!IFNDEF ADD_CURSES
|
||||
INCLDIR= /I..\include /I..\sys\winnt
|
||||
!ELSE
|
||||
INCLDIR= /I..\include /I..\sys\winnt
|
||||
!ENDIF
|
||||
INCLDIR= /I..\include /I..\sys\winnt $(LUAINCL)
|
||||
|
||||
#==========================================
|
||||
# Util builds
|
||||
@@ -667,6 +716,13 @@ DLB =
|
||||
{$(PDCWINCON)}.c{$(OBJ)}.o:
|
||||
@$(cc) $(PDCINCL) $(cflagsBuild) -Fo$@ $<
|
||||
|
||||
#==========================================
|
||||
# Rules for LUA files
|
||||
#==========================================
|
||||
|
||||
{$(LUASRC)}.c{$(OBJ)}.o:
|
||||
@$(cc) $(cflagsBuild) -Fo$@ $<
|
||||
|
||||
#==========================================
|
||||
#=============== TARGETS ==================
|
||||
#==========================================
|
||||
@@ -679,7 +735,6 @@ default : install
|
||||
#
|
||||
# The game target.
|
||||
#
|
||||
|
||||
#
|
||||
# Everything
|
||||
#
|
||||
@@ -689,92 +744,8 @@ all : install
|
||||
install: $(O)envchk.tag $(O)obj.tag $(O)utility.tag $(GAMEDIR)\NetHack.exe $(GAMEDIR)\NetHackW.exe $(O)install.tag
|
||||
@echo Done.
|
||||
|
||||
$(O)install.tag: $(DAT)\data $(DAT)\rumors $(DAT)\dungeon \
|
||||
$(DAT)\oracles $(DAT)\quest.dat $(O)sp_lev.tag $(DLB)
|
||||
! IF ("$(USE_DLB)"=="Y")
|
||||
copy nhdat$(NHV) $(GAMEDIR)
|
||||
copy $(DAT)\license $(GAMEDIR)
|
||||
copy $(DAT)\opthelp $(GAMEDIR)
|
||||
! ELSE
|
||||
copy $(DAT)\*. $(GAMEDIR)
|
||||
copy $(DAT)\*.dat $(GAMEDIR)
|
||||
copy $(DAT)\*.lev $(GAMEDIR)
|
||||
if exist $(GAMEDIR)\makefile del $(GAMEDIR)\makefile
|
||||
! ENDIF
|
||||
if not exist $(GAMEDIR)\sysconf copy $(MSWSYS)\sysconf $(GAMEDIR)
|
||||
if exist $(DAT)\symbols copy $(DAT)\symbols $(GAMEDIR)
|
||||
if exist $(DOC)\guidebook.txt copy $(DOC)\guidebook.txt $(GAMEDIR)\Guidebook.txt
|
||||
if exist $(DOC)\nethack.txt copy $(DOC)\nethack.txt $(GAMEDIR)\NetHack.txt
|
||||
@if exist $(GAMEDIR)\NetHack.PDB echo NOTE: You may want to remove $(GAMEDIR:\=/)/NetHack.PDB to conserve space
|
||||
@if exist $(GAMEDIR)\NetHackW.PDB echo NOTE: You may want to remove $(GAMEDIR:\=/)/NetHackW.PDB to conserve space
|
||||
-if not exist $(GAMEDIR)\defaults.nh copy $(MSWSYS)\defaults.nh $(GAMEDIR)\defaults.nh
|
||||
-if not exist $(GAMEDIR)\record. goto>$(GAMEDIR)\record.
|
||||
echo install done > $@
|
||||
|
||||
# copy $(MSWSYS)\winnt.hlp $(GAMEDIR)
|
||||
|
||||
recover: $(U)recover.exe
|
||||
if exist $(U)recover.exe copy $(U)recover.exe $(GAMEDIR)
|
||||
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
|
||||
cd $(DAT)
|
||||
$(U)levcomp bigroom.des
|
||||
$(U)levcomp castle.des
|
||||
$(U)levcomp endgame.des
|
||||
$(U)levcomp gehennom.des
|
||||
$(U)levcomp knox.des
|
||||
$(U)levcomp mines.des
|
||||
$(U)levcomp medusa.des
|
||||
$(U)levcomp oracle.des
|
||||
$(U)levcomp sokoban.des
|
||||
$(U)levcomp tower.des
|
||||
$(U)levcomp yendor.des
|
||||
$(U)levcomp arch.des
|
||||
$(U)levcomp barb.des
|
||||
$(U)levcomp caveman.des
|
||||
$(U)levcomp healer.des
|
||||
$(U)levcomp knight.des
|
||||
$(U)levcomp monk.des
|
||||
$(U)levcomp priest.des
|
||||
$(U)levcomp ranger.des
|
||||
$(U)levcomp rogue.des
|
||||
$(U)levcomp samurai.des
|
||||
$(U)levcomp tourist.des
|
||||
$(U)levcomp valkyrie.des
|
||||
$(U)levcomp wizard.des
|
||||
cd $(SRC)
|
||||
echo sp_levs done > $(O)sp_lev.tag
|
||||
|
||||
$(O)utility.tag: $(INCL)\date.h $(INCL)\onames.h $(INCL)\pm.h \
|
||||
$(SRC)\vis_tab.c \
|
||||
$(U)levcomp.exe $(INCL)\vis_tab.h \
|
||||
$(U)dgncomp.exe $(TILEUTIL16)
|
||||
@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.
|
||||
|
||||
$(O)NetHackW.res: $(TILEBMP16) $(MSWIN)\NetHackW.rc $(MSWIN)\mnsel.bmp \
|
||||
$(MSWIN)\mnselcnt.bmp $(MSWIN)\mnunsel.bmp \
|
||||
$(MSWIN)\petmark.bmp $(MSWIN)\pilemark.bmp $(MSWIN)\NetHack.ico $(MSWIN)\rip.bmp \
|
||||
$(MSWIN)\splash.bmp
|
||||
@$(rc) -r -fo$@ -i$(MSWIN) -dNDEBUG $(MSWIN)\NetHackW.rc
|
||||
|
||||
$(O)console.res: $(MSWSYS)\console.rc $(MSWSYS)\NetHack.ico
|
||||
@$(rc) -r -fo$@ -i$(MSWSYS) -dNDEBUG $(MSWSYS)\console.rc
|
||||
|
||||
|
||||
#==========================================
|
||||
# The game targets.
|
||||
# Main game targets.
|
||||
#==========================================
|
||||
|
||||
# The section for linking the NetHack image looks a little strange at
|
||||
@@ -818,11 +789,13 @@ GAMEOBJ=$(GAMEOBJ:^ =^
|
||||
|
||||
|
||||
$(GAMEDIR)\NetHack.exe : $(O)gamedir.tag $(PDCLIB) $(O)tile.o $(O)nttty.o $(O)guistub.o \
|
||||
$(ALLOBJ) $(TTYOBJ) $(GUIOBJ) $(O)console.res $(KEYDLLS)
|
||||
$(ALLOBJ) $(TTYOBJ) $(GUIOBJ) $(O)console.res $(KEYDLLS) \
|
||||
$(LUATARGETS)
|
||||
@if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
|
||||
@echo Linking $(@:\=/)
|
||||
$(link) $(lflagsBuild) $(conlflags) /STACK:2048 /PDB:$(GAMEDIR)\$(@B).PDB /MAP:$(O)$(@B).MAP \
|
||||
$(LIBS) $(PDCLIB) $(conlibs) $(BCRYPT) -out:$@ @<<$(@B).lnk
|
||||
$(LIBS) $(PDCLIB) $(LUALIB) \
|
||||
$(conlibs) $(BCRYPT) -out:$@ @<<$(@B).lnk
|
||||
$(GAMEOBJ)
|
||||
$(TTYOBJ)
|
||||
$(O)nttty.o
|
||||
@@ -834,18 +807,21 @@ $(GAMEDIR)\NetHack.exe : $(O)gamedir.tag $(PDCLIB) $(O)tile.o $(O)nttty.o $(O)gu
|
||||
|
||||
# NetHackW
|
||||
# full tty linkage libs:
|
||||
# libs: $(LIBS) $(guilibs) $(COMCTRL)
|
||||
# libs: $(LIBS) $(PDCLIB) $(LUALIB) $(guilibs) $(COMCTRL)
|
||||
# objs: $(GAMEOBJ) $(GUIOBJ) $(TTYOBJ) $(O)tile.o $(O)nttty.o
|
||||
# otherwise:
|
||||
# libs: $(LIBS) $(guilibs) $(COMCTRL)
|
||||
# libs: $(LIBS) $(PDCLIB) $(LUALIB) $(guilibs) $(COMCTRL)
|
||||
# objs: $(GAMEOBJ) $(GUIOBJ) $(O)tile.o $(O)ttystub.o
|
||||
|
||||
$(GAMEDIR)\NetHackW.exe : $(O)gamedir.tag $(O)tile.o $(O)ttystub.o \
|
||||
$(ALLOBJ) $(TTYOBJ) $(GUIOBJ) $(O)NetHackW.res $(O)gamedir.tag $(KEYDLLS)
|
||||
$(ALLOBJ) $(TTYOBJ) $(GUIOBJ) $(O)NetHackW.res \
|
||||
$(O)gamedir.tag $(KEYDLLS) \
|
||||
$(LUATARGETS)
|
||||
@if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
|
||||
@echo Linking $(@:\=/)
|
||||
$(link) $(lflagsBuild) $(guilflags) /STACK:2048 /PDB:$(GAMEDIR)\$(@B).PDB \
|
||||
/MAP:$(O)$(@B).MAP $(LIBS) $(PDCLIB) $(guilibs) $(COMCTRL) $(BCRYPT) -out:$@ @<<$(@B).lnk
|
||||
/MAP:$(O)$(@B).MAP $(LIBS) $(PDCLIB) $(LUALIB) \
|
||||
$(guilibs) $(COMCTRL) $(BCRYPT) -out:$@ @<<$(@B).lnk
|
||||
$(GAMEOBJ)
|
||||
$(GUIOBJ)
|
||||
$(O)tile.o
|
||||
@@ -915,6 +891,92 @@ $(GAMEDIR)\nhraykey.dll : $(O)$(@B).o $(O)gamedir.tag $(O)$(@B).def
|
||||
/PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).map" /DEF:$(O)$(@B).def \
|
||||
/IMPLIB:$(O)$(@B).lib -out:$@ $(O)$(@B).o
|
||||
|
||||
$(O)install.tag: $(DAT)\data $(DAT)\rumors $(DAT)\dungeon \
|
||||
$(DAT)\oracles $(DAT)\quest.dat $(O)sp_lev.tag $(DLB)
|
||||
! IF ("$(USE_DLB)"=="Y")
|
||||
copy nhdat$(NHV) $(GAMEDIR)
|
||||
copy $(DAT)\license $(GAMEDIR)
|
||||
copy $(DAT)\opthelp $(GAMEDIR)
|
||||
! ELSE
|
||||
copy $(DAT)\*. $(GAMEDIR)
|
||||
copy $(DAT)\*.dat $(GAMEDIR)
|
||||
if exist $(GAMEDIR)\makefile del $(GAMEDIR)\makefile
|
||||
! ENDIF
|
||||
if not exist $(GAMEDIR)\sysconf copy $(MSWSYS)\sysconf $(GAMEDIR)
|
||||
if exist $(DAT)\symbols copy $(DAT)\symbols $(GAMEDIR)
|
||||
if exist $(DOC)\guidebook.txt copy $(DOC)\guidebook.txt $(GAMEDIR)\Guidebook.txt
|
||||
if exist $(DOC)\nethack.txt copy $(DOC)\nethack.txt $(GAMEDIR)\NetHack.txt
|
||||
@if exist $(GAMEDIR)\NetHack.PDB echo NOTE: You may want to remove $(GAMEDIR:\=/)/NetHack.PDB to conserve space
|
||||
@if exist $(GAMEDIR)\NetHackW.PDB echo NOTE: You may want to remove $(GAMEDIR:\=/)/NetHackW.PDB to conserve space
|
||||
-if not exist $(GAMEDIR)\defaults.nh copy $(MSWSYS)\defaults.nh $(GAMEDIR)\defaults.nh
|
||||
-if not exist $(GAMEDIR)\record. goto>$(GAMEDIR)\record.
|
||||
echo install done > $@
|
||||
|
||||
# copy $(MSWSYS)\winnt.hlp $(GAMEDIR)
|
||||
|
||||
recover: $(U)recover.exe
|
||||
if exist $(U)recover.exe copy $(U)recover.exe $(GAMEDIR)
|
||||
if exist $(DOC)\recover.txt copy $(DOC)\recover.txt $(GAMEDIR)\recover.txt
|
||||
|
||||
!IFDEF OBSOLETE_LEVEL_COMPILER
|
||||
$(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
|
||||
cd $(DAT)
|
||||
$(U)levcomp bigroom.des
|
||||
$(U)levcomp castle.des
|
||||
$(U)levcomp endgame.des
|
||||
$(U)levcomp gehennom.des
|
||||
$(U)levcomp knox.des
|
||||
$(U)levcomp mines.des
|
||||
$(U)levcomp medusa.des
|
||||
$(U)levcomp oracle.des
|
||||
$(U)levcomp sokoban.des
|
||||
$(U)levcomp tower.des
|
||||
$(U)levcomp yendor.des
|
||||
$(U)levcomp arch.des
|
||||
$(U)levcomp barb.des
|
||||
$(U)levcomp caveman.des
|
||||
$(U)levcomp healer.des
|
||||
$(U)levcomp knight.des
|
||||
$(U)levcomp monk.des
|
||||
$(U)levcomp priest.des
|
||||
$(U)levcomp ranger.des
|
||||
$(U)levcomp rogue.des
|
||||
$(U)levcomp samurai.des
|
||||
$(U)levcomp tourist.des
|
||||
$(U)levcomp valkyrie.des
|
||||
$(U)levcomp wizard.des
|
||||
cd $(SRC)
|
||||
echo sp_levs done > $(O)sp_lev.tag
|
||||
!ELSE
|
||||
$(O)sp_lev.tag:
|
||||
echo sp_levs done > $(O)sp_lev.tag
|
||||
!ENDIF
|
||||
|
||||
$(O)utility.tag: $(INCL)\date.h $(INCL)\onames.h $(INCL)\pm.h \
|
||||
$(SRC)\vis_tab.c $(INCL)\vis_tab.h \
|
||||
$(U)dgncomp.exe $(TILEUTIL16)
|
||||
@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.
|
||||
|
||||
$(O)NetHackW.res: $(TILEBMP16) $(MSWIN)\NetHackW.rc $(MSWIN)\mnsel.bmp \
|
||||
$(MSWIN)\mnselcnt.bmp $(MSWIN)\mnunsel.bmp \
|
||||
$(MSWIN)\petmark.bmp $(MSWIN)\pilemark.bmp $(MSWIN)\NetHack.ico $(MSWIN)\rip.bmp \
|
||||
$(MSWIN)\splash.bmp
|
||||
@$(rc) -r -fo$@ -i$(MSWIN) -dNDEBUG $(MSWIN)\NetHackW.rc
|
||||
|
||||
$(O)console.res: $(MSWSYS)\console.rc $(MSWSYS)\NetHack.ico
|
||||
@$(rc) -r -fo$@ -i$(MSWSYS) -dNDEBUG $(MSWSYS)\console.rc
|
||||
|
||||
#
|
||||
# Secondary Targets.
|
||||
#
|
||||
@@ -1023,6 +1085,7 @@ $(MSWIN)\splash.bmp: $(U)uudecode.exe $(MSWIN)\splash.uu
|
||||
# defer to the steps in ..\win\win32\levstuff.mak
|
||||
#
|
||||
|
||||
!IFDEF OBSOLETE_LEVEL_COMPILER
|
||||
$(U)lev_yacc.c: $(U)lev_comp.y
|
||||
nmake -nologo -f ..\win\win32\levstuff.mak $(U)lev_yacc.c
|
||||
|
||||
@@ -1047,6 +1110,7 @@ $(U)levcomp.exe: $(LEVCOMPOBJS)
|
||||
$(LEVCOMPOBJS:^ =^
|
||||
)
|
||||
<<
|
||||
!ENDIF
|
||||
|
||||
#=================================================
|
||||
# Dungeon Compiler Stuff
|
||||
@@ -1153,10 +1217,6 @@ nhdat$(NHV): $(U)dlb_main.exe $(DAT)\data $(DAT)\oracles $(OPTIONS_FILE) \
|
||||
if exist porthelp echo porthelp >>dlb.lst
|
||||
echo quest.dat >>dlb.lst
|
||||
echo rumors >>dlb.lst
|
||||
echo engrave >>dlb.lst
|
||||
echo epitaph >>dlb.lst
|
||||
echo bogusmon >>dlb.lst
|
||||
echo tribute >>dlb.lst
|
||||
echo help >>dlb.lst
|
||||
echo hh >>dlb.lst
|
||||
echo cmdhelp >>dlb.lst
|
||||
@@ -1166,7 +1226,11 @@ nhdat$(NHV): $(U)dlb_main.exe $(DAT)\data $(DAT)\oracles $(OPTIONS_FILE) \
|
||||
echo wizhelp >>dlb.lst
|
||||
echo dungeon >>dlb.lst
|
||||
echo license >>dlb.lst
|
||||
for %%N in (*.lev) do echo %%N >>dlb.lst
|
||||
echo engrave >>dlb.lst
|
||||
echo epitaph >>dlb.lst
|
||||
echo bogusmon >>dlb.lst
|
||||
echo tribute >>dlb.lst
|
||||
for %%N in (*.lua) do echo %%N >>dlb.lst
|
||||
$(U)dlb_main cIf dlb.lst $(SRC)\nhdat
|
||||
cd $(SRC)
|
||||
|
||||
@@ -1288,6 +1352,25 @@ $(O)pdcurses.lib : $(PDCLIBOBJS) $(PDCOBJS)
|
||||
$(O)pdcscrn.o : $(PDCURSES_HEADERS) $(PDCWINCON)\pdcscrn.c $(MSWSYS)\stub-pdcscrn.c
|
||||
$(cc) $(PDCINCL) $(cflagsBuild) -Fo$@ $(MSWSYS)\stub-pdcscrn.c
|
||||
|
||||
#===============================================================================
|
||||
# LUA
|
||||
#===============================================================================
|
||||
|
||||
lua.exe: $(O)lua.o $(LUALIB)
|
||||
link /OUT:$@ $(O)lua.o $(LUALIB)
|
||||
|
||||
luac.exe: $(O)luac.o $(LUALIB)
|
||||
link /OUT:$@ $(O)luac.o $(LUALIB)
|
||||
|
||||
$(O)lua5.3.5.dll: $(LUAOBJFILES)
|
||||
link /DLL /IMPLIB:lua5.3.5.lib /OUT:$@ $(LUAOBJFILES)
|
||||
|
||||
$(O)lua5.3.5-static.lib: $(LUAOBJFILES)
|
||||
lib /OUT:$@ $(LUAOBJFILES)
|
||||
|
||||
$(O)lua.o: $(LUASRC)\lua.c
|
||||
$(O)luac.o: $(LUASRC)\luac.c
|
||||
|
||||
#===============================================================================
|
||||
# Housekeeping
|
||||
#===============================================================================
|
||||
@@ -1315,40 +1398,6 @@ spotless: clean
|
||||
if exist $(DAT)\engrave del $(DAT)\engrave
|
||||
if exist $(DAT)\epitaph del $(DAT)\epitaph
|
||||
if exist $(DAT)\bogusmon del $(DAT)\bogusmon
|
||||
if exist $(DAT)\???-fil?.lev del $(DAT)\???-fil?.lev
|
||||
if exist $(DAT)\???-goal.lev del $(DAT)\???-goal.lev
|
||||
if exist $(DAT)\???-loca.lev del $(DAT)\???-loca.lev
|
||||
if exist $(DAT)\???-strt.lev del $(DAT)\???-strt.lev
|
||||
if exist $(DAT)\air.lev del $(DAT)\air.lev
|
||||
if exist $(DAT)\asmodeus.lev del $(DAT)\asmodeus.lev
|
||||
if exist $(DAT)\astral.lev del $(DAT)\astral.lev
|
||||
if exist $(DAT)\baalz.lev del $(DAT)\baalz.lev
|
||||
if exist $(DAT)\bigrm-*.lev del $(DAT)\bigrm-*.lev
|
||||
if exist $(DAT)\castle.lev del $(DAT)\castle.lev
|
||||
if exist $(DAT)\data del $(DAT)\data
|
||||
if exist $(DAT)\dungeon del $(DAT)\dungeon
|
||||
if exist $(DAT)\dungeon.pdf del $(DAT)\dungeon.pdf
|
||||
if exist $(DAT)\earth.lev del $(DAT)\earth.lev
|
||||
if exist $(DAT)\fakewiz?.lev del $(DAT)\fakewiz?.lev
|
||||
if exist $(DAT)\fire.lev del $(DAT)\fire.lev
|
||||
if exist $(DAT)\juiblex.lev del $(DAT)\juiblex.lev
|
||||
if exist $(DAT)\knox.lev del $(DAT)\knox.lev
|
||||
if exist $(DAT)\medusa-?.lev del $(DAT)\medusa-?.lev
|
||||
if exist $(DAT)\mine*.lev del $(DAT)\mine*.lev
|
||||
if exist $(DAT)\options del $(DAT)\options
|
||||
if exist $(DAT)\ttyoptions del $(DAT)\ttyoptions
|
||||
if exist $(DAT)\guioptions del $(DAT)\guioptions
|
||||
if exist $(DAT)\oracle.lev del $(DAT)\oracle.lev
|
||||
if exist $(DAT)\oracles del $(DAT)\oracles
|
||||
if exist $(DAT)\orcus.lev del $(DAT)\orcus.lev
|
||||
if exist $(DAT)\rumors del $(DAT)\rumors
|
||||
if exist $(DAT)\quest.dat del $(DAT)\quest.dat
|
||||
if exist $(DAT)\sanctum.lev del $(DAT)\sanctum.lev
|
||||
if exist $(DAT)\soko?-?.lev del $(DAT)\soko?-?.lev
|
||||
if exist $(DAT)\tower?.lev del $(DAT)\tower?.lev
|
||||
if exist $(DAT)\valley.lev del $(DAT)\valley.lev
|
||||
if exist $(DAT)\water.lev del $(DAT)\water.lev
|
||||
if exist $(DAT)\wizard?.lev del $(DAT)\wizard?.lev
|
||||
if exist $(DAT)\dlb.lst del $(DAT)\dlb.lst
|
||||
if exist $(DAT)\porthelp del $(DAT)\porthelp
|
||||
if exist $(O)sp_lev.tag del $(O)sp_lev.tag
|
||||
@@ -1374,12 +1423,50 @@ spotless: clean
|
||||
if exist $(U)dlb_main.exe del $(U)dlb_main.exe
|
||||
!IF "$(ADD_CURSES)" == "Y"
|
||||
if exist $(O)pdcurses.lib del $(O)pdcurses.lib
|
||||
!ENDIF
|
||||
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)\options del $(DAT)\options
|
||||
if exist $(DAT)\ttyoptions del $(DAT)\ttyoptions
|
||||
if exist $(DAT)\guioptions del $(DAT)\guioptions
|
||||
if exist $(DAT)\data del $(DAT)\data
|
||||
if exist $(DAT)\dungeon del $(DAT)\dungeon
|
||||
if exist $(DAT)\dungeon.pdf del $(DAT)\dungeon.pdf
|
||||
!IFDEF OBSOLETE_LEVEL_COMPILER
|
||||
if exist $(DAT)\???-fil?.lev del $(DAT)\???-fil?.lev
|
||||
if exist $(DAT)\???-goal.lev del $(DAT)\???-goal.lev
|
||||
if exist $(DAT)\???-loca.lev del $(DAT)\???-loca.lev
|
||||
if exist $(DAT)\???-strt.lev del $(DAT)\???-strt.lev
|
||||
if exist $(DAT)\air.lev del $(DAT)\air.lev
|
||||
if exist $(DAT)\asmodeus.lev del $(DAT)\asmodeus.lev
|
||||
if exist $(DAT)\astral.lev del $(DAT)\astral.lev
|
||||
if exist $(DAT)\baalz.lev del $(DAT)\baalz.lev
|
||||
if exist $(DAT)\bigrm-*.lev del $(DAT)\bigrm-*.lev
|
||||
if exist $(DAT)\castle.lev del $(DAT)\castle.lev
|
||||
if exist $(DAT)\earth.lev del $(DAT)\earth.lev
|
||||
if exist $(DAT)\fakewiz?.lev del $(DAT)\fakewiz?.lev
|
||||
if exist $(DAT)\fire.lev del $(DAT)\fire.lev
|
||||
if exist $(DAT)\juiblex.lev del $(DAT)\juiblex.lev
|
||||
if exist $(DAT)\knox.lev del $(DAT)\knox.lev
|
||||
if exist $(DAT)\medusa-?.lev del $(DAT)\medusa-?.lev
|
||||
if exist $(DAT)\mine*.lev del $(DAT)\mine*.lev
|
||||
if exist $(DAT)\oracle.lev del $(DAT)\oracle.lev
|
||||
if exist $(DAT)\orcus.lev del $(DAT)\orcus.lev
|
||||
if exist $(DAT)\sanctum.lev del $(DAT)\sanctum.lev
|
||||
if exist $(DAT)\soko?-?.lev del $(DAT)\soko?-?.lev
|
||||
if exist $(DAT)\tower?.lev del $(DAT)\tower?.lev
|
||||
if exist $(DAT)\valley.lev del $(DAT)\valley.lev
|
||||
if exist $(DAT)\water.lev del $(DAT)\water.lev
|
||||
if exist $(DAT)\wizard?.lev del $(DAT)\wizard?.lev
|
||||
!ENDIF
|
||||
clean:
|
||||
if exist $(O)*.o del $(O)*.o
|
||||
if exist $(O)utility.tag del $(O)utility.tag
|
||||
if exist $(U)makedefs.exe del $(U)makedefs.exe
|
||||
!IFDEF OBSOLETE_LEVEL_COMPILER
|
||||
if exist $(U)levcomp.exe del $(U)levcomp.exe
|
||||
!ENDIF
|
||||
if exist $(U)dgncomp.exe del $(U)dgncomp.exe
|
||||
if exist $(SRC)\*.lnk del $(SRC)\*.lnk
|
||||
if exist $(SRC)\*.map del $(SRC)\*.map
|
||||
@@ -1390,8 +1477,10 @@ clean:
|
||||
if exist $(O)dlb_main.MAP del $(O)dlb_main.MAP
|
||||
if exist $(O)dlb_main.PDB del $(O)dlb_main.PDB
|
||||
if exist $(O)gamedir.tag del $(O)gamedir.tag
|
||||
!IFDEF OBSOLETE_LEVEL_COMPILER
|
||||
if exist $(O)levcomp.MAP del $(O)levcomp.MAP
|
||||
if exist $(O)levcomp.PDB del $(O)levcomp.PDB
|
||||
!ENDIF
|
||||
if exist $(O)makedefs.MAP del $(O)makedefs.MAP
|
||||
if exist $(O)makedefs.PDB del $(O)makedefs.PDB
|
||||
if exist $(O)NetHack.MAP del $(O)NetHack.MAP
|
||||
@@ -1802,6 +1891,8 @@ $(O)mplayer.o: mplayer.c $(HACK_H)
|
||||
$(O)mthrowu.o: mthrowu.c $(HACK_H)
|
||||
$(O)muse.o: muse.c $(HACK_H)
|
||||
$(O)music.o: music.c $(HACK_H) #interp.c
|
||||
$(O)nhlua.o: nhlua.c $(HACK_H)
|
||||
$(O)nhlsel.o: nhlsel.c $(HACK_H)
|
||||
$(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
|
||||
|
||||
@@ -23,7 +23,7 @@ goto :EOF
|
||||
echo Checking to see if source tree directories are set up properly...
|
||||
if not exist ..\..\include\hack.h goto :err_dir
|
||||
if not exist ..\..\src\hack.c goto :err_dir
|
||||
if not exist ..\..\dat\wizard.des goto :err_dir
|
||||
if not exist ..\..\dat\wizard1.lua goto :err_dir
|
||||
if not exist ..\..\util\makedefs.c goto :err_dir
|
||||
if not exist ..\..\sys\winnt\winnt.c goto :err_dir
|
||||
echo Directories look ok.
|
||||
|
||||
Reference in New Issue
Block a user