Merge branch 'NetHack-3.7' into twitch-interact

This commit is contained in:
2025-08-30 11:09:34 -07:00
396 changed files with 31854 additions and 14952 deletions

View File

@@ -11,6 +11,8 @@ NHSROOT=..
MAKEDEFS = ../util/makedefs
#STRIPBS ?= ../util/stripbs
# Which version do we want to build? (XXX These are not used anywhere.)
GUIDEBOOK = Guidebook # regular ASCII file
#GUIDEBOOK = Guidebook.ps # PostScript file
@@ -21,8 +23,9 @@ GUIDEBOOK = Guidebook # regular ASCII file
# recognize the option. Sigh.
#
# col is unnecessary, but harmless, with groff. See grotty(1).
COLCMD = col -bx
#COLCMD = col -b
COLCMD ?= col -bx
#COLCMD ?= col -b
#COLCMD ?= $(STRIPBS)
# The command to use to generate a PostScript file
# PSCMD = ditroff | psdit
@@ -59,8 +62,8 @@ ONEPAGE_PREFORMAT = cat Gbk-1pg-pfx.mn $(GUIDEBOOK_MN) Gbk-1pg-sfx.mn \
| $(NHGREP) | tbl tmac.n -
# the basic guidebook
Guidebook : $(GUIDEBOOK_MN) tmac.n tmac.nh $(NEEDMAKEDEFS)
$(GUIDECMD) > Guidebook
Guidebook : $(GUIDEBOOK_MN) tmac.n tmac.nh $(NEEDMAKEDEFS) $(STRIPBS)
-$(GUIDECMD) > Guidebook
# Fancier output for those with ditroff, psdit and a PostScript printer.
# Could be converted to Guidebook.pdf if tool(s) for that are available.
@@ -80,7 +83,10 @@ Guidebook.dvi : $(GUIDEBOOK_TEX)
# (note: 'make makedefs', not 'make $(MAKEDEFS)')
$(MAKEDEFS) : ../util/makedefs.c ../include/config.h ../src/mdlib.c \
../util/mdgrep.h
( cd ../util ; make makedefs )
( cd .. ; make makedefs )
../util/stripbs: ../util/stripbs.c
( cd .. ; $(MAKE) stripbs )
GAME = nethack
MANDIR ?= /usr/man/man6

View File

