From 18254eb2912368e25c1ed5485f91576c3d27a94d Mon Sep 17 00:00:00 2001 From: Adam Powers Date: Thu, 27 Aug 2020 21:38:21 -0700 Subject: [PATCH] make system cleanup --- sys/lib/Makefile.src | 3 +- sys/lib/Makefile.top | 6 +- sys/lib/Makefile.utl | 1 + sys/lib/hints/include/multiw-1.2020 | 37 ---------- sys/lib/hints/include/multiw-2.2020 | 108 ---------------------------- sys/lib/hints/macOS.2020 | 89 +---------------------- sys/lib/hints/wasm | 94 ++---------------------- 7 files changed, 12 insertions(+), 326 deletions(-) delete mode 100644 sys/lib/hints/include/multiw-1.2020 delete mode 100644 sys/lib/hints/include/multiw-2.2020 diff --git a/sys/lib/Makefile.src b/sys/lib/Makefile.src index 4a947a0c5..0d75f1b37 100644 --- a/sys/lib/Makefile.src +++ b/sys/lib/Makefile.src @@ -600,6 +600,7 @@ $(WASM_DATA_DIR): touch $(WASM_DATA_DIR)/record touch $(WASM_DATA_DIR)/logfile touch $(WASM_DATA_DIR)/xlogfile + ( cd ..; $(MAKE) dlb ) ( cd ..; $(MAKE) dofiles-dlb ) cp ../sys/lib/sysconf $(WASM_DATA_DIR)/sysconf @@ -767,7 +768,7 @@ tags: $(CSOURCES) @( cd ../util ; $(MAKE) tags ) clean: - -rm -f *.o $(HACK_H) $(CONFIG_H) $(WASM_TARGET) $(WASM_TARGET:.js=.wasm) $(LIBNH_TARGET) + -rm -f *.o $(HACK_H) $(CONFIG_H) $(WASM_TARGET) $(WASM_TARGET:.js=.wasm) $(WASM_TARGET:.js=.data) $(LIBNH_TARGET) -rm -rf $(WASM_DATA_DIR) spotless: clean diff --git a/sys/lib/Makefile.top b/sys/lib/Makefile.top index c3ca8fda3..34d35fb26 100644 --- a/sys/lib/Makefile.top +++ b/sys/lib/Makefile.top @@ -211,7 +211,7 @@ title.img: check-dlb: options @if egrep -s librarian dat/options ; then $(MAKE) dlb ; else true ; fi -dlb: +dlb: $(VARDATD) ( cd util ; $(MAKE) dlb ) ( cd dat ; LC_ALL=C ; ../util/dlb cf nhdat $(DATDLB) ) @@ -320,13 +320,11 @@ clean: ( cd src ; $(MAKE) clean ) ( cd util ; $(MAKE) clean ) ( cd dat ; $(MAKE) clean ) - ( cd doc ; $(MAKE) clean ) ( cd lib/lua-$(LUA_VERSION)/src && $(MAKE) clean ) # 'make spotless' returns the source tree to near-distribution condition. # it removes .o files, executables, and compiled data files -spotless:: +spotless: clean ( cd src ; $(MAKE) spotless ) ( cd util ; $(MAKE) spotless ) ( cd dat ; $(MAKE) spotless ) - ( cd doc ; $(MAKE) spotless ) diff --git a/sys/lib/Makefile.utl b/sys/lib/Makefile.utl index 8aaf07c9a..ce39a3edf 100644 --- a/sys/lib/Makefile.utl +++ b/sys/lib/Makefile.utl @@ -95,6 +95,7 @@ NHSROOT=.. #CFLAGS = -O -I../include #LFLAGS = +CFLAGS+=-DNOTTYGRAPHICS -DSHIM_GRAPHICS -DDEFAULT_WINDOW_SYS=\"shim\" # -lm required by lua LFLAGS += -lm diff --git a/sys/lib/hints/include/multiw-1.2020 b/sys/lib/hints/include/multiw-1.2020 deleted file mode 100644 index 3fb550882..000000000 --- a/sys/lib/hints/include/multiw-1.2020 +++ /dev/null @@ -1,37 +0,0 @@ -#------------------------------------------------------------------------------ -# NetHack 3.7 multiw-1.2020 $NHDT-Date: 1597332785 2020/08/13 15:33:05 $ $NHDT-Branch: NetHack-3.7 $ - -# 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 -# on the 'make' command line. If none are enabled, tty will be used. -#WANT_WIN_TTY=1 -#WANT_WIN_CURSES=1 -#WANT_WIN_X11=1 -#WANT_WIN_QT=1 - -# 2. What is the default window system? -# Exactly one of these can be manually uncommented and/or can be specified -# on the 'make' command line. If none is enabled, the first among -# WANT_WIN_{tty,curses,X11,Qt} that is enabled will become default. -#WANT_DEFAULT=tty -#WANT_DEFAULT=curses -#WANT_DEFAULT=Qt -#WANT_DEFAULT=X11 - -# 3. compiler detection or optional override -CCISCLANG := $(shell echo `$(CC) --version` | grep clang) -ifeq "$(CCISCLANG)" "" -CXX=g++ -std=gnu++11 -else -CXX=clang++ -std=gnu++11 -endif -# if you want to override the compiler detection just carried out -# uncomment one of the following pairs as desired. -#CC= gcc -#CXX= g++ -std-gnu++11 -# -#CC= clang -#CXX=clang++ -std=gnu++11 - -#end of multiw-1.2020 -#------------------------------------------------------------------------------ diff --git a/sys/lib/hints/include/multiw-2.2020 b/sys/lib/hints/include/multiw-2.2020 deleted file mode 100644 index ad4028aed..000000000 --- a/sys/lib/hints/include/multiw-2.2020 +++ /dev/null @@ -1,108 +0,0 @@ -#------------------------------------------------------------------------------ -# NetHack 3.7 multiw-2.2020 $NHDT-Date: 1597332785 2020/08/13 15:33:05 $ $NHDT-Branch: NetHack-3.7 $ -# -# Sorts out support for multiple window ports (interfaces) to included in the build. -# -# Included from: -# hints/linux.2020 -# hints/macOS.2020 -# -# The following will be set appropriately following this: -# - WANT_WIN_XXX (at least one will be set; default is TTY) -# - WANT_DEFAULT (set to match one of the enabled WANT_WIN_XXX) -# - WINCFLAGS -# - WINSRC -# - WINOBJ0 -#--- -# User selections could be specified as combinations of any of the following: -# WIN_WANT_TTY=1, WIN_WANT_CURSES=1, WIN_WANT_QT=1, WIN_WANT_X11=1 -# The selections will all be linked into the same binary. -# -# Assuming you have the prerequisite packages mentioned above, you can -# specify, right on the make command line, which window ports (or interfaces) -# to include in your build. Doing it via the make command line means that won't -# have to edit the Makefile. -# -# make WANT_WIN_QT=1 WANT_WIN_X11=1 WANT_WIN_CURSES=1 WANT_WIN_TTY=1 install -# -# Add WANT_DEFAULT=Qt (or other interface) if you want nethack to use -# something other than tty as the default interface. -# - -# Make sure that at least one interface is enabled. -ifndef WANT_WIN_ALL -ifndef WANT_WIN_TTY -ifndef WANT_WIN_CURSES -ifndef WANT_WIN_X11 -ifndef WANT_WIN_QT -WANT_WIN_TTY=1 -endif -endif -endif -endif -endif - -ifdef WANT_WIN_ALL -WANT_WIN_TTY=1 -WANT_WIN_CURSES=1 -WANT_WIN_X11=1 -WANT_WIN_QT=1 -endif - - -# Make sure that a default interface is specified; this doesn't guarantee -# sanity for something like 'make WANT_WIN_CURSES=1 WANT_DEFAULT=X11' but -# 'makedefs -v' would notice, complain, and quit causing 'make' to quit. -ifndef WANT_DEFAULT -# pick the first one enabled among { tty, curses, X11, Qt } -ifdef WANT_WIN_TTY -WANT_DEFAULT=tty -else -ifdef WANT_WIN_CURSES -WANT_DEFAULT=curses -else -ifdef WANT_WIN_X11 -WANT_DEFAULT=X11 -else -ifdef WANT_WIN_QT -WANT_DEFAULT=Qt -else -# ? shouldn't be able to get here... -endif -endif -endif -endif -endif - -WINCFLAGS= -WINSRC = -WINOBJ0 = - -ifdef WANT_WIN_TTY -WINSRC += $(WINTTYSRC) -WINOBJ0 += $(WINTTYOBJ) -else -WINCFLAGS += -DNOTTYGRAPHICS -endif - -ifdef WANT_WIN_CURSES -WINCFLAGS += -DCURSES_GRAPHICS -WINSRC += $(WINCURSESSRC) -WINOBJ0 += $(WINCURSESOBJ) -endif - -ifdef WANT_WIN_X11 -WINCFLAGS += -DX11_GRAPHICS -WINSRC += $(WIINX11SRC) -WINOBJ0 += $(WINX11OBJ) -endif - -ifdef WANT_WIN_QT -WINCFLAGS += -DQT_GRAPHICS -WINSRC += $(WINQTSRC) -WINOBJ0 += $(WINQTOBJ) -endif - -#end of hints/include/multiw-2.2020 -#------------------------------------------------------------------------------ - diff --git a/sys/lib/hints/macOS.2020 b/sys/lib/hints/macOS.2020 index 227f83a3c..3edd3b768 100755 --- a/sys/lib/hints/macOS.2020 +++ b/sys/lib/hints/macOS.2020 @@ -16,28 +16,6 @@ # macOS X hints file # -####-INCLUDE multiw-1.2020 - -# 4. If you set WANT_WIN_QT, you need to -# A) set QTDIR either here or in the environment to point to the Qt5 -# library installation root. (Qt2, Qt3, Qt4 will not work) -# B) set XPMLIB to point to the Xpm library -ifndef WANT_WIN_QT -ifdef WANT_WIN_ALL -WANT_WIN_QT=1 -endif -endif -ifdef WANT_WIN_QT -#QTDIR=/Developer/Qt -# Qt installed via homebrew -QTDIR=$(shell brew --prefix)/opt/qt -# Qt installed via macports -#QTDIR=/opt/local/libexec/qt5 -endif # WANT_WIN_QT -ifndef LIBXPM -LIBXPM= -L/opt/X11/lib -lXpm -endif - # 5. Other #----------------------------------------------------------------------------- @@ -45,25 +23,11 @@ endif # you're reading this in Makefile augmented by hints, that may not be true). # -####-INCLUDE multiw-2.2020 +AR=ar rcu +RANLIB=ranlib # XXX -g vs -O should go here, -I../include goes in the makefile CFLAGS+=-g -I../include -DNOTPARMDECL -ifndef WANT_WIN_QT -# these are normally used when compiling nethack's core -CFLAGS+=-ansi -pedantic -Wno-long-long -# but -ansi forces -std=c90 for C or -std=c++98 for C++; -# win/Qt/qt_*.cpp compiled with C++98 semantics trigger -#In file included from .../qt5/include/QtCore/qglobal.h:105: -#.../qt5/include/QtCore/qcompilerdetection.h:561:6: -# error Qt requires a C++11 compiler and yours does not seem to be that. -# so we suppress -ansi when the build includes Qt -endif -# As of LLVM build 2336.1.00, this gives dozens of spurious messages, so -# leave it out by default. -#CFLAGS+=-Wunreachable-code -#TODO NHLIB -#CFLAGS+=-Wall -Wextra -Wno-missing-field-initializers -Wimplicit -Wreturn-type -Wunused -Wformat -Wswitch -Wshadow -Wwrite-strings CFLAGS+=-Wno-missing-field-initializers -Wimplicit -Wreturn-type -Wformat -Wswitch -Wshadow -Wwrite-strings CFLAGS+=-DGCC_WARN @@ -87,7 +51,7 @@ CFLAGS+=-DNOMAIL #CFLAGS+=-DTTY_TILES_ESCCODES #CFLAGS+=-DTTY_SOUND_ESCCODES -#CFLAGS+=-DDEFAULT_WINDOW_SYS=\"shim\" -DNOTTYGRAPHICS -DLIBNH +CFLAGS+=-DDEFAULT_WINDOW_SYS=\"shim\" -DNOTTYGRAPHICS -DLIBNH CFLAGS+= $(WINCFLAGS) #WINCFLAGS set from multiw-2.2020 @@ -100,54 +64,7 @@ HINTSRC=$(CHAINSRC) HINTOBJ=$(CHAINOBJ) endif # WANT_WIN_CHAIN -ifdef WANT_WIN_TTY -CURSESLIB = -lncurses -endif - -ifdef WANT_WIN_CURSES -CURSESLIB = -lncurses -endif - -ifdef CURSESLIB -WINLIB += $(CURSESLIB) -endif - -ifdef WANT_WIN_X11 -USE_XPM=1 -WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11 -VARDATND0 += x11tiles NetHack.ad pet_mark.xbm pilemark.xbm -# -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 -X11CFLAGS += -Wno-variadic-macros -ifdef USE_XPM -CFLAGS += -DUSE_XPM -WINX11LIB += -lXpm -VARDATND0 += rip.xpm -endif -WINLIB += $(WINX11LIB) -LFLAGS=-L/opt/X11/lib -endif # WANT_WIN_X11 - -ifdef WANT_WIN_QT -# Qt5 requires C++11 -LINK = $(CXX) -QTCXXFLAGS += -Wno-deprecated-declarations -QTCXXFLAGS += $(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) -WINSRC += $(WINQTSRC) -WINOBJ0 += $(WINQTOBJ) -VARDATND0 += nhtiles.bmp rip.xpm nhsplash.xpm -# XXX if /Developer/qt exists and QTDIR not set, use that -ifndef QTDIR -$(error QTDIR not defined in the environment or Makefile) -endif # QTDIR -# XXX make sure QTDIR points to something reasonable -else # !WANT_WIN_QT LINK=$(CC) -endif # !WANT_WIN_QT # prevent duplicate tile.o in WINOBJ WINOBJ = $(sort $(WINOBJ0)) diff --git a/sys/lib/hints/wasm b/sys/lib/hints/wasm index 0591db7ba..e5cf4bc7b 100644 --- a/sys/lib/hints/wasm +++ b/sys/lib/hints/wasm @@ -4,7 +4,7 @@ WANT_WASM=1 WASM_DEBUG=1 -WASM_DATA_DIR=$(NHSROOT)/src/wasm-data/Users/ampower/nethackdir +WASM_DATA_DIR=$(NHSROOT)/src/wasm-data # toolchain EMCC=emcc @@ -51,100 +51,14 @@ else EMCC_CFLAGS+=$(EMCC_PROD_CFLAGS) endif -ifdef WANT_SHARE_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 -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 -PREINSTALL= . sys/unix/hints/macosx.sh user2 $(GAMEUID); \ - . sys/unix/hints/macosx.sh group2 $(GAMEGRP); \ - mkdir $(SHELLDIR); chown $(GAMEUID) $(SHELLDIR) -POSTINSTALL+= sys/unix/hints/macosx.sh editsysconf sys/unix/sysconf $(HACKDIR)/sysconf; \ - $(CHOWN) $(GAMEUID) $(HACKDIR)/sysconf; \ - $(CHGRP) $(GAMEGRP) $(HACKDIR)/sysconf; \ - chmod $(VARFILEPERM) $(HACKDIR)/sysconf; - -else ifdef WANT_SOURCE_INSTALL - -PREFIX=$(abspath $(NHSROOT)) -# suppress nethack.sh -#SHELLDIR= -HACKDIR=$(PREFIX)/playground +# installation config +# hackdir is the wasm / emscripten embed data root directory +HACKDIR=/ 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: -MOREALL=$(MAKE) install -CFLAGS+=-DSYSCF -DSYSCF_FILE=\"$(HACKDIR)/sysconf\" -DSECURE - -else # !WANT_SOURCE_INSTALL - -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 -endif # WANT_DEFAULT X11 - -POSTINSTALL+= sys/unix/hints/macosx.sh editsysconf sys/unix/sysconf $(HACKDIR)/sysconf; \ - $(CHOWN) $(GAMEUID) $(HACKDIR)/sysconf; \ - $(CHGRP) $(GAMEGRP) $(HACKDIR)/sysconf; \ - chmod $(VARFILEPERM) $(HACKDIR)/sysconf; -ifdef WANT_BUNDLE -# -# Bundle -# -# $(HACKDIR)/$(GAME).app/ -# Contents/ -# Frameworks/ -# Info.plist -# MacOS/ -# $(GAME) -# PkgInfo/ -# PlugIns/ -# Resources/ -# SharedFrameWorks/ -# -BUNDLE = mkdir -p $(HACKDIR)/nethack.app/Contents/MacOS; \ - sys/unix/hints/macosx.sh infoplist > $(HACKDIR)/nethack.app/Contents/Info.plist; \ - mv $(HACKDIR)/nethack $(HACKDIR)/nethack.app/Contents/MacOS/nethack; -ifdef WANT_SHARE_INSTALL -BUNDLE+= chmod $(GAMEPERM) $(HACKDIR)/nethack.app/Contents/MacOS/nethack; -endif - -POSTINSTALL+= $(BUNDLE) -POSTINSTALL+= if test -f $(SHELLDIR)/$(GAME); then \ - sed -i '' 's;HACKDIR/$(GAME);HACKDIR/$(GAME).app/Contents/MacOS/$(GAME);' $(SHELLDIR)/$(GAME) ; fi; -endif # WANT_BUNDLE -endif # !WANT_SHARE_INSTALL INSTDIR=$(HACKDIR) VARDIR=$(HACKDIR)