Merge branch 'NetHack-5.0' into twitch-interact
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
Instructions for installing NetHack 3.7
|
||||
Instructions for installing NetHack 5.0
|
||||
on a UNIX system
|
||||
=======================================
|
||||
NB: We are gradually replacing this process with the process documented in
|
||||
@@ -109,7 +109,7 @@ the file NewInstall.unx.
|
||||
Notes:
|
||||
|
||||
1. Save files and bones files from previous versions will not work with
|
||||
NetHack 3.7. Don't bother trying to keep them.
|
||||
NetHack 5.0. Don't bother trying to keep them.
|
||||
|
||||
2. To install an update of this version of NetHack after changing something,
|
||||
type 'make update' from the main directory. If you created the new
|
||||
@@ -246,11 +246,11 @@ Notes:
|
||||
|
||||
13. If you get a compiler warning about 'get_colors()' being implicitly
|
||||
declared, try uncommenting NEED_GET_COLORS_DECL in unixconf.h.
|
||||
If you get a compiler complaint about tparmdecl() having conflicting
|
||||
declarations, add '#define NOTPARMDECL' to unixconf.h or '-DNOTPARMDECL'
|
||||
to CFLAGS in src/Makefile. (The hints files for Mac OSX already do the
|
||||
latter.)
|
||||
If you get a compiler warning about tparm() being implicitly
|
||||
declared, add '#define TPARM_WORKAROUND' to unixconf.h or
|
||||
'-DTPARM_WORKAROUND' to CFLAGS. (This should not be needed
|
||||
on any modern system.)
|
||||
|
||||
# NetHack 3.7 Install.unx $NHDT-Date: 1577568915 2019/12/28 21:35:15 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.14 $
|
||||
# NetHack 5.0 Install.unx $NHDT-Date: 1577568915 2019/12/28 21:35:15 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.14 $
|
||||
# Copyright (c) 2012 by Kenneth Lorber, Kensington, Maryland
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# NetHack 3.7 Makefile.check $NHDT-Date: 1599687610 2020/09/09 21:40:10 $ $NHDT-Branch: NetHack-3.7
|
||||
# NetHack 5.0 Makefile.check $NHDT-Date: 1599687610 2020/09/09 21:40:10 $ $NHDT-Branch: NetHack-5.0
|
||||
|
||||
SUPATH := sys/unix/
|
||||
MKHINTSPATH := $(SUPATH)hints/
|
||||
@@ -8,7 +8,7 @@ MKINCLPATH := $(SUPATH)hints/include/
|
||||
# Expectations:
|
||||
#
|
||||
# HINTSFILE and HINTSINCLFILES are passed from the calling Makefile
|
||||
# which is the case with the hints/*.370 and hints/include/*.370
|
||||
# which is the case with the hints/*.500 and hints/include/*.500
|
||||
# set.
|
||||
#
|
||||
ifneq ("$(HINTSFILE)","")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# NetHack Datafiles Makefile.dat $NHDT-Date: 1596486993 2020/08/03 20:36:33 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.32 $
|
||||
# NetHack Datafiles Makefile.dat $NHDT-Date: 1596486993 2020/08/03 20:36:33 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.32 $
|
||||
# Copyright (c) 2018 by Pasi Kallinen
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
|
||||
@@ -27,10 +27,12 @@ all: $(VARDAT) spec_levs quest_levs
|
||||
|
||||
x11tiles: ../util/tile2x11 ../win/share/monsters.txt ../win/share/objects.txt \
|
||||
../win/share/other.txt \
|
||||
../win/share/monsters.txt
|
||||
../win/share/monsters.txt \
|
||||
../win/share/decals.txt
|
||||
../util/tile2x11 ../win/share/monsters.txt ../win/share/objects.txt \
|
||||
../win/share/other.txt \
|
||||
-grayscale ../win/share/monsters.txt
|
||||
-grayscale ../win/share/monsters.txt \
|
||||
../win/share/decals.txt
|
||||
|
||||
beostiles: ../util/tile2beos ../win/share/monsters.txt \
|
||||
../win/share/objects.txt \
|
||||
@@ -93,6 +95,8 @@ GEM_RSC.RSC:
|
||||
# cp ../win/gem/GEM_RSC.RSC GEM_RSC.RSC
|
||||
$(UUDECODE) ../win/gem/gem_rsc.uu
|
||||
|
||||
nhdat: $(DATDLB)
|
||||
( LC_ALL=C ; ../util/dlb cf nhdat $(DATDLB) )
|
||||
|
||||
data: data.base ../util/makedefs
|
||||
../util/makedefs -d
|
||||
|
||||
+43
-36
@@ -1,5 +1,5 @@
|
||||
# NetHack Documentation Makefile.
|
||||
# NetHack 3.7 Makefile.doc $NHDT-Date: 1700788000 2023/11/24 01:06:40 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.28 $
|
||||
# NetHack 5.0 Makefile.doc $NHDT-Date: 1700788000 2023/11/24 01:06:40 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.28 $
|
||||
# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
|
||||
@@ -9,14 +9,24 @@ NHSROOT=..
|
||||
# for Atari
|
||||
# SHELL=E:/GEMINI2/MUPFEL.TTP
|
||||
|
||||
MAKEDEFS = ../util/makedefs
|
||||
MAKEDEFS ?= ../util/makedefs
|
||||
# Only generate output for the current configuration:
|
||||
NHGREP ?= $(MAKEDEFS) --grep --input - --output -
|
||||
NEEDMAKEDEFS ?= $(MAKEDEFS)
|
||||
# Generate output for all configurations:
|
||||
#NHGREP ?= $(MAKEDEFS) --grep --input - --output - --grep-define ALLDOCS
|
||||
#NEEDMAKEDEFS ?= $(MAKEDEFS)
|
||||
# Fallback:
|
||||
#NHGREP ?= cat
|
||||
#NEEDMAKEDEFS ?=
|
||||
|
||||
#STRIPBS ?= ../util/stripbs
|
||||
NROFF ?= nroff
|
||||
# NROFF_FLAGS comes from a hints file, or is empty
|
||||
|
||||
# Which version do we want to build? (XXX These are not used anywhere.)
|
||||
GUIDEBOOK = Guidebook # regular ASCII file
|
||||
#GUIDEBOOK = Guidebook.ps # PostScript file
|
||||
#GUIDEBOOK = Guidebook.dvi # TeX device-independent file
|
||||
GUIDEBOOK ?= Guidebook # regular ASCII file
|
||||
#GUIDEBOOK ?= Guidebook.ps # PostScript file
|
||||
#GUIDEBOOK ?= Guidebook.dvi # TeX device-independent file
|
||||
|
||||
# Some versions of col need -x to keep them from converting spaces to tabs;
|
||||
# some versions of col don't do the conversion by default and don't
|
||||
@@ -28,39 +38,34 @@ COLCMD ?= col -bx
|
||||
#COLCMD ?= $(STRIPBS)
|
||||
|
||||
# The command to use to generate a PostScript file
|
||||
# PSCMD = ditroff | psdit
|
||||
PSCMD = groff
|
||||
# PSCMD ?= ditroff | psdit
|
||||
PSCMD ?= groff
|
||||
|
||||
GUIDEBOOK_MN_SRC ?= Guidebook.mn
|
||||
GUIDEBOOK_MN ?= $(GUIDEBOOK_MN_SRC)
|
||||
|
||||
GUIDE_PREFORMAT ?= cat $(GUIDEBOOK_MN) | $(NHGREP) | tbl tmac.n -
|
||||
# for Guidebook.dat, unpaginated version of Guidebook.txt
|
||||
ONEPAGE_PREFORMAT ?= cat Gbk-1pg-pfx.mn $(GUIDEBOOK_MN) Gbk-1pg-sfx.mn \
|
||||
| $(NHGREP) | tbl tmac.n -
|
||||
ONEPAGECMD ?= $(ONEPAGE_PREFORMAT) | $(NROFF) -c -Tascii $(NROFF_FLAGS) | $(COLCMD)
|
||||
# Use the "cat" GUIDECMD if nroff and/or tbl and/or col are not installed
|
||||
# Not appropriate for creating Guidebook.txt.
|
||||
# GUIDECMD = cat Guidebook.txt
|
||||
# GUIDECMD ?= cat Guidebook.txt
|
||||
#
|
||||
# Single page. Might need adjustment to .pl value
|
||||
# GUIDECMD= $(GUIDE_PREFORMAT) | perl -pe 's/^(.mt)$$/.pl 4720v\n.in 0\n.po 8\n.ll 64m\n$$1/' | nroff -c -Tascii | $(COLCMD)
|
||||
# PLVALUE='s/^(.mt)$$/.pl 4720v\n.in 0\n.po 8\n.ll 64m\n$$1/'
|
||||
# GUIDECMD ?= $(GUIDE_PREFORMAT) | perl -pe $(PLVALUE) | $(NROFF) -c -Tascii | $(COLCMD)
|
||||
#
|
||||
GUIDECMD = $(GUIDE_PREFORMAT) | nroff -c -Tascii $(NROFF_FLAGS) | $(COLCMD)
|
||||
ONEPAGECMD = $(ONEPAGE_PREFORMAT) | nroff -c -Tascii $(NROFF_FLAGS) | $(COLCMD)
|
||||
GUIDECMD ?= $(GUIDE_PREFORMAT) | $(NROFF) -c -Tascii $(NROFF_FLAGS) | $(COLCMD)
|
||||
GUIDEBOOK_TEX_SRC ?= Guidebook.tex
|
||||
GUIDEBOOK_TEX ?= $(GUIDEBOOK_TEX_SRC)
|
||||
|
||||
# Only generate output for the current configuration:
|
||||
NHGREP = $(MAKEDEFS) --grep --input - --output -
|
||||
NEEDMAKEDEFS = $(MAKEDEFS)
|
||||
# Generate output for all configurations:
|
||||
#NHGREP = $(MAKEDEFS) --grep --input - --output - --grep-define ALLDOCS
|
||||
#NEEDMAKEDEFS = $(MAKEDEFS)
|
||||
# Fallback:
|
||||
#NHGREP = cat
|
||||
#NEEDMAKEDEFS =
|
||||
|
||||
GUIDEBOOK_MN_SRC = Guidebook.mn
|
||||
GUIDEBOOK_MN = $(GUIDEBOOK_MN_SRC)
|
||||
GUIDEBOOK_TEX_SRC = Guidebook.tex
|
||||
GUIDEBOOK_TEX = $(GUIDEBOOK_TEX_SRC)
|
||||
|
||||
GUIDE_PREFORMAT = cat $(GUIDEBOOK_MN) | $(NHGREP) | tbl tmac.n -
|
||||
# for Guidebook.dat, unpaginated version of Guidebook.txt
|
||||
ONEPAGE_PREFORMAT = cat Gbk-1pg-pfx.mn $(GUIDEBOOK_MN) Gbk-1pg-sfx.mn \
|
||||
| $(NHGREP) | tbl tmac.n -
|
||||
#STRIPBS ?= ../util/stripbs
|
||||
# STRIPBS often comes from a hints file, or is empty
|
||||
|
||||
# targets
|
||||
#
|
||||
# the basic guidebook
|
||||
Guidebook : $(GUIDEBOOK_MN) tmac.n tmac.nh $(NEEDMAKEDEFS) $(STRIPBS)
|
||||
-$(GUIDECMD) > Guidebook
|
||||
@@ -91,20 +96,22 @@ $(MAKEDEFS) : ../util/makedefs.c ../include/config.h ../src/mdlib.c \
|
||||
GAME = nethack
|
||||
MANDIR ?= /usr/man/man6
|
||||
MANEXT = 6
|
||||
NROFF ?= nroff
|
||||
MANDIRPREP ?= true
|
||||
|
||||
# manual installation for most BSD-style systems
|
||||
GAMEMANCREATE = cat nethack.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 - >
|
||||
# RCVRMANCREATE = cat recover.6 | $(NHGREP) | nroff -man - >
|
||||
# DLBMANCREATE = cat dlb.6 | $(NHGREP) | nroff -man - >
|
||||
# MDMANCREATE = cat makedefs.6 | $(NHGREP) | nroff -man - >
|
||||
# GAMEMANCREATE = cat nethack.6 | $(NHGREP) | $(NROFF) -man - >
|
||||
# RCVRMANCREATE = cat recover.6 | $(NHGREP) | $(NROFF) -man - >
|
||||
# DLBMANCREATE = cat dlb.6 | $(NHGREP) | $(NROFF) -man - >
|
||||
# MDMANCREATE = cat makedefs.6 | $(NHGREP) | $(NROFF) -man - >
|
||||
|
||||
manpages: $(PREMANPAGES)
|
||||
-$(MANDIRPREP)
|
||||
-$(GAMEMANCREATE) $(MANDIR)/$(GAME).$(MANEXT)
|
||||
-$(RCVRMANCREATE) $(MANDIR)/recover.$(MANEXT)
|
||||
-$(DLBMANCREATE) $(MANDIR)/dlb.$(MANEXT)
|
||||
|
||||
+190
-158
@@ -1,10 +1,11 @@
|
||||
# NetHack Makefile.
|
||||
# NetHack 3.7 Makefile.src $NHDT-Date: 1697316523 2023/10/14 20:48:43 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.164 $
|
||||
# NetHack 5.0 Makefile.src $NHDT-Date: 1697316523 2023/10/14 20:48:43 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.164 $
|
||||
# Copyright (c) 2018 by Pasi Kallinen
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
|
||||
# Root of source tree:
|
||||
NHSROOT=..
|
||||
NHSROOT ?=..
|
||||
SRCDIR = $(NHSROOT)/src
|
||||
|
||||
# newer makes predefine $(MAKE) to 'make' and do smarter processing of
|
||||
# recursive make calls if $(MAKE) is used
|
||||
@@ -41,37 +42,37 @@ SHELL=/bin/sh
|
||||
# SHELL=E:/GEMINI2/MUPFEL.TTP
|
||||
|
||||
# Usually, the C compiler driver is used for linking:
|
||||
#LINK=$(CC)
|
||||
#LINK ?=$(CC)
|
||||
|
||||
# If we're cross-compiling, a hints file will override this
|
||||
# to a unique target directory, but otherwise it just goes in
|
||||
# ../src
|
||||
TARGETPFX=
|
||||
TARGETPFX ?=
|
||||
|
||||
# Pick the SYSSRC and SYSOBJ lines corresponding to your desired operating
|
||||
# system.
|
||||
#
|
||||
# for UNIX systems
|
||||
SYSSRC = ../sys/share/ioctl.c ../sys/share/unixtty.c ../sys/unix/unixmain.c \
|
||||
SYSSRC ?= ../sys/share/ioctl.c ../sys/share/unixtty.c ../sys/unix/unixmain.c \
|
||||
../sys/unix/unixunix.c ../sys/unix/unixres.c
|
||||
SYSOBJ = $(TARGETPFX)ioctl.o $(TARGETPFX)unixmain.o $(TARGETPFX)unixtty.o \
|
||||
SYSOBJ ?= $(TARGETPFX)ioctl.o $(TARGETPFX)unixmain.o $(TARGETPFX)unixtty.o \
|
||||
$(TARGETPFX)unixunix.o $(TARGETPFX)unixres.o
|
||||
#
|
||||
# for Systos
|
||||
# SYSSRC = ../sys/atari/tos.c ../sys/share/pcmain.c ../sys/share/pcsys.c \
|
||||
# SYSSRC ?= ../sys/atari/tos.c ../sys/share/pcmain.c ../sys/share/pcsys.c \
|
||||
# ../sys/share/pctty.c ../sys/share/pcunix.c
|
||||
# SYSOBJ = $(TARGETPFX)tos.o $(TARGETPFX)pcmain.o $(TARGETPFX)pcsys.o \
|
||||
# SYSOBJ ?= $(TARGETPFX)tos.o $(TARGETPFX)pcmain.o $(TARGETPFX)pcsys.o \
|
||||
# $(TARGETPFX)pctty.o $(TARGETPFX)pcunix.o
|
||||
#
|
||||
# for BeOS
|
||||
#SYSSRC = ../sys/be/bemain.c ../sys/share/unixtty.c ../sys/share/ioctl.c
|
||||
#SYSOBJ = $(TARGETPFX)bemain.o $(TARGETPFX)unixtty.o $(TARGETPFX)ioctl.o
|
||||
#SYSSRC ?= ../sys/be/bemain.c ../sys/share/unixtty.c ../sys/share/ioctl.c
|
||||
#SYSOBJ ?= $(TARGETPFX)bemain.o $(TARGETPFX)unixtty.o $(TARGETPFX)ioctl.o
|
||||
|
||||
|
||||
# NetHack 3.7 began introducing C99 code.
|
||||
# NetHack 5.0 began introducing C99 code.
|
||||
#
|
||||
# If your compiler needs an appropriate switch to accept C99 code.
|
||||
# CSTD = -std=c99
|
||||
# CSTD ?= -std=c99
|
||||
|
||||
# if you are using gcc as your compiler:
|
||||
# uncomment the CC definition below if it's not in your environment
|
||||
@@ -152,7 +153,7 @@ SYSOBJ = $(TARGETPFX)ioctl.o $(TARGETPFX)unixmain.o $(TARGETPFX)unixtty.o \
|
||||
# flags for Linux
|
||||
# compile normally
|
||||
# CFLAGS = -O2 -fomit-frame-pointer -I../include
|
||||
# LFLAGS = -L/usr/X11R6/lib
|
||||
# LFLAGS = -L/usr/lib64
|
||||
# OR compile backwards compatible a.out format
|
||||
# CFLAGS = -O2 -b i486-linuxaout -fomit-frame-pointer -I../include
|
||||
# LFLAGS = -b i486-linuxaout -L/usr/X11R6/lib
|
||||
@@ -192,8 +193,8 @@ SYSOBJ = $(TARGETPFX)ioctl.o $(TARGETPFX)unixmain.o $(TARGETPFX)unixtty.o \
|
||||
CFLAGS ?= -I../include
|
||||
LINK ?= $(CC)
|
||||
|
||||
AR = ar
|
||||
ARFLAGS = rcs
|
||||
AR ?= ar
|
||||
ARFLAGS ?= rcs
|
||||
|
||||
# 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
|
||||
@@ -210,15 +211,15 @@ MOCPATH ?= $(QTDIR)/bin/$(MOC)
|
||||
# The default is for the TARGET_* variables to match the defaults.
|
||||
# If we're cross-compiling these will get overridden elsewhere, likely via
|
||||
# a hints file. TARGETPFX was set above earlier.
|
||||
TARGET_CC = $(CC)
|
||||
TARGET_CFLAGS = $(CFLAGS) $(CSTD)
|
||||
TARGET_LINK = $(LINK)
|
||||
TARGET_LFLAGS = $(LFLAGS)
|
||||
TARGET_CXX = $(CXX)
|
||||
TARGET_CXXFLAGS = $(CXXFLAGS)
|
||||
TARGET_LIBS = $(LIBS)
|
||||
TARGET_AR = $(AR)
|
||||
TARGET_ARFLAGS = $(ARFLAGS)
|
||||
TARGET_CC ?= $(CC)
|
||||
TARGET_CFLAGS ?= $(CFLAGS) $(CSTD)
|
||||
TARGET_LINK ?= $(LINK)
|
||||
TARGET_LFLAGS ?= $(LFLAGS)
|
||||
TARGET_CXX ?= $(CXX)
|
||||
TARGET_CXXFLAGS ?= $(CXXFLAGS)
|
||||
TARGET_LIBS ?= $(LIBS)
|
||||
TARGET_AR ?= $(AR)
|
||||
TARGET_ARFLAGS ?= $(ARFLAGS)
|
||||
|
||||
# we specify C preprocessor flags via CFLAGS; files built with default rules
|
||||
# might include $(CPPFLAGS) which could get a value from user's environment;
|
||||
@@ -227,50 +228,53 @@ CPPFLAGS =
|
||||
|
||||
# file for regular expression matching
|
||||
REGEXOBJ ?= $(TARGETPFX)posixregex.o
|
||||
#REGEXOBJ = $(TARGETPFX)pmatchregex.o
|
||||
#REGEXOBJ = $(TARGETPFX)cppregex.o
|
||||
#REGEXOBJ ?= $(TARGETPFX)pmatchregex.o
|
||||
#REGEXOBJ ?= $(TARGETPFX)cppregex.o
|
||||
|
||||
GENTILECFILE = $(SRCDIR)/tile.c
|
||||
GENTILEOFILE ?=
|
||||
|
||||
# Set the WINSRC, WINOBJ, and WINLIB lines to correspond to your desired
|
||||
# combination of windowing systems. Also set matching USE_x_GRAPHICS in
|
||||
# config.h. Note that if you are building for any window system which
|
||||
# uses tiles, uncomment '#$(TARGETPFX)tile.o' (by removing the '#') in that
|
||||
# system's WINxOBJ (WINX11OBJ or WINQTOBJ or WINQT3OBJ). If you are building
|
||||
# nethack with support for multiple window systems, only uncomment that for
|
||||
# one of them to avoid duplicate tile.o.
|
||||
# config.h.
|
||||
#
|
||||
# files for a straight tty port using no native windowing system
|
||||
WINTTYSRC = ../win/tty/getline.c ../win/tty/termcap.c ../win/tty/topl.c \
|
||||
WINTTYSRC ?= ../win/tty/getline.c ../win/tty/termcap.c ../win/tty/topl.c \
|
||||
../win/tty/wintty.c
|
||||
WINTTYOBJ = $(TARGETPFX)getline.o $(TARGETPFX)termcap.o $(TARGETPFX)topl.o \
|
||||
WINTTYOBJ ?= $(TARGETPFX)getline.o $(TARGETPFX)termcap.o $(TARGETPFX)topl.o \
|
||||
$(TARGETPFX)wintty.o
|
||||
#
|
||||
# Files for curses interface
|
||||
WINCURSESSRC = ../win/curses/cursmain.c ../win/curses/curswins.c \
|
||||
WINCURSESSRC ?= ../win/curses/cursmain.c ../win/curses/curswins.c \
|
||||
../win/curses/cursmisc.c ../win/curses/cursdial.c \
|
||||
../win/curses/cursstat.c ../win/curses/cursinit.c \
|
||||
../win/curses/cursmesg.c ../win/curses/cursinvt.c
|
||||
WINCURSESOBJ = $(TARGETPFX)cursmain.o $(TARGETPFX)curswins.o \
|
||||
WINCURSESOBJ ?= $(TARGETPFX)cursmain.o $(TARGETPFX)curswins.o \
|
||||
$(TARGETPFX)cursmisc.o $(TARGETPFX)cursdial.o \
|
||||
$(TARGETPFX)cursstat.o $(TARGETPFX)cursinit.o \
|
||||
$(TARGETPFX)cursmesg.o $(TARGETPFX)cursinvt.o
|
||||
#
|
||||
# files for an X11 port
|
||||
# (tile.c is a generated source file)
|
||||
WINX11SRC = ../win/X11/Window.c ../win/X11/dialogs.c ../win/X11/winX.c \
|
||||
WINX11SRC ?= ../win/X11/Window.c ../win/X11/dialogs.c ../win/X11/winX.c \
|
||||
../win/X11/winmap.c ../win/X11/winmenu.c ../win/X11/winmesg.c \
|
||||
../win/X11/winmisc.c ../win/X11/winstat.c ../win/X11/wintext.c \
|
||||
../win/X11/winval.c tile.c
|
||||
WINX11OBJ = $(TARGETPFX)Window.o $(TARGETPFX)dialogs.o $(TARGETPFX)winX.o \
|
||||
../win/X11/winval.c ../win/X11/winlabel.c \
|
||||
../win/share/tileset.c ../win/share/bmptiles.c ../win/share/giftiles.c \
|
||||
../win/share/pngtiles.c $(GENTILECFILE)
|
||||
WINX11OBJ ?= $(TARGETPFX)Window.o $(TARGETPFX)dialogs.o $(TARGETPFX)winX.o \
|
||||
$(TARGETPFX)winmap.o $(TARGETPFX)winmenu.o $(TARGETPFX)winmesg.o \
|
||||
$(TARGETPFX)winmisc.o $(TARGETPFX)winstat.o $(TARGETPFX)wintext.o \
|
||||
$(TARGETPFX)winval.o #$(TARGETPFX)tile.o
|
||||
$(TARGETPFX)winval.o $(TARGETPFX)winlabel.o \
|
||||
$(TARGETPFX)tileset.o $(TARGETPFX)bmptiles.o $(TARGETPFX)giftiles.o \
|
||||
$(TARGETPFX)pngtiles.o
|
||||
#
|
||||
# Files for a Qt 3 interface (renamed since nethack 3.6.x)
|
||||
#
|
||||
#WINQT3SRC = ../win/Qt3/qt3_win.cpp ../win/Qt3/qt3_clust.cpp \
|
||||
# ../win/Qt3/qt3tableview.cpp
|
||||
#WINQT3OBJ = $(TARGETPFX)qt3_win.o $(TARGETPFX)qt3_clust.o \
|
||||
# $(TARGETPFX)qt3tableview.o #$(TARGETPFX)tile.o
|
||||
# $(TARGETPFX)qt3tableview.o
|
||||
# empty values for 'make depend'
|
||||
WINQT3SRC =
|
||||
WINQT3OBJ =
|
||||
@@ -280,9 +284,9 @@ WINQT3OBJ =
|
||||
#
|
||||
# generated source files made by Qt's 'moc' program from ../win/Qt/qt_*.h;
|
||||
# appended to WINQTSRC for use by 'make depend'
|
||||
WINQTMOC = qt_kde0.moc qt_main.moc qt_map.moc qt_menu.moc qt_msg.moc \
|
||||
WINQTMOC ?= qt_kde0.moc qt_main.moc qt_map.moc qt_menu.moc qt_msg.moc \
|
||||
qt_plsel.moc qt_set.moc qt_stat.moc qt_xcmd.moc qt_yndlg.moc
|
||||
WINQTSRC = ../win/Qt/qt_bind.cpp ../win/Qt/qt_click.cpp \
|
||||
WINQTSRC ?= ../win/Qt/qt_bind.cpp ../win/Qt/qt_click.cpp \
|
||||
../win/Qt/qt_clust.cpp ../win/Qt/qt_delay.cpp \
|
||||
../win/Qt/qt_glyph.cpp ../win/Qt/qt_icon.cpp ../win/Qt/qt_inv.cpp \
|
||||
../win/Qt/qt_key.cpp ../win/Qt/qt_line.cpp ../win/Qt/qt_main.cpp \
|
||||
@@ -290,8 +294,8 @@ WINQTSRC = ../win/Qt/qt_bind.cpp ../win/Qt/qt_click.cpp \
|
||||
../win/Qt/qt_plsel.cpp ../win/Qt/qt_rip.cpp ../win/Qt/qt_set.cpp \
|
||||
../win/Qt/qt_stat.cpp ../win/Qt/qt_str.cpp ../win/Qt/qt_streq.cpp \
|
||||
../win/Qt/qt_svsel.cpp ../win/Qt/qt_win.cpp ../win/Qt/qt_xcmd.cpp \
|
||||
../win/Qt/qt_yndlg.cpp $(WINQTMOC) tile.c
|
||||
WINQTOBJ = $(TARGETPFX)qt_bind.o $(TARGETPFX)qt_click.o \
|
||||
../win/Qt/qt_yndlg.cpp $(WINQTMOC) $(GENTILECFILE)
|
||||
WINQTOBJ ?= $(TARGETPFX)qt_bind.o $(TARGETPFX)qt_click.o \
|
||||
$(TARGETPFX)qt_clust.o $(TARGETPFX)qt_delay.o \
|
||||
$(TARGETPFX)qt_glyph.o $(TARGETPFX)qt_icon.o \
|
||||
$(TARGETPFX)qt_inv.o $(TARGETPFX)qt_key.o $(TARGETPFX)qt_line.o \
|
||||
@@ -299,23 +303,22 @@ WINQTOBJ = $(TARGETPFX)qt_bind.o $(TARGETPFX)qt_click.o \
|
||||
$(TARGETPFX)qt_msg.o $(TARGETPFX)qt_plsel.o $(TARGETPFX)qt_rip.o \
|
||||
$(TARGETPFX)qt_set.o $(TARGETPFX)qt_stat.o $(TARGETPFX)qt_str.o \
|
||||
$(TARGETPFX)qt_streq.o $(TARGETPFX)qt_svsel.o $(TARGETPFX)qt_win.o \
|
||||
$(TARGETPFX)qt_xcmd.o $(TARGETPFX)qt_yndlg.o #$(TARGETPFX)tile.o
|
||||
$(TARGETPFX)qt_xcmd.o $(TARGETPFX)qt_yndlg.o
|
||||
|
||||
# Files for Shim windowing interface for libnh -- doesn't do anything,
|
||||
# just passes along the API calls to the library
|
||||
#
|
||||
WINSHIMSRC = ../win/shim/winshim.c
|
||||
WINSHIMOBJ = winshim.o
|
||||
WINSHIMSRC ?= ../win/shim/winshim.c
|
||||
WINSHIMOBJ ?= winshim.o
|
||||
|
||||
#
|
||||
# Files for a BeOS InterfaceKit port -- not ready for prime time
|
||||
WINBESRC =
|
||||
WINBEOBJ =
|
||||
WINBESRC ?=
|
||||
WINBEOBJ ?=
|
||||
#WINBESRC = ../win/BeOS/winbe.cpp ../win/BeOS/NHWindow.cpp \
|
||||
# ../win/BeOS/NHMenuWindow.cpp ../win/BeOS/NHMapWindow.cpp tile.c
|
||||
# ../win/BeOS/NHMenuWindow.cpp ../win/BeOS/NHMapWindow.cpp $(GENTILECFILE)
|
||||
#WINBEOBJ = $(TARGETPFX)winbe.o $(TARGETPFX)NHWindow.o \
|
||||
# $(TARGETPFX)NHMenuWindow.o $(TARGETPFX)NHMapWindow.o \
|
||||
# $(TARGETPFX)tile.o
|
||||
# $(TARGETPFX)NHMenuWindow.o $(TARGETPFX)NHMapWindow.o
|
||||
#
|
||||
#
|
||||
#WINSRC = $(WINTTYSRC)
|
||||
@@ -353,20 +356,20 @@ WINBEOBJ =
|
||||
WINQT3LIB = -L$(QTDIR)/lib -lqt
|
||||
#
|
||||
# libraries for Qt 4
|
||||
WINQT4LIB = `pkg-config QtGui --libs`
|
||||
WINQT4LIB ?= `pkg-config QtGui --libs`
|
||||
#
|
||||
# libraries for Qt 5 (use with WINQTSRC and WINQTOBJ)
|
||||
WINQT5LIB = `pkg-config Qt5Gui Qt5Widgets Qt5Multimedia --libs`
|
||||
WINQT5LIB ?= `pkg-config Qt5Gui Qt5Widgets Qt5Multimedia --libs`
|
||||
#
|
||||
# libraries for KDE (with Qt)
|
||||
WINKDELIB = -lkdecore -lkdeui -lXext
|
||||
WINKDELIB ?= -lkdecore -lkdeui -lXext
|
||||
#
|
||||
# libraries for BeOS
|
||||
WINBELIB = -lbe
|
||||
WINBELIB ?= -lbe
|
||||
#
|
||||
# libraries for curses port
|
||||
# link with ncurses
|
||||
WINCURSESLIB = -lncurses
|
||||
WINCURSESLIB ?= -lncurses
|
||||
# link with pdcurses for SDL, installed in a separate directory
|
||||
#WINCURSESLIB = -L/usr/local/lib/pdcurses -lpdcurses -lSDL
|
||||
# same as above, for XCurses
|
||||
@@ -415,18 +418,18 @@ WINOBJ ?= $(WINTTYOBJ)
|
||||
WINLIB ?= $(WINTTYLIB) -lncurses
|
||||
|
||||
# make NetHack
|
||||
GAME = nethack
|
||||
GAME ?= nethack
|
||||
# GAME = nethack.prg
|
||||
GAMEBIN = $(GAME)
|
||||
GAMEBIN ?= $(GAME)
|
||||
|
||||
# if you defined RANDOM in unixconf.h since your system did not come
|
||||
# with a reasonable random number generator
|
||||
# RANDOBJ = $(TARGETPFX)random.o
|
||||
RANDOBJ =
|
||||
RANDOBJ ?=
|
||||
|
||||
# used by `make depend' to reconstruct this Makefile; you shouldn't need this
|
||||
# at all but can override with 'make AWK=nawk' or 'make AWK=gawk' if necessary
|
||||
AWK = awk
|
||||
AWK ?= awk
|
||||
|
||||
# when using 'makedefs -v', also force dat/gitinfo.txt to be up to date;
|
||||
# changing this to 0 will change the behavior to only make that file if
|
||||
@@ -491,22 +494,22 @@ AT = $(AT_V$(QUIETCC))
|
||||
|
||||
# verbosity-adjacent; these will already have 'real' values if hints have
|
||||
# set up cross-compiling, in which case these assignments will be no-ops
|
||||
PREGAME=@true
|
||||
PACKAGE=@true
|
||||
PREGAME ?=@true
|
||||
PACKAGE ?=@true
|
||||
|
||||
HACKLIBSRC = hacklib.c
|
||||
HACKLIBOBJS = hacklib.o
|
||||
HACKLIB = hacklib.a
|
||||
TARGET_HACKLIB = $(TARGETPFX)hacklib.a
|
||||
HACKLIBSRC ?= hacklib.c
|
||||
HACKLIBOBJS ?= hacklib.o
|
||||
HACKLIB ?= hacklib.a
|
||||
TARGET_HACKLIB ?= $(TARGETPFX)hacklib.a
|
||||
|
||||
MAKEDEFS = ../util/makedefs
|
||||
MAKEDEFS ?= ../util/makedefs
|
||||
|
||||
# -lm required by lua
|
||||
LUA_VERSION ?=5.4.8
|
||||
LUABASE = liblua-$(LUA_VERSION).a
|
||||
LUALIB = ../lib/lua/$(LUABASE)
|
||||
LUALIBS = $(LUALIB) -lm $(DLLIB)
|
||||
LUAHEADERS = lib/lua-$(LUA_VERSION)/src
|
||||
LUABASE ?= liblua-$(LUA_VERSION).a
|
||||
LUALIB ?= ../lib/lua/$(LUABASE)
|
||||
LUALIBS ?= $(LUALIB) -lm $(DLLIB)
|
||||
LUAHEADERS ?= lib/lua-$(LUA_VERSION)/src
|
||||
|
||||
# timestamp files to reduce `make' overhead and shorten .o dependency lists
|
||||
CONFIG_H = ../src/config.h-t
|
||||
@@ -514,82 +517,81 @@ HACK_H = ../src/hack.h-t
|
||||
|
||||
# all .c that are part of the main NetHack program and are not operating- or
|
||||
# windowing-system specific. Do not include date.c in this list.
|
||||
HACKCSRC = allmain.c alloc.c apply.c artifact.c attrib.c ball.c bones.c \
|
||||
botl.c calendar.c cmd.c coloratt.c dbridge.c decl.c detect.c dig.c display.c \
|
||||
dlb.c do.c do_name.c do_wear.c dog.c dogmove.c dokick.c dothrow.c \
|
||||
drawing.c dungeon.c earlyarg.c eat.c end.c engrave.c exper.c explode.c \
|
||||
extralev.c files.c fountain.c hack.c hacklib.c \
|
||||
HACKCSRC ?= allmain.c alloc.c apply.c artifact.c attrib.c ball.c bones.c \
|
||||
botl.c calendar.c cmd.c coloratt.c dbridge.c decl.c detect.c dig.c \
|
||||
display.c dlb.c do.c do_name.c do_wear.c dog.c dogmove.c dokick.c \
|
||||
dothrow.c drawing.c dungeon.c earlyarg.c eat.c end.c engrave.c \
|
||||
exper.c explode.c extralev.c files.c fountain.c hack.c hacklib.c \
|
||||
getpos.c glyphs.c iactions.c insight.c invent.c isaac64.c light.c \
|
||||
lock.c mail.c makemon.c mcastu.c mdlib.c mhitm.c \
|
||||
mhitu.c minion.c mklev.c mkmap.c mkmaze.c mkobj.c mkroom.c mon.c \
|
||||
mondata.c monmove.c monst.c mplayer.c mthrowu.c muse.c music.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 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 \
|
||||
uhitm.c vault.c version.c vision.c weapon.c were.c wield.c \
|
||||
windows.c wizard.c wizcmds.c worm.c worn.c write.c zap.c
|
||||
priest.c quest.c questpgr.c read.c rect.c region.c report.c \
|
||||
restore.c revision.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 uhitm.c vault.c version.c vision.c weapon.c \
|
||||
were.c wield.c windows.c wizard.c wizcmds.c worm.c worn.c write.c zap.c
|
||||
|
||||
# all operating-system-dependent .c (for dependencies and such)
|
||||
SYSCSRC = ../sys/share/pcmain.c ../sys/share/pcsys.c \
|
||||
SYSCSRC ?= ../sys/share/pcmain.c ../sys/share/pcsys.c \
|
||||
../sys/share/pctty.c ../sys/share/pcunix.c \
|
||||
../sys/share/pmatchregex.c ../sys/share/posixregex.c \
|
||||
../sys/share/random.c \
|
||||
../sys/share/ioctl.c ../sys/share/unixtty.c ../sys/unix/unixmain.c \
|
||||
../sys/unix/unixunix.c ../sys/unix/unixres.c
|
||||
SYSCXXSRC = ../sys/share/cppregex.cpp
|
||||
|
||||
# generated source files (tile.c is handled separately via WINxxxSRC)
|
||||
GENCSRC = #tile.c
|
||||
SYSCXXSRC ?= ../sys/share/cppregex.cpp
|
||||
|
||||
# all windowing-system-dependent .c (for dependencies and such)
|
||||
WINCSRC = $(WINTTYSRC) $(WINCURSESSRC) $(WINX11SRC) $(WINSHIMSRC)
|
||||
WINCSRC ?= $(WINTTYSRC) $(WINCURSESSRC) $(WINX11SRC) $(WINSHIMSRC)
|
||||
# all windowing-system-dependent .cpp (for dependencies and such)
|
||||
WINCXXSRC = $(WINQTSRC) $(WINQT3SRC) $(WINBESRC)
|
||||
WINCXXSRC ?= $(WINQTSRC) $(WINQT3SRC) $(WINBESRC)
|
||||
|
||||
# Files for window system chaining. Requires SYSCF; include via HINTSRC/HINTOBJ
|
||||
CHAINSRC = ../win/chain/wc_chainin.c ../win/chain/wc_chainout.c \
|
||||
CHAINSRC ?= ../win/chain/wc_chainin.c ../win/chain/wc_chainout.c \
|
||||
../win/chain/wc_trace.c
|
||||
CHAINOBJ = $(TARGETPFX)wc_chainin.o $(TARGETPFX)wc_chainout.o \
|
||||
CHAINOBJ ?= $(TARGETPFX)wc_chainin.o $(TARGETPFX)wc_chainout.o \
|
||||
$(TARGETPFX)wc_trace.o
|
||||
|
||||
# .c files for this version (for date.h)
|
||||
VERSOURCES = $(HACKCSRC) $(HACKLIBSRC) $(SYSSRC) $(WINSRC) $(CHAINSRC) $(GENCSRC)
|
||||
VERSOURCES ?= $(HACKCSRC) $(HACKLIBSRC) $(SYSSRC) $(WINSRC) $(CHAINSRC)
|
||||
|
||||
# .c files for all versions using this Makefile (for lint and tags)
|
||||
CSOURCES = $(HACKCSRC) $(HACKLIBSRC) $(SYSCSRC) $(WINCSRC) $(CHAINSRC) $(GENCSRC)
|
||||
CSOURCES ?= $(HACKCSRC) $(HACKLIBSRC) $(SYSCSRC) $(WINCSRC) $(CHAINSRC)
|
||||
|
||||
|
||||
# all .h files except date.h, which would
|
||||
# cause dependency loops if run through "make depend"
|
||||
# and dgn_file.h, special level & dungeon files.
|
||||
#
|
||||
HACKINCL = align.h artifact.h artilist.h attrib.h botl.h \
|
||||
HACKINCL ?= align.h artifact.h artilist.h attrib.h botl.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 \
|
||||
mcastu.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
|
||||
mcastu.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 revision.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
|
||||
HSOURCES ?= $(HACKINCL) dgn_file.h
|
||||
|
||||
# the following .o's _must_ be made before any others (for makedefs)
|
||||
FIRSTOBJ = monst.o objects.o
|
||||
HOSTOBJ = $(FIRSTOBJ) alloc.o drawing.o
|
||||
FIRSTOBJ ?= monst.o objects.o
|
||||
HOSTOBJ ?= $(FIRSTOBJ) alloc.o drawing.o
|
||||
|
||||
#$(info WINOBJ=$(WINOBJ))
|
||||
#$(info GENTILEOFILE=$(GENTILEOFILE))
|
||||
|
||||
#
|
||||
# $(TARGETPFX)date.o is not included in this list
|
||||
#
|
||||
HOBJ = $(TARGETPFX)allmain.o $(TARGETPFX)alloc.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)cfgfiles.o $(TARGETPFX)cmd.o \
|
||||
@@ -618,21 +620,23 @@ HOBJ = $(TARGETPFX)allmain.o $(TARGETPFX)alloc.o \
|
||||
$(TARGETPFX)potion.o $(TARGETPFX)pray.o $(TARGETPFX)priest.o \
|
||||
$(TARGETPFX)quest.o $(TARGETPFX)questpgr.o $(TARGETPFX)read.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)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 \
|
||||
$(TARGETPFX)steal.o $(TARGETPFX)steed.o $(TARGETPFX)strutil.o \
|
||||
$(TARGETPFX)teleport.o $(TARGETPFX)timeout.o $(TARGETPFX)topten.o \
|
||||
$(TARGETPFX)track.o $(TARGETPFX)trap.o $(TARGETPFX)twitch.o \
|
||||
$(TARGETPFX)u_init.o $(TARGETPFX)uhitm.o $(TARGETPFX)utf8map.o \
|
||||
$(TARGETPFX)vault.o $(TARGETPFX)vision.o $(TARGETPFX)weapon.o \
|
||||
$(TARGETPFX)were.o $(TARGETPFX)wield.o $(TARGETPFX)windows.o \
|
||||
$(TARGETPFX)wizard.o $(TARGETPFX)wizcmds.o $(TARGETPFX)worm.o \
|
||||
$(TARGETPFX)worn.o $(TARGETPFX)write.o $(TARGETPFX)zap.o \
|
||||
$(REGEXOBJ) $(RANDOBJ) $(SYSOBJ) $(WINOBJ) $(HINTOBJ) $(SNDLIBOBJ) \
|
||||
$(TARGETPFX)restore.o $(TARGETPFX)revision.o $(TARGETPFX)rip.o \
|
||||
$(TARGETPFX)rnd.o $(TARGETPFX)role.o $(TARGETPFX)rumors.o \
|
||||
$(TARGETPFX)save.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 $(TARGETPFX)steal.o $(TARGETPFX)steed.o \
|
||||
$(TARGETPFX)strutil.o $(TARGETPFX)teleport.o $(TARGETPFX)timeout.o \
|
||||
$(TARGETPFX)topten.o $(TARGETPFX)track.o $(TARGETPFX)trap.o \
|
||||
$(TARGETPFX)twitch.o $(TARGETPFX)u_init.o $(TARGETPFX)uhitm.o \
|
||||
$(TARGETPFX)utf8map.o $(TARGETPFX)vault.o $(TARGETPFX)vision.o \
|
||||
$(TARGETPFX)weapon.o $(TARGETPFX)were.o $(TARGETPFX)wield.o \
|
||||
$(TARGETPFX)windows.o $(TARGETPFX)wizard.o $(TARGETPFX)wizcmds.o \
|
||||
$(TARGETPFX)worm.o $(TARGETPFX)worn.o $(TARGETPFX)write.o \
|
||||
$(TARGETPFX)zap.o \
|
||||
$(REGEXOBJ) $(RANDOBJ) $(SYSOBJ) $(WINOBJ) \
|
||||
$(HINTOBJ) $(SNDLIBOBJ) $(UUIDOBJ) \
|
||||
$(TARGETPFX)version.o
|
||||
|
||||
DATE_O = $(TARGETPFX)date.o
|
||||
@@ -643,8 +647,10 @@ DATE_O = $(TARGETPFX)date.o
|
||||
all: $(GAME)
|
||||
@echo ""
|
||||
|
||||
create_responsefiles:
|
||||
../src/nethack_cc.rsp:
|
||||
echo $(CC_COMPILER_SWITCHES) >$(CC_RESPONSEFILE)
|
||||
|
||||
../src/nethack_cxx.rsp:
|
||||
echo $(CXX_COMPILER_SWITCHES) >$(CXX_RESPONSEFILE)
|
||||
|
||||
pregame: $(RESPONSEFILES)
|
||||
@@ -653,45 +659,55 @@ pregame: $(RESPONSEFILES)
|
||||
$(GAME): pregame $(MAKEDEFS) $(LUALIB) $(WAVS) $(SYSTEM)
|
||||
@echo "$(GAME) is up to date."
|
||||
|
||||
Sysunix: $(HOSTOBJ) $(HOBJ) $(TARGET_HACKLIB) $(DATE_O) $(BUILDMORE) Makefile
|
||||
#$(info DATE_O=$(DATE_O))
|
||||
#$(info GENTILEOFILE=$(GENTILEOFILE))
|
||||
|
||||
Sysunix: $(HOSTOBJ) $(HOBJ) $(GENTILEOFILE) $(TARGET_HACKLIB) \
|
||||
$(DATE_O) $(BUILDMORE) Makefile
|
||||
@echo "Linking $(GAME)."
|
||||
$(AT)$(TARGET_LINK) $(TARGET_LFLAGS) -o $(GAMEBIN) \
|
||||
$(HOBJ) $(DATE_O) $(TARGET_HACKLIB) $(WINLIB) \
|
||||
$(HOBJ) $(DATE_O) $(GENTILEOFILE) \
|
||||
$(TARGET_HACKLIB) $(WINLIB) \
|
||||
$(TARGET_LIBS) $(LUALIBS) $(AUTOLIBS)
|
||||
@touch Sysunix
|
||||
|
||||
Sys3B2: $(HOSTOBJ) $(HOBJ) $(TARGET_HACKLIB) $(DATE_O) $(BUILDMORE) Makefile
|
||||
Sys3B2: $(HOSTOBJ) $(HOBJ) $(GENTILEOFILE) $(TARGET_HACKLIB) \
|
||||
$(DATE_O) $(BUILDMORE) Makefile
|
||||
@echo "Linking $(GAME)."
|
||||
$(AT)$(TARGET_LINK) $(TARGET_LFLAGS) -o $(GAMEBIN) \
|
||||
$(HOBJ) $(DATE_O) $(TARGET_HACKLIB) $(WINLIB) \
|
||||
$(LUALIBS) -lmalloc
|
||||
$(HOBJ) $(DATE_O) $(GENTILEOFILE) \
|
||||
$(TARGET_HACKLIB) $(WINLIB) $(LUALIBS) -lmalloc
|
||||
@touch Sys3B2
|
||||
|
||||
Sysatt: $(HOSTOBJ) $(HOBJ) $(TARGET_HACKLIB) $(DATE_O) $(BUILDMORE) Makefile
|
||||
Sysatt: $(HOSTOBJ) $(HOBJ) $(GENTILEOFILE) $(TARGET_HACKLIB) \
|
||||
$(DATE_O) $(BUILDMORE) Makefile
|
||||
@echo "Loading $(GAME)."
|
||||
$(AT)$(LD) $(TARGET_LFLAGS) /lib/crt0s.o /lib/shlib.ifile \
|
||||
-o $(GAMEBIN) $(HOSTOBJ) $(HOBJ) $(DATE_O) $(TARGET_HACKLIB) \
|
||||
$(LUALIBS)
|
||||
-o $(GAMEBIN) $(HOSTOBJ) $(HOBJ) \
|
||||
$(DATE_O) $(GENTILEOFILE) $(TARGET_HACKLIB) $(LUALIBS)
|
||||
@touch Sysatt
|
||||
|
||||
Systos: $(HOSTOBJ) $(HOBJ) $(TARGET_HACKLIB) $(DATE_O) $(BUILDMORE) Makefile
|
||||
Systos: $(HOSTOBJ) $(HOBJ) $(GENTILEOFILE) $(TARGET_HACKLIB) \
|
||||
$(DATE_O) $(BUILDMORE) Makefile
|
||||
@echo "Linking $(GAME)."
|
||||
$(AT)$(TARGET_LINK) $(TARGET_LFLAGS) -o $(GAMEBIN) \
|
||||
$(HOBJ) $(DATE_O) $(TARGET_HACKLIB) \
|
||||
$(HOBJ) $(DATE_O) $(GENTILEOFILE) $(TARGET_HACKLIB) \
|
||||
$(WINLIB) $(LUALIBS)
|
||||
@touch Systos
|
||||
|
||||
SysV-AT: DUMB.Setup $(HOSTOBJ) $(HOBJ) $(TARGET_HACKLIB) $(DATE_O) $(BUILDMORE) Makefile
|
||||
SysV-AT: DUMB.Setup $(HOSTOBJ) $(HOBJ) $(GENTILEOFILE) $(TARGET_HACKLIB) \
|
||||
$(DATE_O) $(BUILDMORE) Makefile
|
||||
@echo "Linking $(GAME)."
|
||||
$(AT)$(TARGET_LINK) $(TARGET_LFLAGS) -o $(GAMEBIN) \
|
||||
$(HOBJ) $(DATE_O) $(TARGET_HACKLIB) \
|
||||
$(HOBJ) $(DATE_O) $(GENTILEOFILE) $(TARGET_HACKLIB) \
|
||||
$(WINLIB) $(LUALIBS)
|
||||
@touch SysV-AT
|
||||
|
||||
SysBe: $(HOSTOBJ) $(HOBJ) $(TARGET_HACKLIB) $(DATE_O) $(BUILDMORE) Makefile
|
||||
SysBe: $(HOSTOBJ) $(HOBJ) $(GENTILEOFILE) $(TARGET_HACKLIB) \
|
||||
$(DATE_O) $(BUILDMORE) Makefile
|
||||
@echo "Linking $(GAME)."
|
||||
$(AT)$(TARGET_LINK) $(TARGET_LFLAGS) -o $(GAME) \
|
||||
$(HOBJ) $(DATE_O) $(TARGET_HACKLIB) \
|
||||
$(HOBJ) $(DATE_O) $(GENTILEOFILE) $(TARGET_HACKLIB) \
|
||||
$(WINLIB) $(TARGET_LIBS) $(LUALIBS)
|
||||
@xres -o $(GAME) ../win/BeOS/nethack.rsrc
|
||||
@mimeset -f $(GAME)
|
||||
@@ -743,7 +759,7 @@ qt3tableview.moc: ../win/Qt3/qt3tableview.h
|
||||
$(QTDIR)/bin/moc -o qt3tableview.moc ../win/Qt3/qt3tableview.h
|
||||
|
||||
# build monst.o and objects.o before executing '$(MAKE) makedefs'
|
||||
$(MAKEDEFS): $(FIRSTOBJ) \
|
||||
$(MAKEDEFS): $(RESPONSEFILES) $(FIRSTOBJ) \
|
||||
../util/makedefs.c ../src/mdlib.c $(CONFIG_H) \
|
||||
../include/permonst.h ../include/monsters.h \
|
||||
../include/objclass.h ../include/objects.h ../include/sym.h \
|
||||
@@ -761,7 +777,7 @@ $(MAKEDEFS): $(FIRSTOBJ) \
|
||||
@( cd ../util ; $(MAKE) ../include/pm.h )
|
||||
# Created at build time for configurations which support tiles,
|
||||
# but not by makedefs so not connected to the others.
|
||||
tile.c: ../win/share/tilemap.c $(HACK_H)
|
||||
../src/tile.c: $(RESPONSEFILES) ../win/share/tilemap.c $(HACK_H)
|
||||
@( cd ../util ; $(MAKE) ../src/tile.c )
|
||||
|
||||
#
|
||||
@@ -779,7 +795,7 @@ $(TARGETPFX)sfbase.o: sfbase.c $(HACK_H) ../include/sfprocs.h ../include/sfmacro
|
||||
# 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)
|
||||
$(TARGETPFX)date.o: date.c $(GENTILECFILE) $(HACK_H) $(HACKCSRC) $(HOBJ) $(TARGET_HACKLIB)
|
||||
$(TARGET_CC) $(DATECFLAGS) -c -o $@ date.c
|
||||
|
||||
# date.h should be remade any time any of the source or include code
|
||||
@@ -790,7 +806,7 @@ $(TARGETPFX)date.o: date.c $(HACK_H) $(HACKCSRC) $(HOBJ) $(TARGET_HACKLIB)
|
||||
# Do NOT include ../dat/gitinfo.txt as either a prerequisite or target.
|
||||
# 'makedefs -v' processes it when present and ignores it if not.
|
||||
#
|
||||
../include/date.h: ../util/makedefs $(VERSOURCES) $(HACK_H)
|
||||
../include/date.h: $(RESPONSEFILES) ../util/makedefs $(VERSOURCES) $(HACK_H)
|
||||
-$(SHELL) ../sys/unix/gitinfo.sh $(GITINFO) #before 'makedefs -v'
|
||||
../util/makedefs -v
|
||||
|
||||
@@ -820,7 +836,7 @@ spotless: clean
|
||||
-rm -f ../include/nhlua.h
|
||||
-rm -f ../include/date.h #created but no longer used, at least by core
|
||||
-rm -f ../include/onames.h ../include/pm.h #obsolete generated files
|
||||
-rm -f tile.c *.moc Qt*.h-t
|
||||
-rm -f $(GENTILECFILE) *.moc Qt*.h-t
|
||||
-rm -f ../win/gnome/gn_rip.h
|
||||
|
||||
package:
|
||||
@@ -852,7 +868,7 @@ updatedepend-setup:
|
||||
echo '#include "../$(LUAHEADERS)/lualib.h"' >> $$HFILE && \
|
||||
echo '#include "../$(LUAHEADERS)/lauxlib.h"' >> $$HFILE && \
|
||||
echo '/*nhlua.h*/' >> $$HFILE )
|
||||
@echo "Generating bogus src/tile.c"
|
||||
@echo "Generating bogus $(GENTILECFILE)"
|
||||
@echo '#error bogus include/nhlua.h' > ../../src/tile.c
|
||||
@echo "#include \"hack.h\"" >> ../../src/tile.c
|
||||
|
||||
@@ -877,7 +893,8 @@ depend2: $(WINQTMOC)
|
||||
@echo '# see make depend above' >> $(MAKEFILE_NAME)
|
||||
- diff Makefile.bak $(MAKEFILE_NAME)
|
||||
@rm -f Makefile.bak
|
||||
@rm -f ../include/nhlua.h tile.c
|
||||
@rm -f ../include/nhlua.h $(GENTILECFILE)
|
||||
|
||||
|
||||
# DO NOT DELETE THIS LINE OR CHANGE ANYTHING BEYOND IT
|
||||
|
||||
@@ -896,19 +913,19 @@ $(HACK_H): $(CONFIG_H) ../include/align.h ../include/artilist.h \
|
||||
../include/decl.h ../include/defsym.h ../include/display.h \
|
||||
../include/dungeon.h ../include/engrave.h ../include/flag.h \
|
||||
../include/hack.h ../include/lint.h ../include/mextra.h \
|
||||
../include/mcastu.h \
|
||||
../include/mkroom.h ../include/monattk.h ../include/mondata.h \
|
||||
../include/monflag.h ../include/monst.h ../include/monsters.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/mcastu.h ../include/mkroom.h ../include/monattk.h \
|
||||
../include/mondata.h ../include/monflag.h ../include/monst.h \
|
||||
../include/monsters.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/revision.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/weight.h ../include/winprocs.h \
|
||||
../include/wintype.h ../include/you.h ../include/youprop.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/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)
|
||||
@@ -1070,6 +1087,8 @@ $(TARGETPFX)winX.o: ../win/X11/winX.c $(HACK_H) ../include/dlb.h \
|
||||
../include/winX.h ../include/xwindow.h ../win/X11/nh32icon \
|
||||
../win/X11/nh56icon ../win/X11/nh72icon
|
||||
$(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -c -o $@ ../win/X11/winX.c
|
||||
$(TARGETPFX)winlabel.o: ../win/X11/winlabel.c $(HACK_H) ../include/winX.h
|
||||
$(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -c -o $@ ../win/X11/winlabel.c
|
||||
$(TARGETPFX)winmap.o: ../win/X11/winmap.c $(HACK_H) ../include/dlb.h \
|
||||
../include/tile2x11.h ../include/winX.h ../include/xwindow.h
|
||||
$(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -c -o $@ ../win/X11/winmap.c
|
||||
@@ -1089,6 +1108,18 @@ $(TARGETPFX)wintext.o: ../win/X11/wintext.c $(HACK_H) ../include/winX.h \
|
||||
$(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -c -o $@ ../win/X11/wintext.c
|
||||
$(TARGETPFX)winval.o: ../win/X11/winval.c $(HACK_H) ../include/winX.h
|
||||
$(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -c -o $@ ../win/X11/winval.c
|
||||
$(TARGETPFX)tileset.o: ../win/share/tileset.c $(CONFIG_H) \
|
||||
../include/objclass.h ../include/flag.h ../include/tileset.h
|
||||
$(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -c -o $@ ../win/share/tileset.c
|
||||
$(TARGETPFX)bmptiles.o: ../win/share/bmptiles.c $(CONFIG_H) \
|
||||
../include/objclass.h ../include/tileset.h
|
||||
$(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -c -o $@ ../win/share/bmptiles.c
|
||||
$(TARGETPFX)giftiles.o: ../win/share/giftiles.c $(CONFIG_H) \
|
||||
../include/objclass.h ../include/tileset.h
|
||||
$(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -c -o $@ ../win/share/giftiles.c
|
||||
$(TARGETPFX)pngtiles.o: ../win/share/pngtiles.c $(CONFIG_H) \
|
||||
../include/objclass.h ../include/tileset.h
|
||||
$(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -c -o $@ ../win/share/pngtiles.c
|
||||
$(TARGETPFX)wc_chainin.o: ../win/chain/wc_chainin.c $(HACK_H)
|
||||
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../win/chain/wc_chainin.c
|
||||
$(TARGETPFX)wc_chainout.o: ../win/chain/wc_chainout.c $(HACK_H)
|
||||
@@ -1245,6 +1276,7 @@ $(TARGETPFX)rect.o: rect.c $(HACK_H)
|
||||
$(TARGETPFX)region.o: region.c $(HACK_H)
|
||||
$(TARGETPFX)report.o: report.c $(HACK_H) ../include/dlb.h ../include/nhmd4.h
|
||||
$(TARGETPFX)restore.o: restore.c $(HACK_H) ../include/tcap.h
|
||||
$(TARGETPFX)revision.o: revision.c $(HACK_H)
|
||||
$(TARGETPFX)rip.o: rip.c $(HACK_H)
|
||||
$(TARGETPFX)rnd.o: rnd.c $(HACK_H) ../include/isaac64.h
|
||||
$(TARGETPFX)role.o: role.c $(HACK_H)
|
||||
@@ -1265,7 +1297,7 @@ $(TARGETPFX)strutil.o: strutil.c $(HACK_H)
|
||||
$(TARGETPFX)symbols.o: symbols.c $(HACK_H) ../include/tcap.h
|
||||
$(TARGETPFX)sys.o: sys.c $(HACK_H)
|
||||
$(TARGETPFX)teleport.o: teleport.c $(HACK_H)
|
||||
$(TARGETPFX)tile.o: tile.c $(HACK_H)
|
||||
$(TARGETPFX)tile.o: $(SRCDIR)/tile.c $(HACK_H)
|
||||
$(TARGETPFX)timeout.o: timeout.c $(HACK_H)
|
||||
$(TARGETPFX)topten.o: topten.c $(HACK_H) ../include/dlb.h
|
||||
$(TARGETPFX)track.o: track.c $(HACK_H)
|
||||
|
||||
+90
-43
@@ -1,5 +1,5 @@
|
||||
# NetHack Top-level Makefile.
|
||||
# NetHack 3.7 Makefile.top $NHDT-Date: 1722119081 2024/07/27 22:24:41 $ $NHDT-Branch: keni-fetchlua $:$NHDT-Revision: 1.109 $
|
||||
# NetHack 5.0 Makefile.top $NHDT-Date: 1722119081 2024/07/27 22:24:41 $ $NHDT-Branch: keni-fetchlua $:$NHDT-Revision: 1.109 $
|
||||
# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
|
||||
@@ -27,6 +27,7 @@ GAME = nethack
|
||||
# GAME = nethack.prg
|
||||
#GAMEUID = games
|
||||
#GAMEGRP = bin
|
||||
TARGET_CC ?= $(CC)
|
||||
|
||||
# Permissions - some places use setgid instead of setuid, for instance.
|
||||
# See also the option "SECURE" in include/config.h.
|
||||
@@ -121,13 +122,15 @@ DAT = $(DATNODLB) $(DATDLB)
|
||||
RECOVERBIN = recover
|
||||
|
||||
# Lua
|
||||
LUAHEADERS = lib/lua-$(LUA_VERSION)/src
|
||||
LUATESTTARGET = $(LUAHEADERS)/lua.h
|
||||
LUAHEADERS ?= lib/lua-$(LUA_VERSION)/src
|
||||
LUATESTTARGET ?= $(LUAHEADERS)/lua.h
|
||||
LUATOP = $(LUAHEADERS)
|
||||
LUAMAKEFLAGS = CC='$(CC)' SYSCFLAGS='$(SYSCFLAGS)'
|
||||
LUA2NHTOP = ../../..
|
||||
LUABASELIB = liblua-$(LUA_VERSION).a
|
||||
TOPLUALIB = lib/lua/$(LUABASELIB)
|
||||
LUAMAKEFLAGS ?= CC='$(TARGET_CC)' SYSCFLAGS='$(SYSCFLAGS)'
|
||||
LUA2NHTOP ?= ../../..
|
||||
LUABASELIB ?= liblua-$(LUA_VERSION).a
|
||||
LUATOPLIB ?= lib/lua/$(LUABASELIB)
|
||||
LUAHPREFIX ?= ../
|
||||
LUALIBBUILT ?= $(LUATOP)/liblua.a
|
||||
|
||||
ALLDEP = $(PRECHECK) $(GAME) recover Guidebook $(VARDAT) spec_levs check-dlb
|
||||
|
||||
@@ -143,18 +146,18 @@ lua_support: include/nhlua.h
|
||||
@true
|
||||
$(LUATOP)/liblua.a: $(LUAHEADERS)/lua.h
|
||||
( cd $(LUATOP) && make $(LUAMAKEFLAGS) a )
|
||||
$(TOPLUALIB): $(LUATOP)/liblua.a
|
||||
lib/lua/$(LUABASELIB): $(LUALIBBUILT)
|
||||
@( if test -d lib/lua ; then true ; else mkdir -p lib/lua ; fi )
|
||||
cp $(LUATOP)/liblua.a $@
|
||||
|
||||
include/nhlua.h: $(TOPLUALIB)
|
||||
include/nhlua.h: $(LUATOPLIB)
|
||||
echo '/* nhlua.h - generated by top Makefile */' > $@
|
||||
@echo '#include "../$(LUAHEADERS)/lua.h"' >> $@
|
||||
@echo '#include "$(LUAHPREFIX)$(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 '#include "$(LUAHPREFIX)$(LUAHEADERS)/lualib.h"' >> $@
|
||||
@echo '#include "$(LUAHPREFIX)$(LUAHEADERS)/lauxlib.h"' >> $@
|
||||
@echo '/*nhlua.h*/' >> $@
|
||||
# LUATESTTARGET is this by default
|
||||
lib/lua-$(LUA_VERSION)/src/lua.h:
|
||||
@@ -275,7 +278,7 @@ check-dlb: options
|
||||
|
||||
dlb:
|
||||
( cd util ; $(MAKE) dlb )
|
||||
( cd dat ; LC_ALL=C ; ../util/dlb cf nhdat $(DATDLB) )
|
||||
( cd dat ; $(MAKE) DATDLB="$(DATDLB)" nhdat )
|
||||
|
||||
wasm:
|
||||
( cd src ; $(MAKE) CROSS_TO_WASM=1 ../targets/wasm/nethack.js )
|
||||
@@ -342,7 +345,15 @@ LUA_URL :=www.lua.org/ftp
|
||||
LUA_URL_MIRROR :=www.tecgraf.puc-rio.br/lua/mirror/ftp
|
||||
LUA_URL_NHD :=www.nethack.org/download/thirdparty
|
||||
LUA_URL_list:=$(LUA_URL) $(LUA_URL_MIRROR) $(LUA_URL_NHD)
|
||||
#
|
||||
#CURL := curl
|
||||
#ask curl to return a failure code if error 404 is encountered
|
||||
CURL := curl -q --fail --no-progress-meter
|
||||
|
||||
# Set this to 1 to bypass checksum verification. _Highly_ discouraged.
|
||||
#NOCHKSUM=1
|
||||
|
||||
#debugging targets
|
||||
fetch-lua-mirror: LUA_URL_list:=$(LUA_URL_MIRROR)
|
||||
fetch-lua-mirror: fetch-Lua
|
||||
@true
|
||||
@@ -351,54 +362,90 @@ fetch-lua-nhd: LUA_URL_list:=$(LUA_URL_NHD)
|
||||
fetch-lua-nhd: fetch-Lua
|
||||
@true
|
||||
|
||||
# normal entry point
|
||||
fetch-lua: fetch-Lua
|
||||
@true
|
||||
|
||||
fetch-Lua:
|
||||
@( \
|
||||
shac1=`command -v shasum`; \
|
||||
shac2=`command -v sha256sum`; \
|
||||
if [ ! -z $$shac1 ]; then \
|
||||
shac="$$shac1 -a 256"; elif [ ! -z $$shac2 ]; then \
|
||||
shac=$$shac2; else echo "CAUTION: no way to check integrity"; \
|
||||
fi; \
|
||||
set -- DUMMY $(LUA_URL_list); \
|
||||
luafile=lua-$(LUA_VERSION).tar.gz; \
|
||||
export curlstatus=1; \
|
||||
mkdir -p lib && cd lib && \
|
||||
while [ $$# -gt 0 ]; do \
|
||||
`: $1 = file to check`; \
|
||||
chksum_or_fail(){ \
|
||||
local shac shac1 shac2; \
|
||||
shac1=`command -v shasum`; \
|
||||
shac2=`command -v sha256sum`; \
|
||||
if [ ! -z $$shac1 ]; then \
|
||||
shac="$$shac1 -a 256"; \
|
||||
elif [ ! -z $$shac2 ]; then \
|
||||
shac=$$shac2; \
|
||||
else \
|
||||
echo "CAUTION: no way to check integrity"; \
|
||||
echo "Rerun with 'NOCHKSUM=1' to skip this check"; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
echo "Checking integrity of $$1 with $$shac"; \
|
||||
$$shac -w --ignore-missing -c $$CHKSUMSTMP < $$1; \
|
||||
if [ $$? -ne 0 ]; then \
|
||||
echo "Integrity check FAILED - STOPPING"; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
echo "Integrity check passed"; \
|
||||
}; \
|
||||
`: $1 = name of tarfile`; \
|
||||
untar_and_cleanup(){ \
|
||||
echo "Unpacking $$1"; \
|
||||
tar zxf $$1; \
|
||||
if [ $$? -eq '0' ]; then \
|
||||
rm -f $$1; \
|
||||
echo "Unpacked successfully into `pwd`"; \
|
||||
return 0; \
|
||||
else \
|
||||
echo "tar failed to extract $$1 - trying next source"; \
|
||||
return 1; \
|
||||
fi; \
|
||||
}; \
|
||||
`: main`; \
|
||||
set -- $(LUA_URL_list); \
|
||||
luafile=lua-$(LUA_VERSION).tar.gz; \
|
||||
mkdir -p lib; \
|
||||
cd lib || { \
|
||||
echo "Unable to find lib directory"; \
|
||||
exit 1; \
|
||||
}; \
|
||||
while [ $$# -gt 0 ]; do \
|
||||
iter=$$1; \
|
||||
shift; \
|
||||
if [ $$curlstatus -ne 0 ]; then \
|
||||
luaurl=https://$$1/$$luafile; \
|
||||
echo Trying $$luaurl; \
|
||||
curl -R -O $$luaurl; \
|
||||
curlstatus=$$?; \
|
||||
if [ $$curlstatus -eq 0 ]; then \
|
||||
if [ ! -z "$$shac" ]; then \
|
||||
luaurl=https://$$iter/$$luafile; \
|
||||
echo "Fetching $$luaurl"; \
|
||||
if $(CURL) -R -O $$luaurl ; then \
|
||||
if [ -z $(NOCHKSUM) ]; then \
|
||||
echo "Searching for known checksum"; \
|
||||
CHKSUMS=../submodules/CHKSUMS; \
|
||||
CHKSUMSTMP=../submodules/CHKSUMS.tmp; \
|
||||
fgrep $$luafile < $$CHKSUMS > $$CHKSUMSTMP; \
|
||||
if [ -z $$CHKSUMSTMP ]; then \
|
||||
echo "Cannot check $$luafile - no checksum known"; \
|
||||
echo "Cannot check $$luafile - no checksum known"; \
|
||||
echo "Rerun with 'NOCHKSUM=1' to skip this check"; \
|
||||
exit 1; \
|
||||
else \
|
||||
echo Checking integrity of $$luafile with $$shac; \
|
||||
$$shac -w --ignore-missing -c $$CHKSUMSTMP < $$luafile; \
|
||||
echo "Checksum found"; \
|
||||
chksum_or_fail $$luafile; \
|
||||
fi; \
|
||||
fi; \
|
||||
tar zxf $$luafile && \
|
||||
rm -f $$luafile; \
|
||||
fi; \
|
||||
fi; \
|
||||
`: If we can unpack it, we are done.`; \
|
||||
untar_and_cleanup $$luafile && exit 0; \
|
||||
`: fallthrough to next source `; \
|
||||
fi; \
|
||||
done; \
|
||||
true )
|
||||
|
||||
done; \
|
||||
echo "Unable to find a valid source - STOPPING" \
|
||||
exit 1; \
|
||||
)
|
||||
# remove include/nhlua.h in case it was created for some other Lua version
|
||||
@( if test -f include/nhlua.h ; then \
|
||||
rm -f include/nhlua.h && echo 'rm include/nhlua.h' ; fi )
|
||||
rm -f include/nhlua.h && echo 'rm include/nhlua.h' ; fi )
|
||||
|
||||
fetch-lua-http:
|
||||
( mkdir -p lib && cd lib && \
|
||||
curl -R -O http://$(LUA_URL)/lua-$(LUA_VERSION).tar.gz && \
|
||||
$(CURL) -R -O http://$(LUA_URL)/lua-$(LUA_VERSION).tar.gz && \
|
||||
tar zxf lua-$(LUA_VERSION).tar.gz && \
|
||||
rm -f lua-$(LUA_VERSION).tar.gz )
|
||||
|
||||
|
||||
+46
-41
@@ -1,15 +1,16 @@
|
||||
# Makefile for NetHack's utility programs.
|
||||
# NetHack 3.7 Makefile.utl $NHDT-Date: 1693334279 2023/08/29 18:37:59 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.68 $
|
||||
# NetHack 5.0 Makefile.utl $NHDT-Date: 1693334279 2023/08/29 18:37:59 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.68 $
|
||||
# Copyright (c) 2018 by Robert Patrick Rankin
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
|
||||
#
|
||||
# Note: as of nethack 3.7, 'lev_comp' and 'dgn_comp' are no longer present
|
||||
# Note: as of NetHack 5.0, 'lev_comp' and 'dgn_comp' are no longer present
|
||||
# so use of yacc and lex to build them is no longer required.
|
||||
#
|
||||
|
||||
# Root of source tree:
|
||||
NHSROOT=..
|
||||
SRCDIR = $(NHSROOT)/src
|
||||
|
||||
# newer makes predefine $(MAKE) to 'make' and do smarter processing of
|
||||
# recursive make calls if $(MAKE) is used
|
||||
@@ -23,7 +24,7 @@ NHSROOT=..
|
||||
# execute things like 'foo.o')
|
||||
# MAKE = make
|
||||
|
||||
# NetHack 3.7 began introducing C99 code.
|
||||
# NetHack 5.0 began introducing C99 code.
|
||||
#
|
||||
# If your compiler needs an appropriate switch to accept C99 code.
|
||||
# CSTD = -std=c99
|
||||
@@ -88,7 +89,7 @@ NHSROOT=..
|
||||
# flags for Linux
|
||||
# compile normally
|
||||
# CFLAGS = -O2 -fomit-frame-pointer -I../include
|
||||
# LFLAGS = -L/usr/X11R6/lib
|
||||
# LFLAGS = -L/usr/lib64
|
||||
# OR compile backwards compatible a.out format
|
||||
# CFLAGS = -O2 -b i486-linuxaout -fomit-frame-pointer -I../include
|
||||
# LFLAGS = -b i486-linuxaout -L/usr/X11R6/lib
|
||||
@@ -143,6 +144,8 @@ QUIETCC=0
|
||||
CLINK=$(CC)
|
||||
CXXLINK=$(CXX)
|
||||
|
||||
CCRESP=$(CC_RESPONSEFILE)
|
||||
|
||||
# ----------------------------------------
|
||||
#
|
||||
# Nothing below this line should have to be changed.
|
||||
@@ -222,18 +225,18 @@ DLBOBJS = dlb_main.o $(OBJDIR)/dlb.o $(OALLOC)
|
||||
# files or on the command line.
|
||||
|
||||
TARGETPFX=
|
||||
TARGET_CC = $(CC)
|
||||
TARGET_CFLAGS = $(CFLAGS) $(CSTD)
|
||||
TARGET_CLINK = $(CLINK)
|
||||
TARGET_LFLAGS = $(LFLAGS)
|
||||
TARGET_CXX = $(CXX)
|
||||
TARGET_CXXFLAGS = $(CXXFLAGS)
|
||||
TARGET_AR = $(AR)
|
||||
TARGET_CC ?= $(CC)
|
||||
TARGET_CFLAGS ?= $(CFLAGS) $(CSTD)
|
||||
TARGET_CLINK ?= $(CLINK)
|
||||
TARGET_LFLAGS ?= $(LFLAGS)
|
||||
TARGET_CXX ?= $(CXX)
|
||||
TARGET_CXXFLAGS ?= $(CXXFLAGS)
|
||||
TARGET_AR ?= $(AR)
|
||||
|
||||
#
|
||||
# dependencies for makedefs
|
||||
#
|
||||
makedefs: $(HACKLIB) $(MAKEOBJS) mdgrep.h
|
||||
makedefs: $(CCRESP) $(HACKLIB) $(MAKEOBJS) mdgrep.h
|
||||
$(CLINK) $(LFLAGS) -o makedefs $(MAKEOBJS) $(HACKLIB)
|
||||
|
||||
|
||||
@@ -275,9 +278,11 @@ $(HACKLIB): $(CONFIG_H) $(HACKLIBSRC) panic.o
|
||||
@( cd ../src ; $(MAKE) hacklib.a )
|
||||
|
||||
# support code used by several of the utility programs (but not makedefs)
|
||||
panic.o: panic.c $(CONFIG_H)
|
||||
panic.o: $(CCRESP) panic.c $(CONFIG_H)
|
||||
$(CC) $(CFLAGS) $(CSTD) -c panic.c -o $@
|
||||
|
||||
../src/nethack_cc.rsp:
|
||||
( cd ../src; $(MAKE) ../src/nethack_cc.rsp )
|
||||
|
||||
# with all of extern.h's functions to complain about, we drown in
|
||||
# 'defined but not used' without -u
|
||||
@@ -288,7 +293,7 @@ lintdgn:
|
||||
|
||||
# dependencies for recover
|
||||
#
|
||||
recover: $(RECOVOBJS) $(HACKLIB)
|
||||
recover: $(CCRESP) $(RECOVOBJS) $(HACKLIB)
|
||||
$(CLINK) $(LFLAGS) -o recover \
|
||||
$(RECOVOBJS) $(HACKLIB) $(LIBS)
|
||||
|
||||
@@ -324,7 +329,7 @@ SFCTOOLBIN = sfctool
|
||||
SFFLAGS=-DSFCTOOL -DNOPANICTRACE -DNOCRASHREPORT -DNO_CHRONICLE
|
||||
sfutil: $(SFCTOOLBIN)
|
||||
@echo '$(SFCTOOLBIN) is up to date.'
|
||||
$(SFCTOOLBIN): $(SFCTOOLOBJS) $(HACKLIB)
|
||||
$(SFCTOOLBIN): $(CCRESP) $(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
|
||||
@@ -398,7 +403,7 @@ sftags: sftags.o $(HACKLIB) $(TARGETPFX)sf-alloc.o $(TARGETPFX)panic.o
|
||||
$(CLINK) $(LFLAGS) -o $@ sftags.o \
|
||||
$(TARGETPFX)sf-alloc.o $(TARGETPFX)panic.o \
|
||||
$(HACKLIB) $(LIBS)
|
||||
sftags.o: sftags.c $(HACK_H)
|
||||
sftags.o: $(CCRESP) sftags.c $(HACK_H)
|
||||
$(CC) $(CFLAGS) -c sftags.c
|
||||
../include/sfproto.h: sf.tags sftags
|
||||
./sftags
|
||||
@@ -467,13 +472,13 @@ sf.tags: $(CTAGDEP)
|
||||
dlb: $(DLBOBJS) $(HACKLIB)
|
||||
$(CLINK) $(LFLAGS) -o dlb $(DLBOBJS) $(HACKLIB) $(LIBS)
|
||||
|
||||
dlb_main.o: dlb_main.c $(CONFIG_H) ../include/dlb.h
|
||||
dlb_main.o: $(CCRESP) 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
|
||||
stripbs.o: $(CCRESP) stripbs.c
|
||||
$(CC) $(CFLAGS) -c stripbs.c
|
||||
|
||||
# dependencies for tile utilities
|
||||
@@ -520,38 +525,38 @@ tilemap: tilemap.o $(OBJDIR)/objects.o $(OBJDIR)/monst.o $(OBJDIR)/drawing.o \
|
||||
../src/tile.c: tilemap
|
||||
./tilemap
|
||||
|
||||
tiletext.o: ../win/share/tiletext.c $(CONFIG_H) ../win/share/tile.h
|
||||
$(CC) $(CFLAGS) $(CSTD) -I../win/share -c ../win/share/tiletext.c -o $@
|
||||
tiletxt.o: ../win/share/tiletxt.c ../win/share/tilemap.c $(HACK_H)
|
||||
tiletext.o: $(CCRESP) ../win/share/tiletext.c $(CONFIG_H) ../win/share/tile.h
|
||||
$(CC) $(CFLAGS) $(NO_WARN_DISCARDED_QUALIFIERS) $(CSTD) -I../win/share -c ../win/share/tiletext.c -o $@
|
||||
tiletxt.o: $(CCRESP) ../win/share/tiletxt.c ../win/share/tilemap.c $(HACK_H)
|
||||
$(CC) $(CFLAGS) $(CSTD) -I../win/share -c ../win/share/tiletxt.c -o $@
|
||||
tilemap.o: ../win/share/tilemap.c $(HACK_H)
|
||||
tilemap.o: $(CCRESP) ../win/share/tilemap.c $(HACK_H)
|
||||
$(CC) $(CFLAGS) $(CSTD) -c ../win/share/tilemap.c -o $@
|
||||
|
||||
gifread.o: ../win/share/gifread.c $(CONFIG_H) ../win/share/tile.h
|
||||
gifread.o: $(CCRESP) ../win/share/gifread.c $(CONFIG_H) ../win/share/tile.h
|
||||
$(CC) $(CFLAGS) $(CSTD) -I../win/share -c ../win/share/gifread.c -o $@
|
||||
ppmwrite.o: ../win/share/ppmwrite.c $(CONFIG_H) ../win/share/tile.h
|
||||
ppmwrite.o: $(CCRESP) ../win/share/ppmwrite.c $(CONFIG_H) ../win/share/tile.h
|
||||
$(CC) $(CFLAGS) $(CSTD) -I../win/share -c ../win/share/ppmwrite.c -o $@
|
||||
|
||||
tile2bmp.o: ../win/share/tile2bmp.c $(HACK_H) ../win/share/tile.h
|
||||
tile2bmp.o: $(CCRESP) ../win/share/tile2bmp.c $(HACK_H) ../win/share/tile.h
|
||||
$(CC) $(CFLAGS) $(CSTD) -I../win/share -c ../win/share/tile2bmp.c -o $@
|
||||
|
||||
tile2x11.o: ../win/X11/tile2x11.c $(HACK_H) ../win/share/tile.h \
|
||||
tile2x11.o: $(CCRESP) ../win/X11/tile2x11.c $(HACK_H) ../win/share/tile.h \
|
||||
../include/tile2x11.h
|
||||
$(CC) $(CFLAGS) $(CSTD) -I../win/share -c ../win/X11/tile2x11.c -o $@
|
||||
|
||||
tile2img.o: ../win/gem/tile2img.c $(HACK_H) ../win/share/tile.h \
|
||||
tile2img.o: $(CCRESP) ../win/gem/tile2img.c $(HACK_H) ../win/share/tile.h \
|
||||
../include/bitmfile.h
|
||||
$(CC) $(CFLAGS) $(CSTD) -I../win/share -c ../win/gem/tile2img.c -o $@
|
||||
xpm2img.o: ../win/gem/xpm2img.c $(HACK_H) ../include/bitmfile.h
|
||||
xpm2img.o: $(CCRESP) ../win/gem/xpm2img.c $(HACK_H) ../include/bitmfile.h
|
||||
$(CC) $(CFLAGS) $(CSTD) -c ../win/gem/xpm2img.c -o $@
|
||||
bitmfile.o: ../win/gem/bitmfile.c ../include/bitmfile.h
|
||||
bitmfile.o: $(CCRESP) ../win/gem/bitmfile.c ../include/bitmfile.h
|
||||
$(CC) $(CFLAGS) $(CSTD) -c ../win/gem/bitmfile.c -o $@
|
||||
|
||||
tile2beos.o: ../win/BeOS/tile2beos.cpp $(HACK_H) ../win/share/tile.h
|
||||
tile2beos.o: $(CCRESP) ../win/BeOS/tile2beos.cpp $(HACK_H) ../win/share/tile.h
|
||||
$(CXX) $(CFLAGS) $(CSTD) -I../win/share -c ../win/BeOS/tile2beos.cpp -o $@
|
||||
|
||||
# note: tileedit.cpp was developed for Qt2 and will not compile using Qt5
|
||||
tileedit.o: ../win/Qt/tileedit.cpp
|
||||
tileedit.o: $(CCRESP) ../win/Qt/tileedit.cpp
|
||||
$(CXX) -I../include -I$(QTDIR)/include ../win/Qt/tileedit.cpp
|
||||
tileedit: tileedit.o $(TEXT_IO)
|
||||
$(QTDIR)/bin/moc -o tileedit.moc tileedit.h
|
||||
@@ -559,7 +564,7 @@ tileedit: tileedit.o $(TEXT_IO)
|
||||
|
||||
uudecode: uudecode.o
|
||||
$(CLINK) $(LFLAGS) -o uudecode uudecode.o $(LIBS)
|
||||
uudecode.o: ../sys/share/uudecode.c
|
||||
uudecode.o: $(CCRESP) ../sys/share/uudecode.c
|
||||
$(CC) $(CFLAGS) $(CSTD) -c -o uudecode.o ../sys/share/uudecode.c
|
||||
|
||||
# using dependencies like
|
||||
@@ -576,27 +581,27 @@ uudecode.o: ../sys/share/uudecode.c
|
||||
# make sure host object files from src are available when needed
|
||||
# (note: these dependencies have been copied from Makefile.src so only come
|
||||
# indirectly from 'make depend', hence are subject to bit rot as src changes)
|
||||
$(OBJDIR)/alloc.o: ../src/alloc.c $(CONFIG_H) ../include/nhlua.h
|
||||
$(OBJDIR)/alloc.o: $(CCRESP) ../src/alloc.c $(CONFIG_H) ../include/nhlua.h
|
||||
$(CC) $(CFLAGS) $(CSTD) -c ../src/alloc.c -o $@
|
||||
$(OBJDIR)/drawing.o: ../src/drawing.c $(CONFIG_H) ../include/color.h \
|
||||
$(OBJDIR)/drawing.o: $(CCRESP) ../src/drawing.c $(CONFIG_H) ../include/color.h \
|
||||
../include/rm.h ../include/objclass.h ../include/defsym.h \
|
||||
../include/objects.h ../include/sym.h
|
||||
$(CC) $(CFLAGS) $(CSTD) -c ../src/drawing.c -o $@
|
||||
$(OBJDIR)/decl.o: ../src/decl.c $(HACK_H)
|
||||
$(OBJDIR)/decl.o: $(CCRESP) ../src/decl.c $(HACK_H)
|
||||
$(CC) $(CFLAGS) $(CSTD) -c ../src/decl.c -o $@
|
||||
$(OBJDIR)/monst.o: ../src/monst.c $(CONFIG_H) ../include/permonst.h \
|
||||
$(OBJDIR)/monst.o: $(CCRESP) ../src/monst.c $(CONFIG_H) ../include/permonst.h \
|
||||
../include/align.h ../include/monattk.h ../include/monflag.h \
|
||||
../include/monsters.h ../include/wintype.h ../include/sym.h \
|
||||
../include/defsym.h ../include/color.h
|
||||
$(CC) $(CFLAGS) $(CSTD) -c ../src/monst.c -o $@
|
||||
$(OBJDIR)/objects.o: ../src/objects.c $(CONFIG_H) ../include/obj.h \
|
||||
$(OBJDIR)/objects.o: $(CCRESP) ../src/objects.c $(CONFIG_H) ../include/obj.h \
|
||||
../include/prop.h ../include/skills.h ../include/color.h \
|
||||
../include/objclass.h ../include/defsym.h ../include/objects.h
|
||||
$(CC) $(CFLAGS) $(CSTD) -c ../src/objects.c -o $@
|
||||
$(OBJDIR)/dlb.o: ../src/dlb.c $(CONFIG_H) ../include/dlb.h
|
||||
$(OBJDIR)/dlb.o: $(CCRESP) ../src/dlb.c $(CONFIG_H) ../include/dlb.h
|
||||
$(CC) $(CFLAGS) $(CSTD) -c ../src/dlb.c -o $@
|
||||
# this differs substantially from what Makefile.src specifies
|
||||
$(OBJDIR)/date.o: ../src/date.c $(CONFIG_H)
|
||||
$(OBJDIR)/date.o: $(CCRESP) ../src/date.c $(CONFIG_H)
|
||||
$(CC) $(CFLAGS) $(CSTD) -c ../src/date.c -o $@
|
||||
../include/nhlua.h:
|
||||
@( cd .. ; $(MAKE) lua_support )
|
||||
@@ -612,10 +617,10 @@ tags: $(UTILSRCS)
|
||||
@ctags -tw $(UTILSRCS)
|
||||
|
||||
# note: 3.6 copied tile.h from win/share/ to include/ and if someone
|
||||
# switches branches from 3.6 to 3.7 without executing 'make spotless'
|
||||
# switches branches from 3.6 to 5.0 without executing 'make spotless'
|
||||
# first, the old tile.h sticks around and gets found during compile
|
||||
# instead of current one; various tile utilities won't build in that
|
||||
# mis-configuration so allow 'make clean' and 'make spotless' in 3.7
|
||||
# mis-configuration so allow 'make clean' and 'make spotless' in 5.0
|
||||
# to fix things up by deleting the out of date file (if present)
|
||||
clean-fixup:
|
||||
-rm -f ../include/tile.h
|
||||
|
||||
@@ -209,6 +209,7 @@
|
||||
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 */; };
|
||||
F5E1A4CF2FA2F74C0014D115 /* macuuid.m in Sources */ = {isa = PBXBuildFile; fileRef = F5E1A4CE2FA2F74C0014D115 /* macuuid.m */; };
|
||||
F5E66A222F7D4B30000E30B7 /* earlyarg.c in Sources */ = {isa = PBXBuildFile; fileRef = F5E66A212F7D4B30000E30B7 /* earlyarg.c */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
@@ -635,6 +636,7 @@
|
||||
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>"; };
|
||||
F5E1A4CE2FA2F74C0014D115 /* macuuid.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = macuuid.m; sourceTree = "<group>"; };
|
||||
F5E66A212F7D4B30000E30B7 /* earlyarg.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = earlyarg.c; path = ../../src/earlyarg.c; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
@@ -695,6 +697,7 @@
|
||||
3189576821A1FCC100FB2ABE = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F5E1A4CE2FA2F74C0014D115 /* macuuid.m */,
|
||||
F5E66A212F7D4B30000E30B7 /* earlyarg.c */,
|
||||
F50818302F6F564300D2AAFA /* iactions.c */,
|
||||
F515A73B2DED0B47006E1F63 /* hacklib.c */,
|
||||
@@ -1883,6 +1886,7 @@
|
||||
31B8A38621A238060055BD01 /* mondata.c in Sources */,
|
||||
31B8A41921A244940055BD01 /* objects.c in Sources */,
|
||||
31B8A3AA21A238060055BD01 /* wizard.c in Sources */,
|
||||
F5E1A4CF2FA2F74C0014D115 /* macuuid.m in Sources */,
|
||||
31B8A3D021A238060055BD01 /* explode.c in Sources */,
|
||||
31B8A3DE21A238060055BD01 /* sys.c in Sources */,
|
||||
31B8A38021A238060055BD01 /* sit.c in Sources */,
|
||||
@@ -2190,6 +2194,7 @@
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = "NHUUID=1";
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_PEDANTIC = YES;
|
||||
@@ -2214,7 +2219,6 @@
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
OTHER_CFLAGS = (
|
||||
"-DNOMAIL",
|
||||
"-DNOTPARMDECL",
|
||||
"-DDEFAULT_WINDOW_SYS=\\\"tty\\\"",
|
||||
"-DDLB",
|
||||
"-DGREPPATH=\\\"/usr/bin/grep\\\"",
|
||||
@@ -2296,7 +2300,6 @@
|
||||
NH_UTIL_DIR = "$(NH_ROOT_DIR)/util";
|
||||
OTHER_CFLAGS = (
|
||||
"-DNOMAIL",
|
||||
"-DNOTPARMDECL",
|
||||
"-DDEFAULT_WINDOW_SYS=\\\"tty\\\"",
|
||||
"-DDLB",
|
||||
"-DGREPPATH=\\\"/usr/bin/grep\\\"",
|
||||
@@ -2318,12 +2321,15 @@
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEVELOPMENT_TEAM = 5J8MP36Y73;
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
INSTALL_PATH = "$(NH_INSTALL_DIR)";
|
||||
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
|
||||
OTHER_CFLAGS = (
|
||||
"-Wno-ambiguous-macro",
|
||||
"-DNOMAIL",
|
||||
"-DNOTPARMDECL",
|
||||
"-DDEFAULT_WINDOW_SYS=\\\"tty\\\"",
|
||||
"-DDLB",
|
||||
"-DGREPPATH=\\\"/usr/bin/grep\\\"",
|
||||
@@ -2351,12 +2357,12 @@
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEVELOPMENT_TEAM = 5J8MP36Y73;
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = "NHUUID=1";
|
||||
INSTALL_PATH = "$(NH_INSTALL_DIR)";
|
||||
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
|
||||
OTHER_CFLAGS = (
|
||||
"-Wno-ambiguous-macro",
|
||||
"-DNOMAIL",
|
||||
"-DNOTPARMDECL",
|
||||
"-DDEFAULT_WINDOW_SYS=\\\"tty\\\"",
|
||||
"-DDLB",
|
||||
"-DGREPPATH=\\\"/usr/bin/grep\\\"",
|
||||
@@ -2405,7 +2411,6 @@
|
||||
OTHER_CFLAGS = (
|
||||
"-DMINIMAL_FOR_RECOVER",
|
||||
"-DNOMAIL",
|
||||
"-DNOTPARMDECL",
|
||||
"-DDEFAULT_WINDOW_SYS=\\\"tty\\\"",
|
||||
"-DDLB",
|
||||
"-DGREPPATH=\\\"/usr/bin/grep\\\"",
|
||||
@@ -2432,7 +2437,6 @@
|
||||
OTHER_CFLAGS = (
|
||||
"-DMINIMAL_FOR_RECOVER",
|
||||
"-DNOMAIL",
|
||||
"-DNOTPARMDECL",
|
||||
"-DDEFAULT_WINDOW_SYS=\\\"tty\\\"",
|
||||
"-DDLB",
|
||||
"-DGREPPATH=\\\"/usr/bin/grep\\\"",
|
||||
@@ -2488,7 +2492,6 @@
|
||||
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
|
||||
OTHER_CFLAGS = (
|
||||
"-DNOMAIL",
|
||||
"-DNOTPARMDECL",
|
||||
"-DDEFAULT_WINDOW_SYS=\\\"tty\\\"",
|
||||
"-DDLB",
|
||||
"-DGREPPATH=\\\"/usr/bin/grep\\\"",
|
||||
@@ -2525,7 +2528,6 @@
|
||||
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
|
||||
OTHER_CFLAGS = (
|
||||
"-DNOMAIL",
|
||||
"-DNOTPARMDECL",
|
||||
"-DDEFAULT_WINDOW_SYS=\\\"tty\\\"",
|
||||
"-DDLB",
|
||||
"-DGREPPATH=\\\"/usr/bin/grep\\\"",
|
||||
|
||||
+77
-73
@@ -1,5 +1,5 @@
|
||||
|
||||
Instructions for installing NetHack 3.7
|
||||
Instructions for installing NetHack 5.0
|
||||
using the new hints system
|
||||
=======================================
|
||||
|
||||
@@ -83,78 +83,82 @@ Note that curses, X11, and Qt will almost certainly require the installation
|
||||
of prerequisite packages in order to successfully build with support for
|
||||
additional interfaces. See below.
|
||||
|
||||
+----------+-------+-----------------+--------------------------------------+
|
||||
| Platform |Interf.| Build Variable | Prerequisite package |
|
||||
|----------+-------+-----------------+--------------------------------------|
|
||||
| MacOS | tty | WANT_WIN_TTY | none |
|
||||
|----------+-------+-----------------+--------------------------------------|
|
||||
| MacOS | curses| WANT_WIN_CURSES | ncurses development libraries |
|
||||
|----------+-------+-----------------+--------------------------------------|
|
||||
| MacOS | X11 | WANT_WIN_X11 | You will need to obtain and |
|
||||
| | | | install XQuartz if you want X11 |
|
||||
| | | | support in your build. |
|
||||
| | | | (Attempting to run X11.app will |
|
||||
| | | | describe where to get it) |
|
||||
| | | | |
|
||||
| | | | One possible way: |
|
||||
| | | | brew install xquartz |
|
||||
|----------+-------+-----------------+--------------------------------------|
|
||||
| MacOS | Qt | WANT_WIN_QT | You will need to obtain and |
|
||||
| | | | install Qt if you want Qt |
|
||||
| | | | support in your build. |
|
||||
| | | | |
|
||||
| | | | One possible way: |
|
||||
| | | | brew install pkg-config |
|
||||
| | | | brew install Qt6 |
|
||||
|----------+-------+-----------------+--------------------------------------|
|
||||
| Linux | tty | WANT_WIN_TTY | |
|
||||
| (Ubuntu) | | | |
|
||||
|----------+-------+-----------------+--------------------------------------|
|
||||
| Linux | curses|WANT_WIN_CURSES=1| If it isn't already included |
|
||||
| (Ubuntu) | | | in your distribution, here is one |
|
||||
| | | | possible way: |
|
||||
| | | | |
|
||||
| | | | sudo apt-get install libncurses-dev |
|
||||
|----------+-------+-----------------+--------------------------------------|
|
||||
| Linux | X11 | WANT_WIN_X11=1 | Here is one possible way to obtain |
|
||||
| (Ubuntu) | | | the required packages: |
|
||||
| | | | |
|
||||
| | | |sudo apt-get install libx11-dev |
|
||||
| | | |sudo apt-get install libmotif-dev |
|
||||
| | | |sudo apt-get install libxaw7-dev |
|
||||
| | | |sudo apt install xfonts-utils |
|
||||
| | | |(That last one is for bdftopcf and |
|
||||
| | | | mkfontdir utils) |
|
||||
| | | | |
|
||||
|----------+-------+-----------------+--------------------------------------|
|
||||
| Linux | Qt5 | WANT_WIN_QT=1 | Here is one possible way to obtain |
|
||||
| (Ubuntu) | | | the required packages: |
|
||||
| | | | |
|
||||
| | | |sudo apt-get install qtbase5-dev |
|
||||
| | | |sudo apt-get install qtmultimedia5-dev|
|
||||
| | | | |
|
||||
| | | |Another odd note about Qt on Linux is |
|
||||
| | | |that if you find you are getting the |
|
||||
| | | |following error trying to run NetHack |
|
||||
| | | |after you build it with Qt support: |
|
||||
| | | |"error while loading shared |
|
||||
| | | |libraries: libQt5Core.so.5: cannot |
|
||||
| | | |open shared object file: No such file |
|
||||
| | | |or directory", |
|
||||
| | | |you may have to fix that (one-time) |
|
||||
| | | |by issuing the command below: |
|
||||
| | | | |
|
||||
| sudo strip \ |
|
||||
| --remove-section=.note.ABI-tag/usr/lib/x86_64-linux-gnu/libQt5Core.so.5 |
|
||||
|----------+-------+-----------------+--------------------------------------|
|
||||
| Linux | Qt6 | WANT_WIN_QT6=1 | Here is one possible way to obtain |
|
||||
| (Ubuntu) | | | the required packages: |
|
||||
| | | | |
|
||||
| | | |sudo apt-get install qt6-base-dev |
|
||||
| | | |sudo apt-get install \ |
|
||||
| | | | qt6-multimedia-dev |
|
||||
+----------+-------+-----------------+--------------------------------------+
|
||||
+----------+-------+------------------+-------------------------------------+
|
||||
| Platform |Interf.| make variable | Prerequisite package |
|
||||
|----------+-------+------------------+-------------------------------------|
|
||||
| MacOS | tty | WANT_WIN_TTY=1 | none |
|
||||
|----------+-------+------------------+-------------------------------------|
|
||||
| MacOS | curses| WANT_WIN_CURSES=1| ncurses development libraries |
|
||||
|----------+-------+------------------+-------------------------------------|
|
||||
| MacOS | X11 | WANT_WIN_X11=1 | You will need to obtain and |
|
||||
| | | | install XQuartz if you want X11 |
|
||||
| | | | support in your build. |
|
||||
| | | | (Attempting to run X11.app will |
|
||||
| | | | describe where to get it) |
|
||||
| | | | |
|
||||
| | | | One possible way: |
|
||||
| | | | brew install xquartz |
|
||||
| | | | brew install libxft |
|
||||
| | | | brew install fontconfig |
|
||||
| | | | brew install freetype |
|
||||
|----------+-------+------------------+-------------------------------------|
|
||||
| MacOS | Qt | WANT_WIN_QT=1 | You will need to obtain and |
|
||||
| | | | install Qt if you want Qt |
|
||||
| | | | support in your build. |
|
||||
| | | | |
|
||||
| | | | One possible way: |
|
||||
| | | | brew install pkg-config |
|
||||
| | | | brew install Qt6 |
|
||||
|----------+-------+------------------+-------------------------------------|
|
||||
| Linux | tty | WANT_WIN_TTY=1 | sudo apt install libncurses-dev |
|
||||
| (Ubuntu) | | | |
|
||||
|----------+-------+------------------+-------------------------------------|
|
||||
| Linux | tty | WANT_WIN_TTY=1 | sudo dnf install make gcc g++ |
|
||||
| (Fedora) | | | sudo dnf install ncurses-devel |
|
||||
|----------+-------+------------------+-------------------------------------|
|
||||
| Linux | curses|WANT_WIN_CURSES=1 | If it isn't already included |
|
||||
| (Ubuntu) | | | in your distribution, here is one |
|
||||
| | | | possible way: |
|
||||
| | | | |
|
||||
| | | | sudo apt install libncurses-dev |
|
||||
|----------+-------+------------------+-------------------------------------|
|
||||
| Linux | X11 | WANT_WIN_X11=1 | Here is one possible way to obtain |
|
||||
| (Ubuntu) | | | the required packages: |
|
||||
| | | | |
|
||||
| | | | sudo apt install libx11-dev |
|
||||
| | | | sudo apt install libmotif-dev |
|
||||
| | | | sudo apt install libxaw7-dev |
|
||||
| | | | sudo apt install xfonts-utils |
|
||||
| | | | (That last one is for bdftopcf |
|
||||
| | | | and mkfontdir utils) |
|
||||
| | | | |
|
||||
|----------+-------+------------------+-------------------------------------|
|
||||
| Linux | X11 | WANT_WIN_X11=1 | Here is a possible way to obtain |
|
||||
|(Fedora) | | | all prerequisite packages required |
|
||||
| | | | (in addition to those needed for |
|
||||
| | | | tty above) on a fresh installation |
|
||||
| | | | of Fedora 44 workstation: |
|
||||
| | | | |
|
||||
| | | | sudo dnf install libX11-devel |
|
||||
| | | | sudo dnf install libXt-devel |
|
||||
| | | | sudo dnf install libXaw |
|
||||
| | | | sudo dnf install libXaw-devel |
|
||||
| | | | sudo dnf install libXft-devel |
|
||||
| | | | sudo dnf install xorg-x11-font-utils|
|
||||
| | | | sudo dnf install mkfontscale |
|
||||
| | | | |
|
||||
|----------+-------+------------------+-------------------------------------|
|
||||
| Linux | Qt | WANT_WIN_QT6=1 | Here is one possible way to obtain |
|
||||
| (Ubuntu) | | | the required packages: |
|
||||
| | | | |
|
||||
| | | |sudo apt install qt6-base-dev |
|
||||
| | | |sudo apt install qt6-multimedia-dev |
|
||||
+----------+-------+------------------+-------------------------------------+
|
||||
|
||||
# NetHack 3.7 NewInstall.unx $NHDT-Date: 1652276817 2022/05/11 13:46:57 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.11 $
|
||||
There are other hints file options that are meant to impact your NetHack build
|
||||
in various other ways too. A reference list can be found in
|
||||
sys/unix/README.hints.
|
||||
|
||||
# NetHack 5.0 NewInstall.unx $NHDT-Date: 1652276817 2022/05/11 13:46:57 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.11 $
|
||||
# Copyright (c) 2009 by Kenneth Lorber, Kensington, Maryland
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
|
||||
@@ -5,18 +5,18 @@ The sys/unix/hints/include subfolder contains Makefile content that
|
||||
is included in the distributed Makefiles.
|
||||
|
||||
|
||||
[.370 hints]
|
||||
[.500 hints]
|
||||
|
||||
|
||||
There are two .370 series hints files provided with NetHack:
|
||||
linux.370 for use on Linux
|
||||
macOS.370 for use on macOS
|
||||
There are two .500 series hints files provided with NetHack:
|
||||
linux.500 for use on Linux
|
||||
macOS.500 for use on macOS
|
||||
|
||||
Those will also pull in content from sys/unix/hints/include/*.370,
|
||||
that is shared between the linux.370 and macOS.370 hints files.
|
||||
Those will also pull in content from sys/unix/hints/include/*.500,
|
||||
that is shared between the linux.500 and macOS.500 hints files.
|
||||
|
||||
|
||||
[.370 make build options]
|
||||
[.500 make build options]
|
||||
|
||||
|
||||
Here are some options that can be specified on the make command
|
||||
@@ -49,6 +49,8 @@ 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 WANT_SYSTEM_LUA=1 Attempt to use an existing Lua package already
|
||||
on the system (initially for Alpine Linux).
|
||||
make resp=1 Place the majority of the compiler switches into
|
||||
a response file to de-clutter the build compiler
|
||||
command lines and eliminate some of the
|
||||
@@ -57,9 +59,9 @@ 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.
|
||||
|
||||
make WANT_BUNDLE=1 For macOS.370 only, place the build results into
|
||||
make WANT_BUNDLE=1 For macOS.500 only, place the build results into
|
||||
a macOS bundle layout.
|
||||
make WANT_MACSOUND=1 For macOS.370, include support for built-in macOS
|
||||
make WANT_MACSOUND=1 For macOS.500, include support for built-in macOS
|
||||
sound libraries.
|
||||
make WANT_SPEECH=1 If one of the sound libraries was included, also
|
||||
include speech synthesis support (Recent macOS
|
||||
@@ -71,13 +73,23 @@ make WANT_ASAN=1 Include support for the address sanitizer in the
|
||||
make WANT_UBSAN=1 Include support for the undefined behaviour
|
||||
sanitizer in the build.
|
||||
|
||||
make WANT_SHARE_INSTALL=1 Place the results of the install/update portion
|
||||
make WANT_SHARED_INSTALL=1 Place the results of the install/update portion
|
||||
of the build into a shared area on a multiuser
|
||||
system.
|
||||
|
||||
|
||||
make WANT_SOURCE_INSTALL=1 Place the results of the install/update portion
|
||||
of the build into a subfolder of the source
|
||||
tree, rather than in a system-wide shared area.
|
||||
(This is now the default if WANT_SHARED_INSTALL=1
|
||||
wasn't specified)
|
||||
|
||||
make WANT_NHUUID=1 Include support for a unique game identifier.
|
||||
On Linux, libuuid and its headers must be installed
|
||||
and available for this to build and link correctly.
|
||||
sudo apt install uuid-dev on Debian/Ubuntu
|
||||
or
|
||||
sudo dnf install libuuid-devel on Fedora
|
||||
|
||||
make VIEWDEPRECATIONS=1 Turn off the suppression of -Wdeprecated and
|
||||
-Wdeprecated-declarations warnings
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
# depend.awk -- awk script used to construct makefile dependencies
|
||||
# for nethack's source files (`make depend' support for Makefile.src).
|
||||
# $NHDT-Date: 1709577497 2024/03/04 18:38:17 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.18 $
|
||||
# $NHDT-Date: 1709577497 2024/03/04 18:38:17 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.18 $
|
||||
#
|
||||
# usage:
|
||||
# awk -f depend.awk ../include/*.h list-of-.c/.cpp-files
|
||||
@@ -54,7 +54,7 @@ FNR == 1 { output_dep() #finish previous file
|
||||
#[3.4.0: gnomehack headers currently aren't in include]
|
||||
#[3.6.2: Qt4 headers aren't in include either]
|
||||
#[3.6.2: curses headers likewise]
|
||||
#[3.7.0: Qt headers have moved; process 'moc' files]
|
||||
#[NetHack 5.0.0: Qt headers have moved; process 'moc' files]
|
||||
if (incl ~ /[.]h$/) {
|
||||
if (incl ~ "curses[.]h")
|
||||
incl = "" # skip "curses.h"; it should be <curses.h>
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
#!/bin/sh
|
||||
# NetHack 3.7 gitinfo.sh $NHDT-Date: 1596498289 2020/08/03 23:44:49 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.3 $
|
||||
# NetHack 5.0 gitinfo.sh $NHDT-Date: 1596498289 2020/08/03 23:44:49 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.3 $
|
||||
# Copyright (c) 2018 by Robert Patrick Rankin
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
#
|
||||
# NetHack 5.0 unix $NHDT-Date: 1778708083 2026/05/13 21:34:43 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.0 $
|
||||
# Copyright 2026 by Anthony C Howe.
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
#
|
||||
# This is a contributed file. The NetHack Development Team makes this
|
||||
# file available so that others may benefit, but may not be able to
|
||||
# support or maintain it. Use at your own risk.
|
||||
#
|
||||
#-PRE
|
||||
# unix hints file
|
||||
# This hints file provides the legacy configuration that NetHack has shipped
|
||||
# with historically - this means you will most likely need to hand edit .h
|
||||
# and Makefiles.
|
||||
#
|
||||
# note: '#-INCLUDE' is not just a comment. setup.sh inserts the contents of
|
||||
# a file found in sys/unix/hints/include
|
||||
#-INCLUDE whichbsd.500
|
||||
|
||||
PREFIX=/usr/local
|
||||
|
||||
# Binaries and supporting data.
|
||||
HACKDIR=$(PREFIX)/libexec/nethackdir
|
||||
|
||||
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
# Careful, this directory is deleted on install.
|
||||
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
INSTDIR=$(HACKDIR)
|
||||
|
||||
# Save games
|
||||
VARDIR=/var/games/nethackdir
|
||||
|
||||
# Home for nethask.sh wrapper. If undefined, no wrapper installed.
|
||||
# Suggest leaving /usr/games as-is from bsdgames.tgz.
|
||||
SHELLDIR=$(PREFIX)/bin
|
||||
|
||||
CFLAGS=-O -I../include -USYSV -DBSD -DHACKDIR='"$(HACKDIR)"' -DVAR_PLAYGROUND='"$(VARDIR)"'
|
||||
LINK=$(CC)
|
||||
|
||||
WINSRC = $(WINTTYSRC)
|
||||
WINOBJ = $(WINTTYOBJ)
|
||||
WINLIB = $(WINTTYLIB)
|
||||
|
||||
WINTTYLIB=-ltermcap
|
||||
|
||||
CHOWN=chown
|
||||
CHGRP=chgrp
|
||||
|
||||
GAMEUID = games
|
||||
GAMEGRP = games
|
||||
|
||||
GAMEPERM = 04755
|
||||
VARFILEPERM = 0644
|
||||
VARDIRPERM = 0755
|
||||
|
||||
.ifdef MAKEFILE_DOC
|
||||
MAKEDEFS = ../util/makedefs
|
||||
NEEDMAKEDEFS = $(MAKEDEFS)
|
||||
|
||||
.if ${WHICHBSD} == "NETBSD"
|
||||
.if exists (/usr/pkg/bin/groff)
|
||||
NROFF = /usr/pkg/bin/groff
|
||||
.else
|
||||
NROFF = groff
|
||||
.endif # ? Is NROFF groff or /usr/pkg/bin/groff
|
||||
.else # WHICHBSD is not NETBSD
|
||||
NROFF = groff
|
||||
.endif # WHICHBSD
|
||||
|
||||
# NROFF_FLAGS comes from a hints file
|
||||
GUIDEBOOK = Guidebook # regular ASCII file
|
||||
COLCMD = col -bx
|
||||
PSCMD = $(NROFF)
|
||||
NHGREP = $(MAKEDEFS) --grep --input - --output -
|
||||
GUIDEBOOK_MN_SRC = Guidebook.mn
|
||||
GUIDEBOOK_MN = $(GUIDEBOOK_MN_SRC)
|
||||
GUIDE_PREFORMAT = cat $(GUIDEBOOK_MN) | $(NHGREP) | tbl tmac.n -
|
||||
ONEPAGE_PREFORMAT = cat Gbk-1pg-pfx.mn $(GUIDEBOOK_MN) Gbk-1pg-sfx.mn \
|
||||
| $(NHGREP) | tbl tmac.n -
|
||||
ONEPAGECMD = $(ONEPAGE_PREFORMAT) | $(NROFF) -c -Tascii $(NROFF_FLAGS) \
|
||||
| $(COLCMD)
|
||||
GUIDECMD = export GROFF_NO_SGR=1; \
|
||||
$(GUIDE_PREFORMAT) | $(NROFF) -c -Tascii $(NROFF_FLAGS) \
|
||||
| $(COLCMD)
|
||||
GUIDEBOOK_TEX_SRC = Guidebook.tex
|
||||
GUIDEBOOK_TEX = $(GUIDEBOOK_TEX_SRC)
|
||||
.endif # MAKEFILE_DOC
|
||||
@@ -1,5 +1,5 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# NetHack 3.7 compiler.370 $NHDT-Date: 1668359835 2022/11/13 17:17:15 $ $NHDT-Branch: NetHack-3.7 $
|
||||
# NetHack 5.0 compiler.500 $NHDT-Date: 1668359835 2022/11/13 17:17:15 $ $NHDT-Branch: NetHack-5.0 $
|
||||
|
||||
# compiler flags: CCFLAGS is used to construct a value for CFLAGS with
|
||||
# various -I, -D, and -W settings appended below;
|
||||
@@ -49,7 +49,7 @@ endif
|
||||
#CC= clang
|
||||
#CXX=clang++ -std=gnu++11
|
||||
|
||||
CFLAGS=$(CCFLAGS) -I../include -DNOTPARMDECL
|
||||
CFLAGS=$(CCFLAGS) -I../include
|
||||
CFLAGS+=-Wall -Wextra \
|
||||
-Wreturn-type -Wunused -Wformat -Wswitch -Wshadow -Wwrite-strings
|
||||
CFLAGS+=-pedantic
|
||||
@@ -89,7 +89,7 @@ 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)
|
||||
GCCGTEQ16 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 16)
|
||||
ifeq "$(GCCGTEQ9)" "1"
|
||||
# flags present in gcc version greater than or equal to 9 can go here
|
||||
CFLAGS+=-Wformat-overflow
|
||||
@@ -100,7 +100,8 @@ CFLAGS+=-Wimplicit-fallthrough
|
||||
#endif
|
||||
#ifeq "$(GCCGTEQ12)" "1"
|
||||
#endif
|
||||
#ifeq "$(GCCGTEQ14)" "1"
|
||||
#ifeq "$(GCCGTEQ16)" "1"
|
||||
NO_WARN_DISCARDED_QUALIFIERS=-Wno-discarded-qualifiers
|
||||
#endif
|
||||
# end of gcc-specific
|
||||
else # gcc or clang?
|
||||
@@ -109,6 +110,7 @@ CXX=clang++ -std=gnu++11
|
||||
CLANGGTEQ12 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 12)
|
||||
CLANGGTEQ14 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 14)
|
||||
CLANGGTEQ21 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 21)
|
||||
CLANGGTEQ22 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 22)
|
||||
ifeq "$(CLANGGTEQ12)" "1"
|
||||
CFLAGS+=-Wimplicit-fallthrough
|
||||
endif
|
||||
@@ -123,12 +125,15 @@ endif
|
||||
ifeq "$(CLANGGTEQ21)" "1"
|
||||
CFLAGS+=-Wno-deprecated-octal-literals
|
||||
endif
|
||||
ifeq "$(CLANGGTEQ22)" "1"
|
||||
NO_WARN_DISCARDED_QUALIFIERS=-Wno-incompatible-pointer-types-discards-qualifiers
|
||||
endif
|
||||
# none
|
||||
endif # clang-specific ends here
|
||||
|
||||
ifdef MAKEFILE_SRC
|
||||
ifdef CPLUSPLUS_NEEDED
|
||||
CCXXFLAGS = -g -I../include -DNOTPARMDECL
|
||||
CCXXFLAGS = -g -I../include
|
||||
CCXXFLAGS+=-Wall -Wextra -Wno-missing-field-initializers \
|
||||
-Wreturn-type -Wunused -Wformat -Wswitch -Wshadow -Wwrite-strings
|
||||
CCXXFLAGS+=-pedantic
|
||||
@@ -171,6 +176,9 @@ 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
|
||||
ifdef ADDITIONAL_NO_WARN_GPPCCX
|
||||
CCXXFLAGS+=$(ADDITIONAL_NO_WARN_GPPCCX)
|
||||
endif
|
||||
|
||||
|
||||
else # g++ or clang++ ?
|
||||
@@ -211,6 +219,9 @@ ifeq "$(CLANGPPGTEQ17)" "1"
|
||||
CCXX=clang++ -std=c++20
|
||||
endif # clang++ greater than or equal to 17
|
||||
endif # CPLUSPLUS_NEED20
|
||||
ifdef ADDITIONAL_NO_WARN_CLANGCCX
|
||||
CCXXFLAGS+=$(ADDITIONAL_NO_WARN_CLANGCCX)
|
||||
endif
|
||||
endif # end of clang++-specific section
|
||||
CXX=$(CCXX)
|
||||
endif # CPLUSPLUS_NEEDED
|
||||
@@ -262,5 +273,5 @@ ifneq "$(HAVECSTD)" ""
|
||||
CSTD = -std=$(HAVECSTD)
|
||||
endif
|
||||
|
||||
#end of compiler.370
|
||||
#end of compiler.500
|
||||
#------------------------------------------------------------------------------
|
||||
@@ -1,10 +1,14 @@
|
||||
#===============-=================================================
|
||||
# NetHack 3.7 include/cross-post $NHDT-Date: 1597332785 2020/08/13 15:33:05 $ $NHDT-Branch: NetHack-3.7 $
|
||||
# NetHack 5.0 include/cross-post $NHDT-Date: 1597332785 2020/08/13 15:33:05 $ $NHDT-Branch: NetHack-5.0 $
|
||||
#
|
||||
# Cross-compiling -POST section
|
||||
|
||||
ifdef CROSS_TO_MSDOS
|
||||
#
|
||||
.PHONY: tilemap
|
||||
tilemap: ../util/tilemap.o $(SRCDIR)/objects.o $(SRCDIR)/monst.o $(SRCDIR)/drawing.o $(HACKLIB)
|
||||
../util/tilemap.o : ../win/share/tilemap.c
|
||||
(cd ../util ; make tilemap.o ; cd ../src )
|
||||
$(TARGETPFX)msdos.o : ../sys/msdos/msdos.c $(HACK_H)
|
||||
$(TARGETPFX)font.o : ../sys/msdos/font.c ../sys/msdos/font.h $(HACK_H)
|
||||
$(TARGETPFX)pckeys.o : ../sys/msdos/pckeys.c $(HACK_H)
|
||||
@@ -18,13 +22,15 @@ $(TARGETPFX)vidvesa.o : ../sys/msdos/vidvesa.c ../sys/msdos/portio.h \
|
||||
../win/share/tile.h ../include/tileset.h ../sys/msdos/font.h $(HACK_H)
|
||||
$(TARGETPFX)vidstub.o : ../sys/msdos/vidvesa.c ../sys/msdos/portio.h \
|
||||
$(HACK_H)
|
||||
$(TARGETPFX)tile.o : tile.c
|
||||
$(TARGETPFX)tile.o : $(SRCDIR)/tile.c
|
||||
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ $(SRCDIR)/tile.c
|
||||
$(SRCDIR)/tile.c : tilemap
|
||||
$(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) $(TARGETPFX)date.o $(TARGET_HACKLIB) $(LUACROSSLIB)
|
||||
$(TARGET_LINK) $(TARGET_LFLAGS) -o $@ \
|
||||
$(HOBJ) $(TARGET_HACKLIB) $(WINLIB) $(TARGET_LIBS)
|
||||
$(HOBJ) $(DATE_O) $(GENTILEOFILE) $(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)
|
||||
@@ -44,7 +50,7 @@ $(DOSFONT)/ter-u32b.psf: $(FONTTOP)/ter-u32b.bdf $(DOSFONT)/nh-u32b.bdf $(DOSFON
|
||||
#
|
||||
.PHONY: dodata dospkg dosfonts
|
||||
dosfonts: $(FONTTARGETS)
|
||||
dospkg: dodata dosfonts $(GAMEBIN) $(TARGETPFX)recover.exe ../dat/nhtiles.bmp
|
||||
dospkg: dodata dosfonts $(GAMEBIN) $(TARGETPFX)recover.exe $(NHTILES)
|
||||
$(TARGET_STUBEDIT) $(GAMEBIN) minstack=2048K
|
||||
mkdir -p $(TARGETPFX)pkg
|
||||
cp $(GAMEBIN) $(TARGETPFX)pkg/NETHACK.EXE
|
||||
@@ -52,7 +58,7 @@ dospkg: dodata dosfonts $(GAMEBIN) $(TARGETPFX)recover.exe ../dat/nhtiles.bmp
|
||||
-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
|
||||
-cp ../dat/nhtiles.bmp $(TARGETPFX)pkg/NHTILES.BMP
|
||||
cp ../dat/symbols $(TARGETPFX)pkg/SYMBOLS
|
||||
cp ../sys/share/NetHack.cnf $(TARGETPFX)pkg/NETHACK.CNF
|
||||
cp ../sys/msdos/sysconf $(TARGETPFX)pkg/SYSCONF
|
||||
@@ -90,8 +96,8 @@ else
|
||||
fi; )
|
||||
endif
|
||||
-touch $(TARGETPFX)pkg/RECORD
|
||||
cd $(TARGETPFX)pkg ; zip -9 ../NH370DOS.ZIP * ; cd ../../..
|
||||
@echo msdos package zip file $(TARGETPFX)NH370DOS.ZIP
|
||||
cd $(TARGETPFX)pkg ; zip -9 ../NH$(NHV)DOS.ZIP * ; cd ../../..
|
||||
@echo msdos package zip file $(TARGETPFX)NH$(NHV)DOS.ZIP
|
||||
|
||||
$(LUABIN):
|
||||
( cd .. && make luabin && cd src)
|
||||
@@ -105,14 +111,14 @@ deploy-to-dosbox:
|
||||
endif
|
||||
.PHONY: deploytodosbox
|
||||
|
||||
deploytodosbox: $(TARGETPFX)NH370DOS.ZIP $(dosboxnhfolder) $(dosboxnhsrc) \
|
||||
deploytodosbox: $(TARGETPFX)NH$(NHV)DOS.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
|
||||
$(TARGETPFX)NH$(NHV)DOS.ZIP: dospkg
|
||||
$(dosboxnhfolder):
|
||||
mkdir -p $@
|
||||
$(dosboxnhsrc): $(dosboxnhfolder)
|
||||
@@ -144,8 +150,8 @@ $(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)
|
||||
$(dosboxnhfolder)/NETHACK.EXE: $(TARGETPFX)NH$(NHV)DOS.ZIP
|
||||
unzip -o $(TARGETPFX)NH$(NHV)DOS.ZIP -d $(dosboxnhfolder)
|
||||
find $(dosboxnhfolder) -type f -name "$(dosboxconfigfile)" \
|
||||
| xargs sed -i 's/#OPTIONS=video:autodetect/OPTIONS=video:autodetect/g'
|
||||
endif # dosbox
|
||||
@@ -225,21 +231,19 @@ mipspkg: dodata $(GAMEBIN) $(TARGETPFX)recover
|
||||
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
|
||||
cd $(TARGETPFX)pkg ; zip -9 ../nh$(NHV)mips.zip * ; cd ../../..
|
||||
@echo MIPS package zip file $(TARGETPFX)nh$(NHV)mips.zip
|
||||
endif # CROSS_TO_MIPS
|
||||
|
||||
|
||||
ifdef CROSS_TO_AMIGA
|
||||
$(TARGETPFX)amidos.o : ../sys/amiga/amidos.c $(HACK_H)
|
||||
$(TARGETPFX)amigst.o : ../sys/amiga/amigst.c $(HACK_H)
|
||||
$(TARGETPFX)amirip.o : ../sys/amiga/amirip.c $(HACK_H)
|
||||
$(TARGETPFX)amistack.o : ../sys/amiga/amistack.c $(HACK_H)
|
||||
$(TARGETPFX)amitty.o : ../sys/amiga/amitty.c $(HACK_H)
|
||||
$(TARGETPFX)amiwind.o : ../sys/amiga/amiwind.c \
|
||||
../sys/amiga/amimenu.c $(HACK_H)
|
||||
$(TARGETPFX)winami.o : ../sys/amiga/winami.c $(HACK_H)
|
||||
$(TARGETPFX)winchar.o : ../sys/amiga/winchar.c tile.c $(HACK_H)
|
||||
$(TARGETPFX)winchar.o : ../sys/amiga/winchar.c $(SRCDIR)/tile.c $(HACK_H)
|
||||
$(TARGETPFX)winfuncs.o : ../sys/amiga/winfuncs.c $(HACK_H)
|
||||
$(TARGETPFX)winkey.o : ../sys/amiga/winkey.c $(HACK_H)
|
||||
$(TARGETPFX)winamenu.o : ../sys/amiga/winamenu.c $(HACK_H)
|
||||
@@ -309,31 +313,30 @@ UUDECODE = ../util/uudecode
|
||||
../util/uudecode: ../sys/share/uudecode.c
|
||||
$(CC) $(CFLAGS) -o $@ $<
|
||||
|
||||
amigapkg: $(AMITILES) ../util/uudecode
|
||||
mkdir -p $(TARGETPFX)pkg/tiles $(TARGETPFX)pkg/hack
|
||||
cp $(GAMEBIN) $(TARGETPFX)pkg/nethack
|
||||
cp ../dat/nhdat $(TARGETPFX)pkg/nhdat
|
||||
cp ../dat/license $(TARGETPFX)pkg/license
|
||||
cp ../dat/symbols $(TARGETPFX)pkg/symbols
|
||||
cp $(TARGETPFX)tiles16.iff $(TARGETPFX)pkg/tiles/tiles16.iff
|
||||
cp $(TARGETPFX)tiles32.iff $(TARGETPFX)pkg/tiles/tiles32.iff
|
||||
cp $(TARGETPFX)tomb.iff $(TARGETPFX)pkg/tomb.iff
|
||||
cp ../sys/msdos/sysconf $(TARGETPFX)pkg/sysconf
|
||||
cp ../doc/nethack.txt $(TARGETPFX)pkg/nethack.txt
|
||||
( cd $(TARGETPFX)pkg && ../../../util/uudecode ../../../sys/amiga/amifont8.uu && mv 8 hack/8 )
|
||||
( cd $(TARGETPFX)pkg && ../../../util/uudecode ../../../sys/amiga/amifont.uu )
|
||||
cp $(AMISRC)/nethack.cnf $(TARGETPFX)pkg/nethack.cnf
|
||||
-( cd $(TARGETPFX)pkg && test -f ../../../sys/amiga/dflticon.uu && \
|
||||
../../../util/uudecode ../../../sys/amiga/dflticon.uu )
|
||||
-( cd $(TARGETPFX)pkg && test -f ../../../sys/amiga/NHinfo.uu && \
|
||||
../../../util/uudecode ../../../sys/amiga/NHinfo.uu )
|
||||
-( cd $(TARGETPFX)pkg && test -f ../../../sys/amiga/NewGame.uu && \
|
||||
../../../util/uudecode ../../../sys/amiga/NewGame.uu )
|
||||
-( cd $(TARGETPFX)pkg && test -f ../../../sys/amiga/HackWB.uu && \
|
||||
../../../util/uudecode ../../../sys/amiga/HackWB.uu )
|
||||
touch $(TARGETPFX)pkg/record
|
||||
( cd $(TARGETPFX)pkg && zip -9r ../NH370AMI.ZIP * )
|
||||
@echo amiga package zip file $(TARGETPFX)NH370AMI.ZIP
|
||||
amigapkg: $(GAMEBIN) $(AMITILES) ../util/uudecode
|
||||
mkdir -p $(TARGETPFX)pkg/NetHack/tiles $(TARGETPFX)pkg/NetHack/hack
|
||||
cp $(GAMEBIN) $(TARGETPFX)pkg/NetHack/nethack
|
||||
cp ../dat/nhdat $(TARGETPFX)pkg/NetHack/nhdat
|
||||
cp ../dat/license $(TARGETPFX)pkg/NetHack/license
|
||||
cp ../dat/symbols $(TARGETPFX)pkg/NetHack/symbols
|
||||
cp $(TARGETPFX)tiles16.iff $(TARGETPFX)pkg/NetHack/tiles/tiles16.iff
|
||||
cp $(TARGETPFX)tiles32.iff $(TARGETPFX)pkg/NetHack/tiles/tiles32.iff
|
||||
cp $(TARGETPFX)tomb.iff $(TARGETPFX)pkg/NetHack/tomb.iff
|
||||
cp ../doc/nethack.txt $(TARGETPFX)pkg/NetHack/nethack.txt
|
||||
( cd $(TARGETPFX)pkg/NetHack && ../../../../util/uudecode ../../../../sys/amiga/amifont8.uu && mv 8 hack/8 )
|
||||
( cd $(TARGETPFX)pkg/NetHack && ../../../../util/uudecode ../../../../sys/amiga/amifont.uu )
|
||||
cp $(AMISRC)/nethack.cnf $(TARGETPFX)pkg/NetHack/nethack.cnf
|
||||
cp $(AMISRC)/README.amiga $(TARGETPFX)pkg/NetHack/README.amiga
|
||||
cp $(AMISRC)/amii.hlp $(TARGETPFX)pkg/NetHack/amii.hlp
|
||||
( cd $(TARGETPFX)pkg/NetHack && ../../../../util/uudecode ../../../../sys/amiga/NHinfo.uu )
|
||||
( cd $(TARGETPFX)pkg/NetHack && ../../../../util/uudecode ../../../../sys/amiga/cnf-info.uu )
|
||||
( cd $(TARGETPFX)pkg/NetHack && ../../../../util/uudecode ../../../../sys/amiga/license-info.uu )
|
||||
( cd $(TARGETPFX)pkg/NetHack && ../../../../util/uudecode ../../../../sys/amiga/txt-info.uu )
|
||||
( cd $(TARGETPFX)pkg/NetHack && ../../../../util/uudecode ../../../../sys/amiga/readme-info.uu )
|
||||
( cd $(TARGETPFX)pkg && ../../../util/uudecode ../../../sys/amiga/drawer-info.uu )
|
||||
touch $(TARGETPFX)pkg/NetHack/record
|
||||
( cd $(TARGETPFX)pkg && zip -9r ../NH$(NHV)AMI$(AMIPKGSEQ).ZIP NetHack NetHack.info )
|
||||
@echo amiga package zip file $(TARGETPFX)NH$(NHV)AMI$(AMIPKGSEQ).ZIP
|
||||
endif # CROSS_TO_AMIGA
|
||||
|
||||
ifdef CROSS_SHARED
|
||||
@@ -348,11 +351,15 @@ $(TARGETPFX)giftiles.o : ../win/share/giftiles.c
|
||||
endif # CROSS_SHARED
|
||||
#
|
||||
ifdef CROSS
|
||||
ifdef MAKEFILE_TOP
|
||||
# top-level liblua.a is a host-side build; keep TARGET_CC out of it
|
||||
LUAMAKEFLAGS = CC='$(CC)' SYSCFLAGS='$(SYSCFLAGS)'
|
||||
endif # MAKEFILE_TOP
|
||||
$(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 $@
|
||||
$(TARGET_CC) $(TARGET_CFLAGS) -c recover.c -o $@
|
||||
ifdef CROSS_TO_MSDOS
|
||||
$(TARGETPFX)recover.exe : $(TARGETPFX)recover.o $(TARGETPFX)rversion.o $(TARGETPFX)hacklib.a
|
||||
$(TARGET_LINK) $(TARGET_LFLAGS) \
|
||||
@@ -363,7 +370,7 @@ $(TARGETPFX)recover : $(TARGETPFX)recover.o $(TARGETPFX)rversion.o $(TARGETPFX)h
|
||||
$(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 $@
|
||||
$(TARGET_CC) $(TARGET_CFLAGS) -DMINIMAL_FOR_RECOVER -c ../src/version.c -o $@
|
||||
endif # MAKEFILE_UTL
|
||||
endif # CROSS
|
||||
|
||||
@@ -478,7 +485,11 @@ $(TARGETPFX)slk.o : $(PDCTOP)/pdcurses/slk.c
|
||||
$(TARGETPFX)termattr.o : $(PDCTOP)/pdcurses/termattr.c
|
||||
$(TARGETPFX)touch.o : $(PDCTOP)/pdcurses/touch.c
|
||||
$(TARGETPFX)util.o : $(PDCTOP)/pdcurses/util.c
|
||||
# We need an explicit recipe for the creation of $(TARGETPFX)window.o
|
||||
# because it will try and use the X11 version of window.c otherwise
|
||||
$(TARGETPFX)window.o : $(PDCTOP)/pdcurses/window.c
|
||||
$(TARGET_CC) $(PDCINCL) $(PDC_TARGET_CFLAGS) \
|
||||
-Wno-sign-compare -o$@ $(PDCTOP)/pdcurses/window.c
|
||||
$(TARGETPFX)debug.o : $(PDCTOP)/pdcurses/debug.c
|
||||
$(TARGETPFX)pdcclip.o : $(PDCPORT)/pdcclip.c
|
||||
$(TARGETPFX)pdcdisp.o : $(PDCPORT)/pdcdisp.c
|
||||
@@ -1,5 +1,5 @@
|
||||
#===============-=================================================
|
||||
# NetHack 3.7 include/cross-pre1. $NHDT-Date: 1597332785 2020/08/13 15:33:05 $ $NHDT-Branch: NetHack-3.7 $
|
||||
# NetHack 5.0 include/cross-pre1. $NHDT-Date: 1597332785 2020/08/13 15:33:05 $ $NHDT-Branch: NetHack-5.0 $
|
||||
#
|
||||
# Cross-compiling -PRE section 1
|
||||
#
|
||||
@@ -42,6 +42,7 @@ ifdef CROSS_TO_AMIGA
|
||||
CROSS=1
|
||||
BUILD_TARGET_LUA=1
|
||||
CROSS_SHARED=1
|
||||
HACKDIR=NetHack:
|
||||
override TARGET = amiga
|
||||
override TARGETDIR=../targets/$(TARGET)
|
||||
override TARGETPFX = $(TARGETDIR)/
|
||||
@@ -49,6 +50,7 @@ override TARGET_LIBS=
|
||||
endif
|
||||
|
||||
ifdef CROSS
|
||||
CROSSCOMPILE=1
|
||||
override PREGAME=
|
||||
override BUILDMORE=
|
||||
override CLEANMORE=
|
||||
@@ -1,5 +1,5 @@
|
||||
#===============-=================================================
|
||||
# NetHack 3.7 include/cross-pre2 $NHDT-Date: 1597332785 2020/08/13 15:33:05 $ $NHDT-Branch: NetHack-3.7 $
|
||||
# NetHack 5.0 include/cross-pre2 $NHDT-Date: 1597332785 2020/08/13 15:33:05 $ $NHDT-Branch: NetHack-5.0 $
|
||||
#
|
||||
# Cross-compiling -PRE section 2
|
||||
#
|
||||
@@ -134,6 +134,8 @@ 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
|
||||
override GENTILEOFILE = $(TARGETPFX)tile.o
|
||||
override UUIDOBJ =
|
||||
ifdef MAKEFILE_SRC
|
||||
FLDR=../
|
||||
endif
|
||||
@@ -146,7 +148,7 @@ ifdef DOSBOX
|
||||
dosbox=$(DOSBOX)
|
||||
endif
|
||||
ifdef dosbox
|
||||
dosboxgameid=NH370
|
||||
dosboxgameid=NH$(NHV)
|
||||
dosboxtop=$(dosbox)
|
||||
dosboxnhfolder=$(dosboxtop)/$(dosboxgameid)
|
||||
dosboxnhsrc=$(dosboxnhfolder)/NHSRC
|
||||
@@ -175,8 +177,31 @@ 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
|
||||
ifndef WANT_WIN_TTY
|
||||
# A Curses-only configuration
|
||||
MSDOS_GRAPH_CONFIG = -DNOTTYGRAPHICS
|
||||
SKIP_TILES = 1
|
||||
ifndef WANT_DOSVGA
|
||||
SKIP_FONTS = 1
|
||||
endif
|
||||
SKIP_FONT_C = 1
|
||||
else ifdef NO_GRAPHICS
|
||||
MSDOS_GRAPH_CONFIG = -DSUPPRESS_GRAPHICS
|
||||
# Curses will need the fonts, but not font.c
|
||||
ifndef WANT_DOSVGA
|
||||
SKIP_FONTS = 1
|
||||
endif
|
||||
SKIP_FONT_C = 1
|
||||
SKIP_TILES = 1
|
||||
else ifdef NO_TILES
|
||||
MSDOS_GRAPH_CONFIG =
|
||||
# without SKIP_FONT_C; if ENHANCED_SYMBOLS is set, we'll need the fonts
|
||||
SKIP_TILES = 1
|
||||
else
|
||||
MSDOS_GRAPH_CONFIG = -DTILES_IN_GLYPHMAP
|
||||
endif
|
||||
MSDOS_TARGET_CFLAGS = -c -O $(DBGFLAGS) -I../include -I../sys/msdos -I../win/share \
|
||||
$(LUAINCL) -DDLB $(PDCURSESDEF) -DTILES_IN_GLYPHMAP \
|
||||
$(LUAINCL) -DDLB $(PDCURSESDEF) $(MSDOS_GRAPH_CONFIG) \
|
||||
-DCROSSCOMPILE -DCROSSCOMPILE_TARGET -DCROSS_TO_MSDOS \
|
||||
-D_NAIVE_DOS_REGS \
|
||||
$(MSDOS_GCC_CFLAGS) $(SNDCFLAGS)
|
||||
@@ -188,7 +213,11 @@ MSDOS_TARGET_CXXFLAGS = -c -O $(DBGFLAGS) -I../include -I../sys/msdos -I../win/s
|
||||
PDCINCL += -I$(PDCPORT)
|
||||
PDC_TARGET_CFLAGS = $(MSDOS_TARGET_CFLAGS) -Wno-unused-parameter \
|
||||
-Wno-missing-prototypes
|
||||
ifndef SKIP_FONTS_IN_CI
|
||||
ifdef SKIP_FONTS_IN_CI
|
||||
FONTTARGETS=
|
||||
else ifdef SKIP_FONTS
|
||||
FONTTARGETS=
|
||||
else
|
||||
FONTVER = terminus-font-4.49.1
|
||||
FONTTOP = ../lib/$(FONTVER)
|
||||
DOSFONT = ../sys/msdos/fonts
|
||||
@@ -196,8 +225,6 @@ FONTTARGETS = $(DOSFONT)/ter-u16b.psf $(DOSFONT)/ter-u16v.psf \
|
||||
$(DOSFONT)/ter-u18b.psf $(DOSFONT)/ter-u20b.psf \
|
||||
$(DOSFONT)/ter-u22b.psf $(DOSFONT)/ter-u24b.psf \
|
||||
$(DOSFONT)/ter-u28b.psf $(DOSFONT)/ter-u32b.psf
|
||||
else
|
||||
FONTTARGETS=
|
||||
endif
|
||||
LUABIN = ../lib/lua-$(LUA_VERSION)/src/lua
|
||||
LUA_TARGET_CFLAGS = $(MSDOS_TARGET_CFLAGS)
|
||||
@@ -214,22 +241,27 @@ 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 \
|
||||
../sys/msdos/vidtxt.c ../sys/msdos/pckeys.c \
|
||||
../sys/msdos/vidvga.c ../sys/msdos/vidvesa.c \
|
||||
../sys/msdos/font.c \
|
||||
../win/share/bmptiles.c ../win/share/giftiles.c \
|
||||
../win/share/tileset.c
|
||||
../sys/msdos/vidvga.c ../sys/msdos/vidvesa.c
|
||||
override SYSOBJ= $(TARGETPFX)pcmain.o $(TARGETPFX)msdos.o \
|
||||
$(TARGETPFX)pcsys.o $(TARGETPFX)pctty.o \
|
||||
$(TARGETPFX)pcunix.o $(TARGETPFX)video.o \
|
||||
$(TARGETPFX)vidtxt.o $(TARGETPFX)pckeys.o \
|
||||
$(TARGETPFX)vidvga.o $(TARGETPFX)vidvesa.o \
|
||||
$(TARGETPFX)font.o \
|
||||
$(TARGETPFX)bmptiles.o $(TARGETPFX)giftiles.o \
|
||||
$(TARGETPFX)tileset.o $(TARGETPFX)tile.o
|
||||
$(TARGETPFX)vidvga.o $(TARGETPFX)vidvesa.o
|
||||
ifndef SKIP_FONT_C
|
||||
override SYSSRC += ../sys/msdos/font.c
|
||||
override SYSOBJ += $(TARGETPFX)font.o
|
||||
endif
|
||||
ifndef SKIP_TILES
|
||||
override SYSSRC += ../win/share/bmptiles.c ../win/share/giftiles.c \
|
||||
../win/share/tileset.c
|
||||
override SYSOBJ += $(TARGETPFX)bmptiles.o $(TARGETPFX)giftiles.o \
|
||||
$(TARGETPFX)tileset.o
|
||||
endif
|
||||
override WINLIB=
|
||||
override LUALIB=
|
||||
override LUALIBS=
|
||||
override TOPLUALIB=
|
||||
override LUATOPLIB=
|
||||
override WINX11OBJ=
|
||||
override GAMEBIN = $(TARGETPFX)nethack.exe
|
||||
override RECOVERBIN = $(TARGETPFX)recover.exe
|
||||
override SFCTOOLBIN = $(TARGETPFX)sfctool.exe
|
||||
@@ -247,7 +279,12 @@ GDBEXE=
|
||||
GDBBAT=
|
||||
GDBCMDLINE=
|
||||
endif
|
||||
ifndef SKIP_TILES
|
||||
VARDATND += nhtiles.bmp
|
||||
NHTILES = ../dat/nhtiles.bmp
|
||||
else
|
||||
NHTILES =
|
||||
endif
|
||||
#
|
||||
ifdef WANT_WIN_CURSES
|
||||
# rules for pdcurses dos-specific files
|
||||
@@ -258,6 +295,11 @@ endif # WANT_WIN_CURSES
|
||||
# Rule for files in sys/msdos
|
||||
$(TARGETPFX)%.o : ../sys/msdos/%.c
|
||||
$(TARGET_CC) $(TARGET_CFLAGS) -o$@ $<
|
||||
#
|
||||
# Rule for files in util
|
||||
$(TARGETPFX)%.o : ../util/%.c
|
||||
$(TARGET_CC) $(TARGET_CFLAGS) -o$@ $<
|
||||
|
||||
endif # CROSS_TO_MSDOS
|
||||
#=================================================================
|
||||
|
||||
@@ -267,6 +309,7 @@ ifdef CROSS_TO_WASM
|
||||
# WASM
|
||||
# originally from https://github.com/NetHack/NetHack/pull/385
|
||||
#===============-=================================================
|
||||
#also set a make variable flagging this as a crosscompile
|
||||
#
|
||||
#WASM_DEBUG = 1
|
||||
WASM_DATA_DIR = $(TARGETPFX)wasm-data
|
||||
@@ -328,10 +371,10 @@ WASM_CFLAGS += -Wshadow
|
||||
# WASM_CFLAGS += -Wwrite-strings
|
||||
# WASM_CFLAGS += -Werror
|
||||
# Nethack C flags
|
||||
WASM_CFLAGS += $(WINCFLAGS) #WINCFLAGS set from multiw-2.370
|
||||
WASM_CFLAGS += -DSYSCF -DSYSCF_FILE=\"/sysconf\" -DSECURE
|
||||
#WASM_CFLAGS += -g -I../include -DNOTPARMDECL
|
||||
WASM_CFLAGS += -I../include -DNOTPARMDECL
|
||||
WASM_CFLAGS += $(WINCFLAGS) #WINCFLAGS set from multiw-2.500
|
||||
WASM_CFLAGS += -DSYSCF -DSYSCF_FILE=\"/sysconf\" -DSECURE -DNHUUID
|
||||
#WASM_CFLAGS += -g -I../include
|
||||
WASM_CFLAGS += -I../include
|
||||
# NetHack sources control
|
||||
WASM_CFLAGS += -DDLB
|
||||
WASM_CFLAGS += -DHACKDIR=\"$(HACKDIR)\"
|
||||
@@ -360,9 +403,10 @@ override SYSOBJ= $(TARGETPFX)libnhmain.o \
|
||||
$(TARGETPFX)winshim.o
|
||||
override WINLIB = emranlib
|
||||
override LUALIB=
|
||||
override TOPLUALIB=
|
||||
override LUATOPLIB=
|
||||
override REGEXOBJ = $(TARGETPFX)posixregex.o
|
||||
override WINOBJ=
|
||||
override UUIDOBJ=
|
||||
# don't bother Making regular NetHack executable
|
||||
override GAME=
|
||||
# the real VARDAT hasn't been defined yet for use in ALLDEP override
|
||||
@@ -442,7 +486,7 @@ override SYSOBJ = $(TARGETPFX)ioctl.o $(TARGETPFX)unixmain.o $(TARGETPFX)unixtty
|
||||
override WINLIB = $(NCURSESLIB)
|
||||
override LUALIB=
|
||||
override LUALIBS=
|
||||
override TOPLUALIB=
|
||||
override LUATOPLIB=
|
||||
override GAMEBIN=$(MIPS_TARGET)
|
||||
override RECOVERBIN = $(TARGETPFX)recover
|
||||
override PACKAGE = mipspkg
|
||||
@@ -470,7 +514,7 @@ ifdef CROSS_TO_AMIGA
|
||||
#
|
||||
# Cross-compiler: https://franke.ms/git/bebbo/amiga-gcc
|
||||
# Install to /opt/amiga, then:
|
||||
# sys/unix/setup.sh sys/unix/hints/linux.370
|
||||
# sys/unix/setup.sh sys/unix/hints/linux.500
|
||||
# make fetch-lua
|
||||
# make CROSS_TO_AMIGA=1 fetch-regex
|
||||
# make CROSS_TO_AMIGA=1 all
|
||||
@@ -499,8 +543,9 @@ override TARGET_CFLAGS = -c -O2 -noixemul $(TOOLARCH) \
|
||||
$(LUAINCL) -DAMIGA -DNOTTYGRAPHICS -DNO_TERMS -DNO_SIGNAL \
|
||||
-DTILES_IN_GLYPHMAP $(PDCURSESDEF) \
|
||||
-DCROSSCOMPILE -DCROSSCOMPILE_TARGET -DCROSS_TO_AMIGA \
|
||||
-DAMIGA_VERSION_STRING=\""VER: NetHack 3.7.0"\"
|
||||
-DAMIGA_VERSION_STRING=\""VER: NetHack 5.0.0"\"
|
||||
override TARGET_CXXFLAGS = $(TARGET_CFLAGS)
|
||||
override GENTILEOFILE = $(TARGETPFX)tile.o
|
||||
LUA_TARGET_CFLAGS = $(TARGET_CFLAGS)
|
||||
ifeq "$(REGEXOBJ)" "$(TARGETPFX)cppregex.o"
|
||||
override TARGET_LINK = $(TARGET_CXX)
|
||||
@@ -510,9 +555,9 @@ endif
|
||||
override TARGET_LFLAGS= $(TOOLARCH) -noixemul -Wl,--allow-multiple-definition
|
||||
override TARGET_LIBS += $(LIBLM)
|
||||
VARDATND += nhtiles.bmp
|
||||
override SYSSRC = ../sys/amiga/amidos.c ../sys/amiga/amigst.c \
|
||||
override SYSSRC = ../sys/amiga/amidos.c \
|
||||
../sys/amiga/amimenu.c ../sys/amiga/amirip.c \
|
||||
../sys/amiga/amistack.c ../sys/amiga/amitty.c \
|
||||
../sys/amiga/amistack.c \
|
||||
../sys/amiga/amiwind.c ../sys/amiga/clipwin.c \
|
||||
../sys/amiga/colorwin.c \
|
||||
../sys/amiga/winami.c ../sys/amiga/winchar.c \
|
||||
@@ -521,9 +566,9 @@ override SYSSRC = ../sys/amiga/amidos.c ../sys/amiga/amigst.c \
|
||||
../sys/amiga/winstr.c ../sys/share/pcmain.c \
|
||||
../win/share/bmptiles.c ../win/share/giftiles.c \
|
||||
../win/share/tileset.c
|
||||
override SYSOBJ = $(TARGETPFX)amidos.o $(TARGETPFX)amigst.o \
|
||||
override SYSOBJ = $(TARGETPFX)amidos.o \
|
||||
$(TARGETPFX)amirip.o $(TARGETPFX)amistack.o \
|
||||
$(TARGETPFX)amitty.o $(TARGETPFX)amiwind.o \
|
||||
$(TARGETPFX)amiwind.o \
|
||||
$(TARGETPFX)winami.o $(TARGETPFX)winchar.o \
|
||||
$(TARGETPFX)winfuncs.o $(TARGETPFX)winkey.o \
|
||||
$(TARGETPFX)winamenu.o $(TARGETPFX)winreq.o \
|
||||
@@ -534,7 +579,7 @@ override SYSOBJ = $(TARGETPFX)amidos.o $(TARGETPFX)amigst.o \
|
||||
override WINLIB=
|
||||
override LUALIB=
|
||||
override LUALIBS=
|
||||
override TOPLUALIB=
|
||||
override LUATOPLIB=
|
||||
override DLLIB=
|
||||
override WINOBJ=
|
||||
override GAMEBIN = $(TARGETPFX)nethack
|
||||
@@ -0,0 +1,123 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# NetHack 5.0 directories.500 $NHDT-Date: 1668359835 2022/11/13 17:17:15 $ $NHDT-Branch: NetHack-5.0 $
|
||||
|
||||
ifndef WANT_SHARED_INSTALL
|
||||
PREFIX=$(abspath $(NHSROOT))
|
||||
SOURCEINSTALL=1
|
||||
|
||||
# -----------------------------------------
|
||||
# This is for the Linux source tree install
|
||||
# -----------------------------------------
|
||||
ifeq "$(WHICH_OS)" "Linux"
|
||||
|
||||
HACKDIR ?=$(PREFIX)/playground
|
||||
INSTDIR ?=$(HACKDIR)
|
||||
VARDIR ?=$(HACKDIR)
|
||||
|
||||
GAMEPERM ?= 0700
|
||||
VARFILEPERM ?= 0600
|
||||
VARDIRPERM ?= 0700
|
||||
|
||||
else # macOS
|
||||
#
|
||||
# -----------------------------------------
|
||||
# This is for the macOS source tree install
|
||||
# -----------------------------------------
|
||||
#
|
||||
# The macOS setup sets things up two different
|
||||
# ways, depending on whether an explicit
|
||||
# WANT_SOURCE_INSTALL=1 was given, or not.
|
||||
ifdef WANT_SOURCE_INSTALL
|
||||
|
||||
HACKDIR ?=$(PREFIX)/playground
|
||||
CHOWN ?=/usr/bin/true
|
||||
CHGRP ?=/usr/bin/true
|
||||
|
||||
GAMEPERM ?= 0700
|
||||
VARFILEPERM ?= 0600
|
||||
VARDIRPERM ?= 0700
|
||||
else # WANT_SOURCE_INSTALL not expressed
|
||||
PREFIX:=$(wildcard ~)
|
||||
SHELLDIR ?=$(PREFIX)/bin
|
||||
HACKDIR ?=$(PREFIX)/nethackdir
|
||||
CHOWN ?=/usr/bin/true
|
||||
CHGRP ?=/usr/bin/true
|
||||
GAMEPERM ?= 0700
|
||||
VARFILEPERM ?= 0600
|
||||
VARDIRPERM ?= 0700
|
||||
|
||||
endif # WANT_SOURCE_INSTALL
|
||||
|
||||
INSTDIR ?=$(HACKDIR)
|
||||
VARDIR ?=$(HACKDIR)
|
||||
|
||||
endif # macOS
|
||||
endif # not WANT_SHARED_INSTALL
|
||||
|
||||
ifneq "$(SOURCEINSTALL)" "1"
|
||||
ifdef WANT_SHARED_INSTALL
|
||||
ifeq "$(WHICH_OS)" "Linux"
|
||||
# -----------------------------------------
|
||||
# This is for the Linux system-wide install
|
||||
# -----------------------------------------
|
||||
|
||||
PREFIX ?=$(wildcard ~)/nh/install
|
||||
HACKDIR ?=$(PREFIX)/games/lib/nethackdir
|
||||
SHELLDIR ?= $(PREFIX)/games
|
||||
INSTDIR ?=$(HACKDIR)
|
||||
VARDIR ?=$(HACKDIR)
|
||||
MANDIR ?=/usr/share/man/man6
|
||||
|
||||
VARDIRPERM ?= 0755
|
||||
VARFILEPERM ?= 0600
|
||||
GAMEPERM ?= 0755
|
||||
|
||||
# ----------------------------------
|
||||
# End of Linux system-wide install
|
||||
# ----------------------------------
|
||||
|
||||
else # macOS
|
||||
# ------------------------------------------------
|
||||
# This is for the macOS system-wide shared install
|
||||
# ------------------------------------------------
|
||||
|
||||
# if $GAMEUID is root, we install into roughly
|
||||
# proper Mac locations, otherwise we install
|
||||
# into ~/nethackdir
|
||||
|
||||
ifeq ($(GAMEUID),root)
|
||||
PREFIX:=/Library/NetHack
|
||||
SHELLDIR ?=/usr/local/bin
|
||||
HACKDIR ?=$(PREFIX)/nethackdir
|
||||
MANDIR ?=/usr/local/share/man/man6
|
||||
CHOWN ?=chown
|
||||
CHGRP ?=chgrp
|
||||
# We run sgid so the game has access to both HACKDIR
|
||||
# and user preferences
|
||||
GAMEPERM ?=02755
|
||||
|
||||
else # ! root
|
||||
PREFIX:=/Users/$(GAMEUID)
|
||||
SHELLDIR ?=$(PREFIX)/bin
|
||||
HACKDIR ?=$(PREFIX)/Library/NetHack/nethackdir
|
||||
CHOWN ?=/usr/bin/true
|
||||
CHGRP ?=/usr/bin/true
|
||||
GAMEPERM ?= 0500
|
||||
endif # ! root
|
||||
|
||||
INSTDIR ?=$(HACKDIR)
|
||||
VARDIR ?=$(HACKDIR)
|
||||
|
||||
VARFILEPERM ?= 0664
|
||||
VARDIRPERM ?= 0775
|
||||
|
||||
# ---------------------------------------
|
||||
# End of macOS system-wide shared install
|
||||
# --------------------------------------
|
||||
endif # WHICH_OS?
|
||||
endif # WANT_SHARED_INSTALL
|
||||
endif # SOURCEINSTALL != 1
|
||||
|
||||
#end of dirs-perms.500
|
||||
#--------------------------------------
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# NetHack 3.7 gbdates-post.370 $NHDT-Date: 1599687610 2020/09/09 21:40:10 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.11 $
|
||||
# NetHack 5.0 gbdates-post.500 $NHDT-Date: 1599687610 2020/09/09 21:40:10 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.11 $
|
||||
ifdef MAKEFILE_DOC
|
||||
ifdef GB_DATESTAMP
|
||||
Guidebook.dated.mn: $(GUIDEBOOK_MN_SRC)
|
||||
@@ -1,4 +1,4 @@
|
||||
# NetHack 3.7 gbdates-pre.370 $NHDT-Date: 1599687610 2020/09/09 21:40:10 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.11 $
|
||||
# NetHack 5.0 gbdates-pre.500 $NHDT-Date: 1599687610 2020/09/09 21:40:10 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.11 $
|
||||
|
||||
ifdef MAKEFILE_DOC
|
||||
ifneq "$(GIT)" "0"
|
||||
@@ -0,0 +1,25 @@
|
||||
# ----- linuxdistro.500 --------
|
||||
|
||||
LINUX_DISTRO=
|
||||
OS_ID := $(shell grep -E '^ID=' /etc/os-release 2>/dev/null | cut -d= -f2)
|
||||
#$(info OS_ID=$(OS_ID))
|
||||
|
||||
ifeq ($(OS_ID),alpine)
|
||||
LINUX_DISTRO=alpine
|
||||
USE_SYSTEM_LUA=1
|
||||
CURSPKG = ncurses
|
||||
endif
|
||||
ifeq ($(OS_ID),debian)
|
||||
LINUX_DISTRO=debian
|
||||
USE_SYSTEM_LUA=1
|
||||
endif
|
||||
ifeq ($(OS_ID),ubuntu)
|
||||
LINUX_DISTRO=ubuntu
|
||||
USE_SYSTEM_LUA=1
|
||||
endif
|
||||
ifeq ($(OS_ID),fedora)
|
||||
LINUX_DISTRO=fedora
|
||||
USE_SYSTEM_LUA=1
|
||||
endif
|
||||
#$(info LINUX_DIST=$(LINUX_DISTRO))
|
||||
# ----- end of linuxdistro.500 --------
|
||||
@@ -1,11 +1,11 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# NetHack 3.7 misc.370 $NHDT-Date: 1668359836 2022/11/13 17:17:16 $ $NHDT-Branch: NetHack-3.7 $
|
||||
# NetHack 5.0 misc.500 $NHDT-Date: 1668359836 2022/11/13 17:17:16 $ $NHDT-Branch: NetHack-5.0 $
|
||||
#
|
||||
# Further set-up for miscellaneous odds and ends (after compiler.370)
|
||||
# Further set-up for miscellaneous odds and ends (after compiler.500)
|
||||
#
|
||||
# Included from:
|
||||
# hints/linux.370
|
||||
# hints/macOS.370
|
||||
# hints/linux.500
|
||||
# hints/macOS.500
|
||||
#
|
||||
|
||||
# This ensures that .moc files are compatible with the version of Qt chosen.
|
||||
@@ -21,7 +21,7 @@ ifdef WANT_WIN_QT6
|
||||
# Qt 6 builds and runs (with a couple of warnings) but needs more testing
|
||||
QTn_H = Qt6.h-t
|
||||
else
|
||||
# Qt 5 is currently the default version for nethack 3.7.x's Qt interface
|
||||
# Qt 5 is currently the default version for nethack NetHack 5.0.x's Qt interface
|
||||
QTn_H = Qt5.h-t
|
||||
endif
|
||||
$(QTn_H) ::
|
||||
@@ -105,6 +105,6 @@ endif # end groff less than 1.23
|
||||
endif # end groff-specific
|
||||
endif # not USE_MANDOC
|
||||
|
||||
#end of hints/include/misc.370
|
||||
#end of hints/include/misc.500
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# NetHack 3.7 multisnd-post.370 $NHDT-Date: 1597332785 2020/08/13 15:33:05 $ $NHDT-Branch: NetHack-3.7 $
|
||||
# NetHack 5.0 multisnd-post.500 $NHDT-Date: 1597332785 2020/08/13 15:33:05 $ $NHDT-Branch: NetHack-5.0 $
|
||||
|
||||
ifeq "$(HAVE_SNDLIB)" "1"
|
||||
# note: one possible value for $(SNDLIBSRC) is 'macsound.m' which is written
|
||||
@@ -21,6 +21,6 @@ $(WAVDIR)/%.wav: ../util/uudecode $(WAVDIR)/%.uu
|
||||
endif # NEEDS_WAV
|
||||
endif # HAVE_SNDLIB
|
||||
|
||||
# end of multisnd-post.370
|
||||
# end of multisnd-post.500
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# NetHack 3.7 multisnd1-pre.370 $NHDT-Date: 1597332785 2020/08/13 15:33:05 $ $NHDT-Branch: NetHack-3.7 $
|
||||
# NetHack 5.0 multisnd1-pre.500 $NHDT-Date: 1597332785 2020/08/13 15:33:05 $ $NHDT-Branch: NetHack-5.0 $
|
||||
#
|
||||
# If it's cross-platform it belongs in this file.
|
||||
# If it's macOS-only, it belongs in macOS.370.
|
||||
# If it's linux-only, it belongs in linux.370.
|
||||
# If it's macOS-only, it belongs in macOS.500.
|
||||
# If it's linux-only, it belongs in linux.500.
|
||||
#
|
||||
|
||||
#ifdef WANT_TESTSOUND
|
||||
@@ -26,8 +26,8 @@ endif # HAVE_SNDLIB
|
||||
# HAVE_SNDLIB or NEEDS_SND_USERSOUNDS or NEEDS_SND_SEAUTOMAP
|
||||
# would have to be set prior to this. Any of them could have
|
||||
# been set just above, or they could have been set in
|
||||
# multiw-2 for Qt, or they could have been set in macOS.370
|
||||
# or linux.370 for something platform-specific.
|
||||
# multiw-2 for Qt, or they could have been set in macOS.500
|
||||
# or linux.500 for something platform-specific.
|
||||
# Regardless, if one of those is set, the related preprocessor
|
||||
# defines need to be added to SNDCFLAGS here.
|
||||
#
|
||||
@@ -1,5 +1,5 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# NetHack 3.7 multisnd2-pre.370 $NHDT-Date: 1597332785 2020/08/13 15:33:05 $ $NHDT-Branch: NetHack-3.7 $
|
||||
# NetHack 5.0 multisnd2-pre.500 $NHDT-Date: 1597332785 2020/08/13 15:33:05 $ $NHDT-Branch: NetHack-5.0 $
|
||||
#
|
||||
|
||||
ifdef NEEDS_WAV
|
||||
@@ -27,6 +27,6 @@ SNDWAVS = se_squeak_A se_squeak_B se_squeak_B_flat se_squeak_C se_squeak_D \
|
||||
WAVS = $(addprefix $(WAVDIR)/, $(addsuffix .wav, $(SNDWAVS)))
|
||||
endif # NEEDS_WAV
|
||||
|
||||
# end of multisnd2-pre.370
|
||||
# end of multisnd2-pre.500
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# NetHack 3.7 multiw-1.370 $NHDT-Date: 1597332785 2020/08/13 15:33:05 $ $NHDT-Branch: NetHack-3.7 $
|
||||
# NetHack 5.0 multiw-1.500 $NHDT-Date: 1597332785 2020/08/13 15:33:05 $ $NHDT-Branch: NetHack-5.0 $
|
||||
|
||||
# 1. Which windowing interface(s) should be included in this binary?
|
||||
# One or more of these can be manually uncommented and/or can be specified
|
||||
@@ -19,5 +19,9 @@
|
||||
#WANT_DEFAULT=Qt
|
||||
#WANT_DEFAULT=X11
|
||||
|
||||
#end of multiw-1.370
|
||||
# Based on the NetHack version 5.0.0
|
||||
# Used to build some filenames subsequently in other include files
|
||||
NHV=500
|
||||
|
||||
#end of multiw-1.500
|
||||
#------------------------------------------------------------------------------
|
||||
@@ -1,11 +1,11 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# NetHack 3.7 multiw-2.370 $NHDT-Date: 1599337709 2020/09/05 20:28:29 $ $NHDT-Branch: NetHack-3.7 $
|
||||
# NetHack 5.0 multiw-2.500 $NHDT-Date: 1599337709 2020/09/05 20:28:29 $ $NHDT-Branch: NetHack-5.0 $
|
||||
#
|
||||
# Sorts out support for multiple window ports (interfaces) to included in the build.
|
||||
#
|
||||
# Included from:
|
||||
# hints/linux.370
|
||||
# hints/macOS.370
|
||||
# hints/linux.500
|
||||
# hints/macOS.500
|
||||
#
|
||||
# The following will be set appropriately following this:
|
||||
# - WANT_WIN_XXX (at least one will be set; default is TTY)
|
||||
@@ -79,8 +79,6 @@ WINCFLAGS=
|
||||
WINSRC =
|
||||
WINOBJ0 =
|
||||
SND_CFLAGS=
|
||||
XTRASRC =
|
||||
XTRAOBJ =
|
||||
|
||||
ifdef WANT_WIN_TTY
|
||||
WINSRC += $(WINTTYSRC)
|
||||
@@ -104,8 +102,7 @@ ifdef WANT_WIN_X11
|
||||
WINCFLAGS += -DX11_GRAPHICS
|
||||
WINSRC += $(WIINX11SRC)
|
||||
WINOBJ0 += $(WINX11OBJ)
|
||||
XTRASRC += tile.c
|
||||
XTRAOBJ += $(TARGETPFX)tile.o
|
||||
GENTILECFILE = $(SRCDIR)/tile.c
|
||||
endif
|
||||
|
||||
ifndef WANT_WIN_QT
|
||||
@@ -156,8 +153,7 @@ endif #! WANT_WIN_QT4
|
||||
HAVE_SNDLIB = 1
|
||||
NEEDS_SND_USERSOUNDS = 1
|
||||
NEEDS_SND_SEAUTOMAP = 1
|
||||
XTRASRC += tile.c
|
||||
XTRAOBJ += $(TARGETPFX)tile.o
|
||||
GENTILECFILE = $(SRCDIR)/tile.c
|
||||
#
|
||||
ifndef CPLUSPLUS_NEEDED
|
||||
CPLUSPLUS_NEEDED = 1
|
||||
@@ -213,6 +209,6 @@ ifeq "$(NOCRASHREPORT)" "1"
|
||||
WINCFLAGS += -DNOCRASHREPORT
|
||||
endif
|
||||
|
||||
#end of hints/include/multiw-2.370
|
||||
#end of hints/include/multiw-2.500
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# NetHack 3.7 response.370 $NHDT-Date: 1668359835 2022/11/13 17:17:15 $ $NHDT-Branch: NetHack-3.7 $
|
||||
# NetHack 5.0 response.500 $NHDT-Date: 1668359835 2022/11/13 17:17:15 $ $NHDT-Branch: NetHack-5.0 $
|
||||
|
||||
ifeq "$(RESP)" "1"
|
||||
USE_RESPONSEFILE=1
|
||||
@@ -15,7 +15,6 @@ USE_RESPONSEFILE=1
|
||||
endif
|
||||
|
||||
ifeq "$(USE_RESPONSEFILE)" "1"
|
||||
RESPONSEFILES=create_responsefiles
|
||||
CXXFLAGS = $(CCXXFLAGS) -I. -I$(QTDIR)/include $(QTCXXFLAGS)
|
||||
CC_COMPILER_SWITCHES := $(subst \,\\,$(CFLAGS))
|
||||
CC_COMPILER_SWITCHES := $(subst ",\",$(CC_COMPILER_SWITCHES))
|
||||
@@ -23,11 +22,12 @@ CXX_COMPILER_SWITCHES := $(subst \,\\,$(CXXFLAGS))
|
||||
CXX_COMPILER_SWITCHES := $(subst ",\",$(CXX_COMPILER_SWITCHES))
|
||||
CC_RESPONSEFILE=../src/nethack_cc.rsp
|
||||
CXX_RESPONSEFILE=../src/nethack_cxx.rsp
|
||||
RESPONSEFILES=$(CC_RESPONSEFILE) $(CXX_RESPONSEFILE)
|
||||
CFLAGS=@$(CC_RESPONSEFILE)
|
||||
CXXFLAGS=@$(CXX_RESPONSEFILE)
|
||||
CLEAN_CC_RESPONSEFILE=rm -f $(CC_RESPONSEFILE);
|
||||
CLEAN_CXX_RESPONSEFILE=rm -f $(CXX_RESPONSEFILE);
|
||||
endif
|
||||
|
||||
#end of response.370
|
||||
#end of response.500
|
||||
#------------------------------------------------------------------------------
|
||||
@@ -0,0 +1,23 @@
|
||||
#=================================================================
|
||||
# NetHack 5.0 include/whichbsd.500 $NHDT-Date: 1778861905 2026/05/15 16:18:25 $ $NHDT-Branch: NetHack-5.0 $
|
||||
#
|
||||
#
|
||||
.ifdef WHICHBSD
|
||||
.undef WHICHBSD
|
||||
.endif
|
||||
|
||||
OS!=uname -s
|
||||
|
||||
.if ${OS} == "FreeBSD"
|
||||
WHICHBSD=FREEBSD
|
||||
.elif ${OS} == "OpenBSD"
|
||||
WHICHBSD=OPENBSD
|
||||
.elif ${OS} == "NetBSD"
|
||||
WHICHBSD=NETBSD
|
||||
.else
|
||||
WHICHBSD=OTHERBSD
|
||||
.endif
|
||||
|
||||
# End of whichbsd.500 -PRE section
|
||||
#=================================================================
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# NetHack 3.7 linux $NHDT-Date: 1596498416 2020/08/03 23:46:56 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $
|
||||
# NetHack 5.0 linux $NHDT-Date: 1596498416 2020/08/03 23:46:56 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.2 $
|
||||
# Copyright (c) Patric Mueller
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
#
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# NetHack 3.7 linux.370 $NHDT-Date: 1693519390 2023/08/31 22:03:10 $ $NHDT-Branch: keni-crashweb2 $:$NHDT-Revision: 1.61 $
|
||||
# NetHack 5.0 linux.500 $NHDT-Date: 1693519390 2023/08/31 22:03:10 $ $NHDT-Branch: keni-crashweb2 $:$NHDT-Revision: 1.61 $
|
||||
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2007.
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
#
|
||||
@@ -12,29 +12,41 @@
|
||||
# And let us know about it.
|
||||
#
|
||||
|
||||
#-PRE
|
||||
# linux.370 hints file provides a single-user build for Linux (such
|
||||
# as Ubuntu focal).
|
||||
#-PRE xxxx
|
||||
|
||||
# note: '#-INCLUDE' is not just a comment
|
||||
# multiw-1.370 contains sections 1 to 2
|
||||
#-INCLUDE multiw-1.370
|
||||
|
||||
HINTSVERSION := 370
|
||||
WHICH_OS=Linux
|
||||
HINTSVERSION := 500
|
||||
|
||||
ifdef MAKEFILE_TOP
|
||||
LUA_VERSION=5.4.8
|
||||
ifeq ($(MAKELEVEL),0)
|
||||
PRECHECK+=checkmakefiles
|
||||
# all files included from this hints file get listed
|
||||
# in HINTSINCLNAMES (without suffix and without a path)
|
||||
HINTSINCLNAMES := compiler cross-pre1 cross-pre2 cross-post \
|
||||
HINTSINCLNAMES := dirs-perms \
|
||||
compiler cross-pre1 cross-pre2 cross-post \
|
||||
gbdates-pre gbdates-post \
|
||||
linuxdistro \
|
||||
multiw-1 multiw-2 misc \
|
||||
multisnd1-pre multisnd2-pre multisnd-post
|
||||
multisnd1-pre multisnd2-pre multisnd-post \
|
||||
response
|
||||
HINTSINCLFILES := $(addsuffix .$(HINTSVERSION), $(HINTSINCLNAMES))
|
||||
endif
|
||||
endif
|
||||
|
||||
# linux.500 hints file provides a single-user build for Linux (such
|
||||
# as Ubuntu focal).
|
||||
|
||||
# note: '#-INCLUDE' is not just a comment
|
||||
# multiw-1.500 contains sections 1 to 2
|
||||
#-INCLUDE multiw-1.500
|
||||
|
||||
# note: '#-INCLUDE' is not just a comment
|
||||
# it pulls in the contents of dirs-perms.500
|
||||
#-INCLUDE dirs-perms.500
|
||||
|
||||
#-INCLUDE linuxdistro.500
|
||||
|
||||
ifndef LIBXPM
|
||||
LIBXPM= -L/opt/X11/lib -lXpm
|
||||
endif
|
||||
@@ -52,7 +64,7 @@ USE_NOSTATICFN = 1
|
||||
#USE_NONOSTATICFN = 1
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
#-INCLUDE cross-pre1.370
|
||||
#-INCLUDE cross-pre1.500
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
@@ -60,12 +72,123 @@ USE_NOSTATICFN = 1
|
||||
# you're reading this in Makefile augmented by hints, that may not be true).
|
||||
#
|
||||
|
||||
#-INCLUDE multiw-2.370
|
||||
#-INCLUDE multiw-2.500
|
||||
|
||||
# compiler.370 contains compiler detection and adjustments common
|
||||
#QT6 prior to compiler include
|
||||
ifdef WANT_WIN_QT6
|
||||
CPLUSPLUS_NEED20=1
|
||||
ADDITIONAL_NO_WARN_GPPCCX=-Wno-sfinae-incomplete
|
||||
ADDITIONAL_NO_WARN_CLANGCCX=-Wno-c++26-extensions
|
||||
endif # WANT_WIN_QT6
|
||||
|
||||
# compiler.500 contains compiler detection and adjustments common
|
||||
# to both linux and macOS
|
||||
|
||||
#-INCLUDE compiler.370
|
||||
#-INCLUDE compiler.500
|
||||
|
||||
ifdef WANT_SYSTEM_LUA
|
||||
ifndef LUA_VERSION
|
||||
LUA_VERSION := 5.4.8
|
||||
endif
|
||||
LUASUBDELIM := $(subst ., ,$(LUA_VERSION))
|
||||
LUASHVER := $(word 1, $(LUASUBDELIM)).$(word 2, $(LUASUBDELIM))
|
||||
|
||||
ifeq ($(LINUX_DISTRO),alpine)
|
||||
# prereq: doas apk add lua5.4-dev
|
||||
# doas apk add linux-headers
|
||||
# doas apk add musl-dev
|
||||
USE_SYSTEM_LUA=1
|
||||
SHELLPKG :=pkg-config
|
||||
LUAPKGNAME = lua-$(LUASHVER)
|
||||
CURSPKG = ncurses
|
||||
#
|
||||
else ifeq ($(LINUX_DISTRO),debian)
|
||||
# prereq: sudo apt install lua5.4 liblua5.4-dev
|
||||
USE_SYSTEM_LUA=1
|
||||
SHELLPKG :=pkg-config
|
||||
LUAPKGNAME = lua-$(LUASHVER)
|
||||
#
|
||||
else ifeq ($(LINUX_DISTRO),ubuntu)
|
||||
# prereq: sudo apt install lua5.4 liblua5.4-dev
|
||||
USE_SYSTEM_LUA=1
|
||||
SHELLPKG :=dpkg
|
||||
LUAPKGNAME = lua$(LUASHVER)
|
||||
#
|
||||
else ifeq ($(LINUX_DISTRO),fedora)
|
||||
# prereq: sudo dnf install lua lua-devel
|
||||
USE_SYSTEM_LUA=1
|
||||
SHELLPKG :=rpm
|
||||
LUAPKGNAME = lua-devel
|
||||
#
|
||||
else
|
||||
USE_SYSTEM_LUA=0
|
||||
SHELLPKG :=
|
||||
endif # LINUX_DISTRO
|
||||
|
||||
ifeq ($(USE_SYSTEM_LUA),1)
|
||||
ifneq "$(SHELLPKG)" ""
|
||||
#
|
||||
# Two requirements must now pass:
|
||||
# 1. We need to be able to check if Lua package
|
||||
# is installed. We do that here.
|
||||
# 2. The lua.h header file needs to be present
|
||||
# where expected. We set LUATESTTARGET here,
|
||||
# but the check is done later on in the top
|
||||
# Makefile.
|
||||
#
|
||||
# Try to confirm package presence
|
||||
ifeq ($(SHELLPKG),pkg-config)
|
||||
PKG_EXISTS := $(shell pkg-config --exists $(LUAPKGNAME) \
|
||||
&& echo yes || echo no)
|
||||
#
|
||||
else ifeq ($(SHELLPKG),dpkg)
|
||||
PKG_EXISTS := $(shell dpkg -s $(LUAPKGNAME) > /dev/null 2>&1 \
|
||||
&& echo yes || echo no)
|
||||
#
|
||||
else ifeq ($(SHELLPKG),rpm)
|
||||
PKG_EXISTS := $(shell rpm -q $(LUAPKGNAME) > /dev/null 2>&1 \
|
||||
&& echo yes || echo no)
|
||||
#
|
||||
else
|
||||
PKG_EXISTS=no
|
||||
$(info Existance of package $(LUAPKGNAME) could not be verified)
|
||||
endif
|
||||
|
||||
ifeq ($(PKG_EXISTS),yes)
|
||||
$(info Existance of package $(LUAPKGNAME) verified)
|
||||
#
|
||||
ifeq ($(LINUX_DISTRO),fedora)
|
||||
LUACFLAGS := $(shell pkg-config --cflags lua-$(LUASHVER))
|
||||
LUALIBS := $(shell pkg-config --libs lua-$(LUASHVER))
|
||||
LUAHEADERS := /usr/include/lua$(LUASHVER)
|
||||
LUATESTTARGET := $(LUAHEADERS)/lua.h
|
||||
#
|
||||
else ifeq ($(LINUX_DISTRO),ubuntu)
|
||||
LUACFLAGS := -I/usr/include/lua$(LUASHVER)
|
||||
LUALIBS := -llua$(LUASHVER) -lm -ldl
|
||||
LUAHEADERS := /usr/include/lua$(LUASHVER)
|
||||
LUATESTTARGET := $(LUAHEADERS)/lua.h
|
||||
#
|
||||
else ifeq ($(SHELLPKG),pkg-config)
|
||||
LUACFLAGS := $(shell pkg-config --cflags lua-$(LUASHVER))
|
||||
LUALIBS := $(shell pkg-config --libs lua-$(LUASHVER))
|
||||
LUAHEADERS := /usr/include/lua$(LUASHVER)
|
||||
LUATESTTARGET := $(LUAHEADERS)/lua.h
|
||||
endif
|
||||
#
|
||||
LUAHPREFIX=
|
||||
#LUATOP=
|
||||
#LUAMAKEFLAGS=
|
||||
#LUA2NHTOP=
|
||||
#LUABASELIB=
|
||||
LUATOPLIB=
|
||||
LUALIBBUILT=
|
||||
LUALIB=
|
||||
CFLAGS += $(LUACFLAGS)
|
||||
endif # PKG_EXISTS?
|
||||
endif # SHELLPKG has a value
|
||||
endif # USE_SYSTEM_LUA
|
||||
endif # WANT_SYSTEM_LUA
|
||||
|
||||
ifdef WANT_WIN_QT
|
||||
ifdef WANT_WIN_QT5
|
||||
@@ -80,10 +203,10 @@ endif # g++ greater than or equal to 14
|
||||
endif # WANT_WIN_QT6
|
||||
endif # WANT_WIN_QT
|
||||
|
||||
# misc.370 must come after compiler.370
|
||||
# misc.500 must come after compiler.500
|
||||
# and after QTDIR is defined.
|
||||
#
|
||||
#-INCLUDE misc.370
|
||||
#-INCLUDE misc.500
|
||||
|
||||
ifeq "$(USE_ASAN)" "1"
|
||||
CFLAGS+=-fsanitize=address
|
||||
@@ -96,6 +219,7 @@ LFLAGS+=-fsanitize=undefined
|
||||
endif
|
||||
|
||||
ifeq "$(USE_CURSESLIB)" "1"
|
||||
CURSPKG ?= ncursesw
|
||||
# default
|
||||
CURSESLIB = -lncurses -ltinfo
|
||||
# If CURSES_UNICODE is defined, we need ncursesw.
|
||||
@@ -103,8 +227,8 @@ CURSESLIB = -lncurses -ltinfo
|
||||
# CURSESLIB = -lncurses -ltinfo
|
||||
ifdef MAKEFILE_SRC
|
||||
comma:=,
|
||||
NCURSES_LFLAGS = $(shell pkg-config ncursesw --libs)
|
||||
NCURSES_CFLAGS = $(shell pkg-config ncursesw --cflags)
|
||||
NCURSES_LFLAGS = $(shell pkg-config $(CURSPKG) --libs)
|
||||
NCURSES_CFLAGS = $(shell pkg-config $(CURSPKG) --cflags)
|
||||
ifeq (,$(findstring ncursesw, $(NCURSES_LFLAGS)))
|
||||
ifeq (,$(findstring ncurses, $(NCURSES_LFLAGS)))
|
||||
#this indicates that pkg-config itself was unavailable
|
||||
@@ -177,7 +301,7 @@ NHCFLAGS+=-DCOMPRESS=\"/bin/gzip\" -DCOMPRESS_EXTENSION=\".gz\"
|
||||
#NHCFLAGS+=-DLIVELOG
|
||||
#NHCFLAGS+=-DCHANGE_COLOR
|
||||
NHCFLAGS+=-DSELF_RECOVER
|
||||
ifdef WANT_WIN_CURSES
|
||||
ifeq "$(USE_CURSESLIB)" "1"
|
||||
NHCFLAGS+=$(NCURSES_CFLAGS)
|
||||
ifeq "$(HAVE_NCURSESW)" "1"
|
||||
NHCFLAGS+=-DCURSES_UNICODE
|
||||
@@ -186,10 +310,10 @@ ifdef MAKEFILE_SRC
|
||||
$(info Attention: CURSES_UNICODE is not being defined without ncursesw)
|
||||
endif #MAKEFILE_SRC
|
||||
endif #HAVE_NCURSESW
|
||||
endif #WANT_WIN_CURSES
|
||||
endif #USE_CURSESLIB
|
||||
|
||||
#
|
||||
#-INCLUDE multisnd1-pre.370
|
||||
#-INCLUDE multisnd1-pre.500
|
||||
#
|
||||
|
||||
ifeq "$(CCISCLANG)" "1"
|
||||
@@ -197,19 +321,22 @@ ifeq "$(CCISCLANG)" "1"
|
||||
# clang-specific ends
|
||||
else
|
||||
# gcc-specific starts
|
||||
ifndef MUSL
|
||||
# __sighandler_t does not exist in musl
|
||||
LIBCFLAGS+=-DSIG_RET_TYPE=__sighandler_t
|
||||
endif
|
||||
# gcc-specific ends
|
||||
endif
|
||||
|
||||
# WINCFLAGS set from multiw-2.370
|
||||
# SNDCFLAGS set from multisnd-pre.370
|
||||
# WINCFLAGS set from multiw-2.500
|
||||
# SNDCFLAGS set from multisnd-pre.500
|
||||
CFLAGS+= $(WINCFLAGS)
|
||||
CFLAGS+= $(SNDCFLAGS)
|
||||
CFLAGS+= $(NHCFLAGS)
|
||||
CFLAGS+= $(LIBCFLAGS)
|
||||
|
||||
# WINCFLAGS set from multiw-2.370
|
||||
# SNDCFLAGS set from multisnd-pre.370
|
||||
# WINCFLAGS set from multiw-2.500
|
||||
# SNDCFLAGS set from multisnd-pre.500
|
||||
CCXXFLAGS+= $(WINCFLAGS)
|
||||
CCXXFLAGS+= $(SNDCFLAGS)
|
||||
CCXXFLAGS+= $(NHCFLAGS)
|
||||
@@ -227,90 +354,106 @@ ifdef MAKEFILE_SRC
|
||||
ifdef CURSESLIB
|
||||
WINLIB += $(CURSESLIB)
|
||||
endif #CURSESLIB
|
||||
endif #MAKEFILE_SRC
|
||||
|
||||
ifneq "$(NO_NHUUID)" "1"
|
||||
UUID_LIB_CHECK := $(shell echo `/sbin/ldconfig -p | grep libuuid`)
|
||||
#$(info UUID_LIB_CHECK=$(UUID_LIB_CHECK))
|
||||
ifneq "$(UUID_LIB_CHECK)" ""
|
||||
UUID_LIB=1
|
||||
else
|
||||
UUID_LIB=0
|
||||
endif
|
||||
#$(info UUID_LIB=$(UUID_LIB))
|
||||
#
|
||||
# check for uuid development headers
|
||||
UUID_HEADERS_CHECK := $(wildcard /usr/include/uuid/uuid.h)
|
||||
#$(info UUID_HEADERS_CHECK=$(UUID_HEADERS_CHECK))
|
||||
ifneq "$(UUID_HEADERS_CHECK)" ""
|
||||
UUID_HEADERS = 1
|
||||
else
|
||||
UUID_HEADERS = 0
|
||||
endif
|
||||
#$(info UUID_HEADERS=$(UUID_HEADERS))
|
||||
|
||||
ifeq "$(UUID_LIB)" "1"
|
||||
ifeq "$(UUID_HEADERS)" "1"
|
||||
ifndef WANT_NHUUID
|
||||
WANT_NHUUID=1
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
else # NO_NHUUID
|
||||
WANT_NHUUID=0
|
||||
endif # NO_NHUUID
|
||||
|
||||
ifeq "$(WANT_NHUUID)" "1"
|
||||
#$(info NHUUID support will be included)
|
||||
CFLAGS+= -DNHUUID
|
||||
LIBS+=-luuid
|
||||
else # WANT_NHUUID
|
||||
$(info Attention - No NHUUID support will be included)
|
||||
endif # WANT_NHUUID
|
||||
endif # MAKEFILE_SRC
|
||||
|
||||
ifdef WANT_WIN_X11
|
||||
USE_XPM=1
|
||||
USE_XFT=1
|
||||
USE_PNG=1
|
||||
WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11
|
||||
VARDATND0 += x11tiles NetHack.ad pet_mark.xbm pilemark.xbm
|
||||
ifndef CROSSCOMPILE
|
||||
GENTILEOFILE = $(SRCDIR)/tile.o
|
||||
endif
|
||||
# -x: if built without dlb, some versions of mkfontdir think *.lev are fonts
|
||||
POSTINSTALL += bdftopcf win/X11/nh10.bdf > $(HACKDIR)/nh10.pcf; ( cd $(HACKDIR); mkfontdir -x .lev );
|
||||
# separate from CFLAGS so that we don't pass it to every file
|
||||
X11CFLAGS = -I/opt/X11/include
|
||||
# avoid repeated complaints about _X_NONNULL(args...) in <X11/Xfuncproto.h>
|
||||
X11CFLAGS += -Wno-variadic-macros
|
||||
ifdef USE_XFT
|
||||
CFLAGS += -DUSE_XFT
|
||||
X11CFLAGS += $(shell pkg-config --cflags xft fontconfig)
|
||||
WINX11LIB += $(shell pkg-config --libs xft fontconfig)
|
||||
endif
|
||||
ifdef USE_XPM
|
||||
CFLAGS += -DUSE_XPM
|
||||
WINX11LIB += -lXpm
|
||||
VARDATND0 += rip.xpm
|
||||
endif
|
||||
ifdef USE_PNG
|
||||
CFLAGS += -DUSE_PNG
|
||||
WINX11LIB += -lpng
|
||||
endif
|
||||
WINLIB += $(WINX11LIB)
|
||||
LFLAGS+=-L/opt/X11/lib
|
||||
endif # WANT_WIN_X11
|
||||
|
||||
ifdef WANT_WIN_QT
|
||||
LINK = $(CXX)
|
||||
ifndef CROSSCOMPILE
|
||||
GENTILEOFILE = $(SRCDIR)/tile.o
|
||||
endif
|
||||
# QT4
|
||||
ifdef WANT_WIN_QT4
|
||||
QTCXXFLAGS += $(sort $(shell PKG_CONFIG_PATH=$(QTDIR)/lib/pkgconfig pkg-config QtGui --cflags)) -DQT_NO_SOUND=1
|
||||
WINLIB += $(shell PKG_CONFIG_PATH=$(QTDIR)/lib/pkgconfig pkg-config QtGui --libs)
|
||||
endif # WANT_WIN_QT4
|
||||
#QT5
|
||||
ifdef WANT_WIN_QT5
|
||||
QTCXXFLAGS += $(sort $(shell PKG_CONFIG_PATH=$(QTDIR)/lib/pkgconfig pkg-config Qt5Gui Qt5Widgets Qt5Multimedia --cflags))
|
||||
WINLIB += $(shell PKG_CONFIG_PATH=$(QTDIR)/lib/pkgconfig pkg-config Qt5Gui Qt5Widgets Qt5Multimedia --libs)
|
||||
endif # WANT_WIN_QT5
|
||||
#QT6
|
||||
ifdef WANT_WIN_QT6
|
||||
ifdef QT6MANUAL
|
||||
# Try some likely spots for a self-built Qt6.
|
||||
# You'll have to change these manually before using the hints file
|
||||
# if they don't match the installed location on your system.
|
||||
ifneq "$(HOSTTYPE)" ""
|
||||
QTHOST=$(HOSTTYPE)
|
||||
else
|
||||
QTHOST=x86_64
|
||||
endif
|
||||
QTTOP=/usr/include/$(HOSTTYPE)-linux-gnu/qt6
|
||||
ifneq ($(wildcard $(QTTOP)/*),)
|
||||
#we don't set QTLOCATED=1 for this
|
||||
QTINCDIR=/usr/include/$(QTHOST)-linux-gnu/qt6
|
||||
QTLIBDIR=/usr/lib/$(QTHOST)-linux.gnu
|
||||
QTCXXFLAGS += -DQT_WIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB
|
||||
QTCXXFLAGS += -I$(QTINCDIR)/QtWidgets -I$(QTINCDIR) -I$(QTINCDIR)/QtMultimedia
|
||||
QTCXXFLAGS += -I$(QTINCDIR)/QtNetwork -I$(QTINCDIR)/QtGui -I$(QTINCDIR)/QtCore
|
||||
WINLIB += -L$(QTLIBDIR) -lQt6Widgets -lQt6Multimedia -lQt6Network -lQt6Gui -lQt6Core
|
||||
MOCPATH = /usr/lib/qt6/libexec/moc
|
||||
#/usr/lib/x86_64-linux-gnu/libQt6EglFSDeviceIntegration.so
|
||||
endif # QTTOP/*
|
||||
ifndef QTINCDIR
|
||||
ifneq ($(wildcard /usr/local/Qt6/*),)
|
||||
QTDIR=/usr/local/Qt6
|
||||
QTLOCATED=1
|
||||
endif # wildcard /usr/local/Qt6
|
||||
ifneq ($(wildcard /usr/local/qt6/*),)
|
||||
QTDIR=/usr/local/qt6
|
||||
QTLOCATED=1
|
||||
endif # wildcard /usr/local/qt6
|
||||
endif # !QTINCDIR
|
||||
ifdef QTLOCATED
|
||||
QTCXXFLAGS += -I$(QTDIR)/include/QtCore
|
||||
QTCXXFLAGS += -I$(QTDIR)/include/QtGui
|
||||
QTCXXFLAGS += -I$(QTDIR)/include/QtMultimedia
|
||||
QTCXXFLAGS += -I$(QTDIR)/include/QtWidgets
|
||||
MOCPATH = $(QTDIR)/libexec/moc
|
||||
WINLIB += -L$(QTDIR)/lib -lQt6Widgets -lQt6Multimedia -lQt6Network -lQt6Gui -lQt6Core
|
||||
endif # QTLOCATED
|
||||
else # !QT6MANUAL
|
||||
MOCDIR = $(shell pkg-config Qt6Gui --variable=libexecdir)
|
||||
ifneq ($(wildcard $(MOCDIR)/*),)
|
||||
MOCPATH = $(MOCDIR)/moc
|
||||
else
|
||||
MOCPATH = /usr/lib/qt6/libexec/moc
|
||||
endif # MOCDIR
|
||||
QTCXXFLAGS += $(sort $(shell pkg-config Qt6Gui Qt6Widgets Qt6Multimedia --cflags))
|
||||
WINLIB += $(shell pkg-config Qt6Gui Qt6Widgets Qt6Multimedia --libs)
|
||||
endif # QT6MANUAL
|
||||
QTCXXFLAGS += $(shell pkg-config --cflags Qt6Multimedia)
|
||||
WINLIB += $(shell pkg-config --libs Qt6Core Qt6Gui Qt6Widgets Qt6Multimedia)
|
||||
MOCPATH = $(shell pkg-config --variable=libexecdir Qt6Core)/moc
|
||||
endif # WANT_WIN_QT6
|
||||
|
||||
ifndef QTDIR
|
||||
ifndef WANT_WIN_QT6
|
||||
$(error QTDIR not defined in the environment or Makefile)
|
||||
endif # not WANT_WIN_QT6
|
||||
endif # QTDIR
|
||||
# XXX if /Developer/qt exists and QTDIR not set, use that
|
||||
# XXX make sure QTDIR points to something reasonable
|
||||
@@ -323,7 +466,7 @@ LINK = $(CC)
|
||||
endif # !WANT_WIN_QT
|
||||
|
||||
# prevent duplicate tile.o in WINOBJ
|
||||
WINOBJ = $(WINOBJ0) $(sort $(XTRAOBJ))
|
||||
WINOBJ = $(WINOBJ0)
|
||||
# prevent duplicates in VARDATND if both X11 and Qt are being supported
|
||||
VARDATND += $(sort $(VARDATND0))
|
||||
|
||||
@@ -369,27 +512,10 @@ SYSCONFENSURE = (if ! test -f $(INSTDIR)/sysconf ; then \
|
||||
chmod $(VARFILEPERM) $(INSTDIR)/sysconf; fi );
|
||||
|
||||
ifdef WANT_SOURCE_INSTALL
|
||||
PREFIX=$(abspath $(NHSROOT))
|
||||
#SHELLDIR=
|
||||
HACKDIR=$(PREFIX)/playground
|
||||
GAMEPERM = 0700
|
||||
VARFILEPERM = 0600
|
||||
VARDIRPERM = 0700
|
||||
CFLAGS+=-DSYSCF -DSYSCF_FILE=\"$(HACKDIR)/sysconf\" -DSECURE
|
||||
MOREALL=$(MAKE) install
|
||||
else #!WANT_SOURCE_INSTALL
|
||||
#PREFIX=/usr
|
||||
PREFIX=$(wildcard ~)/nh/install
|
||||
HACKDIR=$(PREFIX)/games/lib/nethackdir
|
||||
SHELLDIR = $(PREFIX)/games
|
||||
VARDIRPERM = 0755
|
||||
VARFILEPERM = 0600
|
||||
GAMEPERM = 0755
|
||||
endif #?WANT_SOURCE_INSTALL
|
||||
|
||||
INSTDIR=$(HACKDIR)
|
||||
VARDIR = $(HACKDIR)
|
||||
|
||||
ifdef MAKEFILE_TOP
|
||||
TESTGDBPATH=/usr/bin/gdb
|
||||
POSTINSTALL+= test -f $(TESTGDBPATH) || \
|
||||
@@ -430,7 +556,7 @@ LFLAGS+=-rdynamic
|
||||
|
||||
# if TTY_TILES_ESCCODES
|
||||
#WINSRC += tile.c
|
||||
#WINOBJ += tile.o
|
||||
#GENTILEOFILE = $(SRCDIR)/tile.o
|
||||
# endif
|
||||
|
||||
CHOWN=true
|
||||
@@ -439,28 +565,28 @@ CHGRP=true
|
||||
# manpages directory
|
||||
MANDIR=/usr/share/man/man6
|
||||
#
|
||||
#-INCLUDE cross-pre2.370
|
||||
#-INCLUDE cross-pre2.500
|
||||
#
|
||||
|
||||
#
|
||||
#-INCLUDE gbdates-pre.370
|
||||
#-INCLUDE gbdates-pre.500
|
||||
#
|
||||
|
||||
#
|
||||
#-INCLUDE multisnd2-pre.370
|
||||
#-INCLUDE multisnd2-pre.500
|
||||
#
|
||||
|
||||
#
|
||||
#-INCLUDE response.370
|
||||
#-INCLUDE response.500
|
||||
#
|
||||
|
||||
#-POST
|
||||
|
||||
#
|
||||
#-INCLUDE gbdates-post.370
|
||||
#-INCLUDE gbdates-post.500
|
||||
#
|
||||
#
|
||||
#-INCLUDE multisnd-post.370
|
||||
#-INCLUDE multisnd-post.500
|
||||
#
|
||||
|
||||
ifdef MAKEFILE_TOP
|
||||
@@ -484,6 +610,6 @@ $(TARGETPFX)libnhmain.o : ../sys/libnh/libnhmain.c $(HACK_H)
|
||||
endif # WANT_LIBNH
|
||||
|
||||
#
|
||||
#-INCLUDE cross-post.370
|
||||
#-INCLUDE cross-post.500
|
||||
#
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# NetHack 3.7 macOS.370 $NHDT-Date: 1693359574 2023/08/30 01:39:34 $ $NHDT-Branch: keni-crashweb2 $:$NHDT-Revision: 1.138 $
|
||||
# NetHack 5.0 macOS.500 $NHDT-Date: 1693359574 2023/08/30 01:39:34 $ $NHDT-Branch: keni-crashweb2 $:$NHDT-Revision: 1.138 $
|
||||
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2015.
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
#
|
||||
@@ -17,24 +17,32 @@
|
||||
# macOS hints file
|
||||
#
|
||||
|
||||
# note: '#-INCLUDE' is not just a comment; multiw-1 contains sections 1 to 2
|
||||
#-INCLUDE multiw-1.370
|
||||
|
||||
HINTSVERSION := 370
|
||||
WHICH_OS=macOS
|
||||
HINTSVERSION := 500
|
||||
|
||||
ifdef MAKEFILE_TOP
|
||||
LUA_VERSION=5.4.8
|
||||
ifeq ($(MAKELEVEL),0)
|
||||
PRECHECK+=checkmakefiles
|
||||
# all files included from this hints file get listed
|
||||
# in HINTSINCLNAMES (without suffix and without a path)
|
||||
HINTSINCLNAMES := compiler cross-pre1 cross-pre2 cross-post \
|
||||
HINTSINCLNAMES := dirs-perms \
|
||||
compiler cross-pre1 cross-pre2 cross-post \
|
||||
gbdates-pre gbdates-post \
|
||||
multiw-1 multiw-2 misc \
|
||||
multisnd1-pre multisnd2-pre multisnd-post
|
||||
multisnd1-pre multisnd2-pre multisnd-post \
|
||||
response
|
||||
HINTSINCLFILES := $(addsuffix .$(HINTSVERSION), $(HINTSINCLNAMES))
|
||||
endif
|
||||
endif
|
||||
|
||||
# note: '#-INCLUDE' is not just a comment; multiw-1 contains sections 1 to 2
|
||||
#-INCLUDE multiw-1.500
|
||||
|
||||
# note: '#-INCLUDE' is not just a comment
|
||||
# it pulls in the contents of dirs-perms.500
|
||||
#-INCLUDE dirs-perms.500
|
||||
|
||||
ifneq "$(USEMACPORTS)" "1"
|
||||
HAVE_HOMEBREW := $(shell expr `which -s brew; echo $$?` = 0)
|
||||
endif
|
||||
@@ -55,14 +63,14 @@ endif
|
||||
# you're reading this in Makefile augmented by hints, that may not be true).
|
||||
#
|
||||
|
||||
#-INCLUDE cross-pre1.370
|
||||
#-INCLUDE cross-pre1.500
|
||||
|
||||
#-INCLUDE multiw-2.370
|
||||
#-INCLUDE multiw-2.500
|
||||
|
||||
# compiler.370 contains compiler detection and adjustments common
|
||||
# compiler.500 contains compiler detection and adjustments common
|
||||
# to both linux and macOS
|
||||
|
||||
#-INCLUDE compiler.370
|
||||
#-INCLUDE compiler.500
|
||||
|
||||
ifdef WANT_WIN_QT
|
||||
ifeq "$(HAVE_HOMEBREW)" "1"
|
||||
@@ -94,10 +102,10 @@ CCXXFLAGS +=-Wno-c++20-attribute-extensions
|
||||
endif
|
||||
endif
|
||||
|
||||
# misc.370 must come after compiler.370
|
||||
# misc.500 must come after compiler.500
|
||||
# and after QTDIR is defined
|
||||
|
||||
#-INCLUDE misc.370
|
||||
#-INCLUDE misc.500
|
||||
|
||||
# manpages directory
|
||||
MANDIR=/usr/local/share/man/man6
|
||||
@@ -113,7 +121,8 @@ NHCFLAGS+=-DDLB
|
||||
NHCFLAGS+=-DHACKDIR=\"$(HACKDIR)\"
|
||||
NHCFLAGS+=-DDEFAULT_WINDOW_SYS=\"$(WANT_DEFAULT)\"
|
||||
NHCFLAGS+=-DSYSCF -DSYSCF_FILE=\"$(HACKDIR)/sysconf\" -DSECURE
|
||||
#NHCFLAGS+=-DTIMED_DELAY
|
||||
#define this after X11 timed_delay fix
|
||||
NHCFLAGS+=-DTIMED_DELAY
|
||||
#NHCFLAGS+=-DDUMPLOG
|
||||
#NHCFLAGS+=-DCONFIG_ERROR_SECURE=FALSE
|
||||
NHCFLAGS+=-DGREPPATH=\"/usr/bin/grep\"
|
||||
@@ -176,8 +185,8 @@ HAVE_HOMEBREW_NCURSES := $(shell expr `brew ls --versions ncurses > /dev/null; e
|
||||
ifeq "$(HAVE_HOMEBREW_NCURSES)" "1"
|
||||
# Newer versions of ncurses are commonly installed via homebrew, but intentionally unlinked.
|
||||
HOMEBREW_LFLAGS := -L$(shell brew --prefix)/opt/ncurses/lib
|
||||
HOMEBREW_WINLIB := -I$(shell brew --prefix)/opt/ncurses/include
|
||||
HOMEBREW_CFLAGS =
|
||||
HOMEBREW_WINLIB :=
|
||||
HOMEBREW_CFLAGS = -I$(shell brew --prefix)/opt/ncurses/include
|
||||
endif #HAVE_HOMEBREW_NCURSES
|
||||
endif #HAVE_HOMEBREW
|
||||
ifeq "$(HAVE_MACPORTS)" "1"
|
||||
@@ -215,12 +224,27 @@ LFLAGS += -framework AVFoundation
|
||||
#endif
|
||||
endif
|
||||
|
||||
ifdef MAKEFILE_SRC
|
||||
ifndef NO_NHUUID
|
||||
# macOS doesn't need any extra prerequisite libraries
|
||||
# so do this unconditionally, unless NO_NHUUID=1 is
|
||||
# passed on the Make command line.
|
||||
WANT_NHUUID=1
|
||||
endif #NO_NHUUID
|
||||
|
||||
ifdef WANT_NHUUID
|
||||
CFLAGS += -DNHUUID
|
||||
UUIDOBJ = macuuid.o
|
||||
LFLAGS += -framework Foundation
|
||||
endif
|
||||
endif #MAKEFILE_SRC
|
||||
|
||||
#
|
||||
#-INCLUDE multisnd1-pre.370
|
||||
#-INCLUDE multisnd1-pre.500
|
||||
#
|
||||
|
||||
# although not currently doing anything for macOS, this is
|
||||
# kept in for consistency with layout of linux.370
|
||||
# kept in for consistency with layout of linux.500
|
||||
ifeq "$(CCISCLANG)" "1"
|
||||
# clang-specific starts
|
||||
# clang-specific ends
|
||||
@@ -230,15 +254,15 @@ else
|
||||
# gcc-specific ends
|
||||
endif
|
||||
|
||||
# WINCFLAGS set from multiw-2.370
|
||||
# SNDCFLAGS set from multisnd-pre.370
|
||||
# WINCFLAGS set from multiw-2.500
|
||||
# SNDCFLAGS set from multisnd-pre.500
|
||||
CFLAGS+= $(PKGCFLAGS) $(WINCFLAGS)
|
||||
CFLAGS+= $(SNDCFLAGS)
|
||||
CFLAGS+= $(NHCFLAGS)
|
||||
CFLAGS+= $(LIBCFLAGS)
|
||||
|
||||
# WINCFLAGS set from multiw-2.370
|
||||
# SNDCFLAGS set from multisnd-pre.370
|
||||
# WINCFLAGS set from multiw-2.500
|
||||
# SNDCFLAGS set from multisnd-pre.500
|
||||
CCXXFLAGS+= $(WINCFLAGS)
|
||||
CCXXFLAGS+= $(SNDCFLAGS)
|
||||
CCXXFLAGS+= $(NHCFLAGS)
|
||||
@@ -253,26 +277,43 @@ HINTOBJ=$(CHAINOBJ)
|
||||
endif # WANT_WIN_CHAIN
|
||||
|
||||
ifdef WANT_WIN_X11
|
||||
USE_XFT=1
|
||||
USE_XPM=1
|
||||
USE_PNG=1
|
||||
WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11
|
||||
VARDATND0 += x11tiles NetHack.ad pet_mark.xbm pilemark.xbm
|
||||
ifndef CROSSCOMPILE
|
||||
GENTILEOFILE = $(SRCDIR)/tile.o
|
||||
endif
|
||||
# -x: if built without dodlb, some versions of mkfontdir think *.lev are fonts
|
||||
POSTINSTALL += bdftopcf win/X11/nh10.bdf > $(HACKDIR)/nh10.pcf; ( cd $(HACKDIR); mkfontdir -x .lev );
|
||||
# separate from CFLAGS so that we don't pass it to every file
|
||||
X11CFLAGS = -I/opt/X11/include
|
||||
# avoid repeated complaints about _X_NONNULL(args...) in <X11/Xfuncproto.h>
|
||||
X11CFLAGS += -Wno-variadic-macros
|
||||
ifdef USE_XFT
|
||||
CFLAGS += -DUSE_XFT
|
||||
X11CFLAGS += $(shell pkg-config --cflags xft fontconfig freetype2)
|
||||
WINX11LIB += $(shell pkg-config --libs xft fontconfig freetype2)
|
||||
endif
|
||||
ifdef USE_XPM
|
||||
CFLAGS += -DUSE_XPM
|
||||
WINX11LIB += -lXpm
|
||||
VARDATND0 += rip.xpm
|
||||
endif
|
||||
ifdef USE_PNG
|
||||
CFLAGS += -DUSE_PNG
|
||||
WINX11LIB += -lpng
|
||||
endif
|
||||
WINLIB += $(WINX11LIB)
|
||||
LFLAGS += -L/opt/X11/lib
|
||||
endif # WANT_WIN_X11
|
||||
|
||||
ifdef WANT_WIN_QT
|
||||
LINK = $(CXX)
|
||||
ifndef CROSSCOMPILE
|
||||
GENTILEOFILE = $(SRCDIR)/tile.o
|
||||
endif
|
||||
ifdef WANT_WIN_QT5
|
||||
# Qt5 requires C++11
|
||||
QTCXXFLAGS += $(sort $(shell PKG_CONFIG_PATH=$(QTDIR)/lib/pkgconfig \
|
||||
@@ -298,8 +339,7 @@ else # !WANT_WIN_QT
|
||||
LINK=$(CC)
|
||||
endif # !WANT_WIN_QT
|
||||
|
||||
# prevent duplicate tile.o in WINOBJ
|
||||
WINOBJ = $(WINOBJ0) $(sort $(XTRAOBJ))
|
||||
WINOBJ = $(WINOBJ0)
|
||||
# prevent duplicates in VARDATND if both X11 and Qt are being supported
|
||||
VARDATND += $(sort $(VARDATND0))
|
||||
|
||||
@@ -330,6 +370,12 @@ LIBNHSYSOBJ = $(TARGETPFX)libnhmain.o $(TARGETPFX)ioctl.o \
|
||||
#without winshim
|
||||
override GAME=
|
||||
MOREALL += ( cd src ; $(MAKE) pregame ; $(MAKE) $(TARGETPFX)libnh.a )
|
||||
# With $(GAME) empty, the regular `recover: $(GAME)` chain no longer
|
||||
# triggers lua_support, but recover.c still pulls in hack.h -> nhlua.h
|
||||
# transitively. Make recover depend on lua_support explicitly.
|
||||
ifdef MAKEFILE_TOP
|
||||
recover: lua_support
|
||||
endif
|
||||
endif # WANT_LIBNH
|
||||
|
||||
# Lua
|
||||
@@ -347,31 +393,11 @@ override LUA2NHTOP = ../..
|
||||
override LUAMAKEFLAGS=$(LUAFLAGS)
|
||||
endif # GITSUBMODULES
|
||||
|
||||
ifdef WANT_SHARE_INSTALL
|
||||
ifdef WANT_SHARED_INSTALL
|
||||
|
||||
#ifdef MAKEFILE_SRC
|
||||
#$(info WANT_SOURCE_INSTALL = $(WANT_SOURCE_INSTALL), WANT_SHARE_INSTALL = $(WANT_SHARE_INSTALL))
|
||||
#$(info WANT_SOURCE_INSTALL = $(WANT_SOURCE_INSTALL), WANT_SHARED_INSTALL = $(WANT_SHARED_INSTALL))
|
||||
#endif
|
||||
# if $GAMEUID is root, we install into roughly proper Mac locations, otherwise
|
||||
# we install into ~/nethackdir
|
||||
ifeq ($(GAMEUID),root)
|
||||
PREFIX:=/Library/NetHack
|
||||
SHELLDIR=/usr/local/bin
|
||||
HACKDIR=$(PREFIX)/nethackdir
|
||||
CHOWN=chown
|
||||
CHGRP=chgrp
|
||||
# We run sgid so the game has access to both HACKDIR and user preferences.
|
||||
GAMEPERM = 02755
|
||||
else # ! root
|
||||
PREFIX:=/Users/$(GAMEUID)
|
||||
SHELLDIR=$(PREFIX)/bin
|
||||
HACKDIR=$(PREFIX)/Library/NetHack/nethackdir
|
||||
CHOWN=/usr/bin/true
|
||||
CHGRP=/usr/bin/true
|
||||
GAMEPERM = 0500
|
||||
endif # ! root
|
||||
VARFILEPERM = 0664
|
||||
VARDIRPERM = 0775
|
||||
ROOTCHECK= [[ `id -u` == 0 ]] || ( echo "Must run install with sudo."; exit 1)
|
||||
# XXX it's nice we don't write over sysconf, but we've already erased it
|
||||
# make sure we have group GAMEUID and group GAMEGRP
|
||||
@@ -388,17 +414,8 @@ PREINSTALL= . sys/unix/hints/macosx.sh user2 $(GAMEUID); \
|
||||
else ifdef WANT_SOURCE_INSTALL
|
||||
|
||||
#ifdef MAKEFILE_SRC
|
||||
#$(info WANT_SOURCE_INSTALL = $(WANT_SOURCE_INSTALL), WANT_SHARE_INSTALL = $(WANT_SHARE_INSTALL))
|
||||
#$(info WANT_SOURCE_INSTALL = $(WANT_SOURCE_INSTALL), WANT_SHARED_INSTALL = $(WANT_SHARED_INSTALL))
|
||||
#endif
|
||||
PREFIX=$(abspath $(NHSROOT))
|
||||
# suppress nethack.sh
|
||||
#SHELLDIR=
|
||||
HACKDIR=$(PREFIX)/playground
|
||||
CHOWN=/usr/bin/true
|
||||
CHGRP=/usr/bin/true
|
||||
GAMEPERM = 0700
|
||||
VARFILEPERM = 0600
|
||||
VARDIRPERM = 0700
|
||||
POSTINSTALL+= sys/unix/hints/macosx.sh editsysconf sys/unix/sysconf $(HACKDIR)/sysconf;
|
||||
|
||||
# We can use "make all" to build the whole thing - but it misses some things:
|
||||
@@ -408,17 +425,8 @@ CFLAGS+=-DSYSCF -DSYSCF_FILE=\"$(HACKDIR)/sysconf\" -DSECURE
|
||||
else # !WANT_SOURCE_INSTALL
|
||||
|
||||
#ifdef MAKEFILE_SRC
|
||||
#$(info WANT_SOURCE_INSTALL = $(WANT_SOURCE_INSTALL), WANT_SHARE_INSTALL = $(WANT_SHARE_INSTALL))
|
||||
#$(info WANT_SOURCE_INSTALL = $(WANT_SOURCE_INSTALL), WANT_SHARED_INSTALL = $(WANT_SHARED_INSTALL))
|
||||
#endif
|
||||
PREFIX:=$(wildcard ~)
|
||||
SHELLDIR=$(PREFIX)/bin
|
||||
HACKDIR=$(PREFIX)/nethackdir
|
||||
CHOWN=/usr/bin/true
|
||||
CHGRP=/usr/bin/true
|
||||
GAMEPERM = 0700
|
||||
VARFILEPERM = 0600
|
||||
VARDIRPERM = 0700
|
||||
|
||||
ifdef ($(WANT_DEFAULT),X11)
|
||||
# install nethack.rc as ~/.nethackrc if no ~/.nethackrc exists
|
||||
PREINSTALL+= cp -n win/X11/nethack.rc ~/.nethackrc || true;
|
||||
@@ -430,10 +438,7 @@ POSTINSTALL+= sys/unix/hints/macosx.sh editsysconf sys/unix/sysconf $(HACKDIR)/s
|
||||
$(CHGRP) $(GAMEGRP) $(HACKDIR)/sysconf; \
|
||||
chmod $(VARFILEPERM) $(HACKDIR)/sysconf;
|
||||
|
||||
endif # !WANT_SHARE_INSTALL
|
||||
|
||||
INSTDIR=$(HACKDIR)
|
||||
VARDIR=$(HACKDIR)
|
||||
endif # !WANT_SHARED_INSTALL
|
||||
|
||||
SYSCONFCREATE = sys/unix/hints/macosx.sh editsysconf sys/unix/sysconf $(HACKDIR)/sysconf
|
||||
SYSCONFINSTALL = $(SYSCONFCREATE) && \
|
||||
@@ -453,16 +458,16 @@ SYSCONFENSURE = (if ! test -f $(INSTDIR)/sysconf ; then \
|
||||
# Install.Qt mentions a patch for macos - it's not there (it seems to be in the Qt binary
|
||||
# package under the docs directory).
|
||||
#
|
||||
#-INCLUDE cross-pre2.370
|
||||
#-INCLUDE cross-pre2.500
|
||||
#
|
||||
#
|
||||
#-INCLUDE gbdates-pre.370
|
||||
#-INCLUDE gbdates-pre.500
|
||||
#
|
||||
#
|
||||
#-INCLUDE multisnd2-pre.370
|
||||
#-INCLUDE multisnd2-pre.500
|
||||
#
|
||||
#
|
||||
#-INCLUDE response.370
|
||||
#-INCLUDE response.500
|
||||
#
|
||||
|
||||
ifdef MAKEFILE_TOP
|
||||
@@ -532,10 +537,10 @@ endif # MAKEFILE_SRC
|
||||
#-POST
|
||||
|
||||
#
|
||||
#-INCLUDE gbdates-post.370
|
||||
#-INCLUDE gbdates-post.500
|
||||
#
|
||||
#
|
||||
#-INCLUDE multisnd-post.370
|
||||
#-INCLUDE multisnd-post.500
|
||||
#
|
||||
|
||||
ifdef MAKEFILE_TOP
|
||||
@@ -547,9 +552,26 @@ checkmakefiles:
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef WANT_NHUUID
|
||||
$(TARGETPFX)macuuid.o: ../sys/unix/macuuid.m
|
||||
$(CC) $(CFLAGS) -c -o$@ $<
|
||||
endif
|
||||
|
||||
ifdef WANT_LIBNH
|
||||
$(TARGETPFX)libnh.a: $(HOBJ) $(LIBNHSYSOBJ) ../lib/lua/liblua-$(LUA_VERSION).a
|
||||
$(AR) rcs $@ $(HOBJ) $(LIBNHSYSOBJ) ../lib/lua/liblua-$(LUA_VERSION).a
|
||||
# Build libnh.a by merging the engine objects, the shim windowport,
|
||||
# date.o (separate from $(HOBJ) per Makefile.src), hacklib.a, and Lua's
|
||||
# static archive. Use libtool -static rather than ar so hacklib.a and
|
||||
# liblua-$(LUA_VERSION).a have their members merged in -- ar would archive
|
||||
# them as opaque .a members and macOS ld can't dereference those.
|
||||
# Depending on $(LUALIB) triggers the lua_support build (which generates
|
||||
# include/nhlua.h); without it, $(HOBJ) won't compile.
|
||||
# filter-out drops $(SYSOBJ) (which carries unixmain.o) and $(WINOBJ) (the
|
||||
# tty windowport) from $(HOBJ); $(LIBNHSYSOBJ) supplies libnhmain.o and
|
||||
# winshim.o in their place.
|
||||
$(TARGETPFX)libnh.a: $(LUALIB) $(HOBJ) $(LIBNHSYSOBJ) $(DATE_O) $(TARGET_HACKLIB)
|
||||
libtool -static -o $@ \
|
||||
$(filter-out $(SYSOBJ) $(WINOBJ),$(HOBJ)) \
|
||||
$(LIBNHSYSOBJ) $(DATE_O) $(TARGET_HACKLIB) $(LUALIB)
|
||||
@echo "$@ built."
|
||||
$(TARGETPFX)libnhmain.o : ../sys/libnh/libnhmain.c $(HACK_H)
|
||||
$(CC) $(CFLAGS) -c -o$@ $<
|
||||
@@ -637,7 +659,7 @@ $(BUNDLE_INFOPLIST):
|
||||
@echo '<key>CFBundlePackageType</key>' >>$@
|
||||
@echo '<string>APPL</string>' >>$@
|
||||
@echo '<key>CFBundleGetInfoString</key>' >>$@
|
||||
@echo '<string>$(BUNDLE_GAMENAME) 3.7 for MacOS</string>' >>$@
|
||||
@echo '<string>$(BUNDLE_GAMENAME) 5.0 for MacOS</string>' >>$@
|
||||
@echo '<key>CFBundleIdentifier</key>' >>$@
|
||||
@echo '<string>org.nethack.macos</string>' >>$@
|
||||
@echo '<key>CFBundleExecutable</key>' >>$@
|
||||
@@ -649,11 +671,11 @@ $(BUNDLE_INFOPLIST):
|
||||
@echo '<key>CFBundleName</key>' >>$@
|
||||
@echo '<string>$(BUNDLE_NAME)</string>' >>$@
|
||||
@echo '<key>CFBundleVersion</key>' >>$@
|
||||
@echo '<string>3.7.0b73</string>' >>$@
|
||||
@echo '<string>NetHack 5.0.0b73</string>' >>$@
|
||||
@echo '<key>CFBundleShortVersionString</key>' >>$@
|
||||
@echo '<string>3.7.0</string>' >>$@
|
||||
@echo '<string>NetHack 5.0.0</string>' >>$@
|
||||
@echo '<key>NSHumanReadableCopyright</key>' >>$@
|
||||
@echo '<string>©By Stichting Mathematisch Centrum and M. Stephenson 1985-2023</string>' >>$@
|
||||
@echo '<string>©By Stichting Mathematisch Centrum and M. Stephenson 1985-2026</string>' >>$@
|
||||
@echo '<key>LSApplicationCategoryType</key>' >>$@
|
||||
@echo '<string>public.app-category.adventure-games</string>' >>$@
|
||||
@echo '</dict>' >>$@
|
||||
@@ -690,7 +712,7 @@ endif # WANT_BUNDLE
|
||||
# --- end of bundle ---
|
||||
#
|
||||
#
|
||||
#-INCLUDE cross-post.370
|
||||
#-INCLUDE cross-post.500
|
||||
#
|
||||
|
||||
ifdef MAKEFILE_TOP
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/sh
|
||||
# NetHack 3.7 macosx.sh $NHDT-Date: 1597332920 2020/08/13 15:35:20 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.24 $
|
||||
# NetHack 5.0 macosx.sh $NHDT-Date: 1597332920 2020/08/13 15:35:20 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.24 $
|
||||
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2007.
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# NetHack 3.7 unix $NHDT-Date: 1596498426 2020/08/03 23:47:06 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.0 $
|
||||
# NetHack 5.0 unix $NHDT-Date: 1596498426 2020/08/03 23:47:06 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.0 $
|
||||
# Copyright (c) Kevin Smolkowski "Snivik", Elgin Oregon 2019.
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# NetHack 3.7 unix $NHDT-Date: 1596498427 2020/08/03 23:47:07 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.0 $
|
||||
# NetHack 5.0 unix $NHDT-Date: 1596498427 2020/08/03 23:47:07 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.0 $
|
||||
# Copyright (c) Kevin Smolkowski "Snivik", Elgin Oregon 2019.
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
#
|
||||
|
||||
+230
-105
@@ -1,4 +1,4 @@
|
||||
# NetHack 3.7 linux.370 $NHDT-Date: 1693519390 2023/08/31 22:03:10 $ $NHDT-Branch: keni-crashweb2 $:$NHDT-Revision: 1.61 $
|
||||
# NetHack 5.0 linux.500 $NHDT-Date: 1693519390 2023/08/31 22:03:10 $ $NHDT-Branch: keni-crashweb2 $:$NHDT-Revision: 1.61 $
|
||||
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2007.
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
#
|
||||
@@ -12,29 +12,41 @@
|
||||
# And let us know about it.
|
||||
#
|
||||
|
||||
#-PRE
|
||||
# linux.370 hints file provides a single-user build for Linux (such
|
||||
# as Ubuntu focal).
|
||||
#-PRE xxxx
|
||||
|
||||
# note: '#-INCLUDE' is not just a comment
|
||||
# multiw-1.370 contains sections 1 to 2
|
||||
#-INCLUDE multiw-1.370
|
||||
|
||||
HINTSVERSION := 370
|
||||
WHICH_OS=Linux
|
||||
HINTSVERSION := 500
|
||||
|
||||
ifdef MAKEFILE_TOP
|
||||
LUA_VERSION=5.4.8
|
||||
ifeq ($(MAKELEVEL),0)
|
||||
PRECHECK+=checkmakefiles
|
||||
# all files included from this hints file get listed
|
||||
# in HINTSINCLNAMES (without suffix and without a path)
|
||||
HINTSINCLNAMES := compiler cross-pre1 cross-pre2 cross-post \
|
||||
HINTSINCLNAMES := dirs-perms \
|
||||
compiler cross-pre1 cross-pre2 cross-post \
|
||||
gbdates-pre gbdates-post \
|
||||
linuxdistro \
|
||||
multiw-1 multiw-2 misc \
|
||||
multisnd1-pre multisnd2-pre multisnd-post
|
||||
multisnd1-pre multisnd2-pre multisnd-post \
|
||||
response
|
||||
HINTSINCLFILES := $(addsuffix .$(HINTSVERSION), $(HINTSINCLNAMES))
|
||||
endif
|
||||
endif
|
||||
|
||||
# linux.500 hints file provides a single-user build for Linux (such
|
||||
# as Ubuntu focal).
|
||||
|
||||
# note: '#-INCLUDE' is not just a comment
|
||||
# multiw-1.500 contains sections 1 to 2
|
||||
#-INCLUDE multiw-1.500
|
||||
|
||||
# note: '#-INCLUDE' is not just a comment
|
||||
# it pulls in the contents of dirs-perms.500
|
||||
#-INCLUDE dirs-perms.500
|
||||
|
||||
#-INCLUDE linuxdistro.500
|
||||
|
||||
ifndef LIBXPM
|
||||
LIBXPM= -L/opt/X11/lib -lXpm
|
||||
endif
|
||||
@@ -52,7 +64,7 @@ USE_NOSTATICFN = 1
|
||||
#USE_NONOSTATICFN = 1
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
#-INCLUDE cross-pre1.370
|
||||
#-INCLUDE cross-pre1.500
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
@@ -60,12 +72,123 @@ USE_NOSTATICFN = 1
|
||||
# you're reading this in Makefile augmented by hints, that may not be true).
|
||||
#
|
||||
|
||||
#-INCLUDE multiw-2.370
|
||||
#-INCLUDE multiw-2.500
|
||||
|
||||
# compiler.370 contains compiler detection and adjustments common
|
||||
#QT6 prior to compiler include
|
||||
ifdef WANT_WIN_QT6
|
||||
CPLUSPLUS_NEED20=1
|
||||
ADDITIONAL_NO_WARN_GPPCCX=-Wno-sfinae-incomplete
|
||||
ADDITIONAL_NO_WARN_CLANGCCX=-Wno-c++26-extensions
|
||||
endif # WANT_WIN_QT6
|
||||
|
||||
# compiler.500 contains compiler detection and adjustments common
|
||||
# to both linux and macOS
|
||||
|
||||
#-INCLUDE compiler.370
|
||||
#-INCLUDE compiler.500
|
||||
|
||||
ifdef WANT_SYSTEM_LUA
|
||||
ifndef LUA_VERSION
|
||||
LUA_VERSION := 5.4.8
|
||||
endif
|
||||
LUASUBDELIM := $(subst ., ,$(LUA_VERSION))
|
||||
LUASHVER := $(word 1, $(LUASUBDELIM)).$(word 2, $(LUASUBDELIM))
|
||||
|
||||
ifeq ($(LINUX_DISTRO),alpine)
|
||||
# prereq: doas apk add lua5.4-dev
|
||||
# doas apk add linux-headers
|
||||
# doas apk add musl-dev
|
||||
USE_SYSTEM_LUA=1
|
||||
SHELLPKG :=pkg-config
|
||||
LUAPKGNAME = lua-$(LUASHVER)
|
||||
CURSPKG = ncurses
|
||||
#
|
||||
else ifeq ($(LINUX_DISTRO),debian)
|
||||
# prereq: sudo apt install lua5.4 liblua5.4-dev
|
||||
USE_SYSTEM_LUA=1
|
||||
SHELLPKG :=pkg-config
|
||||
LUAPKGNAME = lua-$(LUASHVER)
|
||||
#
|
||||
else ifeq ($(LINUX_DISTRO),ubuntu)
|
||||
# prereq: sudo apt install lua5.4 liblua5.4-dev
|
||||
USE_SYSTEM_LUA=1
|
||||
SHELLPKG :=dpkg
|
||||
LUAPKGNAME = lua$(LUASHVER)
|
||||
#
|
||||
else ifeq ($(LINUX_DISTRO),fedora)
|
||||
# prereq: sudo dnf install lua lua-devel
|
||||
USE_SYSTEM_LUA=1
|
||||
SHELLPKG :=rpm
|
||||
LUAPKGNAME = lua-devel
|
||||
#
|
||||
else
|
||||
USE_SYSTEM_LUA=0
|
||||
SHELLPKG :=
|
||||
endif # LINUX_DISTRO
|
||||
|
||||
ifeq ($(USE_SYSTEM_LUA),1)
|
||||
ifneq "$(SHELLPKG)" ""
|
||||
#
|
||||
# Two requirements must now pass:
|
||||
# 1. We need to be able to check if Lua package
|
||||
# is installed. We do that here.
|
||||
# 2. The lua.h header file needs to be present
|
||||
# where expected. We set LUATESTTARGET here,
|
||||
# but the check is done later on in the top
|
||||
# Makefile.
|
||||
#
|
||||
# Try to confirm package presence
|
||||
ifeq ($(SHELLPKG),pkg-config)
|
||||
PKG_EXISTS := $(shell pkg-config --exists $(LUAPKGNAME) \
|
||||
&& echo yes || echo no)
|
||||
#
|
||||
else ifeq ($(SHELLPKG),dpkg)
|
||||
PKG_EXISTS := $(shell dpkg -s $(LUAPKGNAME) > /dev/null 2>&1 \
|
||||
&& echo yes || echo no)
|
||||
#
|
||||
else ifeq ($(SHELLPKG),rpm)
|
||||
PKG_EXISTS := $(shell rpm -q $(LUAPKGNAME) > /dev/null 2>&1 \
|
||||
&& echo yes || echo no)
|
||||
#
|
||||
else
|
||||
PKG_EXISTS=no
|
||||
$(info Existance of package $(LUAPKGNAME) could not be verified)
|
||||
endif
|
||||
|
||||
ifeq ($(PKG_EXISTS),yes)
|
||||
$(info Existance of package $(LUAPKGNAME) verified)
|
||||
#
|
||||
ifeq ($(LINUX_DISTRO),fedora)
|
||||
LUACFLAGS := $(shell pkg-config --cflags lua-$(LUASHVER))
|
||||
LUALIBS := $(shell pkg-config --libs lua-$(LUASHVER))
|
||||
LUAHEADERS := /usr/include/lua$(LUASHVER)
|
||||
LUATESTTARGET := $(LUAHEADERS)/lua.h
|
||||
#
|
||||
else ifeq ($(LINUX_DISTRO),ubuntu)
|
||||
LUACFLAGS := -I/usr/include/lua$(LUASHVER)
|
||||
LUALIBS := -llua$(LUASHVER) -lm -ldl
|
||||
LUAHEADERS := /usr/include/lua$(LUASHVER)
|
||||
LUATESTTARGET := $(LUAHEADERS)/lua.h
|
||||
#
|
||||
else ifeq ($(SHELLPKG),pkg-config)
|
||||
LUACFLAGS := $(shell pkg-config --cflags lua-$(LUASHVER))
|
||||
LUALIBS := $(shell pkg-config --libs lua-$(LUASHVER))
|
||||
LUAHEADERS := /usr/include/lua$(LUASHVER)
|
||||
LUATESTTARGET := $(LUAHEADERS)/lua.h
|
||||
endif
|
||||
#
|
||||
LUAHPREFIX=
|
||||
#LUATOP=
|
||||
#LUAMAKEFLAGS=
|
||||
#LUA2NHTOP=
|
||||
#LUABASELIB=
|
||||
LUATOPLIB=
|
||||
LUALIBBUILT=
|
||||
LUALIB=
|
||||
CFLAGS += $(LUACFLAGS)
|
||||
endif # PKG_EXISTS?
|
||||
endif # SHELLPKG has a value
|
||||
endif # USE_SYSTEM_LUA
|
||||
endif # WANT_SYSTEM_LUA
|
||||
|
||||
ifdef WANT_WIN_QT
|
||||
ifdef WANT_WIN_QT5
|
||||
@@ -80,10 +203,10 @@ endif # g++ greater than or equal to 14
|
||||
endif # WANT_WIN_QT6
|
||||
endif # WANT_WIN_QT
|
||||
|
||||
# misc.370 must come after compiler.370
|
||||
# misc.500 must come after compiler.500
|
||||
# and after QTDIR is defined.
|
||||
#
|
||||
#-INCLUDE misc.370
|
||||
#-INCLUDE misc.500
|
||||
|
||||
ifeq "$(USE_ASAN)" "1"
|
||||
CFLAGS+=-fsanitize=address
|
||||
@@ -96,6 +219,7 @@ LFLAGS+=-fsanitize=undefined
|
||||
endif
|
||||
|
||||
ifeq "$(USE_CURSESLIB)" "1"
|
||||
CURSPKG ?= ncursesw
|
||||
# default
|
||||
CURSESLIB = -lncurses -ltinfo
|
||||
# If CURSES_UNICODE is defined, we need ncursesw.
|
||||
@@ -103,8 +227,8 @@ CURSESLIB = -lncurses -ltinfo
|
||||
# CURSESLIB = -lncurses -ltinfo
|
||||
ifdef MAKEFILE_SRC
|
||||
comma:=,
|
||||
NCURSES_LFLAGS = $(shell pkg-config ncursesw --libs)
|
||||
NCURSES_CFLAGS = $(shell pkg-config ncursesw --cflags)
|
||||
NCURSES_LFLAGS = $(shell pkg-config $(CURSPKG) --libs)
|
||||
NCURSES_CFLAGS = $(shell pkg-config $(CURSPKG) --cflags)
|
||||
ifeq (,$(findstring ncursesw, $(NCURSES_LFLAGS)))
|
||||
ifeq (,$(findstring ncurses, $(NCURSES_LFLAGS)))
|
||||
#this indicates that pkg-config itself was unavailable
|
||||
@@ -175,12 +299,11 @@ NHCFLAGS+=-DTTY_TILES_ESCCODES
|
||||
#NHCFLAGS+=-DTTY_SOUND_ESCCODES
|
||||
#NHCFLAGS+=-DNO_CHRONICLE
|
||||
#NHCFLAGS+=-DLIVELOG
|
||||
NHCFLAGS+=-DDUMPLOG
|
||||
#NHCFLAGS+=-DCHANGE_COLOR
|
||||
NHCFLAGS+=-DDUMPHTML
|
||||
NHCFLAGS+=-DUSE_GENERAL_ALTAR_COLORS
|
||||
#NHCFLAGS+=-DCHANGE_COLOR
|
||||
NHCFLAGS+=-DSELF_RECOVER
|
||||
ifdef WANT_WIN_CURSES
|
||||
ifeq "$(USE_CURSESLIB)" "1"
|
||||
NHCFLAGS+=$(NCURSES_CFLAGS)
|
||||
ifeq "$(HAVE_NCURSESW)" "1"
|
||||
NHCFLAGS+=-DCURSES_UNICODE
|
||||
@@ -189,10 +312,10 @@ ifdef MAKEFILE_SRC
|
||||
$(info Attention: CURSES_UNICODE is not being defined without ncursesw)
|
||||
endif #MAKEFILE_SRC
|
||||
endif #HAVE_NCURSESW
|
||||
endif #WANT_WIN_CURSES
|
||||
endif #USE_CURSESLIB
|
||||
|
||||
#
|
||||
#-INCLUDE multisnd1-pre.370
|
||||
#-INCLUDE multisnd1-pre.500
|
||||
#
|
||||
|
||||
ifeq "$(CCISCLANG)" "1"
|
||||
@@ -200,19 +323,22 @@ ifeq "$(CCISCLANG)" "1"
|
||||
# clang-specific ends
|
||||
else
|
||||
# gcc-specific starts
|
||||
ifndef MUSL
|
||||
# __sighandler_t does not exist in musl
|
||||
LIBCFLAGS+=-DSIG_RET_TYPE=__sighandler_t
|
||||
endif
|
||||
# gcc-specific ends
|
||||
endif
|
||||
|
||||
# WINCFLAGS set from multiw-2.370
|
||||
# SNDCFLAGS set from multisnd-pre.370
|
||||
# WINCFLAGS set from multiw-2.500
|
||||
# SNDCFLAGS set from multisnd-pre.500
|
||||
CFLAGS+= $(WINCFLAGS)
|
||||
CFLAGS+= $(SNDCFLAGS)
|
||||
CFLAGS+= $(NHCFLAGS)
|
||||
CFLAGS+= $(LIBCFLAGS)
|
||||
|
||||
# WINCFLAGS set from multiw-2.370
|
||||
# SNDCFLAGS set from multisnd-pre.370
|
||||
# WINCFLAGS set from multiw-2.500
|
||||
# SNDCFLAGS set from multisnd-pre.500
|
||||
CCXXFLAGS+= $(WINCFLAGS)
|
||||
CCXXFLAGS+= $(SNDCFLAGS)
|
||||
CCXXFLAGS+= $(NHCFLAGS)
|
||||
@@ -230,90 +356,106 @@ ifdef MAKEFILE_SRC
|
||||
ifdef CURSESLIB
|
||||
WINLIB += $(CURSESLIB)
|
||||
endif #CURSESLIB
|
||||
endif #MAKEFILE_SRC
|
||||
|
||||
ifneq "$(NO_NHUUID)" "1"
|
||||
UUID_LIB_CHECK := $(shell echo `/sbin/ldconfig -p | grep libuuid`)
|
||||
#$(info UUID_LIB_CHECK=$(UUID_LIB_CHECK))
|
||||
ifneq "$(UUID_LIB_CHECK)" ""
|
||||
UUID_LIB=1
|
||||
else
|
||||
UUID_LIB=0
|
||||
endif
|
||||
#$(info UUID_LIB=$(UUID_LIB))
|
||||
#
|
||||
# check for uuid development headers
|
||||
UUID_HEADERS_CHECK := $(wildcard /usr/include/uuid/uuid.h)
|
||||
#$(info UUID_HEADERS_CHECK=$(UUID_HEADERS_CHECK))
|
||||
ifneq "$(UUID_HEADERS_CHECK)" ""
|
||||
UUID_HEADERS = 1
|
||||
else
|
||||
UUID_HEADERS = 0
|
||||
endif
|
||||
#$(info UUID_HEADERS=$(UUID_HEADERS))
|
||||
|
||||
ifeq "$(UUID_LIB)" "1"
|
||||
ifeq "$(UUID_HEADERS)" "1"
|
||||
ifndef WANT_NHUUID
|
||||
WANT_NHUUID=1
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
else # NO_NHUUID
|
||||
WANT_NHUUID=0
|
||||
endif # NO_NHUUID
|
||||
|
||||
ifeq "$(WANT_NHUUID)" "1"
|
||||
#$(info NHUUID support will be included)
|
||||
CFLAGS+= -DNHUUID
|
||||
LIBS+=-luuid
|
||||
else # WANT_NHUUID
|
||||
$(info Attention - No NHUUID support will be included)
|
||||
endif # WANT_NHUUID
|
||||
endif # MAKEFILE_SRC
|
||||
|
||||
ifdef WANT_WIN_X11
|
||||
USE_XPM=1
|
||||
USE_XFT=1
|
||||
USE_PNG=1
|
||||
WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11
|
||||
VARDATND0 += x11tiles NetHack.ad pet_mark.xbm pilemark.xbm
|
||||
ifndef CROSSCOMPILE
|
||||
GENTILEOFILE = $(SRCDIR)/tile.o
|
||||
endif
|
||||
# -x: if built without dlb, some versions of mkfontdir think *.lev are fonts
|
||||
POSTINSTALL += bdftopcf win/X11/nh10.bdf > $(HACKDIR)/nh10.pcf; ( cd $(HACKDIR); mkfontdir -x .lev );
|
||||
# separate from CFLAGS so that we don't pass it to every file
|
||||
X11CFLAGS = -I/opt/X11/include
|
||||
# avoid repeated complaints about _X_NONNULL(args...) in <X11/Xfuncproto.h>
|
||||
X11CFLAGS += -Wno-variadic-macros
|
||||
ifdef USE_XFT
|
||||
CFLAGS += -DUSE_XFT
|
||||
X11CFLAGS += $(shell pkg-config --cflags xft fontconfig)
|
||||
WINX11LIB += $(shell pkg-config --libs xft fontconfig)
|
||||
endif
|
||||
ifdef USE_XPM
|
||||
CFLAGS += -DUSE_XPM
|
||||
WINX11LIB += -lXpm
|
||||
VARDATND0 += rip.xpm
|
||||
endif
|
||||
ifdef USE_PNG
|
||||
CFLAGS += -DUSE_PNG
|
||||
WINX11LIB += -lpng
|
||||
endif
|
||||
WINLIB += $(WINX11LIB)
|
||||
LFLAGS+=-L/opt/X11/lib
|
||||
endif # WANT_WIN_X11
|
||||
|
||||
ifdef WANT_WIN_QT
|
||||
LINK = $(CXX)
|
||||
ifndef CROSSCOMPILE
|
||||
GENTILEOFILE = $(SRCDIR)/tile.o
|
||||
endif
|
||||
# QT4
|
||||
ifdef WANT_WIN_QT4
|
||||
QTCXXFLAGS += $(sort $(shell PKG_CONFIG_PATH=$(QTDIR)/lib/pkgconfig pkg-config QtGui --cflags)) -DQT_NO_SOUND=1
|
||||
WINLIB += $(shell PKG_CONFIG_PATH=$(QTDIR)/lib/pkgconfig pkg-config QtGui --libs)
|
||||
endif # WANT_WIN_QT4
|
||||
#QT5
|
||||
ifdef WANT_WIN_QT5
|
||||
QTCXXFLAGS += $(sort $(shell PKG_CONFIG_PATH=$(QTDIR)/lib/pkgconfig pkg-config Qt5Gui Qt5Widgets Qt5Multimedia --cflags))
|
||||
WINLIB += $(shell PKG_CONFIG_PATH=$(QTDIR)/lib/pkgconfig pkg-config Qt5Gui Qt5Widgets Qt5Multimedia --libs)
|
||||
endif # WANT_WIN_QT5
|
||||
#QT6
|
||||
ifdef WANT_WIN_QT6
|
||||
ifdef QT6MANUAL
|
||||
# Try some likely spots for a self-built Qt6.
|
||||
# You'll have to change these manually before using the hints file
|
||||
# if they don't match the installed location on your system.
|
||||
ifneq "$(HOSTTYPE)" ""
|
||||
QTHOST=$(HOSTTYPE)
|
||||
else
|
||||
QTHOST=x86_64
|
||||
endif
|
||||
QTTOP=/usr/include/$(HOSTTYPE)-linux-gnu/qt6
|
||||
ifneq ($(wildcard $(QTTOP)/*),)
|
||||
#we don't set QTLOCATED=1 for this
|
||||
QTINCDIR=/usr/include/$(QTHOST)-linux-gnu/qt6
|
||||
QTLIBDIR=/usr/lib/$(QTHOST)-linux.gnu
|
||||
QTCXXFLAGS += -DQT_WIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB
|
||||
QTCXXFLAGS += -I$(QTINCDIR)/QtWidgets -I$(QTINCDIR) -I$(QTINCDIR)/QtMultimedia
|
||||
QTCXXFLAGS += -I$(QTINCDIR)/QtNetwork -I$(QTINCDIR)/QtGui -I$(QTINCDIR)/QtCore
|
||||
WINLIB += -L$(QTLIBDIR) -lQt6Widgets -lQt6Multimedia -lQt6Network -lQt6Gui -lQt6Core
|
||||
MOCPATH = /usr/lib/qt6/libexec/moc
|
||||
#/usr/lib/x86_64-linux-gnu/libQt6EglFSDeviceIntegration.so
|
||||
endif # QTTOP/*
|
||||
ifndef QTINCDIR
|
||||
ifneq ($(wildcard /usr/local/Qt6/*),)
|
||||
QTDIR=/usr/local/Qt6
|
||||
QTLOCATED=1
|
||||
endif # wildcard /usr/local/Qt6
|
||||
ifneq ($(wildcard /usr/local/qt6/*),)
|
||||
QTDIR=/usr/local/qt6
|
||||
QTLOCATED=1
|
||||
endif # wildcard /usr/local/qt6
|
||||
endif # !QTINCDIR
|
||||
ifdef QTLOCATED
|
||||
QTCXXFLAGS += -I$(QTDIR)/include/QtCore
|
||||
QTCXXFLAGS += -I$(QTDIR)/include/QtGui
|
||||
QTCXXFLAGS += -I$(QTDIR)/include/QtMultimedia
|
||||
QTCXXFLAGS += -I$(QTDIR)/include/QtWidgets
|
||||
MOCPATH = $(QTDIR)/libexec/moc
|
||||
WINLIB += -L$(QTDIR)/lib -lQt6Widgets -lQt6Multimedia -lQt6Network -lQt6Gui -lQt6Core
|
||||
endif # QTLOCATED
|
||||
else # !QT6MANUAL
|
||||
MOCDIR = $(shell pkg-config Qt6Gui --variable=libexecdir)
|
||||
ifneq ($(wildcard $(MOCDIR)/*),)
|
||||
MOCPATH = $(MOCDIR)/moc
|
||||
else
|
||||
MOCPATH = /usr/lib/qt6/libexec/moc
|
||||
endif # MOCDIR
|
||||
QTCXXFLAGS += $(sort $(shell pkg-config Qt6Gui Qt6Widgets Qt6Multimedia --cflags))
|
||||
WINLIB += $(shell pkg-config Qt6Gui Qt6Widgets Qt6Multimedia --libs)
|
||||
endif # QT6MANUAL
|
||||
QTCXXFLAGS += $(shell pkg-config --cflags Qt6Multimedia)
|
||||
WINLIB += $(shell pkg-config --libs Qt6Core Qt6Gui Qt6Widgets Qt6Multimedia)
|
||||
MOCPATH = $(shell pkg-config --variable=libexecdir Qt6Core)/moc
|
||||
endif # WANT_WIN_QT6
|
||||
|
||||
ifndef QTDIR
|
||||
ifndef WANT_WIN_QT6
|
||||
$(error QTDIR not defined in the environment or Makefile)
|
||||
endif # not WANT_WIN_QT6
|
||||
endif # QTDIR
|
||||
# XXX if /Developer/qt exists and QTDIR not set, use that
|
||||
# XXX make sure QTDIR points to something reasonable
|
||||
@@ -326,7 +468,7 @@ LINK = $(CC)
|
||||
endif # !WANT_WIN_QT
|
||||
|
||||
# prevent duplicate tile.o in WINOBJ
|
||||
WINOBJ = $(WINOBJ0) $(sort $(XTRAOBJ))
|
||||
WINOBJ = $(WINOBJ0)
|
||||
# prevent duplicates in VARDATND if both X11 and Qt are being supported
|
||||
VARDATND += $(sort $(VARDATND0))
|
||||
|
||||
@@ -372,27 +514,10 @@ SYSCONFENSURE = (if ! test -f $(INSTDIR)/sysconf ; then \
|
||||
chmod $(VARFILEPERM) $(INSTDIR)/sysconf; fi );
|
||||
|
||||
ifdef WANT_SOURCE_INSTALL
|
||||
PREFIX=$(abspath $(NHSROOT))
|
||||
#SHELLDIR=
|
||||
HACKDIR=$(PREFIX)/playground
|
||||
GAMEPERM = 0700
|
||||
VARFILEPERM = 0600
|
||||
VARDIRPERM = 0700
|
||||
CFLAGS+=-DSYSCF -DSYSCF_FILE=\"$(HACKDIR)/sysconf\" -DSECURE
|
||||
MOREALL=$(MAKE) install
|
||||
else #!WANT_SOURCE_INSTALL
|
||||
#PREFIX=/usr
|
||||
PREFIX=$(wildcard ~)/nh/install
|
||||
HACKDIR=$(PREFIX)/games/lib/nethackdir
|
||||
SHELLDIR = $(PREFIX)/games
|
||||
VARDIRPERM = 0755
|
||||
VARFILEPERM = 0600
|
||||
GAMEPERM = 0755
|
||||
endif #?WANT_SOURCE_INSTALL
|
||||
|
||||
INSTDIR=$(HACKDIR)
|
||||
VARDIR = $(HACKDIR)
|
||||
|
||||
ifdef MAKEFILE_TOP
|
||||
TESTGDBPATH=/usr/bin/gdb
|
||||
POSTINSTALL+= test -f $(TESTGDBPATH) || \
|
||||
@@ -418,7 +543,7 @@ endif
|
||||
SYSCFLAGS=-DLUA_USE_LINUX
|
||||
ifdef GITSUBMODULES
|
||||
LUAFLAGS=CC='$(CC)' SYSCFLAGS='$(SYSCFLAGS)'
|
||||
ifneq "$(CCISCLANG)" ""
|
||||
ifeq "$(CCISCLANG)" "1"
|
||||
# clang
|
||||
LUAFLAGS +=CWARNGCC=''
|
||||
endif # clang
|
||||
@@ -433,7 +558,7 @@ LFLAGS+=-rdynamic
|
||||
|
||||
# if TTY_TILES_ESCCODES
|
||||
WINSRC += tile.c
|
||||
WINOBJ += tile.o
|
||||
GENTILEOFILE = $(SRCDIR)/tile.o
|
||||
# endif
|
||||
|
||||
CHOWN=true
|
||||
@@ -442,28 +567,28 @@ CHGRP=true
|
||||
# manpages directory
|
||||
MANDIR=/usr/share/man/man6
|
||||
#
|
||||
#-INCLUDE cross-pre2.370
|
||||
#-INCLUDE cross-pre2.500
|
||||
#
|
||||
|
||||
#
|
||||
#-INCLUDE gbdates-pre.370
|
||||
#-INCLUDE gbdates-pre.500
|
||||
#
|
||||
|
||||
#
|
||||
#-INCLUDE multisnd2-pre.370
|
||||
#-INCLUDE multisnd2-pre.500
|
||||
#
|
||||
|
||||
#
|
||||
#-INCLUDE response.370
|
||||
#-INCLUDE response.500
|
||||
#
|
||||
|
||||
#-POST
|
||||
|
||||
#
|
||||
#-INCLUDE gbdates-post.370
|
||||
#-INCLUDE gbdates-post.500
|
||||
#
|
||||
#
|
||||
#-INCLUDE multisnd-post.370
|
||||
#-INCLUDE multisnd-post.500
|
||||
#
|
||||
|
||||
ifdef MAKEFILE_TOP
|
||||
@@ -487,6 +612,6 @@ $(TARGETPFX)libnhmain.o : ../sys/libnh/libnhmain.c $(HACK_H)
|
||||
endif # WANT_LIBNH
|
||||
|
||||
#
|
||||
#-INCLUDE cross-post.370
|
||||
#-INCLUDE cross-post.500
|
||||
#
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# NetHack 3.7 unix $NHDT-Date: 1596498428 2020/08/03 23:47:08 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.14 $
|
||||
# NetHack 5.0 unix $NHDT-Date: 1596498428 2020/08/03 23:47:08 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.14 $
|
||||
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2007.
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
#
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
/* macuuid.m */
|
||||
/* Copyright Michael Allison, 2023 */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
#include "hack.h"
|
||||
|
||||
void get_macos_uuid(char *);
|
||||
|
||||
#ifdef DEBUG
|
||||
#undef DEBUG
|
||||
#endif
|
||||
|
||||
/* #import <Foundation/Foundation.h> */
|
||||
#import <AppKit/AppKit.h>
|
||||
|
||||
void
|
||||
get_macos_uuid(char *target)
|
||||
{
|
||||
NSString *uuidString = [[NSUUID UUID] UUIDString];
|
||||
const char *str_uuid;
|
||||
int i;
|
||||
|
||||
/* str_uuid = [uuidString cStringUsingEncoding:NSUTF8StringEncoding]; */
|
||||
str_uuid = [uuidString cStringUsingEncoding:NSASCIIStringEncoding];
|
||||
|
||||
if (str_uuid && target) {
|
||||
for (i = 0; i < (NHUUIDSZ -1 ); ++i) {
|
||||
target[i] = str_uuid[i];
|
||||
}
|
||||
target[(NHUUIDSZ - 1)] = '\0';
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/* end of macuuid.m */
|
||||
+33
-1
@@ -1,5 +1,5 @@
|
||||
#!/bin/sh
|
||||
# NetHack 3.7 mkmkfile.sh $NHDT-Date: 1597332770 2020/08/13 15:32:50 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.15 $
|
||||
# NetHack 5.0 mkmkfile.sh $NHDT-Date: 1597332770 2020/08/13 15:32:50 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.15 $
|
||||
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2007.
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
# $3 install path
|
||||
# $4 hints file (path)
|
||||
# $5 hints file (as given by user)
|
||||
# $6 gnu or bsd
|
||||
|
||||
echo "#" > $3
|
||||
echo "# This file is generated automatically. Do not edit." >> $3
|
||||
@@ -20,6 +21,37 @@ echo "" >> $3
|
||||
echo "HINTSFILE=$5" >> $3
|
||||
echo "" >> $3
|
||||
|
||||
echo "###" >> $3
|
||||
echo "### add check for builder include file $6-style" >> $3
|
||||
echo "###" >> $3
|
||||
echo "" >> $3
|
||||
BUILDERINCL=make.prefs
|
||||
echo "" >> $3
|
||||
case "$6" in
|
||||
"gnu")
|
||||
echo "ifdef MAKEFILE_TOP" >> $3
|
||||
echo "NHSROOT=." >> $3
|
||||
echo "else" >> $3
|
||||
echo "NHSROOT=.." >> $3
|
||||
echo "endif" >> $3
|
||||
echo "ifneq (\"\$(wildcard \$(NHSROOT)/$BUILDERINCL))\",\"\")" >> $3
|
||||
echo "-include \$(NHSROOT)/$BUILDERINCL" >> $3
|
||||
echo "endif" >> $3
|
||||
;;
|
||||
"bsd")
|
||||
echo ".ifdef MAKEFILE_TOP" >> $3
|
||||
echo "NHSROOT=." >> $3
|
||||
echo ".else" >> $3
|
||||
echo "NHSROOT=.." >> $3
|
||||
echo ".endif" >> $3
|
||||
echo ".if exists(\$(NHSROOT)/$BUILDERINCL)" >> $3
|
||||
echo ".include \"\$(NHSROOT)/$BUILDERINCL\"" >> $3
|
||||
echo ".endif" >> $3
|
||||
;;
|
||||
*)
|
||||
esac
|
||||
echo "" >> $3
|
||||
|
||||
echo "###" >> $3
|
||||
echo "### Start $5 PRE" >> $3
|
||||
echo "###" >> $3
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
#!/bin/sh
|
||||
# NetHack 3.7 nethack.sh $NHDT-Date: 1596498294 2020/08/03 23:44:54 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.21 $
|
||||
# NetHack 5.0 nethack.sh $NHDT-Date: 1596498294 2020/08/03 23:44:54 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.21 $
|
||||
# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
|
||||
|
||||
+13
-6
@@ -1,5 +1,5 @@
|
||||
#!/bin/sh
|
||||
# NetHack 3.7 setup.sh $NHDT-Date: 1596498296 2020/08/03 23:44:56 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.17 $
|
||||
# NetHack 5.0 setup.sh $NHDT-Date: 1596498296 2020/08/03 23:44:56 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.17 $
|
||||
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2007.
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
#
|
||||
@@ -31,8 +31,15 @@ x) hints=/dev/null
|
||||
;;
|
||||
esac
|
||||
|
||||
/bin/sh ./mkmkfile.sh Makefile.top TOP ../../Makefile $hints $hfile
|
||||
/bin/sh ./mkmkfile.sh Makefile.dat DAT ../../dat/Makefile $hints $hfile
|
||||
/bin/sh ./mkmkfile.sh Makefile.doc DOC ../../doc/Makefile $hints $hfile
|
||||
/bin/sh ./mkmkfile.sh Makefile.src SRC ../../src/Makefile $hints $hfile
|
||||
/bin/sh ./mkmkfile.sh Makefile.utl UTL ../../util/Makefile $hints $hfile
|
||||
# is make gnu or bsd?
|
||||
if make --version 2>/dev/null | grep -q "GNU"; then
|
||||
whichmake=gnu
|
||||
else
|
||||
whichmake=bsd
|
||||
fi
|
||||
|
||||
/bin/sh ./mkmkfile.sh Makefile.top TOP ../../Makefile $hints $hfile $whichmake
|
||||
/bin/sh ./mkmkfile.sh Makefile.dat DAT ../../dat/Makefile $hints $hfile $whichmake
|
||||
/bin/sh ./mkmkfile.sh Makefile.doc DOC ../../doc/Makefile $hints $hfile $whichmake
|
||||
/bin/sh ./mkmkfile.sh Makefile.src SRC ../../src/Makefile $hints $hfile $whichmake
|
||||
/bin/sh ./mkmkfile.sh Makefile.utl UTL ../../util/Makefile $hints $hfile $whichmake
|
||||
|
||||
+7
-3
@@ -1,4 +1,4 @@
|
||||
# NetHack 3.7 sysconf $NHDT-Date: 1704043695 2023/12/31 17:28:15 $ $NHDT-Branch: keni-luabits2 $:$NHDT-Revision: 1.44 $
|
||||
# NetHack 5.0 sysconf $NHDT-Date: 1777240863 2026/04/26 22:01:03 $ $NHDT-Branch: to500 $:$NHDT-Revision: 1.47 $
|
||||
# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
#
|
||||
@@ -55,6 +55,10 @@ GENERICUSERS=play player game games nethack nethacker ec2-user
|
||||
# letter and "lock" (eg. alock, block, ...)
|
||||
MAXPLAYERS=10
|
||||
|
||||
# Limit the number of rerolls per second when using the reroll option.
|
||||
# 0 means that there is no limit on how quickly the user can reroll.
|
||||
MAX_REROLL_RATE=0
|
||||
|
||||
# If not null, added to string "To get local support, " in the support
|
||||
# information help.
|
||||
#SUPPORT=call Izchak at extension 42.
|
||||
@@ -130,7 +134,7 @@ MAXPLAYERS=10
|
||||
# Only available if NetHack was compiled with DUMPLOG
|
||||
# Allows following placeholders:
|
||||
# %% literal '%'
|
||||
# %v version (eg. "3.7.0-0")
|
||||
# %v version (eg. "NetHack 5.0.0-0")
|
||||
# %u game UID
|
||||
# %t game start time, UNIX timestamp format
|
||||
# %T current time, UNIX timestamp format
|
||||
@@ -164,7 +168,7 @@ PANICTRACE_GDB=1
|
||||
PANICTRACE_LIBC=2
|
||||
|
||||
# URL loaded for creating reports to the NetHack DevTeam
|
||||
#CRASHREPORTURL=https://nethack.org/links/cr-37BETA.html
|
||||
#CRASHREPORTURL=https://nethack.org/links/cr-5.0.0.html
|
||||
|
||||
# 'portable_device_paths' is only supported for Windows. Starting with
|
||||
# 3.6.3, nethack on Windows treats the folder containing nethack.exe and
|
||||
|
||||
+50
-19
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 unixmain.c $NHDT-Date: 1711213891 2024/03/23 17:11:31 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.127 $ */
|
||||
/* NetHack 5.0 unixmain.c $NHDT-Date: 1711213891 2024/03/23 17:11:31 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.127 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Robert Patrick Rankin, 2011. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -15,6 +15,13 @@
|
||||
#include <fcntl.h>
|
||||
#endif
|
||||
|
||||
#ifdef NHUUID
|
||||
/* for uuid */
|
||||
#ifdef LINUX
|
||||
#include <uuid/uuid.h>
|
||||
#endif
|
||||
#endif /* NHUUID */
|
||||
|
||||
#if !defined(_BULL_SOURCE) && !defined(__sgi) && !defined(_M_UNIX)
|
||||
#if !defined(SUNOS4) && !(defined(ULTRIX) && defined(__GNUC__))
|
||||
#if defined(POSIX_TYPES) || defined(SVR4) || defined(HPUX)
|
||||
@@ -125,7 +132,6 @@ main(int argc, char *argv[])
|
||||
program_state.early_options = 1;
|
||||
/* handle -dalthackdir, -s <score stuff>, --version, --showpaths */
|
||||
early_options(&argc, &argv, &dir);
|
||||
program_state.early_options = 0;
|
||||
#ifdef CHDIR
|
||||
/*
|
||||
* Change directories before we initialize the window system so
|
||||
@@ -139,6 +145,7 @@ main(int argc, char *argv[])
|
||||
#ifdef __linux__
|
||||
check_linux_console();
|
||||
#endif
|
||||
program_state.early_options = 0;
|
||||
|
||||
initoptions();
|
||||
#ifdef PANICTRACE
|
||||
@@ -321,7 +328,7 @@ main(int argc, char *argv[])
|
||||
static void
|
||||
process_options(int argc, char *argv[])
|
||||
{
|
||||
char *arg, *origarg;
|
||||
char *arg, *origarg = 0;
|
||||
int i, l;
|
||||
|
||||
config_error_init(FALSE, "command line", FALSE);
|
||||
@@ -447,22 +454,8 @@ process_options(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
if (argc > 1) {
|
||||
int mxplyrs = atoi(argv[1]);
|
||||
boolean mx_ok = (mxplyrs > 0);
|
||||
#ifdef SYSCF
|
||||
config_error_add("%s%s%s",
|
||||
mx_ok ? "MAXPLAYERS are set in sysconf file"
|
||||
: "Expected MAXPLAYERS, found \"",
|
||||
mx_ok ? "" : argv[1], mx_ok ? "" : "\"");
|
||||
#else
|
||||
/* XXX This is deprecated in favor of SYSCF with MAXPLAYERS */
|
||||
if (mx_ok)
|
||||
gl.locknum = mxplyrs;
|
||||
else
|
||||
config_error_add("Invalid MAXPLAYERS \"%s\"", argv[1]);
|
||||
#endif
|
||||
}
|
||||
if (argc > 1 && origarg)
|
||||
config_error_add("Unknown option: %.60s", origarg);
|
||||
#ifdef MAX_NR_OF_PLAYERS
|
||||
/* limit to compile-time limit */
|
||||
if (!gl.locknum || gl.locknum > MAX_NR_OF_PLAYERS)
|
||||
@@ -834,4 +827,42 @@ sys_random_seed(void)
|
||||
return seed;
|
||||
}
|
||||
|
||||
#if defined(MACOS) && defined(NHUUID)
|
||||
extern void get_macos_uuid(char *); /* sys/unix/macuuid.m */
|
||||
#endif
|
||||
|
||||
void
|
||||
get_nhuuid(void)
|
||||
{
|
||||
#if defined(NHUUID)
|
||||
char struuid[NHUUIDSZ] = { 0 };
|
||||
#if defined(LINUX) && defined(NHUUID)
|
||||
uuid_t binuuid;
|
||||
#endif
|
||||
|
||||
if (svn.nhuuid[0])
|
||||
return;
|
||||
|
||||
#if defined(MACOS)
|
||||
get_macos_uuid(&struuid[0]);
|
||||
#elif defined(LINUX)
|
||||
uuid_generate_random(binuuid);
|
||||
uuid_unparse(binuuid, struuid);
|
||||
#endif /* MACOS || LINUX */
|
||||
|
||||
if (struuid[0])
|
||||
Snprintf(svn.nhuuid, sizeof svn.nhuuid, "%s", struuid);
|
||||
|
||||
#endif /* NHUUID */
|
||||
}
|
||||
|
||||
void
|
||||
free_nhuuid(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE(svn.nhuuid); i++) {
|
||||
svn.nhuuid[i] = 0;
|
||||
}
|
||||
}
|
||||
/*unixmain.c*/
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 unixres.c $NHDT-Date: 1596498298 2020/08/03 23:44:58 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.14 $ */
|
||||
/* NetHack 5.0 unixres.c $NHDT-Date: 1596498298 2020/08/03 23:44:58 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.14 $ */
|
||||
/* Copyright (c) Slash'EM development team, 2001. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
|
||||
+6
-2
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 unixunix.c $NHDT-Date: 1711213894 2024/03/23 17:11:34 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.43 $ */
|
||||
/* NetHack 5.0 unixunix.c $NHDT-Date: 1778886716 2026/05/15 15:11:56 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.48 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Kenneth Lorber, Kensington, Maryland, 2015. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -379,10 +379,14 @@ child(int wt)
|
||||
linux_mapon();
|
||||
#endif
|
||||
if ((f = fork()) == 0) { /* child */
|
||||
#ifdef CHDIR
|
||||
const char *home = getenv("HOME");
|
||||
#endif
|
||||
(void) setgid(getgid());
|
||||
(void) setuid(getuid());
|
||||
#ifdef CHDIR
|
||||
(void) chdir(getenv("HOME"));
|
||||
if (home)
|
||||
(void) chdir(home);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user