@@ -188,6 +188,10 @@ SYSOBJ = $(TARGETPFX)ioctl.o $(TARGETPFX)unixmain.o $(TARGETPFX)unixtty.o \
#CFLAGS = -O -I../include
#LFLAGS =
#fallback values, only if these are not already set
CFLAGS ?= -I../include
LINK ?= $(CC)
AR = ar
ARFLAGS = rcs
@@ -406,6 +410,10 @@ WINCURSESLIB = -lncurses
#
# LIBS =
#fallback values, only if these are not already set
WINOBJ ?= $(WINTTYOBJ)
WINLIB ?= $(WINTTYLIB) -lncurses
# make NetHack
GAME = nethack
# GAME = nethack.prg
@@ -518,7 +526,7 @@ HACKCSRC = allmain.c alloc.c apply.c artifact.c attrib.c ball.c bones.c \
nhlua.c nhlsel.c nhlobj.c nhmd4.c o_init.c objects.c objnam.c \
options.c pager.c pickup.c pline.c polyself.c potion.c pray.c \
priest.c quest.c questpgr.c read.c rect.c region.c report.c restore.c \
rip.c rnd.c role.c rumors.c save.c selvar.c sfstruct.c \
rip.c rnd.c role.c rumors.c save.c selvar.c sfbase.c sfstruct.c \
shk.c shknam.c sit.c sounds.c sp_lev.c spell.c stairs.c steal.c steed.c \
strutil.c symbols.c sys.c teleport.c timeout.c \
topten.c track.c trap.c twitch.c u_init.c utf8map.c \
@@ -560,15 +568,16 @@ CSOURCES = $(HACKCSRC) $(HACKLIBSRC) $(SYSCSRC) $(WINCSRC) $(CHAINSRC) $(GENCSRC
# and dgn_file.h, special level & dungeon files.
#
HACKINCL = align.h artifact.h artilist.h attrib.h botl.h \
color.h config.h config1.h context.h coord.h decl.h \
display.h dlb.h dungeon.h engrave.h extern.h flag.h fnamesiz.h \
func_tab.h global.h warnings.h hack.h lint.h mextra.h mfndpos.h \
micro.h mkroom.h monattk.h mondata.h monflag.h monst.h monsters.h \
nhmd4.h obj.h objects.h objclass.h optlist.h patchlevel.h pcconf.h \
permonst.h prop.h rect.h region.h selvar.h sym.h defsym.h rm.h sp_lev.h \
spell.h sndprocs.h seffects.h stairs.h sys.h tcap.h timeout.h \
tradstdc.h trap.h unixconf.h vision.h vmsconf.h wintty.h wincurs.h \
winX.h winprocs.h wintype.h you.h youprop.h cstd.h
color.h config.h config1.h context.h coord.h cstd.h decl.h \
defsym.h display.h dlb.h dungeon.h engrave.h extern.h flag.h \
fnamesiz.h func_tab.h global.h warnings.h hack.h lint.h mextra.h \
micro.h mfndpos.h mkroom.h monattk.h mondata.h monflag.h monst.h \
monsters.h nhmd4.h obj.h objects.h objclass.h optlist.h patchlevel.h \
pcconf.h permonst.h prop.h rect.h region.h savefile.h selvar.h sym.h \
rm.h sp_lev.h spell.h sndprocs.h seffects.h stairs.h sys.h \
tcap.h timeout.h tradstdc.h trap.h unixconf.h vision.h vmsconf.h \
wintty.h wincurs.h winX.h winprocs.h wintype.h you.h youprop.h \
weight.h
HSOURCES = $(HACKINCL) dgn_file.h
@@ -582,7 +591,7 @@ HOSTOBJ = $(FIRSTOBJ) alloc.o drawing.o
HOBJ = $(TARGETPFX)allmain.o $(TARGETPFX)alloc.o \
$(TARGETPFX)apply.o $(TARGETPFX)artifact.o $(TARGETPFX)attrib.o \
$(TARGETPFX)ball.o $(TARGETPFX)bones.o $(TARGETPFX)botl.o \
$(TARGETPFX)calendar.o $(TARGETPFX)cmd.o \
$(TARGETPFX)calendar.o $(TARGETPFX)cfgfiles.o $(TARGETPFX)cmd.o \
$(TARGETPFX)coloratt.o $(TARGETPFX)dbridge.o $(TARGETPFX)decl.o \
$(TARGETPFX)detect.o $(TARGETPFX)dig.o $(TARGETPFX)display.o \
$(TARGETPFX)dlb.o $(TARGETPFX)do.o $(TARGETPFX)do_name.o \
@@ -610,7 +619,7 @@ HOBJ = $(TARGETPFX)allmain.o $(TARGETPFX)alloc.o \
$(TARGETPFX)rect.o $(TARGETPFX)region.o $(TARGETPFX)report.o \
$(TARGETPFX)restore.o $(TARGETPFX)rip.o $(TARGETPFX)rnd.o \
$(TARGETPFX)role.o $(TARGETPFX)rumors.o $(TARGETPFX)save.o \
$(TARGETPFX)selvar.o $(TARGETPFX)sfstruct.o \
$(TARGETPFX)selvar.o $(TARGETPFX)sfbase.o $(TARGETPFX)sfstruct.o \
$(TARGETPFX)shk.o $(TARGETPFX)shknam.o $(TARGETPFX)sit.o \
$(TARGETPFX)sounds.o $(TARGETPFX)sp_lev.o $(TARGETPFX)spell.o \
$(TARGETPFX)stairs.o $(TARGETPFX)symbols.o $(TARGETPFX)sys.o \
@@ -760,12 +769,13 @@ hacklib.a: hacklib.o
../win/gnome/gn_rip.h: ../win/X11/rip.xpm
cp ../win/X11/rip.xpm ../win/gnome/gn_rip.h
$(TARGETPFX)sfstruct.o: sfstruct.c $(HACK_H)
$(TARGETPFX)sfbase.o: sfbase.c $(HACK_H) ../include/sfprocs.h ../include/sfmacros.h
# date.c should be recompiled any time any of the source or include code
# is modified.
DATECFLAGS = $(TARGET_CFLAGS) $(GITHASH) $(GITBRANCH) $(GITPREFIX)
$(TARGETPFX)date.o: date.c $(HACK_H) $(HACKCSRC) $(HOBJ) $(TARGET_HACKLIB)
$(TARGET_CC) $(TARGET_CFLAGS) $(GITHASH) $(GITBRANCH) $(GITPREFIX) -c -o $@ date.c
$(TARGET_CC) $(DATECFLAGS) -c -o $@ date.c
# date.h should be remade any time any of the source or include code
# is modified. Unfortunately, this would make the contents of this
@@ -885,12 +895,13 @@ $(HACK_H): $(CONFIG_H) ../include/align.h ../include/artilist.h \
../include/nhlua.h ../include/obj.h ../include/objclass.h \
../include/objects.h ../include/permonst.h ../include/prop.h \
../include/quest.h ../include/rect.h ../include/region.h \
../include/rm.h ../include/seffects.h ../include/selvar.h \
../include/rm.h ../include/savefile.h ../include/sfprocs.h \
../include/seffects.h ../include/selvar.h \
../include/skills.h ../include/sndprocs.h ../include/spell.h \
../include/stairs.h ../include/sym.h ../include/sys.h \
../include/timeout.h ../include/trap.h ../include/vision.h \
../include/winprocs.h ../include/wintype.h ../include/you.h \
../include/youprop.h
../include/weight.h ../include/winprocs.h \
../include/wintype.h ../include/you.h ../include/youprop.h
touch $(HACK_H)
#
$(TARGETPFX)cppregex.o: ../sys/share/cppregex.cpp $(CONFIG_H)
@@ -1126,6 +1137,7 @@ $(TARGETPFX)ball.o: ball.c $(HACK_H)
$(TARGETPFX)bones.o: bones.c $(HACK_H)
$(TARGETPFX)botl.o: botl.c $(HACK_H)
$(TARGETPFX)calendar.o: calendar.c $(HACK_H)
$(TARGETPFX)cfgfiles.o: cfgfiles.c $(HACK_H)
$(TARGETPFX)cmd.o: cmd.c $(HACK_H) ../include/func_tab.h
$(TARGETPFX)coloratt.o: coloratt.c $(HACK_H)
$(TARGETPFX)dbridge.o: dbridge.c $(HACK_H)
@@ -1176,7 +1188,7 @@ $(TARGETPFX)mdlib.o: mdlib.c $(CONFIG_H) ../include/align.h \
../include/objclass.h ../include/objects.h \
../include/permonst.h ../include/prop.h ../include/seffects.h \
../include/skills.h ../include/sndprocs.h ../include/sym.h \
../include/wintype.h ../include/you.h
../include/weight.h ../include/wintype.h ../include/you.h
$(TARGETPFX)mhitm.o: mhitm.c $(HACK_H) ../include/artifact.h
$(TARGETPFX)mhitu.o: mhitu.c $(HACK_H) ../include/artifact.h
$(TARGETPFX)minion.o: minion.c $(HACK_H)
@@ -1192,7 +1204,7 @@ $(TARGETPFX)monmove.o: monmove.c $(HACK_H) ../include/artifact.h \
$(TARGETPFX)monst.o: monst.c $(CONFIG_H) ../include/align.h \
../include/defsym.h ../include/monattk.h ../include/monflag.h \
../include/monsters.h ../include/permonst.h ../include/sym.h \
../include/wintype.h
../include/weight.h ../include/wintype.h
$(TARGETPFX)mplayer.o: mplayer.c $(HACK_H)
$(TARGETPFX)mthrowu.o: mthrowu.c $(HACK_H)
$(TARGETPFX)muse.o: muse.c $(HACK_H)
@@ -1230,7 +1242,7 @@ $(TARGETPFX)role.o: role.c $(HACK_H)
$(TARGETPFX)rumors.o: rumors.c $(HACK_H) ../include/dlb.h
$(TARGETPFX)save.o: save.c $(HACK_H)
$(TARGETPFX)selvar.o: selvar.c $(HACK_H) ../include/sp_lev.h
$(TARGETPFX)sfstruct.o: sfstruct.c $(HACK_H)
$(TARGETPFX)sfstruct.o: sfstruct.c $(HACK_H) ../include/sfprocs.h ../include/sfmacros.h
$(TARGETPFX)shk.o: shk.c $(HACK_H)
$(TARGETPFX)shknam.o: shknam.c $(HACK_H)
$(TARGETPFX)sit.o: sit.c $(HACK_H) ../include/artifact.h

View File

@@ -118,6 +118,8 @@ DAT = $(DATNODLB) $(DATDLB)
# $(CHGRP) $(GAMEGRP) $(INSTDIR)/sysconf && \
# chmod $(VARFILEPERM) $(INSTDIR)/sysconf; fi );
RECOVERBIN = recover
# Lua
LUAHEADERS = lib/lua-$(LUA_VERSION)/src
LUATESTTARGET = $(LUAHEADERS)/lua.h
@@ -148,8 +150,9 @@ $(TOPLUALIB): $(LUATOP)/liblua.a
include/nhlua.h: $(TOPLUALIB)
echo '/* nhlua.h - generated by top Makefile */' > $@
@echo '#include "../$(LUAHEADERS)/lua.h"' >> $@
@sed -e '/(lua_error)/!d' -e '/(lua_error)/s/;/ NORETURN;/1' \
< $(LUAHEADERS)/lua.h >> $@
@sed -e '/(lua_error)/!d' \
-e '/(lua_error)/s/LUA_API/ATTRNORETURN LUA_API/1' \
-e '/(lua_error)/s/;/ NORETURN;/1' < $(LUAHEADERS)/lua.h >> $@
@echo '#include "../$(LUAHEADERS)/lualib.h"' >> $@
@echo '#include "../$(LUAHEADERS)/lauxlib.h"' >> $@
@echo '/*nhlua.h*/' >> $@
@@ -283,7 +286,12 @@ package: $(GAME) recover $(VARDAT) spec_levs
# recover can be used when INSURANCE is defined in include/config.h
# and the checkpoint option is true
recover: $(GAME)
( cd util ; $(MAKE) recover )
( cd util ; $(MAKE) $(RECOVERBIN) )
# sfctool can be configured by the sysadmin to convert the savefile
# content format as necessary.
sfctool: $(GAME)
( cd util ; $(MAKE) sfctool )
dofiles:
target=`sed -n \
@@ -394,6 +402,31 @@ fetch-lua-http:
tar zxf lua-$(LUA_VERSION).tar.gz && \
rm -f lua-$(LUA_VERSION).tar.gz )
#
# This is not part of the dependency build hierarchy.
# It requires an explicit "make fetch-docs".
fetch-docs:
@FDroot=https://www.nethack.org; \
FDvmajor=`awk '/VERSION_MAJOR/{print $$3}' < include/patchlevel.h`; \
FDvminor=`awk '/VERSION_MINOR/{print $$3}' < include/patchlevel.h`; \
RDIR="NetHack-$${FDvmajor}.$${FDvminor}"; \
echo "Fetching directory information for $${RDIR}"; \
RDOCFILES=`curl --no-progress-meter $${FDroot}/cgi-bin/lsautodocs?$$RDIR`; \
FDbase="$${FDroot}/autodocs/$${RDIR}"; \
set -- $${RDOCFILES}; \
echo "Fetching $$# files"; \
while [ $$# -gt 0 ]; do \
echo "Downloading: '$$1' from '$${FDbase}/$$1'"; \
curl --no-progress-meter -R $${FDbase}/$$1 -o doc/$$1; \
shift; \
done
makedefs:
( cd util ; $(MAKE) makedefs )
stripbs:
( cd util ; $(MAKE) stripbs )
# 'make update' can be used to install a revised version after making
# customizations or such. Unlike 'make install', it doesn't delete everything
# from the target directory to have a clean start.

View File

@@ -106,6 +106,9 @@ NHSROOT=..
#CFLAGS = -O -I../include
#LFLAGS =
#fallback defaults if not set
CFLAGS ?= -I../include
# -lm required by lua
LFLAGS += -lm
@@ -118,6 +121,12 @@ LIBS =
OBJDIR = ../src
# This is the universal ctags utility which produces the tags in the
# format that util/readtags requires.
# https://github.com/universal-ctags/ctags.git
#CTAGSCMD = universal-ctags
CTAGSCMD = ctags
# if you change this to 1, feedback while building will omit -Dthis -Wthat
# -Isomewhere so that each file being compiled is listed on one short line;
# it requires support for '$<' in rules with more than one prerequisite
@@ -168,6 +177,7 @@ AT_V1 := @
AT = $(AT_V$(QUIETCC))
# Verbosity, end
GAME=nethack
# timestamps for primary header files, matching src/Makefile
CONFIG_H = ../src/config.h-t
HACK_H = ../src/hack.h-t
@@ -200,7 +210,7 @@ HACKLIBOBJ = $(OBJDIR)/hacklib.o panic.o
MAKEOBJS = makedefs.o $(OMONOBJ) $(ODATE) $(OALLOC)
# object files for recovery utility
RECOVOBJS = $(TARGETPFX)recover.o
RECOVOBJS = recover.o recover-version.o
# object files for the data librarian
DLBOBJS = dlb_main.o $(OBJDIR)/dlb.o $(OALLOC)
@@ -220,6 +230,7 @@ TARGET_CXX = $(CXX)
TARGET_CXXFLAGS = $(CXXFLAGS)
TARGET_AR = $(AR)
#
# dependencies for makedefs
#
makedefs: $(HACKLIB) $(MAKEOBJS) mdgrep.h
@@ -277,12 +288,177 @@ lintdgn:
# dependencies for recover
#
$(TARGETPFX)recover: $(RECOVOBJS)
$(TARGET_CLINK) $(TARGET_LFLAGS) -o recover $(RECOVOBJS) $(LIBS)
recover: $(RECOVOBJS) $(HACKLIB)
$(CLINK) $(LFLAGS) -o recover \
$(RECOVOBJS) $(HACKLIB) $(LIBS)
$(TARGETPFX)recover.o: recover.c $(CONFIG_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(CSTD) -c recover.c -o $@
recover.o: recover.c $(CONFIG_H)
$(CC) $(CFLAGS) $(CSTD) -c recover.c -o $@
recover-version.o: ../src/version.c $(HACK_H)
$(CC) $(CFLAGS) $(CSTD) -DMINIMAL_FOR_RECOVER -c ../src/version.c -o $@
#
# dependencies for optional sfctool
#
# object files for sfctool utility
SFCTOOLOBJS = $(TARGETPFX)sfctool.o \
$(TARGETPFX)sf-alloc.o $(TARGETPFX)sfdata.o \
$(TARGETPFX)sfexpasc.o $(TARGETPFX)sf-cfgfiles.o \
$(TARGETPFX)sf-date.o $(TARGETPFX)sf-artifact.o \
$(TARGETPFX)sf-calendar.o $(TARGETPFX)sf-decl.o \
$(TARGETPFX)sf-dungeon.o $(TARGETPFX)sf-end.o \
$(TARGETPFX)sf-engrave.o $(TARGETPFX)sf-files.o \
$(TARGETPFX)sf-light.o $(TARGETPFX)sf-mdlib.o \
$(TARGETPFX)sf-mkmaze.o $(TARGETPFX)sf-mkroom.o \
$(TARGETPFX)sf-monst.o $(TARGETPFX)sf-nhlua.o \
$(TARGETPFX)sf-objects.o $(TARGETPFX)sf-o_init.o \
$(TARGETPFX)panic.o $(TARGETPFX)sf-region.o \
$(TARGETPFX)sf-restore.o $(TARGETPFX)sf-rumors.o \
$(TARGETPFX)sfbase.o $(TARGETPFX)sf-struct.o \
$(TARGETPFX)strutil.o $(TARGETPFX)sf-sys.o \
$(TARGETPFX)sf-timeout.o $(TARGETPFX)sf-track.o \
$(TARGETPFX)sf-version.o $(TARGETPFX)sf-worm.o
SFCTOOLBIN = sfctool
SFFLAGS=-DSFCTOOL -DNOPANICTRACE -DNOCRASHREPORT -DNO_CHRONICLE
sfutil: $(SFCTOOLBIN)
@echo '$(SFCTOOLBIN) is up to date.'
$(SFCTOOLBIN): $(SFCTOOLOBJS) $(HACKLIB)
$(TARGET_CLINK) $(TARGET_LFLAGS) -o $@ $(SFCTOOLOBJS) $(HACKLIB) $(TARGET_LIBS)
$(TARGETPFX)sfctool.o: sfctool.c $(HACK_H) ../include/sfprocs.h
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c sfctool.c
$(TARGETPFX)sf-alloc.o: ../src/alloc.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/alloc.c
$(TARGETPFX)sf-calendar.o: ../src/calendar.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/calendar.c
$(TARGETPFX)sf-cfgfiles.o: ../src/cfgfiles.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/cfgfiles.c
$(TARGETPFX)sf-date.o: ../src/date.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/date.c
$(TARGETPFX)sf-decl.o: ../src/decl.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/decl.c
$(TARGETPFX)sf-monst.o: ../src/monst.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/monst.c
$(TARGETPFX)sf-objects.o: ../src/objects.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/objects.c
$(TARGETPFX)sf-panic.o: panic.c $(CONFIG_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c panic.c
$(TARGETPFX)sf-artifact.o: ../src/artifact.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/artifact.c
$(TARGETPFX)sf-dungeon.o: ../src/dungeon.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/dungeon.c
$(TARGETPFX)sf-end.o: ../src/end.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/end.c
$(TARGETPFX)sf-engrave.o: ../src/engrave.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/engrave.c
$(TARGETPFX)sf-files.o: ../src/files.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/files.c
$(TARGETPFX)sf-light.o: ../src/light.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/light.c
$(TARGETPFX)sf-mdlib.o: ../src/mdlib.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/mdlib.c
$(TARGETPFX)sf-mkmaze.o: ../src/mkmaze.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/mkmaze.c
$(TARGETPFX)sf-mkroom.o: ../src/mkroom.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/mkroom.c
$(TARGETPFX)sf-nhlua.o: ../src/nhlua.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/nhlua.c
$(TARGETPFX)sf-o_init.o: ../src/o_init.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/o_init.c
$(TARGETPFX)sf-region.o: ../src/region.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/region.c
$(TARGETPFX)sf-restore.o: ../src/restore.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/restore.c
$(TARGETPFX)sf-rumors.o: ../src/rumors.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/rumors.c
$(TARGETPFX)sfbase.o: ../src/sfbase.c $(HACK_H) ../include/sfmacros.h
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/sfbase.c
$(TARGETPFX)sfdata.o: sfdata.c $(HACK_H) ../include/sfprocs.h ../include/sfproto.h
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c sfdata.c
$(TARGETPFX)sfexpasc.o: sfexpasc.c $(HACK_H) ../include/sfprocs.h \
../include/sfproto.h ../include/sfmacros.h
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c sfexpasc.c
$(TARGETPFX)sf-struct.o: ../src/sfstruct.c $(HACK_H) ../include/sfmacros.h
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/sfstruct.c
$(TARGETPFX)strutil.o: ../src/strutil.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/strutil.c
$(TARGETPFX)sf-sys.o: ../src/sys.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/sys.c
$(TARGETPFX)sf-timeout.o: ../src/timeout.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/timeout.c
$(TARGETPFX)sf-track.o: ../src/track.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/track.c
$(TARGETPFX)sf-version.o: ../src/version.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/version.c
$(TARGETPFX)sf-worm.o: ../src/worm.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(SFFLAGS) -o $@ -c ../src/worm.c
sftags: sftags.o $(HACKLIB)
$(CLINK) $(LFLAGS) -o $@ sftags.o $(HACKLIB) $(LIBS)
sftags.o: sftags.c $(HACK_H)
$(CC) $(CFLAGS) -c sftags.c
../include/sfproto.h: sf.tags sftags
./sftags
sfdata.c: sf.tags sftags
./sftags
# dependencies for sftags
# #
CTAGDEP = ../include/align.h ../include/artifact.h ../include/artilist.h \
../include/attrib.h ../include/context.h ../include/coord.h \
../include/decl.h ../include/dungeon.h ../include/engrave.h \
../include/flag.h ../include/func_tab.h ../include/global.h \
../include/hack.h ../include/mextra.h \
../include/mkroom.h ../include/monst.h ../include/defsym.h \
../include/obj.h ../include/objclass.h ../include/prop.h \
../include/quest.h ../include/rect.h ../include/region.h \
../include/rm.h ../include/skills.h ../include/spell.h \
../include/sys.h ../include/timeout.h ../include/trap.h \
../include/you.h ../include/onames.h ../include/wintype.h
# ../include/permonst.h
CTAGSOPT = --language-force=c --sort=no -D"Bitfield(x,n)=unsigned x : n" --excmd=pattern
#
INCL=../include/
SRC=../src/
sf.tags: $(CTAGDEP)
$(CTAGSCMD) $(CTAGSOPT) -f $@ $(INCL)align.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)artifact.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(SRC)artifact.c
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)artilist.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)attrib.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(SRC)bones.c
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)context.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)coord.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)decl.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(SRC)decl.c
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)dungeon.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)engrave.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(SRC)engrave.c
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)flag.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)func_tab.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)global.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)hack.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)mextra.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)mkroom.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)monst.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)defsym.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)obj.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)objclass.h
# $(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)permonst.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)prop.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)quest.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)rect.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)region.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)rm.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)skills.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)spell.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)stairs.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)sys.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)timeout.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)trap.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)you.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)onames.h
$(CTAGSCMD) $(CTAGSOPT) -a -f $@ $(INCL)wintype.h
# dependencies for dlb
#
@@ -292,6 +468,11 @@ dlb: $(DLBOBJS) $(HACKLIB)
dlb_main.o: dlb_main.c $(CONFIG_H) ../include/dlb.h
$(CC) $(CFLAGS) $(CSTD) -c dlb_main.c -o $@
stripbs: stripbs.o
$(CC) $(LFLAGS) -o stripbs stripbs.o
stripbs.o: stripbs.c
$(CC) $(CFLAGS) -c stripbs.c
# dependencies for tile utilities
#
@@ -440,7 +621,10 @@ clean-fixup:
clean: clean-fixup
-rm -f *.o
# obsolete dgn_comp and lev_comp could be left around from 3.6.x
spotless: clean
-rm -f makedefs recover dlb $(HACKLIB)
-rm -f gif2txt txt2ppm tile2x11 tile2img.ttp xpm2img.ttp \
tilemap tileedit tile2bmp uudecode
-rm -f dgn_comp* dgn_lex.c dgn_yacc.c ../include/dgn_comp.h \
lev_comp* lev_lex.c lev_yacc.c ../include/lev_comp.h

View File

@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
objectVersion = 54;
objectVersion = 70;
objects = {
/* Begin PBXBuildFile section */
@@ -100,7 +100,6 @@
31B8A3C721A238060055BD01 /* monmove.c in Sources */ = {isa = PBXBuildFile; fileRef = 31B8A36121A238040055BD01 /* monmove.c */; };
31B8A3C821A238060055BD01 /* options.c in Sources */ = {isa = PBXBuildFile; fileRef = 31B8A36221A238040055BD01 /* options.c */; };
31B8A3C921A238060055BD01 /* sounds.c in Sources */ = {isa = PBXBuildFile; fileRef = 31B8A36321A238040055BD01 /* sounds.c */; };
31B8A3CA21A238060055BD01 /* hacklib.c in Sources */ = {isa = PBXBuildFile; fileRef = 31B8A36421A238040055BD01 /* hacklib.c */; };
31B8A3CB21A238060055BD01 /* alloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 31B8A36521A238040055BD01 /* alloc.c */; };
31B8A3CC21A238060055BD01 /* pickup.c in Sources */ = {isa = PBXBuildFile; fileRef = 31B8A36621A238040055BD01 /* pickup.c */; };
31B8A3CD21A238060055BD01 /* write.c in Sources */ = {isa = PBXBuildFile; fileRef = 31B8A36721A238040055BD01 /* write.c */; };
@@ -164,6 +163,7 @@
5462D14823E7B19200969423 /* insight.c in Sources */ = {isa = PBXBuildFile; fileRef = 5462D14723E7B19200969423 /* insight.c */; };
5493735A277AAE830031FE02 /* alloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 31B8A36521A238040055BD01 /* alloc.c */; };
54A3D3EC282C55A900143F8C /* utf8map.c in Sources */ = {isa = PBXBuildFile; fileRef = 54A3D3EB282C55A900143F8C /* utf8map.c */; };
54BD340D2D8B70350073C484 /* hacklib.c in Sources */ = {isa = PBXBuildFile; fileRef = 31B8A36421A238040055BD01 /* hacklib.c */; };
54FB2B4B246310A600397C0E /* symbols.c in Sources */ = {isa = PBXBuildFile; fileRef = 54FB2B4A246310A600397C0E /* symbols.c */; };
54FCE8292223261F00F393C8 /* isaac64.c in Sources */ = {isa = PBXBuildFile; fileRef = 54FCE8282223261F00F393C8 /* isaac64.c */; };
BAB57DB527C1C3E200FCF150 /* libnhlua.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BAE8010A27B97760002B3786 /* libnhlua.a */; };
@@ -202,6 +202,12 @@
BAE8015627B99CAE002B3786 /* lstrlib.c in Sources */ = {isa = PBXBuildFile; fileRef = BAE8013427B99CAD002B3786 /* lstrlib.c */; };
BAE8015727B99CAE002B3786 /* lzio.c in Sources */ = {isa = PBXBuildFile; fileRef = BAE8013527B99CAD002B3786 /* lzio.c */; };
BAE8015A27B9C872002B3786 /* date.c in Sources */ = {isa = PBXBuildFile; fileRef = 5439B3BB275AADC600B8FB2F /* date.c */; };
F5457B212DED146B00039D83 /* hacklib.c in Sources */ = {isa = PBXBuildFile; fileRef = F5457B202DED146B00039D83 /* hacklib.c */; };
F5457B2C2DED16F200039D83 /* libhacklib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F5457B1C2DED143E00039D83 /* libhacklib.a */; };
F5457B2D2DED171800039D83 /* libhacklib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F5457B1C2DED143E00039D83 /* libhacklib.a */; };
F5857AA22DED026700A8CB4F /* version.c in Sources */ = {isa = PBXBuildFile; fileRef = 31B8A32721A238010055BD01 /* version.c */; };
F5857AA42DED032D00A8CB4F /* cfgfiles.c in Sources */ = {isa = PBXBuildFile; fileRef = F5857AA32DED032C00A8CB4F /* cfgfiles.c */; };
F5857AA62DED03BB00A8CB4F /* sfbase.c in Sources */ = {isa = PBXBuildFile; fileRef = F5857AA52DED03BB00A8CB4F /* sfbase.c */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -240,13 +246,6 @@
remoteGlobalIDString = 3189577E21A1FDA400FB2ABE;
remoteInfo = makedefs;
};
BAE8011027B9865F002B3786 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 3189576921A1FCC100FB2ABE /* Project object */;
proxyType = 1;
remoteGlobalIDString = BAE8010927B97760002B3786;
remoteInfo = nhlua.a;
};
BAE8011227B9996A002B3786 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 3189576921A1FCC100FB2ABE /* Project object */;
@@ -254,6 +253,20 @@
remoteGlobalIDString = BAE8010927B97760002B3786;
remoteInfo = nhlua.a;
};
F5457B222DED148700039D83 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 3189576921A1FCC100FB2ABE /* Project object */;
proxyType = 1;
remoteGlobalIDString = F5457B1B2DED143E00039D83;
remoteInfo = hacklib;
};
F5457B242DED149500039D83 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 3189576921A1FCC100FB2ABE /* Project object */;
proxyType = 1;
remoteGlobalIDString = F5457B1B2DED143E00039D83;
remoteInfo = hacklib;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
@@ -528,7 +541,6 @@
544768B523995488004B9739 /* nhlua.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = nhlua.h; path = ../../include/nhlua.h; sourceTree = "<group>"; };
544768B923995BB7004B9739 /* liblua.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = liblua.a; path = ../../lib/lua/liblua.a; sourceTree = "<group>"; };
5462D14723E7B19200969423 /* insight.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = insight.c; path = ../../src/insight.c; sourceTree = "<group>"; };
546A4E5A29AAB2DA00E02495 /* seffects.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = seffects.h; sourceTree = "<group>"; };
548FB9F9297F2B03000D04CF /* sndprocs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = sndprocs.h; path = ../../include/sndprocs.h; sourceTree = "<group>"; };
548FB9FA297F2BBD000D04CF /* optlist.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = optlist.h; path = ../../include/optlist.h; sourceTree = "<group>"; };
548FB9FB297F2BBD000D04CF /* hacklib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = hacklib.h; path = ../../include/hacklib.h; sourceTree = "<group>"; };
@@ -540,6 +552,12 @@
548FBA01297F2BBD000D04CF /* monsters.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = monsters.h; path = ../../include/monsters.h; sourceTree = "<group>"; };
54A3D3EB282C55A900143F8C /* utf8map.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = utf8map.c; path = ../../src/utf8map.c; sourceTree = "<group>"; };
54AEB885297EE7C4005F1B13 /* macsound.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = macsound.m; path = ../../sound/macsound/macsound.m; sourceTree = "<group>"; };
54BD340E2D8B711E0073C484 /* nhregex.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = nhregex.h; path = ../../include/nhregex.h; sourceTree = "<group>"; };
54BD340F2D8B711E0073C484 /* seffects.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = seffects.h; path = ../../include/seffects.h; sourceTree = "<group>"; };
54BD34102D8B711E0073C484 /* selvar.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = selvar.h; path = ../../include/selvar.h; sourceTree = "<group>"; };
54BD34112D8B711E0073C484 /* stairs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = stairs.h; path = ../../include/stairs.h; sourceTree = "<group>"; };
54BD34122D8B711E0073C484 /* weight.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = weight.h; path = ../../include/weight.h; sourceTree = "<group>"; };
54EBA6D22DDED3F100CD20EC /* cfgfiles.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = cfgfiles.c; path = ../../src/cfgfiles.c; sourceTree = "<absolute>"; };
54FB2B4A246310A600397C0E /* symbols.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = symbols.c; path = ../../src/symbols.c; sourceTree = "<group>"; };
54FCE8282223261F00F393C8 /* isaac64.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = isaac64.c; path = ../../src/isaac64.c; sourceTree = "<group>"; };
BAE8010A27B97760002B3786 /* libnhlua.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libnhlua.a; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -577,13 +595,55 @@
BAE8013327B99CAD002B3786 /* lmathlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lmathlib.c; path = "../../lib/lua-5.4.6/src/lmathlib.c"; sourceTree = "<group>"; };
BAE8013427B99CAD002B3786 /* lstrlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lstrlib.c; path = "../../lib/lua-5.4.6/src/lstrlib.c"; sourceTree = "<group>"; };
BAE8013527B99CAD002B3786 /* lzio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lzio.c; path = "../../lib/lua-5.4.6/src/lzio.c"; sourceTree = "<group>"; };
F515A6F32DED074D006E1F63 /* sfctool.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = sfctool.c; path = ../../util/sfctool.c; sourceTree = "<group>"; };
F515A6F52DED0916006E1F63 /* date.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = date.c; path = ../../src/date.c; sourceTree = "<group>"; };
F515A6F62DED0916006E1F63 /* sfbase.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = sfbase.c; path = ../../src/sfbase.c; sourceTree = "<group>"; };
F515A6F72DED0916006E1F63 /* sys.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = sys.c; path = ../../src/sys.c; sourceTree = "<group>"; };
F515A6F82DED0917006E1F63 /* calendar.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = calendar.c; path = ../../src/calendar.c; sourceTree = "<group>"; };
F515A6F92DED0917006E1F63 /* sfstruct.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = sfstruct.c; path = ../../src/sfstruct.c; sourceTree = "<group>"; };
F515A6FA2DED0917006E1F63 /* engrave.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = engrave.c; path = ../../src/engrave.c; sourceTree = "<group>"; };
F515A6FB2DED0917006E1F63 /* mdlib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = mdlib.c; path = ../../src/mdlib.c; sourceTree = "<group>"; };
F515A6FC2DED0917006E1F63 /* o_init.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = o_init.c; path = ../../src/o_init.c; sourceTree = "<group>"; };
F515A6FD2DED0917006E1F63 /* mkmaze.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = mkmaze.c; path = ../../src/mkmaze.c; sourceTree = "<group>"; };
F515A6FE2DED0917006E1F63 /* version.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = version.c; path = ../../src/version.c; sourceTree = "<group>"; };
F515A6FF2DED0918006E1F63 /* alloc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = alloc.c; path = ../../src/alloc.c; sourceTree = "<group>"; };
F515A7002DED0918006E1F63 /* artifact.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = artifact.c; path = ../../src/artifact.c; sourceTree = "<group>"; };
F515A7012DED0918006E1F63 /* cfgfiles.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = cfgfiles.c; path = ../../src/cfgfiles.c; sourceTree = "<group>"; };
F515A7022DED0918006E1F63 /* nhlua.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = nhlua.c; path = ../../src/nhlua.c; sourceTree = "<group>"; };
F515A7032DED0918006E1F63 /* objects.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = objects.c; path = ../../src/objects.c; sourceTree = "<group>"; };
F515A7042DED0918006E1F63 /* strutil.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = strutil.c; path = ../../src/strutil.c; sourceTree = "<group>"; };
F515A7052DED0919006E1F63 /* decl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = decl.c; path = ../../src/decl.c; sourceTree = "<group>"; };
F515A7062DED0919006E1F63 /* mkroom.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = mkroom.c; path = ../../src/mkroom.c; sourceTree = "<group>"; };
F515A7072DED0919006E1F63 /* rumors.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = rumors.c; path = ../../src/rumors.c; sourceTree = "<group>"; };
F515A7082DED0919006E1F63 /* monst.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = monst.c; path = ../../src/monst.c; sourceTree = "<group>"; };
F515A7092DED0919006E1F63 /* files.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = files.c; path = ../../src/files.c; sourceTree = "<group>"; };
F515A70A2DED091A006E1F63 /* restore.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = restore.c; path = ../../src/restore.c; sourceTree = "<group>"; };
F515A70B2DED091A006E1F63 /* end.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = end.c; path = ../../src/end.c; sourceTree = "<group>"; };
F515A70C2DED091A006E1F63 /* worm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = worm.c; path = ../../src/worm.c; sourceTree = "<group>"; };
F515A7252DED0978006E1F63 /* sfexpasc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = sfexpasc.c; path = ../../util/sfexpasc.c; sourceTree = "<group>"; };
F515A7262DED0978006E1F63 /* panic.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = panic.c; path = ../../util/panic.c; sourceTree = "<group>"; };
F515A72A2DED0A7C006E1F63 /* sftags.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = sftags.c; path = ../../util/sftags.c; sourceTree = "<group>"; };
F515A73B2DED0B47006E1F63 /* hacklib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = hacklib.c; path = ../../src/hacklib.c; sourceTree = "<group>"; };
F5457B1C2DED143E00039D83 /* libhacklib.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libhacklib.a; sourceTree = BUILT_PRODUCTS_DIR; };
F5457B202DED146B00039D83 /* hacklib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = hacklib.c; path = ../../src/hacklib.c; sourceTree = "<group>"; };
F54C1AE12E43D22A006CAA8E /* nhmd4.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = nhmd4.h; path = ../../include/include/nhmd4.h; sourceTree = "<group>"; };
F54C1AE22E43D22A006CAA8E /* savefile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = savefile.h; path = ../../include/include/savefile.h; sourceTree = "<group>"; };
F54C1AE32E43D22A006CAA8E /* sfmacros.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = sfmacros.h; path = ../../include/include/sfmacros.h; sourceTree = "<group>"; };
F54C1AE42E43D22A006CAA8E /* sfprocs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = sfprocs.h; path = ../../include/include/sfprocs.h; sourceTree = "<group>"; };
F5857AA32DED032C00A8CB4F /* cfgfiles.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = cfgfiles.c; path = ../../src/cfgfiles.c; sourceTree = "<group>"; };
F5857AA52DED03BB00A8CB4F /* sfbase.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = sfbase.c; path = ../../src/sfbase.c; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFileSystemSynchronizedRootGroup section */
F515A7322DED0B08006E1F63 /* hacklib */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = hacklib; sourceTree = "<group>"; };
/* End PBXFileSystemSynchronizedRootGroup section */
/* Begin PBXFrameworksBuildPhase section */
3189576E21A1FCC100FB2ABE /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
F5457B2C2DED16F200039D83 /* libhacklib.a in Frameworks */,
BAB57DB527C1C3E200FCF150 /* libnhlua.a in Frameworks */,
31B8A41721A243E80055BD01 /* libncurses.tbd in Frameworks */,
);
@@ -593,6 +653,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
F5457B2D2DED171800039D83 /* libhacklib.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -617,12 +678,51 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
F5457B1A2DED143E00039D83 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
3189576821A1FCC100FB2ABE = {
isa = PBXGroup;
children = (
F515A73B2DED0B47006E1F63 /* hacklib.c */,
F5457B202DED146B00039D83 /* hacklib.c */,
F515A72A2DED0A7C006E1F63 /* sftags.c */,
F515A7262DED0978006E1F63 /* panic.c */,
F515A7252DED0978006E1F63 /* sfexpasc.c */,
F515A6FF2DED0918006E1F63 /* alloc.c */,
F515A7002DED0918006E1F63 /* artifact.c */,
F515A6F82DED0917006E1F63 /* calendar.c */,
F515A7012DED0918006E1F63 /* cfgfiles.c */,
F515A6F52DED0916006E1F63 /* date.c */,
F515A7052DED0919006E1F63 /* decl.c */,
F515A70B2DED091A006E1F63 /* end.c */,
F515A6FA2DED0917006E1F63 /* engrave.c */,
F515A7092DED0919006E1F63 /* files.c */,
F515A6FB2DED0917006E1F63 /* mdlib.c */,
F515A6FD2DED0917006E1F63 /* mkmaze.c */,
F515A7062DED0919006E1F63 /* mkroom.c */,
F515A7082DED0919006E1F63 /* monst.c */,
F515A7022DED0918006E1F63 /* nhlua.c */,
F515A6FC2DED0917006E1F63 /* o_init.c */,
F515A7032DED0918006E1F63 /* objects.c */,
F515A70A2DED091A006E1F63 /* restore.c */,
F515A7072DED0919006E1F63 /* rumors.c */,
F515A6F62DED0916006E1F63 /* sfbase.c */,
F515A6F92DED0917006E1F63 /* sfstruct.c */,
F515A7042DED0918006E1F63 /* strutil.c */,
F515A6F72DED0916006E1F63 /* sys.c */,
F515A6FE2DED0917006E1F63 /* version.c */,
F515A70C2DED091A006E1F63 /* worm.c */,
F515A6F32DED074D006E1F63 /* sfctool.c */,
F5857AA52DED03BB00A8CB4F /* sfbase.c */,
F5857AA32DED032C00A8CB4F /* cfgfiles.c */,
54AEB886297EE7E9005F1B13 /* sound */,
54AEB885297EE7C4005F1B13 /* macsound.m */,
BAE8015827B99D44002B3786 /* nhlualib */,
@@ -632,6 +732,7 @@
3189579621A2046700FB2ABE /* include */,
3189579321A200EC00FB2ABE /* util */,
3189578C21A1FF8200FB2ABE /* src */,
F515A7322DED0B08006E1F63 /* hacklib */,
3189577221A1FCC100FB2ABE /* Products */,
31B8A41421A243CB0055BD01 /* Frameworks */,
);
@@ -645,6 +746,7 @@
31B8A44A21A26A4B0055BD01 /* recover */,
31B8A45721A26A970055BD01 /* dlb */,
BAE8010A27B97760002B3786 /* libnhlua.a */,
F5457B1C2DED143E00039D83 /* libhacklib.a */,
);
name = Products;
sourceTree = "<group>";
@@ -652,6 +754,7 @@
3189578C21A1FF8200FB2ABE /* src */ = {
isa = PBXGroup;
children = (
54EBA6D22DDED3F100CD20EC /* cfgfiles.c */,
056E43BB2C810EE800FD1F52 /* calendar.c */,
056E43BC2C810EE800FD1F52 /* coloratt.c */,
056E43BD2C810EE800FD1F52 /* getpos.c */,
@@ -797,18 +900,10 @@
3189579621A2046700FB2ABE /* include */ = {
isa = PBXGroup;
children = (
546A4E5A29AAB2DA00E02495 /* seffects.h */,
548FB9FD297F2BBD000D04CF /* defsym.h */,
548FB9FE297F2BBD000D04CF /* fnamesiz.h */,
548FB9FB297F2BBD000D04CF /* hacklib.h */,
548FBA01297F2BBD000D04CF /* monsters.h */,
548FB9FF297F2BBD000D04CF /* objects.h */,
548FB9FA297F2BBD000D04CF /* optlist.h */,
548FBA00297F2BBD000D04CF /* tile.h */,
548FB9FC297F2BBD000D04CF /* warnings.h */,
548FB9F9297F2B03000D04CF /* sndprocs.h */,
544768B523995488004B9739 /* nhlua.h */,
544768B423995447004B9739 /* isaac64.h */,
F54C1AE12E43D22A006CAA8E /* nhmd4.h */,
F54C1AE22E43D22A006CAA8E /* savefile.h */,
F54C1AE32E43D22A006CAA8E /* sfmacros.h */,
F54C1AE42E43D22A006CAA8E /* sfprocs.h */,
3186A3B721A4B0FD0052BF02 /* align.h */,
3186A38821A4B0FB0052BF02 /* artifact.h */,
3186A3AB21A4B0FD0052BF02 /* artilist.h */,
@@ -819,8 +914,10 @@
3186A3C621A4B0FE0052BF02 /* config1.h */,
3186A37121A4B0FA0052BF02 /* context.h */,
3186A3C521A4B0FE0052BF02 /* coord.h */,
3186A38A21A4B0FB0052BF02 /* cstd.h */,
3186A3B021A4B0FD0052BF02 /* date.h */,
3186A3D021A4B0FE0052BF02 /* decl.h */,
548FB9FD297F2BBD000D04CF /* defsym.h */,
3186A3A021A4B0FD0052BF02 /* dgn_file.h */,
3186A3A921A4B0FD0052BF02 /* display.h */,
3186A38E21A4B0FC0052BF02 /* dlb.h */,
@@ -828,10 +925,13 @@
3186A3A221A4B0FD0052BF02 /* engrave.h */,
3186A37021A4B0FA0052BF02 /* extern.h */,
3186A3B521A4B0FD0052BF02 /* flag.h */,
548FB9FE297F2BBD000D04CF /* fnamesiz.h */,
3186A37321A4B0FA0052BF02 /* func_tab.h */,
3186A3C121A4B0FD0052BF02 /* global.h */,
3186A3A521A4B0FD0052BF02 /* hack.h */,
548FB9FB297F2BBD000D04CF /* hacklib.h */,
3186A37A21A4B0FA0052BF02 /* integer.h */,
544768B423995447004B9739 /* isaac64.h */,
3186A3BC21A4B0FD0052BF02 /* lint.h */,
3186A3B821A4B0FD0052BF02 /* mail.h */,
3186A38521A4B0FB0052BF02 /* mextra.h */,
@@ -842,10 +942,13 @@
3186A3C821A4B0FE0052BF02 /* mondata.h */,
3186A38F21A4B0FC0052BF02 /* monflag.h */,
3186A3BB21A4B0FD0052BF02 /* monst.h */,
3186A38421A4B0FB0052BF02 /* sym.h */,
3186A39B21A4B0FD0052BF02 /* windconf.h */,
548FBA01297F2BBD000D04CF /* monsters.h */,
544768B523995488004B9739 /* nhlua.h */,
54BD340E2D8B711E0073C484 /* nhregex.h */,
3186A39521A4B0FC0052BF02 /* obj.h */,
3186A3A821A4B0FD0052BF02 /* objclass.h */,
548FB9FF297F2BBD000D04CF /* objects.h */,
548FB9FA297F2BBD000D04CF /* optlist.h */,
3186A37521A4B0FA0052BF02 /* patchlevel.h */,
3186A38121A4B0FB0052BF02 /* pcconf.h */,
3186A38321A4B0FB0052BF02 /* permonst.h */,
@@ -854,12 +957,17 @@
3186A37C21A4B0FA0052BF02 /* rect.h */,
3186A37B21A4B0FA0052BF02 /* region.h */,
3186A39721A4B0FC0052BF02 /* rm.h */,
54BD340F2D8B711E0073C484 /* seffects.h */,
54BD34102D8B711E0073C484 /* selvar.h */,
3186A38221A4B0FB0052BF02 /* skills.h */,
548FB9F9297F2B03000D04CF /* sndprocs.h */,
3186A3B621A4B0FD0052BF02 /* sp_lev.h */,
3186A3A321A4B0FD0052BF02 /* spell.h */,
54BD34112D8B711E0073C484 /* stairs.h */,
3186A38421A4B0FB0052BF02 /* sym.h */,
3186A3CB21A4B0FE0052BF02 /* sys.h */,
3186A38A21A4B0FB0052BF02 /* cstd.h */,
3186A3C321A4B0FE0052BF02 /* tcap.h */,
548FBA00297F2BBD000D04CF /* tile.h */,
3186A3A121A4B0FD0052BF02 /* tile2x11.h */,
3186A39421A4B0FC0052BF02 /* tileset.h */,
3186A3CA21A4B0FE0052BF02 /* timeout.h */,
@@ -868,8 +976,11 @@
3186A3AD21A4B0FD0052BF02 /* unixconf.h */,
3186A37E21A4B0FA0052BF02 /* vision.h */,
3186A3BE21A4B0FD0052BF02 /* vmsconf.h */,
548FB9FC297F2BBD000D04CF /* warnings.h */,
54BD34122D8B711E0073C484 /* weight.h */,
3186A3AA21A4B0FD0052BF02 /* winami.h */,
3186A37621A4B0FA0052BF02 /* wincurs.h */,
3186A39B21A4B0FD0052BF02 /* windconf.h */,
3186A36F21A4B0FA0052BF02 /* winprocs.h */,
3186A39A21A4B0FD0052BF02 /* wintty.h */,
3186A3C021A4B0FD0052BF02 /* wintype.h */,
@@ -1021,6 +1132,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
F5457B182DED143E00039D83 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
@@ -1039,6 +1157,7 @@
buildRules = (
);
dependencies = (
F5457B232DED148700039D83 /* PBXTargetDependency */,
BAE8011327B9996A002B3786 /* PBXTargetDependency */,
31B8A31421A2355C0055BD01 /* PBXTargetDependency */,
3192867621A3AAFE00325BEB /* PBXTargetDependency */,
@@ -1067,7 +1186,7 @@
buildRules = (
);
dependencies = (
BAE8011127B9865F002B3786 /* PBXTargetDependency */,
F5457B252DED149500039D83 /* PBXTargetDependency */,
);
name = makedefs;
productName = makedefs;
@@ -1134,6 +1253,25 @@
productReference = BAE8010A27B97760002B3786 /* libnhlua.a */;
productType = "com.apple.product-type.library.static";
};
F5457B1B2DED143E00039D83 /* hacklib */ = {
isa = PBXNativeTarget;
buildConfigurationList = F5457B1D2DED143E00039D83 /* Build configuration list for PBXNativeTarget "hacklib" */;
buildPhases = (
F5457B182DED143E00039D83 /* Headers */,
F5457B192DED143E00039D83 /* Sources */,
F5457B1A2DED143E00039D83 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = hacklib;
packageProductDependencies = (
);
productName = hacklib;
productReference = F5457B1C2DED143E00039D83 /* libhacklib.a */;
productType = "com.apple.product-type.library.static";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@@ -1158,6 +1296,9 @@
BAE8010927B97760002B3786 = {
CreatedOnToolsVersion = 13.2.1;
};
F5457B1B2DED143E00039D83 = {
CreatedOnToolsVersion = 16.4;
};
};
};
buildConfigurationList = 3189576C21A1FCC100FB2ABE /* Build configuration list for PBXProject "NetHack" */;
@@ -1177,6 +1318,7 @@
3189577E21A1FDA400FB2ABE /* makedefs */,
31B8A44921A26A4B0055BD01 /* recover */,
31B8A45621A26A970055BD01 /* dlb */,
F5457B1B2DED143E00039D83 /* hacklib */,
BAE8010927B97760002B3786 /* nhlua */,
);
};
@@ -1196,6 +1338,7 @@
outputFileListPaths = (
);
outputPaths = (
"${NH_LIB_DIR}/libnhlua.a",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
@@ -1222,6 +1365,7 @@
};
059660C22C80B0FD00398EDE /* Codesign dlb */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
@@ -1251,6 +1395,7 @@
outputFileListPaths = (
);
outputPaths = (
"$(NH_UTIL_DIR}/recover",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
@@ -1362,7 +1507,7 @@
};
317E7C5421A3804400F6E4E5 /* Build Guidebook */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
buildActionMask = 8;
files = (
);
inputFileListPaths = (
@@ -1379,7 +1524,7 @@
outputPaths = (
"$(NH_DOC_DIR)/Guidebook",
);
runOnlyForDeploymentPostprocessing = 0;
runOnlyForDeploymentPostprocessing = 1;
shellPath = /bin/sh;
shellScript = "cd \"${NH_DOC_DIR}\"\ncat Guidebook.mn | ${NH_UTIL_DIR}/makedefs --grep --input - --output - | tbl tmac.n - | nroff -c -Tascii | col -bx > Guidebook\n";
};
@@ -1423,6 +1568,8 @@
"$(NH_DAT_DIR)/Bar-strt.lua",
"$(NH_DAT_DIR)/bigrm-1.lua",
"$(NH_DAT_DIR)/bigrm-10.lua",
"$(NH_DAT_DIR)/bigrm-11.lua",
"$(NH_DAT_DIR)/bigrm-12.lua",
"$(NH_DAT_DIR)/bigrm-2.lua",
"$(NH_DAT_DIR)/bigrm-3.lua",
"$(NH_DAT_DIR)/bigrm-4.lua",
@@ -1705,6 +1852,8 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
F5857AA62DED03BB00A8CB4F /* sfbase.c in Sources */,
F5857AA42DED032D00A8CB4F /* cfgfiles.c in Sources */,
BAE8015A27B9C872002B3786 /* date.c in Sources */,
54435B52247999CB00804CB3 /* nhlobj.c in Sources */,
31B8A3BC21A238060055BD01 /* eat.c in Sources */,
@@ -1809,7 +1958,6 @@
31B8A41121A23EEC0055BD01 /* cursstat.c in Sources */,
31B8A3E021A238060055BD01 /* wield.c in Sources */,
31B8A41821A2448C0055BD01 /* monst.c in Sources */,
31B8A3CA21A238060055BD01 /* hacklib.c in Sources */,
31B8A3A121A238060055BD01 /* rip.c in Sources */,
31B8A39321A238060055BD01 /* were.c in Sources */,
31B8A3EF21A23D420055BD01 /* ioctl.c in Sources */,
@@ -1872,6 +2020,8 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
F5857AA22DED026700A8CB4F /* version.c in Sources */,
54BD340D2D8B70350073C484 /* hacklib.c in Sources */,
31B8A45221A26A750055BD01 /* recover.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -1929,6 +2079,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
F5457B192DED143E00039D83 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
F5457B212DED146B00039D83 /* hacklib.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
@@ -1957,16 +2115,21 @@
target = 3189577E21A1FDA400FB2ABE /* makedefs */;
targetProxy = 31B8A31321A2355C0055BD01 /* PBXContainerItemProxy */;
};
BAE8011127B9865F002B3786 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = BAE8010927B97760002B3786 /* nhlua */;
targetProxy = BAE8011027B9865F002B3786 /* PBXContainerItemProxy */;
};
BAE8011327B9996A002B3786 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = BAE8010927B97760002B3786 /* nhlua */;
targetProxy = BAE8011227B9996A002B3786 /* PBXContainerItemProxy */;
};
F5457B232DED148700039D83 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = F5457B1B2DED143E00039D83 /* hacklib */;
targetProxy = F5457B222DED148700039D83 /* PBXContainerItemProxy */;
};
F5457B252DED149500039D83 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = F5457B1B2DED143E00039D83 /* hacklib */;
targetProxy = F5457B242DED149500039D83 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
@@ -2144,10 +2307,12 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 5J8MP36Y73;
GCC_C_LANGUAGE_STANDARD = c99;
INSTALL_PATH = "$(NH_INSTALL_DIR)";
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
OTHER_CFLAGS = (
"-Wno-ambiguous-macro",
"-DNOMAIL",
"-DNOTPARMDECL",
"-DDEFAULT_WINDOW_SYS=\\\"tty\\\"",
@@ -2175,10 +2340,12 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 5J8MP36Y73;
GCC_C_LANGUAGE_STANDARD = c99;
INSTALL_PATH = "$(NH_INSTALL_DIR)";
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
OTHER_CFLAGS = (
"-Wno-ambiguous-macro",
"-DNOMAIL",
"-DNOTPARMDECL",
"-DDEFAULT_WINDOW_SYS=\\\"tty\\\"",
@@ -2226,6 +2393,22 @@
CODE_SIGN_STYLE = Automatic;
DEAD_CODE_STRIPPING = YES;
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
OTHER_CFLAGS = (
"-DMINIMAL_FOR_RECOVER",
"-DNOMAIL",
"-DNOTPARMDECL",
"-DDEFAULT_WINDOW_SYS=\\\"tty\\\"",
"-DDLB",
"-DGREPPATH=\\\"/usr/bin/grep\\\"",
"-DSYSCF",
"-DSYSCF_FILE=\\\"$(NH_INSTALL_DIR)/sysconf\\\"",
"-DHACKDIR=\\\"$(NH_INSTALL_DIR)\\\"",
"-DSECURE",
"-DCURSES_GRAPHICS",
"-DSND_LIB_MACSOUND",
"-DSND_SOUNDEFFECTS_AUTOMAP",
"-DUSER_SOUNDS",
);
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
@@ -2237,6 +2420,19 @@
CODE_SIGN_STYLE = Automatic;
DEAD_CODE_STRIPPING = YES;
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
OTHER_CFLAGS = (
"-DMINIMAL_FOR_RECOVER",
"-DNOMAIL",
"-DNOTPARMDECL",
"-DDEFAULT_WINDOW_SYS=\\\"tty\\\"",
"-DDLB",
"-DGREPPATH=\\\"/usr/bin/grep\\\"",
"-DSYSCF",
"-DSYSCF_FILE=\\\"$(NH_INSTALL_DIR)/sysconf\\\"",
"-DHACKDIR=\\\"$(NH_INSTALL_DIR)\\\"",
"-DSECURE",
"-DCURSES_GRAPHICS",
);
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
@@ -2274,7 +2470,8 @@
CLANG_WARN_UNREACHABLE_CODE = YES;
CODE_SIGN_STYLE = Automatic;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 6978C4Q2VB;
DEVELOPMENT_TEAM = 5J8MP36Y73;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
EXECUTABLE_PREFIX = lib;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
@@ -2310,7 +2507,8 @@
CLANG_WARN_UNREACHABLE_CODE = YES;
CODE_SIGN_STYLE = Automatic;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 6978C4Q2VB;
DEVELOPMENT_TEAM = 5J8MP36Y73;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
EXECUTABLE_PREFIX = lib;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
@@ -2335,6 +2533,52 @@
};
name = Release;
};
F5457B1E2DED143E00039D83 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CLANG_WARN_COMMA = NO;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 5J8MP36Y73;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
EXECUTABLE_PREFIX = lib;
GCC_C_LANGUAGE_STANDARD = gnu17;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MACOSX_DEPLOYMENT_TARGET = 15.5;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
name = Debug;
};
F5457B1F2DED143E00039D83 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CLANG_WARN_COMMA = NO;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 5J8MP36Y73;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
EXECUTABLE_PREFIX = lib;
GCC_C_LANGUAGE_STANDARD = gnu17;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MACOSX_DEPLOYMENT_TARGET = 15.5;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
@@ -2392,6 +2636,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
F5457B1D2DED143E00039D83 /* Build configuration list for PBXNativeTarget "hacklib" */ = {
isa = XCConfigurationList;
buildConfigurations = (
F5457B1E2DED143E00039D83 /* Debug */,
F5457B1F2DED143E00039D83 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 3189576921A1FCC100FB2ABE /* Project object */;

View File

@@ -26,7 +26,7 @@ cases to include support for multiple features. Some of the options
require prerequisite packages to be available on your build machine.
make WANT_WIN_TTY=1 Include support for the TTY interface (default).
make NANT_WIN_CURSES=1 Include support for the curses interface.
make WANT_WIN_CURSES=1 Include support for the curses interface.
make WANT_WIN_X11=1 Include support for the X11 interface.
make WANT_WIN_Qt=1 Include support for Qt interface, defaults to Qt5.
make WANT_WIN_QT5=1 Include support for Qt5 interface.
@@ -45,6 +45,11 @@ make WANT_DEFAULT=X11 Make X11 the default interface if multiple window
make WANT_DEFAULT=Qt Make Qt the default interface if multiple window
interfaces were specified.
make musl=1 Build with settings appropriate for linking with
musl libc, instead of glibc. This causes
NOCRASHREPORT to be defined, and avoids the use
of 'col' during the build.
make CROSS_TO_MSDOS=1 package Cross-compile for an MSDOS target package.
make CROSS_TO_WASM=1 Cross-compile for a WASM target.
make CROSS_TO_MIPS=1 Cross-compile for a mips target.
@@ -72,3 +77,4 @@ make WANT_SOURCE_INSTALL=1 Place the results of the install/update portion
tree, rather than in a system-wide shared area.
make VIEWDEPRECATIONS=1 Turn off the suppression of -Wdeprecated and
-Wdeprecated-declarations warnings

View File

@@ -26,6 +26,7 @@ CCFLAGS = -g
# If these are set on entry, preparation for C++ compiles is affected.
# CPLUSPLUS_NEEDED = 1 C++ compile bits included
# CPLUSPLUS_NEED17 = 1 C++ -std=c++17 (at least)
# CPLUSPLUS_NEED20 = 1 C++ -std=c++20 (at least)
# CPLUSPLUS_NEED_DEPSUPPRESS = 1 C++ -Wno-deprecated-copy,
# -Wno-deprecated-declarations
@@ -78,20 +79,28 @@ CXX=g++ -std=gnu++11
GCCGTEQ9 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 9)
GCCGTEQ11 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 11)
GCCGTEQ12 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 12)
GCCGTEQ14 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 14)
ifeq "$(GCCGTEQ9)" "1"
# flags present in gcc version greater than or equal to 9 can go here
CFLAGS+=-Wformat-overflow
CFLAGS+=-Wmissing-parameter-type
endif # GCC greater than or equal to 9
#ifeq "$(GCCGTEQ11)" "1"
CFLAGS+=-Wimplicit-fallthrough
#endif
#ifeq "$(GCCGTEQ12)" "1"
#endif
#ifeq "$(GCCGTEQ14)" "1"
#endif
# end of gcc-specific
else # gcc or clang?
CXX=clang++ -std=gnu++11
# clang-specific follows
CLANGGTEQ12 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 12)
CLANGGTEQ14 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 14)
ifeq "$(CLANGGTEQ12)" "1"
CFLAGS+=-Wimplicit-fallthrough
endif
ifeq "$(CLANGGTEQ14)" "1"
ifneq "$(VIEWDEPRECATIONS)" "1"
CFLAGS+=-Wno-deprecated-declarations
@@ -119,6 +128,7 @@ CCXX=g++ -std=gnu++11
GPPGTEQ9 := $(shell expr `$(CXX) -dumpversion | cut -f1 -d.` \>= 9)
GPPGTEQ11 := $(shell expr `$(CXX) -dumpversion | cut -f1 -d.` \>= 11)
GPPGTEQ12 := $(shell expr `$(CXX) -dumpversion | cut -f1 -d.` \>= 12)
GPPGTEQ14 := $(shell expr `$(CXX) -dumpversion | cut -f1 -d.` \>= 14)
ifeq "$(GPPGTEQ9)" "1"
CCXXFLAGS+=-Wformat-overflow
ifdef CPLUSPLUS_NEED_DEPSUPPRESS
@@ -135,11 +145,19 @@ CFLAGS+=-fPIC
endif # g++ version greater than or equal to 11
ifdef CPLUSPLUS_NEED17
ifeq "$(GPPGTEQ12)" "1"
CCXX=g++ -std=c++20
CCXX=g++ -std=c++17
else # g++ version greater than or equal to 12? (no follows)
CCXX=g++ -std=c++17
endif # g++ version greater than or equal to 12
endif # CPLUSPLUS_NEED17
ifdef CPLUSPLUS_NEED20
ifeq "$(GPPGTEQ9)" "1"
CCXX=g++ -std=c++20
else # g++ version greater than or equal to 9? (no follows)
CCXX=g++ -std=c++17
endif # g++ version greater than or equal to 9
endif # CPLUSPLUS_NEED20
else # g++ or clang++ ?
@@ -149,6 +167,7 @@ CCXX=clang++ -std=c++11
CLANGPPGTEQ9 := $(shell expr `$(CXX) -dumpversion | cut -f1 -d.` \>= 9)
CLANGPPGTEQ11 := $(shell expr `$(CXX) -dumpversion | cut -f1 -d.` \>= 11)
CLANGPPGTEQ14 := $(shell expr `$(CXX) -dumpversion | cut -f1 -d.` \>= 14)
CLANGPPGTEQ16 := $(shell expr `$(CXX) -dumpversion | cut -f1 -d.` \>= 16)
CLANGPPGTEQ17 := $(shell expr `$(CXX) -dumpversion | cut -f1 -d.` \>= 17)
ifeq "$(CLANGPPGTEQ9)" "1"
#CCXXFLAGS+=-Wformat-overflow
@@ -170,9 +189,14 @@ ifeq "$(CLANGPPGTEQ14)" "1"
CCXX=clang++ -std=c++17
endif # clang++ greater than or equal to 14
ifeq "$(CLANGPPGTEQ17)" "1"
CCXX=clang++ -std=c++20
CCXX=clang++ -std=c++17
endif # clang++ greater than or equal to 17
endif # CPLUSPLUS_NEED17
ifdef CPLUSPLUS_NEED20
ifeq "$(CLANGPPGTEQ17)" "1"
CCXX=clang++ -std=c++20
endif # clang++ greater than or equal to 17
endif # CPLUSPLUS_NEED20
endif # end of clang++-specific section
CXX=$(CCXX)
endif # CPLUSPLUS_NEEDED

View File

@@ -22,9 +22,9 @@ $(TARGETPFX)tile.o : tile.c
$(TARGETPFX)exceptn.o : ../lib/djgpp/djgpp-patch/src/libc/go32/exceptn.S
$(TARGET_CC) -c -o $@ ../lib/djgpp/djgpp-patch/src/libc/go32/exceptn.S
$(TARGET_AR) ru ../lib/djgpp/i586-pc-msdosdjgpp/lib/libc.a $(TARGETPFX)exceptn.o
$(GAMEBIN) : $(HOBJ) $(HACKLIB) $(LUACROSSLIB)
$(TARGET_LINK) $(TARGET_LFLAGS) -o $(GAMEBIN) \
$(HOBJ) $(HACKLIB) $(WINLIB) $(TARGET_LIBS)
$(GAMEBIN) : $(HOBJ) $(TARGETPFX)date.o $(TARGET_HACKLIB) $(LUACROSSLIB)
$(TARGET_LINK) $(TARGET_LFLAGS) -o $@ \
$(HOBJ) $(TARGET_HACKLIB) $(WINLIB) $(TARGET_LIBS)
$(DOSFONT)/ter-u16b.psf: $(FONTTOP)/ter-u16b.bdf $(DOSFONT)/nh-u16b.bdf $(DOSFONT)/makefont.lua $(LUABIN)
$(LUABIN) $(DOSFONT)/makefont.lua $(FONTTOP)/ter-u16b.bdf $(DOSFONT)/nh-u16b.bdf $@
$(DOSFONT)/ter-u16v.psf: $(FONTTOP)/ter-u16v.bdf $(DOSFONT)/nh-u16v.bdf $(DOSFONT)/makefont.lua $(LUABIN)
@@ -49,6 +49,7 @@ dospkg: dodata dosfonts $(GAMEBIN) $(TARGETPFX)recover.exe ../dat/nhtiles.bmp
mkdir -p $(TARGETPFX)pkg
cp $(GAMEBIN) $(TARGETPFX)pkg/NETHACK.EXE
cp $(TARGETPFX)recover.exe $(TARGETPFX)pkg/RECOVER.EXE
-cp $(SFCTOOLBIN) $(TARGETPFX)pkg/SFCTOOL.EXE
cp ../dat/nhdat $(TARGETPFX)pkg/NHDAT
cp ../dat/license $(TARGETPFX)pkg/LICENSE
cp ../dat/nhtiles.bmp $(TARGETPFX)pkg/NHTILES.BMP
@@ -65,11 +66,29 @@ dospkg: dodata dosfonts $(GAMEBIN) $(TARGETPFX)recover.exe ../dat/nhtiles.bmp
cp $(DOSFONT)/ter-u28b.psf $(TARGETPFX)pkg/TER-U28B.PSF
cp $(DOSFONT)/ter-u32b.psf $(TARGETPFX)pkg/TER-U32B.PSF
cp ../lib/djgpp/cwsdpmi/bin/CWSDPMI.EXE $(TARGETPFX)pkg/CWSDPMI.EXE
( if [ -f ../lib/djgpp/symify/simify.exe ]; then \
cp ../lib/djgpp/symify/simify.exe $(TARGETPFX)pkg/SYMIFY.EXE; \
( if [ -f ../lib/djgpp/target/bin/symify.exe ]; then \
cp ../lib/djgpp/target/bin/symify.exe $(TARGETPFX)pkg/SYMIFY.EXE; \
else \
pwd; echo "../lib/djgpp/symify/symify.exe not found"; \
pwd; echo "../lib/djgpp/target/bin/symify.exe not found"; \
fi; )
ifeq "$(WANT_DEBUG)" "1"
( if [ -f $(GDBEXE) ]; \
then \
cp $(GDBEXE) $(TARGETPFX)pkg/GDB.EXE; \
echo "gdb -ex '$(GDBCMDLINE)' NETHACK.EXE"> $(TARGETPFX)pkg/$(GDBBAT); \
else \
pwd; echo "$(GDBEXE) not found and WANT_DEBUG=1 specified"; \
fi; )
else
-( if [ -f $(TARGETPFX)pkg/GDB.EXE ]; \
then \
rm $(TARGETPFX)pkg/GDB.EXE; \
fi; )
-( if [ -f $(TARGETPFX)pkg/NHGDB.BAT ]; \
then \
rm $(TARGETPFX)pkg/NHGDB.BAT; \
fi; )
endif
-touch $(TARGETPFX)pkg/RECORD
cd $(TARGETPFX)pkg ; zip -9 ../NH370DOS.ZIP * ; cd ../../..
@echo msdos package zip file $(TARGETPFX)NH370DOS.ZIP
@@ -78,7 +97,58 @@ $(LUABIN):
( cd .. && make luabin && cd src)
dodata:
( cd .. && make dlb && cd src)
ifdef dosbox
# make CROSS_TO_MSDOS=1 dosbox=~/dosbox deploy-to-dosbox
ifdef MAKEFILE_TOP
deploy-to-dosbox:
( cd src; make $(DEPLOY); cd .. )
endif
.PHONY: deploytodosbox
deploytodosbox: $(TARGETPFX)NH370DOS.ZIP $(dosboxnhfolder) $(dosboxnhsrc) \
$(dosboxnhsrc)/src $(dosboxnhsrc)/include \
$(dosboxnhsrc)/sys/msdos $(dosboxnhsrc)/sys/share \
$(dosboxnhsrc)/win/share $(dosboxnhsrc)/win/curses \
$(dosboxnhsrc)/win/tty $(dosboxnhsrc)/util \
$(dosboxnhfolder)/NETHACK.EXE
@echo DOS NetHack deployed to dosbox at $(dosboxnhfolder)
$(TARGETPFX)NH370DOS.ZIP: dospkg
$(dosboxnhfolder):
mkdir -p $@
$(dosboxnhsrc): $(dosboxnhfolder)
mkdir -p $@
$(dosboxnhsrc)/src: $(dosboxnhsrc)
mkdir -p $@
cp --preserve=timestamps $(FLDR)src/*.c $(dosboxnhsrc)/src
$(dosboxnhsrc)/include: $(dosboxnhsrc)
mkdir -p $@
cp --preserve=timestamps $(FLDR)include/*.h $(dosboxnhsrc)/include
$(dosboxnhsrc)/sys/msdos: $(dosboxnhsrc)
mkdir -p $@
cp --preserve=timestamps $(FLDR)sys/msdos/*.c $(dosboxnhsrc)/sys/msdos
cp --preserve=timestamps $(FLDR)sys/msdos/*.h $(dosboxnhsrc)/sys/msdos
$(dosboxnhsrc)/sys/share: $(dosboxnhsrc)
mkdir -p $@
cp --preserve=timestamps $(FLDR)sys/share/*.c $(dosboxnhsrc)/sys/share
$(dosboxnhsrc)/win/share: $(dosboxnhsrc)
mkdir -p $@
cp --preserve=timestamps $(FLDR)win/share/*.c $(dosboxnhsrc)/win/share
$(dosboxnhsrc)/win/curses: $(dosboxnhsrc)
mkdir -p $@
cp --preserve=timestamps $(FLDR)win/curses/*.c $(dosboxnhsrc)/win/curses
cp --preserve=timestamps $(FLDR)win/curses/*.h $(dosboxnhsrc)/win/curses
$(dosboxnhsrc)/win/tty: $(dosboxnhsrc)
mkdir -p $@
cp --preserve=timestamps $(FLDR)win/tty/*.c $(dosboxnhsrc)/win/tty
$(dosboxnhsrc)/util: $(dosboxnhsrc)
mkdir -p $@
cp --preserve=timestamps $(FLDR)util/*.c $(dosboxnhsrc)/util
cp --preserve=timestamps $(FLDR)util/*.h $(dosboxnhsrc)/util
$(dosboxnhfolder)/NETHACK.EXE: $(TARGETPFX)NH370DOS.ZIP
unzip -o $(TARGETPFX)NH370DOS.ZIP -d $(dosboxnhfolder)
find $(dosboxnhfolder) -type f -name "$(dosboxconfigfile)" \
| xargs sed -i 's/#OPTIONS=video:autodetect/OPTIONS=video:autodetect/g'
endif # dosbox
endif # CROSS_TO_MSDOS
ifdef CROSS_TO_WASM
@@ -107,12 +177,17 @@ $(TARGETPFX)unixtty.o : ../sys/share/unixtty.c $(HACK_H)
$(TARGETPFX)winshim.o : ../win/shim/winshim.c $(HACK_H)
$(TARGETPFX)libnhmain.o : ../sys/libnh/libnhmain.c $(HACK_H)
endif # CROSS_TO_WASM
#
ifdef CROSS_TO_MIPS
$(MIPS_TARGET): pregame $(TARGETPFX)date.o $(HOSTOBJ) $(HOBJ) $(LUACROSSLIB) $(MIPS_DATA_DIR)
$(MIPS_TARGET): pregame $(TARGETPFX)date.o $(HOSTOBJ) $(HOBJ) $(LUACROSSLIB) \
$(TARGETPFX)ncurses/lib/libncurses.a \
$(MIPS_DATA_DIR)
-rm $@
$(TARGET_CC) $(TARGET_LFLAGS) $(TARGET_CFLAGS) -o $@ \
$(HOBJ) $(TARGETPFX)date.o $(TARGET_LIBS)
$(TARGET_LINK) $(TARGET_LFLAGS) -o $@ \
$(HOBJ) $(TARGETPFX)date.o $(TARGETPFX)$(HACKLIB) \
$(TARGETPFX)ncurses/lib/libncurses.a \
$(TARGET_LIBS)
$(MIPS_DATA_DIR): $(MIPS_DATA_DIR)/nhdat
touch $(MIPS_DATA_DIR)/perm
@@ -131,9 +206,28 @@ $(TARGETPFX)unixres.o : ../sys/unix/unixres.c $(HACK_H)
$(TARGETPFX)unixunix.o : ../sys/unix/unixunix.c $(HACK_H)
$(TARGETPFX)ioctl.o : ../sys/share/ioctl.c $(HACK_H)
$(TARGETPFX)unixtty.o : ../sys/share/unixtty.c $(HACK_H)
endif # CROSS_TO_MIPS
#
$(LUABIN):
( cd .. && make luabin && cd src)
dodata:
( cd .. && make dlb && cd src)
mipsrecover: $(TARGETPFX)recover
.PHONY: mipspkg
mipspkg: dodata $(GAMEBIN) $(TARGETPFX)recover
mkdir -p $(TARGETPFX)pkg
cp $(GAMEBIN) $(TARGETPFX)pkg/nethack
cp $(TARGETPFX)recover $(TARGETPFX)pkg/recover
cp ../dat/nhdat $(TARGETPFX)pkg/nhdat
cp ../dat/license $(TARGETPFX)pkg/license
cp ../dat/symbols $(TARGETPFX)pkg/symbols
cp ../sys/share/NetHack.cnf $(TARGETPFX)pkg/.nethackrc
cp ../sys/msdos/sysconf $(TARGETPFX)pkg/sysconf
cp ../doc/nethack.txt $(TARGETPFX)pkg/nethack.txt
-touch $(TARGETPFX)pkg/record
cd $(TARGETPFX)pkg ; zip -9 ../nh370mips.zip * ; cd ../../..
@echo MIPS package zip file $(TARGETPFX)nh370mips.zip
endif # CROSS_TO_MIPS
ifdef CROSS_SHARED
# shared file dependencies
@@ -144,15 +238,28 @@ $(TARGETPFX)pcunix.o : ../sys/share/pcunix.c $(HACK_H)
$(TARGETPFX)tileset.o : ../win/share/tileset.c
$(TARGETPFX)bmptiles.o : ../win/share/bmptiles.c
$(TARGETPFX)giftiles.o : ../win/share/giftiles.c
$(TARGETPFX)recover.o : ../util/recover.c
$(TARGETPFX)recover.exe : $(TARGETPFX)recover.o
$(TARGET_LINK) $(TARGET_LFLAGS) $(TARGETPFX)recover.o -o $@
endif # CROSS_SHARED
#
ifdef CROSS
$(TARGETPFX)hacklib.a: $(TARGETPFX)hacklib.o
$(TARGET_AR) $(TARGET_ARFLAGS) $@ $(TARGETPFX)hacklib.o
ifdef MAKEFILE_UTL
$(TARGETPFX)recover.o: recover.c $(CONFIG_H)
$(TARGET_CC) $(TARGET_CFLAGS) $(CSTD) -c recover.c -o $@
ifdef CROSS_TO_MSDOS
$(TARGETPFX)recover.exe : $(TARGETPFX)recover.o $(TARGETPFX)rversion.o $(TARGETPFX)hacklib.a
$(TARGET_LINK) $(TARGET_LFLAGS) \
$(TARGETPFX)recover.o $(TARGETPFX)rversion.o $(TARGETPFX)hacklib.a -o $@
else
$(TARGETPFX)recover : $(TARGETPFX)recover.o $(TARGETPFX)rversion.o $(TARGETPFX)hacklib.a
$(TARGET_LINK) $(TARGET_LFLAGS) \
$(TARGETPFX)recover.o $(TARGETPFX)rversion.o $(TARGETPFX)hacklib.a -o $@
endif
$(TARGETPFX)rversion.o: ../src/version.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) -DMINIMAL_FOR_RECOVER $(CSTD) -c ../src/version.c -o $@
endif # MAKEFILE_UTL
endif # CROSS
ifdef BUILD_TARGET_LUA
# Lua lib
$(LUACROSSLIB): $(LUALIBOBJS)
@@ -204,11 +311,11 @@ ifdef BUILD_TARGET_NCURSES
.PHONY: build-ncurses
ifdef MAKEFILE_SRC
../lib/ncurses.tar.gz:
@echo "You will need to successfully execute 'make CROSS_TO_MIPS=1 fetch-ncurses' first"
@echo "You will need to successfully execute 'make CROSS_TO_$(NCURSES_PLATFORM)=1 fetch-ncurses' first"
@false
$(TARGETPFX)ncurses/lib/libncurses.a: ../lib/ncurses.tar.gz
(cd $(TARGETDIR) ; mkdir -p ncurses ; cd ncurses ; tar -xf ../../../lib/ncurses.tar.gz --strip-components=1 ; \
./configure --build i686-pc-linux-gnu --host mipsel-linux-gnu ; \
./configure --build $(NCURSES_CONFIGURE_BUILD) --host $(NCURSES_CONFIGURE_HOST) ; \
make ; \
cd ../../../src)
endif #MAKEFILE_SRC

View File

@@ -35,7 +35,8 @@ LUACROSSLIB = $(TARGETPFX)lua$(subst .,,$(LUA_VERSION)).a
LUAINCL = -I$(LUASRCDIR)
override BUILDMORE += $(LUACROSSLIB)
override CLEANMORE += rm -f $(LUACROSSLIB) ;
override TARGET_LIBS += $(LUACROSSLIB) -lm
override TARGET_LIBS += $(LUACROSSLIB)
LIBLM = -lm
else
LUAINCL=
endif # BUILD_TARGET_LUA
@@ -84,8 +85,6 @@ PDCOBJS = $(TARGETPFX)pdcclip.o $(TARGETPFX)pdcdisp.o \
$(TARGETPFX)pdcscrn.o $(TARGETPFX)pdcsetsc.o \
$(TARGETPFX)pdcutil.o
override TARGET_LIBS += $(PDCLIB)
ifdef CROSS_TO_MSDOS
endif
override BUILDMORE += $(PDCLIB)
override CLEANMORE += rm -f $(PDCLIB) ;
else #WANT_WIN_CURSES
@@ -135,19 +134,57 @@ override TARGET_CC = $(TOOLTOP1)/i586-pc-msdosdjgpp-gcc
override TARGET_CXX = $(TOOLTOP1)/i586-pc-msdosdjgpp-g++
override TARGET_AR = $(TOOLTOP1)/i586-pc-msdosdjgpp-gcc-ar
override TARGET_STUBEDIT = ../lib/djgpp/i586-pc-msdosdjgpp/bin/stubedit
MSDOS_TARGET_CFLAGS = -c -O -I../include -I../sys/msdos -I../win/share \
$(LUAINCL) -DDLB $(PDCURSESDEF) \
-DTILES_IN_GLYPHMAP -DCROSSCOMPILE -DCROSSCOMPILE_TARGET \
-DCROSS_TO_MSDOS \
-Wall -Wextra -Wno-missing-field-initializers -Wreturn-type -Wunused \
-Wformat -Wswitch -Wshadow -Wwrite-strings \
-Wimplicit -Wimplicit-function-declaration -Wimplicit-int \
-Wmissing-parameter-type -Wold-style-definition -Wstrict-prototypes
MSDOS_TARGET_CXXFLAGS = -c -O -I../include -I../sys/msdos -I../win/share \
ifdef MAKEFILE_SRC
FLDR=../
endif
ifdef MAKEFILE_TOP
FLDR=
endif
dostargetexes=$(FLDR)lib/djgpp/target/bin/
#
ifdef DOSBOX
dosbox=$(DOSBOX)
endif
ifdef dosbox
dosboxgameid=NH370
dosboxtop=$(dosbox)
dosboxnhfolder=$(dosboxtop)/$(dosboxgameid)
dosboxnhsrc=$(dosboxnhfolder)/NHSRC
dosboxconfigfile=NETHACK.CNF
dosgdburl=http://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2gnu/gdb801b.zip
WANT_DEBUG=1
DEPLOY=deploytodosbox
endif # dosbox
#
ifeq "$(WANT_DEBUG)" "1"
DBGFLAGS = -g
else
DBGFLAGS =
endif
MSDOS_GCC_CFLAGS = -Wall -Wextra -Wreturn-type -Wunused -Wformat \
-Wswitch -Wshadow -Wwrite-strings -Wmissing-declarations \
-Wunreachable-code \
-Wimplicit -Wimplicit-function-declaration \
-Wimplicit-int -Wmissing-prototypes -Wold-style-definition \
-Wstrict-prototypes -Wnonnull -Wformat-overflow \
-Wmissing-parameter-type -Wimplicit-fallthrough
#-Wno-missing-field-initializers -Wno-cast-function-type
#-Wno-format
MSDOS_PEDANTIC = -pedantic
MSDOS_GPP_CFLAGS = -Wall -Wextra -Wno-missing-field-initializers -Wreturn-type \
-Wunused -Wformat -Wswitch -Wshadow -Wwrite-strings -pedantic \
-Wmissing-declarations -Wformat-nonliteral -Wunreachable-code \
-Wno-maybe-uninitialized
MSDOS_TARGET_CFLAGS = -c -O $(DBGFLAGS) -I../include -I../sys/msdos -I../win/share \
$(LUAINCL) -DDLB $(PDCURSESDEF) -DTILES_IN_GLYPHMAP \
-DCROSSCOMPILE -DCROSSCOMPILE_TARGET -DCROSS_TO_MSDOS \
-D_NAIVE_DOS_REGS \
$(MSDOS_GCC_CFLAGS) $(SNDCFLAGS)
MSDOS_TARGET_CXXFLAGS = -c -O $(DBGFLAGS) -I../include -I../sys/msdos -I../win/share \
$(LUAINCL) -DDLB $(PDCURSESDEF) \
-DUSE_TILES -DCROSSCOMPILE -DCROSSCOMPILE_TARGET -DCROSS_TO_MSDOS \
-Wall -Wextra -Wno-missing-field-initializers -Wreturn-type -Wunused \
-Wformat -Wswitch -Wshadow -Wwrite-strings -Wno-maybe-uninitialized
-D_NAIVE_DOS_REGS \
$(MSDOS_GPP_CFLAGS) $(SNDCFLAGS)
PDCINCL += -I$(PDCPORT)
PDC_TARGET_CFLAGS = $(MSDOS_TARGET_CFLAGS) -Wno-unused-parameter \
-Wno-missing-prototypes
@@ -160,9 +197,7 @@ FONTTARGETS = $(DOSFONT)/ter-u16b.psf $(DOSFONT)/ter-u16v.psf \
$(DOSFONT)/ter-u28b.psf $(DOSFONT)/ter-u32b.psf
LUABIN = ../lib/lua-$(LUA_VERSION)/src/lua
LUA_TARGET_CFLAGS = $(MSDOS_TARGET_CFLAGS)
override TARGET_CFLAGS = $(MSDOS_TARGET_CFLAGS) -Wmissing-declarations \
-Wmissing-prototypes -pedantic -Wmissing-declarations \
-Wformat-nonliteral
override TARGET_CFLAGS = $(MSDOS_TARGET_CFLAGS) $(MSDOS_PEDANTIC)
override TARGET_CXXFLAGS = $(MSDOS_TARGET_CXXFLAGS)
ifdef CPLUSPLUS_NEEDED
override TARGET_LINK = $(TOOLTOP1)/i586-pc-msdosdjgpp-g++
@@ -170,7 +205,7 @@ else
override TARGET_LINK = $(TOOLTOP1)/i586-pc-msdosdjgpp-gcc
endif
override TARGET_LFLAGS=
override TARGET_LIBS += -lpc
override TARGET_LIBS += -lpc $(LIBLM)
override SYSSRC = ../sys/share/pcmain.c ../sys/msdos/msdos.c \
../sys/share/pcsys.c ../sys/share/pctty.c \
../sys/share/pcunix.c ../sys/msdos/video.c \
@@ -192,9 +227,22 @@ override LUALIB=
override LUALIBS=
override TOPLUALIB=
override GAMEBIN = $(TARGETPFX)nethack.exe
override RECOVERBIN = $(TARGETPFX)recover.exe
override SFCTOOLBIN = $(TARGETPFX)sfctool.exe
override PACKAGE = dospkg
override PREGAME += mkdir -p $(TARGETDIR) ; make $(TARGETPFX)exceptn.o ;
override CLEANMORE += rm -f -r $(TARGETDIR) ; rm -f -r $(FONTTARGETS) ;
ifeq "$(WANT_DEBUG)" "1"
GDBEXE=$(dostargetexes)gdb.exe
GDBBAT=NHGDB.BAT
GDBCMDLINE=directory nhsrc/src nhsrc/include nhsrc/sys/msdos \
nhsrc/sys/share nhsrc/win/curses \
nhsrc/win/tty
else
GDBEXE=
GDBBAT=
GDBCMDLINE=
endif
VARDATND += nhtiles.bmp
#
ifdef WANT_WIN_CURSES
@@ -216,7 +264,7 @@ ifdef CROSS_TO_WASM
# originally from https://github.com/NetHack/NetHack/pull/385
#===============-=================================================
#
WASM_DEBUG = 1
#WASM_DEBUG = 1
WASM_DATA_DIR = $(TARGETPFX)wasm-data
WASM_TARGET = $(TARGETPFX)nethack.js
EMCC_LFLAGS =
@@ -227,10 +275,13 @@ EMCC_LFLAGS += -s ALLOW_TABLE_GROWTH
EMCC_LFLAGS += -s ASYNCIFY -s ASYNCIFY_IMPORTS='["local_callback"]'
EMCC_LFLAGS += -O3
EMCC_LFLAGS += -s MODULARIZE
EMCC_LFLAGS += -s EXPORTED_FUNCTIONS='["_main", "_shim_graphics_set_callback", "_display_inventory"]'
EMCC_LFLAGS += -s EXPORTED_FUNCTIONS='["_main", "_shim_graphics_set_callback", "_display_inventory", "_malloc"]'
EMCC_LFLAGS += -s EXPORTED_RUNTIME_METHODS='["cwrap", "ccall", "addFunction", \
"removeFunction", "UTF8ToString", "getValue", "setValue"]'
"removeFunction", "UTF8ToString", "stringToUTF8", "getValue", \
"setValue", "ENV", "FS", "IDBFS"]'
EMCC_LFLAGS += -s ERROR_ON_UNDEFINED_SYMBOLS=0
EMCC_LFLAGS += -s EXPORT_ES6=1
EMCC_LFLAGS += -lidbfs.js
# XXX: the "@/" at the end of "--embed-file" tells emscripten to embed the files
# in the root directory, otherwise they will end up in the $(WASM_DATA_DIR) path
EMCC_LFLAGS += --embed-file $(WASM_DATA_DIR)@/
@@ -355,6 +406,7 @@ CFLAGS += -DCROSSCOMPILE
override TARGET_CC = mipsel-linux-gnu-gcc
override TARGET_CXX = CXX=mipsel-linux-gnu-g++
override TARGET_AR = mipsel-linux-gnu-ar
MIPS_TARGET = $(TARGETPFX)nethack
#override TARGET_LINK = mipsel-linux-gnu-ld
MIPS_TARGET_CFLAGS = -c -O -I../include -I../sys/unix -I../win/share \
$(LUAINCL) -DDLB \
@@ -364,7 +416,8 @@ MIPS_TARGET_CFLAGS = -c -O -I../include -I../sys/unix -I../win/share \
-Wall -Wextra -Wno-missing-field-initializers -Wreturn-type -Wunused \
-Wformat -Wswitch -Wshadow -Wwrite-strings \
-Wimplicit -Wimplicit-function-declaration -Wimplicit-int \
-Wmissing-parameter-type -Wold-style-definition -Wstrict-prototypes
-Wmissing-parameter-type -Wold-style-definition -Wstrict-prototypes \
-Wno-unused-result
MIPS_TARGET_CXXFLAGS = -c -O -I../include -I../sys/unix -I../win/share \
$(LUAINCL) -DDLB \
-DUSE_TILES -DCROSSCOMPILE -DCROSSCOMPILE_TARGET -DCROSS_TO_MIPS \
@@ -386,10 +439,14 @@ override WINLIB = $(NCURSESLIB)
override LUALIB=
override LUALIBS=
override TOPLUALIB=
#override GAMEBIN=
#override PACKAGE=
override GAMEBIN=$(MIPS_TARGET)
override RECOVERBIN = $(TARGETPFX)recover
override PACKAGE = mipspkg
override PREGAME += mkdir -p $(TARGETDIR) ;
override CLEANMORE += rm -f -r $(TARGETDIR) ;
NCURSES_CONFIGURE_BUILD=i686-pc-linux-gnu
NCURSES_CONFIGURE_HOST=mipsel-linux-gnu
NCURSES_PLATFORM=MIPS
# Rule for file in sys/unix
#$(TARGETPFX)%.o : ../sys/unix/%.c
# $(TARGET_CC) $(TARGET_CFLAGS) -c -o$@ $<

View File

@@ -163,7 +163,7 @@ ifndef CPLUSPLUS_NEEDED
CPLUSPLUS_NEEDED = 1
endif # CPLUSPLUS_NEEDED
ifdef WANT_WIN_QT6
CPLUSPLUS_NEED17 = 1
CPLUSPLUS_NEED20 = 1
CPLUSPLUS_NEED_DEPSUPPRESS = 1
endif # WANT_WIN_QT6
endif # WANT_WIN_QT
@@ -194,6 +194,21 @@ CPLUSPLUS_NEEDED = 1
endif
endif
ifeq "$(musl)" "1"
MUSL=1
endif
ifeq "$(MUSL)" "1"
ifneq "$(NOCRASHREPORT)" "1"
NOCRASHREPORT=1
endif
WINCFLAGS += -DMUSL_LIBC
# use this instead of col -bx
COLCMD=../util/stripbs
STRIPBS=../util/stripbs
else
WINCFLAGS += -DGNU_LIBC
endif
ifeq "$(NOCRASHREPORT)" "1"
WINCFLAGS += -DNOCRASHREPORT
endif

View File

@@ -74,6 +74,9 @@ endif # WANT_WIN_QT5
ifdef WANT_WIN_QT6
#if your Qt6 is elsewhere, change this to match
QTDIR=/usr/local/qt6
ifeq "$(GPPGTEQ14)" "1"
CCXXFLAGS += -Wno-template-id-cdtor
endif # g++ greater than or equal to 14
endif # WANT_WIN_QT6
endif # WANT_WIN_QT
@@ -101,6 +104,7 @@ CURSESLIB = -lncurses -ltinfo
ifdef MAKEFILE_SRC
comma:=,
NCURSES_LFLAGS = $(shell pkg-config ncursesw --libs)
NCURSES_CFLAGS = $(shell pkg-config ncursesw --cflags)
ifeq (,$(findstring ncursesw, $(NCURSES_LFLAGS)))
ifeq (,$(findstring ncurses, $(NCURSES_LFLAGS)))
#this indicates that pkg-config itself was unavailable
@@ -122,8 +126,33 @@ CURSESLIB = $(subst -Wl$(comma)-Bsymbolic-functions,,$(NCURSES_LFLAGS))
else
CURSESLIB = $(NCURSES_LFLAGS)
endif
#$(info $(CURSESLIB))
endif #HAVE_NCURSESW
#$(info $(CURSESLIB))
ifeq (,$(findstring ncursesw, $(NCURSES_LFLAGS)))
ifeq (,$(findstring ncurses, $(NCURSES_LFLAGS)))
#this indicates that pkg-config itself was unavailable
NOPKGCONFIG = 1
endif #ncurses not in NCURSES_LFLAGS?
endif #ncursesw not in NCURSES_LFLAGS?
#
ifeq "$(NOPKGCONFIG)" "1"
NCURSES_CFLAGS = -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600
ifeq "$(HAVE_NCURSESW)" "1"
ifeq (,$(wildcard /usr/include/ncursesw/curses.h))
NCURSES_CFLAGS += -I/usr/include
else
NCURSES_CFLAGS += -I/usr/include/ncursesw
endif
NCURSES_LFLAGS = -lncursesw -ltinfo
else #HAVE_NCURSESW
ifeq (,$(wildcard /usr/include/ncurses/curses.h))
NCURSES_CFLAGS += -I/usr/include
else
NCURSES_CFLAGS += -I/usr/include/ncurses
endif
NCURSES_LFLAGS = -lncurses -ltinfo
endif #HAVE_NCURSESW
endif #NOPKGCONFIG
endif #MAKEFILE_SRC
endif #USE_CURSESLIB
@@ -149,6 +178,7 @@ NHCFLAGS+=-DCOMPRESS=\"/bin/gzip\" -DCOMPRESS_EXTENSION=\".gz\"
#NHCFLAGS+=-DCHANGE_COLOR
NHCFLAGS+=-DSELF_RECOVER
ifdef WANT_WIN_CURSES
NHCFLAGS+=$(NCURSES_CFLAGS)
ifeq "$(HAVE_NCURSESW)" "1"
NHCFLAGS+=-DCURSES_UNICODE
else
@@ -162,17 +192,28 @@ endif #WANT_WIN_CURSES
#-INCLUDE multisnd1-pre.370
#
ifeq "$(CCISCLANG)" "1"
# clang-specific starts
# clang-specific ends
else
# gcc-specific starts
LIBCFLAGS+=-DSIG_RET_TYPE=__sighandler_t
# gcc-specific ends
endif
# WINCFLAGS set from multiw-2.370
# SNDCFLAGS set from multisnd-pre.370
CFLAGS+= $(WINCFLAGS)
CFLAGS+= $(SNDCFLAGS)
CFLAGS+= $(NHCFLAGS)
CFLAGS+= $(LIBCFLAGS)
# WINCFLAGS set from multiw-2.370
# SNDCFLAGS set from multisnd-pre.370
CCXXFLAGS+= $(WINCFLAGS)
CCXXFLAGS+= $(SNDCFLAGS)
CCXXFLAGS+= $(NHCFLAGS)
CCXXFLAGS+= $(LIBCFLAGS)
VARDATND =
VARDATND0 =
@@ -357,10 +398,10 @@ POSTINSTALL+= sed -i -e 's;^GDBPATH=/usr/bin/gdb;\#GDBPATH=/usr/bin/gdb;' \
-e 's;PANICTRACE_GDB=1;PANICTRACE_GDB=0;' $(INSTDIR)/sysconf;
endif
ifeq 'USENONOSTATICFN' '1'
ifeq '$(USE_NONOSTATICFN)' '1'
CFLAGS += -DNONOSTATICFN
else
ifeq 'USE_NOSTATICFN' '1'
ifeq '$(USE_NOSTATICFN)' '1'
CFLAGS += -DNOSTATICFN
endif
endif
@@ -426,13 +467,14 @@ endif
endif
ifdef WANT_LIBNH
$(TARGETPFX)libnh.a: $(HOBJ) $(LIBNHSYSOBJ) ../lib/lua/liblua.a
$(AR) rcs $@ $(HOBJ) $(LIBNHSYSOBJ) ../lib/lua/liblua.a
$(TARGETPFX)libnh.a: $(HOBJ) $(LIBNHSYSOBJ) ../lib/lua/liblua-$(LUA_VERSION).a
$(AR) rcs $@ $(HOBJ) $(LIBNHSYSOBJ) ../lib/lua/liblua-$(LUA_VERSION).a
@echo "$@ built."
$(TARGETPFX)libnhmain.o : ../sys/libnh/libnhmain.c $(HACK_H)
$(CC) $(CFLAGS) -c -o$@ $<
$(TARGETPFX)winshim.o : ../win/shim/winshim.c $(HACK_H)
$(CC) $(CFLAGS) -c -o$@ $<
#dependency tool added this to Makefile.src
#$(TARGETPFX)winshim.o : ../win/shim/winshim.c $(HACK_H)
# $(CC) $(CFLAGS) -c -o$@ $<
endif # WANT_LIBNH
#

View File

@@ -87,6 +87,13 @@ endif # HAVE_MACPORTS
endif # QTDIR
endif # WANT_WIN_QT
ifdef WANT_WIN_QT
ifeq "$(CLANGPPGTEQ16)" "1"
CXX=clang++ --std=c++17
CCXXFLAGS +=-Wno-c++20-attribute-extensions
endif
endif
# misc.370 must come after compiler.370
# and after QTDIR is defined
@@ -212,17 +219,30 @@ endif
#-INCLUDE multisnd1-pre.370
#
# although not currently doing anything for macOS, this is
# kept in for consistency with layout of linux.370
ifeq "$(CCISCLANG)" "1"
# clang-specific starts
# clang-specific ends
else
# gcc-specific starts
# LIBCFLAGS+=
# gcc-specific ends
endif
# WINCFLAGS set from multiw-2.370
# SNDCFLAGS set from multisnd-pre.370
CFLAGS+= $(PKGCFLAGS) $(WINCFLAGS)
CFLAGS+= $(SNDCFLAGS)
CFLAGS+= $(NHCFLAGS)
CFLAGS+= $(LIBCFLAGS)
# WINCFLAGS set from multiw-2.370
# SNDCFLAGS set from multisnd-pre.370
CCXXFLAGS+= $(WINCFLAGS)
CCXXFLAGS+= $(SNDCFLAGS)
CCXXFLAGS+= $(NHCFLAGS)
CCXXFLAGS+= $(LIBCFLAGS)
VARDATND =
VARDATND0 =
@@ -525,13 +545,14 @@ endif
endif
ifdef WANT_LIBNH
$(TARGETPFX)libnh.a: $(HOBJ) $(LIBNHSYSOBJ) ../lib/lua/liblua.a
$(AR) rcs $@ $(HOBJ) $(LIBNHSYSOBJ) ../lib/lua/liblua.a
$(TARGETPFX)libnh.a: $(HOBJ) $(LIBNHSYSOBJ) ../lib/lua/liblua-$(LUA_VERSION).a
$(AR) rcs $@ $(HOBJ) $(LIBNHSYSOBJ) ../lib/lua/liblua-$(LUA_VERSION).a
@echo "$@ built."
$(TARGETPFX)libnhmain.o : ../sys/libnh/libnhmain.c $(HACK_H)
$(CC) $(CFLAGS) -c -o$@ $<
$(TARGETPFX)winshim.o : ../win/shim/winshim.c $(HACK_H)
$(CC) $(CFLAGS) -c -o$@ $<
# dependency tool added this to Makefile.src
#$(TARGETPFX)winshim.o : ../win/shim/winshim.c $(HACK_H)
# $(CC) $(CFLAGS) -c -o$@ $<
endif # WANT_LIBNH
ifdef MAKEFILE_DOC

View File

@@ -32,6 +32,10 @@ EXPLORERS=*
# Uses the same syntax as the WIZARDS and EXPLORERS options above.
#SHELLERS=
# Execute this program whenever a new message-window message is shown.
# The program will get the message text as the only parameter.
#MSGHANDLER=/usr/bin/espeak
# If the user name is found in this list, prompt for username instead.
# Uses the same syntax as the WIZARDS option above.
# A public server should probably disable this.

View File

@@ -8,7 +8,6 @@
#include "hack.h"
#include "dlb.h"
#include <ctype.h>
#include <sys/stat.h>
#include <signal.h>
#include <pwd.h>
@@ -37,7 +36,6 @@ static void consume_two_args(int, int *, char ***);
static void early_options(int *, char ***, char **);
ATTRNORETURN static void opt_terminate(void) NORETURN;
ATTRNORETURN static void opt_usage(const char *) NORETURN;
static void opt_showpaths(const char *);
ATTRNORETURN static void scores_only(int, char **, const char *) NORETURN;
#ifdef SND_LIB_INTEGRATED
uint32_t soundlibchoice = soundlib_nosound;
@@ -557,7 +555,7 @@ process_options(int argc, char *argv[])
if (mx_ok)
gl.locknum = mxplyrs;
else
config_error_add("Invalid MAXPLATERS \"%s\"", argv[1]);
config_error_add("Invalid MAXPLAYERS \"%s\"", argv[1]);
#endif
}
#ifdef MAX_NR_OF_PLAYERS
@@ -644,15 +642,15 @@ early_options(int *argc_p, char ***argv_p, char **hackdir_p)
++arg;
switch (arg[1]) { /* char after leading dash */
case 'b':
case 'b':
#ifdef CRASHREPORT
// --bidshow
if (argcheck(argc, argv, ARG_BIDSHOW) == 2){
// --bidshow
if (argcheck(argc, argv, ARG_BIDSHOW) == 2){
opt_terminate();
/*NOTREACHED*/
}
}
#endif
break;
break;
case 'd':
if (argcheck(argc, argv, ARG_DEBUG) == 1) {
consume_arg(ndx, argc_p, argv_p), consumed = 1;
@@ -661,6 +659,12 @@ early_options(int *argc_p, char ***argv_p, char **hackdir_p)
opt_terminate();
/*NOTREACHED*/
#endif
} else if (argcheck(argc, argv, ARG_DUMPMONGEN) == 2) {
opt_terminate();
/*NOTREACHED*/
} else if (argcheck(argc, argv, ARG_DUMPWEIGHTS) == 2) {
opt_terminate();
/*NOTREACHED*/
} else {
#ifdef CHDIR
oldargc = argc;
@@ -703,9 +707,10 @@ early_options(int *argc_p, char ***argv_p, char **hackdir_p)
break;
case 's':
if (argcheck(argc, argv, ARG_SHOWPATHS) == 2) {
opt_showpaths(*hackdir_p);
opt_terminate();
/*NOTREACHED*/
gd.deferred_showpaths = TRUE;
gd.deferred_showpaths_dir = *hackdir_p;
config_error_done();
return;
}
/* check for "-s" request to show scores */
if (lopt(arg, ((ArgValDisallowed | ArgErrComplain)
@@ -786,18 +791,16 @@ opt_usage(const char *hackdir)
/* show the sysconf file name, playground directory, run-time configuration
file name, dumplog file name if applicable, and some other things */
static void
opt_showpaths(const char *dir)
ATTRNORETURN void
after_opt_showpaths(const char *dir)
{
#ifdef CHDIR
chdirx(dir, FALSE);
#else
nhUse(dir);
#endif
iflags.initoptions_noterminate = TRUE;
initoptions();
iflags.initoptions_noterminate = FALSE;
reveal_paths();
opt_terminate();
/*NOTREACHED*/
}
/* handle "-s <score options> [character-names]" to show all the entries