diff --git a/sys/unix/Makefile.top b/sys/unix/Makefile.top index 9c9ae0766..50466d12a 100644 --- a/sys/unix/Makefile.top +++ b/sys/unix/Makefile.top @@ -104,6 +104,21 @@ DATNODLB = $(VARDATND) license symbols DATDLB = $(DATHELP) dungeon.lua tribute $(SPEC_LEVS) $(QUEST_LEVS) $(VARDATD) DAT = $(DATNODLB) $(DATDLB) +# These get set only if they weren't already set above or in a hints file +#CHOWN ?= true +#CHGRP ?= true +#SYSCONFCREATE ?= cp sys/unix/sysconf $(INSTDIR)/sysconf +#SYSCONFINSTALL ?= $(SYSCONFCREATE) && \ +# $(CHOWN) $(GAMEUID) $(INSTDIR)/sysconf && \ +# $(CHGRP) $(GAMEGRP) $(INSTDIR)/sysconf && \ +# chmod $(VARFILEPERM) $(INSTDIR)/sysconf; +#SYSCONFENSURE ?= (if ! test -f $(INSTDIR)/sysconf ; then \ +# $(SYSCONFCREATE) && \ +# $(CHOWN) $(GAMEUID) $(INSTDIR)/sysconf && \ +# $(CHGRP) $(GAMEGRP) $(INSTDIR)/sysconf && \ +# chmod $(VARFILEPERM) $(INSTDIR)/sysconf; fi ); + +# Lua LUAHEADERS = lib/lua-$(LUA_VERSION)/src LUATESTTARGET = $(LUAHEADERS)/lua.h LUATOP = $(LUAHEADERS) @@ -368,7 +383,7 @@ fetch-lua-http: # 'make update' can be used to install a revised version after making # customizations or such. Unlike 'make install', it doesn't delete everything # from the target directory to have a clean start. -update: $(PRECHECK) $(GAME) recover $(VARDAT) spec_levs +update: $(PRECHECK) $(GAME) recover $(VARDAT) spec_levs sys/unix/sysconf # (don't yank the old version out from under people who're playing it) -mv $(INSTDIR)/$(GAME) $(INSTDIR)/$(GAME).old -mv $(INSTDIR)/nhdat $(INSTDIR)/nhdat.old @@ -376,13 +391,15 @@ update: $(PRECHECK) $(GAME) recover $(VARDAT) spec_levs ( $(MAKE) dofiles ) # should already be present, but make sure touch $(VARDIR)/perm $(VARDIR)/record +# sysconf, but only if it does not exist + true; $(SYSCONFENSURE) # and a reminder @echo You may also want to install the man pages via the doc Makefile. rootcheck: @true; $(ROOTCHECK) -install: rootcheck $(PRECHECK) $(GAME) recover $(VARDAT) spec_levs +install: rootcheck $(PRECHECK) $(GAME) recover $(VARDAT) spec_levs sys/unix/sysconf true; $(PREINSTALL) # set up the directories # not all mkdirs have -p; those that don't will create a -p directory @@ -404,6 +421,9 @@ install: rootcheck $(PRECHECK) $(GAME) recover $(VARDAT) spec_levs -( cd $(VARDIR) ; $(CHOWN) $(GAMEUID) perm record logfile xlogfile livelog ; \ $(CHGRP) $(GAMEGRP) perm record logfile xlogfile livelog ; \ chmod $(VARFILEPERM) perm record logfile xlogfile livelog ) +# sysconf + true; $(SYSCONFINSTALL) +# other steps from hints file true; $(POSTINSTALL) # and a reminder @echo You may also want to reinstall the man pages via the doc Makefile. diff --git a/sys/unix/hints/linux.370 b/sys/unix/hints/linux.370 index 7139e9175..508785612 100755 --- a/sys/unix/hints/linux.370 +++ b/sys/unix/hints/linux.370 @@ -295,6 +295,17 @@ override GAME= MOREALL += ( cd src ; $(MAKE) pregame ; $(MAKE) $(TARGETPFX)libnh.a ) endif # WANT_LIBNH +SYSCONFCREATE = cp sys/unix/sysconf $(INSTDIR)/sysconf +SYSCONFINSTALL = $(SYSCONFCREATE) && \ + $(CHOWN) $(GAMEUID) $(INSTDIR)/sysconf && \ + $(CHGRP) $(GAMEGRP) $(INSTDIR)/sysconf && \ + chmod $(VARFILEPERM) $(INSTDIR)/sysconf; +SYSCONFENSURE = (if ! test -f $(INSTDIR)/sysconf ; then \ + $(SYSCONFCREATE) && \ + $(CHOWN) $(GAMEUID) $(INSTDIR)/sysconf && \ + $(CHGRP) $(GAMEGRP) $(INSTDIR)/sysconf && \ + chmod $(VARFILEPERM) $(INSTDIR)/sysconf; fi ); + ifdef WANT_SOURCE_INSTALL PREFIX=$(abspath $(NHSROOT)) #SHELLDIR= @@ -317,14 +328,10 @@ endif #?WANT_SOURCE_INSTALL INSTDIR=$(HACKDIR) VARDIR = $(HACKDIR) -POSTINSTALL+= cp -n sys/unix/sysconf $(INSTDIR)/sysconf; \ - $(CHOWN) $(GAMEUID) $(INSTDIR)/sysconf; \ - $(CHGRP) $(GAMEGRP) $(INSTDIR)/sysconf; \ - chmod $(VARFILEPERM) $(INSTDIR)/sysconf; \ - ( util/makedefs --grep-defined CRASHREPORT && \ +POSTINSTALL+= ( util/makedefs --grep-defined CRASHREPORT && \ ( cp win/share/nhcrashreport.lua $(INSTDIR) ; \ chmod 555 $(INSTDIR)/nhcrashreport.lua ; \ - cp $(LUATOP)/lua $(INSTDIR)/nhlua); true); + cp $(LUATOP)/lua $(INSTDIR)/nhlua); true ); ifneq "$(CCISCLANG)" "" # gdb may not be installed if clang is chosen compiler so the game diff --git a/sys/unix/hints/macOS.370 b/sys/unix/hints/macOS.370 index 26d6b435a..981bf4396 100755 --- a/sys/unix/hints/macOS.370 +++ b/sys/unix/hints/macOS.370 @@ -350,11 +350,7 @@ ROOTCHECK= [[ `id -u` == 0 ]] || ( echo "Must run install with sudo."; exit 1) PREINSTALL= . sys/unix/hints/macosx.sh user2 $(GAMEUID); \ . sys/unix/hints/macosx.sh group2 $(GAMEGRP); \ (mkdir $(SHELLDIR) || true); 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; \ - util/makedefs --grep-defined CRASHREPORT && \ +POSTINSTALL+= util/makedefs --grep-defined CRASHREPORT && \ ( cp win/macosx/NetHackCrashReport.JavaScript $(HACKDIR) && \ chmod 0500 $(HACKDIR)/NetHackCrashReport.JavaScript ) @@ -414,6 +410,16 @@ endif # !WANT_SHARE_INSTALL INSTDIR=$(HACKDIR) VARDIR=$(HACKDIR) +SYSCONFCREATE = sys/unix/hints/macosx.sh editsysconf sys/unix/sysconf $(HACKDIR)/sysconf +SYSCONFINSTALL = $(SYSCONFCREATE) && \ + $(CHOWN) $(GAMEUID) $(INSTDIR)/sysconf && \ + $(CHGRP) $(GAMEGRP) $(INSTDIR)/sysconf && \ + chmod $(VARFILEPERM) $(INSTDIR)/sysconf; +SYSCONFENSURE = (if ! test -f $(INSTDIR)/sysconf ; then \ + $(SYSCONFCREATE) && \ + $(CHOWN) $(GAMEUID) $(INSTDIR)/sysconf && \ + $(CHGRP) $(GAMEGRP) $(INSTDIR)/sysconf && \ + chmod $(VARFILEPERM) $(INSTDIR)/sysconf; fi ); # ~/Library/Preferences/NetHack Defaults # OPTIONS=name:player,number_pad,menustyle:partial,!time,showexp