1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
--- sys/unix/Makefile.top.orig 2022-03-07 23:57:15 UTC
+++ sys/unix/Makefile.top
@@ -25,15 +25,15 @@ NHSROOT=.
GAME = xnethack
# GAME = nethack.prg
#GAMEUID = games
-#GAMEGRP = bin
+GAMEGRP = games
# Permissions - some places use setgid instead of setuid, for instance.
# See also the option "SECURE" in include/config.h.
-#GAMEPERM = 04755
+GAMEPERM = 02755
FILEPERM = 0644
# VARFILEPERM = 0644
EXEPERM = 0755
-DIRPERM = 0755
+DIRPERM = 0775
# VARDIRPERM = 0755
# VARDIR may also appear in unixconf.h as "VAR_PLAYGROUND" else HACKDIR
@@ -44,10 +44,12 @@ DIRPERM = 0755
# keep (if there is, you'll have to do the installation by hand or
# modify the install commands below).
#HACKDIR = $(PREFIX)/games/lib/$(GAME)dir
-#VARDIR = $(HACKDIR)
+HACKDIR = %%HACKDIR%%
+INSTDIR = ${HACKDIR}
+VARDIR = $(HACKDIR)
# Where nethack.sh is installed (as 'nethack').
# If this is not defined, the shell wrapper script is not used.
-#SHELLDIR = $(PREFIX)/games
+SHELLDIR = $(PREFIX)/bin
# Extra data files depending upon the interface(s) built into nethack.
# per discussion in Install.X11 and Install.Qt
@@ -62,7 +64,7 @@ DIRPERM = 0755
# X11 with GRAPHIC_TOMBSTONE (requires 'xpm'):
# VARDATND = x11tiles NetHack.ad pet_mark.xbm pilemark.xbm rip.xpm
# both X11 and Qt:
-# VARDATND = x11tiles nhtiles.bmp NetHack.ad pet_mark.xbm pilemark.xbm rip.xpm
+VARDATND = x11tiles nhtiles.bmp NetHack.ad pet_mark.xbm pilemark.xbm rip.xpm
# Qt without X11; assumes GRAPHIC_TOMBSTONE:
# VARDATND = nhtiles.bmp pet_mark.xbm pilemark.xbm rip.xpm
@@ -123,7 +125,7 @@ all: $(ALLDEP)
$(GAME): lua_support
( cd src ; $(MAKE) $(GAME) )
-lua_support: $(TOPLUALIB) include/nhlua.h
+lua_support: include/nhlua.h
@true
$(LUATOP)/liblua.a: $(LUAHEADERS)/lua.h
( cd $(LUATOP) \
@@ -131,13 +133,11 @@ $(LUATOP)/liblua.a: $(LUAHEADERS)/lua.h
lib/lua/liblua.a: $(LUATOP)/liblua.a
@( if test -d lib/lua ; then true ; else mkdir -p lib/lua ; fi )
cp $(LUATOP)/liblua.a $@
-include/nhlua.h: $(TOPLUALIB)
+include/nhlua.h:
echo '/* nhlua.h - generated by top Makefile */' > $@
- @echo '#include "../$(LUAHEADERS)/lua.h"' >> $@
- @sed -e '/(lua_error)/!d' -e '/(lua_error)/s/;/ NORETURN;/1' \
- < $(LUAHEADERS)/lua.h >> $@
- @echo '#include "../$(LUAHEADERS)/lualib.h"' >> $@
- @echo '#include "../$(LUAHEADERS)/lauxlib.h"' >> $@
+ @echo '#include <lua.h>' >> $@
+ @echo '#include <lualib.h>' >> $@
+ @echo '#include <lauxlib.h>' >> $@
@echo '/*nhlua.h*/' >> $@
# LUATESTTARGET is this by default
lib/lua-$(LUA_VERSION)/src/lua.h:
@@ -258,39 +258,22 @@ dofiles:
-e '}' \
-e '$$s/.*/nodlb/p' < dat/options` ; \
$(MAKE) dofiles-$${target-nodlb}
- cp src/$(GAME) $(INSTDIR)
- cp util/recover $(INSTDIR)
- -if test -n '$(SHELLDIR)'; then rm -f $(SHELLDIR)/$(GAME); fi
- if test -n '$(SHELLDIR)'; then \
+ cp src/$(GAME) ${DESTDIR}$(INSTDIR)/$(GAME)
+ cp util/recover ${DESTDIR}$(INSTDIR)
+ -if test -n '${DESTDIR}$(SHELLDIR)'; then rm -f ${DESTDIR}$(SHELLDIR)/$(GAME); fi
+ if test -n '${DESTDIR}$(SHELLDIR)'; then \
sed -e 's;/usr/games/lib/nethackdir;$(HACKDIR);' \
-e 's;HACKDIR/nethack;HACKDIR/$(GAME);' \
< sys/unix/nethack.sh \
- > $(SHELLDIR)/$(GAME) ; fi
-# set up their permissions
- -( cd $(INSTDIR) ; $(CHOWN) $(GAMEUID) $(GAME) recover ; \
- $(CHGRP) $(GAMEGRP) $(GAME) recover )
- chmod $(GAMEPERM) $(INSTDIR)/$(GAME)
- chmod $(EXEPERM) $(INSTDIR)/recover
- -if test -n '$(SHELLDIR)'; then \
- $(CHOWN) $(GAMEUID) $(SHELLDIR)/$(GAME); fi
- if test -n '$(SHELLDIR)'; then \
- $(CHGRP) $(GAMEGRP) $(SHELLDIR)/$(GAME); \
- chmod $(EXEPERM) $(SHELLDIR)/$(GAME); fi
+ > ${DESTDIR}$(SHELLDIR)/$(GAME) ; fi
dofiles-dlb: check-dlb
- ( cd dat ; cp nhdat $(DATNODLB) $(INSTDIR) )
-# set up their permissions
- -( cd $(INSTDIR) ; $(CHOWN) $(GAMEUID) nhdat $(DATNODLB) ; \
- $(CHGRP) $(GAMEGRP) nhdat $(DATNODLB) ; \
- chmod $(FILEPERM) nhdat $(DATNODLB) )
+ ( cd dat ; cp nhdat $(DATNODLB) ${DESTDIR}$(INSTDIR) )
dofiles-nodlb:
# copy over the game files
- ( cd dat ; cp $(DAT) $(INSTDIR) )
-# set up their permissions
- -( cd $(INSTDIR) ; $(CHOWN) $(GAMEUID) $(DAT) ; \
- $(CHGRP) $(GAMEGRP) $(DAT) ; \
- chmod $(FILEPERM) $(DAT) )
+ ( cd dat ; cp $(DAT) ${DESTDIR}$(INSTDIR) )
+
#
# This is not part of the dependency build hierarchy.
# It requires an explicit "make fetch-Lua".
@@ -327,25 +310,17 @@ install: rootcheck $(GAME) recover $(VARDAT) spec_levs
true; $(PREINSTALL)
# set up the directories
# not all mkdirs have -p; those that don't will create a -p directory
- -if test -n '$(SHELLDIR)'; then \
- mkdir -p $(SHELLDIR); fi
- rm -rf $(INSTDIR) $(VARDIR)
- -mkdir -p $(INSTDIR) $(VARDIR) $(VARDIR)/save $(VARDIR)/whereis
+ -if test -n '${DESTDIR}$(SHELLDIR)'; then \
+ mkdir -p ${DESTDIR}$(SHELLDIR); fi
+ rm -rf ${DESTDIR}$(INSTDIR) ${DESTDIR}$(VARDIR)
+ -mkdir -p ${DESTDIR}$(INSTDIR) ${DESTDIR}$(VARDIR)/save ${DESTDIR}$(VARDIR)/whereis
if test -d ./-p; then rmdir ./-p; fi
- -$(CHOWN) $(GAMEUID) $(INSTDIR) $(VARDIR) $(VARDIR)/save $(VARDIR)/whereis
- $(CHGRP) $(GAMEGRP) $(INSTDIR) $(VARDIR) $(VARDIR)/save $(VARDIR)/whereis
# order counts here:
- chmod $(DIRPERM) $(INSTDIR)
- chmod $(VARDIRPERM) $(VARDIR) $(VARDIR)/save $(VARDIR)/whereis
# set up the game files
( $(MAKE) dofiles )
# set up some additional files
- touch $(VARDIR)/perm $(VARDIR)/record $(VARDIR)/logfile $(VARDIR)/xlogfile \
- $(VARDIR)/livelog
- -( cd $(VARDIR) ; $(CHOWN) $(GAMEUID) perm record logfile xlogfile livelog ; \
- $(CHGRP) $(GAMEGRP) perm record logfile xlogfile livelog ; \
- chmod $(VARFILEPERM) perm record logfile xlogfile livelog )
- true; $(POSTINSTALL)
+ touch ${DESTDIR}$(VARDIR)/perm ${DESTDIR}$(VARDIR)/record \
+ ${DESTDIR}$(VARDIR)/logfile ${DESTDIR}$(VARDIR)/xlogfile ${DESTDIR}$(VARDIR)/livelog
# and a reminder
@echo You may also want to reinstall the man pages via the doc Makefile.
|