$NetBSD: patch-ab,v 1.11 2004/03/05 15:21:01 pooka Exp $ --- sys/unix/Makefile.top.orig 2003-12-08 01:39:13.000000000 +0200 +++ sys/unix/Makefile.top 2004-03-05 15:40:57.000000000 +0200 @@ -14,18 +14,17 @@ # MAKE = make # make NetHack -PREFIX = /usr GAME = nethack # GAME = nethack.prg -GAMEUID = games -GAMEGRP = bin +GAMEUID = root +GAMEGRP = games # Permissions - some places use setgid instead of setuid, for instance # See also the option "SECURE" in include/config.h -GAMEPERM = 04755 -FILEPERM = 0644 +GAMEPERM = 2755 +FILEPERM = 0664 EXEPERM = 0755 -DIRPERM = 0755 +DIRPERM = 0775 # GAMEDIR also appears in config.h as "HACKDIR". # VARDIR may also appear in unixconf.h as "VAR_PLAYGROUND" else GAMEDIR @@ -35,12 +34,12 @@ # therefore there should not be anything in GAMEDIR that you want to keep # (if there is, you'll have to do the installation by hand or modify the # instructions) -GAMEDIR = $(PREFIX)/games/lib/$(GAME)dir +GAMEDIR = $(PREFIX)/share/$(GAME)dir340 VARDIR = $(GAMEDIR) -SHELLDIR = $(PREFIX)/games +SHELLDIR = $(PREFIX)/bin # per discussion in Install.X11 and Install.Qt -VARDATND = +VARDATND = pet_mark.xbm rip.xpm # VARDATND = x11tiles NetHack.ad pet_mark.xbm # VARDATND = x11tiles NetHack.ad pet_mark.xbm rip.xpm # for Atari/Gem @@ -87,9 +86,12 @@ $(GAME): ( cd src ; $(MAKE) ) -all: $(GAME) recover Guidebook $(VARDAT) dungeon spec_levs check-dlb +all: $(GAME) datastuff @echo "Done." +datastuff: recover Guidebook $(VARDAT) dungeon spec_levs check-dlb + @echo "Data Sets Built." + # Note: many of the dependencies below are here to allow parallel make # to generate valid output @@ -183,18 +185,15 @@ -e '}' \ -e '$$s/.*/nodlb/p' < dat/options` ; \ $(MAKE) dofiles-$${target-nodlb} - cp src/$(GAME) $(GAMEDIR) - cp util/recover $(GAMEDIR) + cp util/recover $(PREFIX)/bin -rm -f $(SHELLDIR)/$(GAME) sed -e 's;/usr/games/lib/nethackdir;$(GAMEDIR);' \ -e 's;HACKDIR/nethack;HACKDIR/$(GAME);' \ + -e 's;XXXPREFIXXXX;$(PREFIX);' \ < sys/unix/nethack.sh \ > $(SHELLDIR)/$(GAME) # set up their permissions - -( cd $(GAMEDIR) ; $(CHOWN) $(GAMEUID) $(GAME) recover ; \ - $(CHGRP) $(GAMEGRP) $(GAME) recover ) - chmod $(GAMEPERM) $(GAMEDIR)/$(GAME) - chmod $(EXEPERM) $(GAMEDIR)/recover + chmod $(EXEPERM) $(PREFIX)/bin/recover -$(CHOWN) $(GAMEUID) $(SHELLDIR)/$(GAME) $(CHGRP) $(GAMEGRP) $(SHELLDIR)/$(GAME) chmod $(EXEPERM) $(SHELLDIR)/$(GAME) @@ -230,16 +229,16 @@ # and a reminder @echo You may also want to install the man pages via the doc Makefile. -install: $(GAME) recover $(VARDAT) dungeon spec_levs +install-dat: recover $(VARDAT) dungeon spec_levs # set up the directories # not all mkdirs have -p; those that don't will create a -p directory -mkdir -p $(SHELLDIR) - -rm -rf $(GAMEDIR) $(VARDIR) -mkdir -p $(GAMEDIR) $(VARDIR) $(VARDIR)/save -rmdir ./-p -$(CHOWN) $(GAMEUID) $(GAMEDIR) $(VARDIR) $(VARDIR)/save $(CHGRP) $(GAMEGRP) $(GAMEDIR) $(VARDIR) $(VARDIR)/save - chmod $(DIRPERM) $(GAMEDIR) $(VARDIR) $(VARDIR)/save + chmod $(DIRPERM) $(GAMEDIR) $(VARDIR) + chmod 770 $(VARDIR)/save # set up the game files ( $(MAKE) dofiles ) # set up some additional files @@ -247,9 +246,20 @@ -( cd $(VARDIR) ; $(CHOWN) $(GAMEUID) perm record logfile ; \ $(CHGRP) $(GAMEGRP) perm record logfile ; \ chmod $(FILEPERM) perm record logfile ) + -touch -c $(VARDIR)/bones* $(VARDIR)/?lock* $(VARDIR)/wizard* + -touch -c $(VARDIR)/save/* + -mkdir -p $(PREFIX)/share/doc/nethack + cp doc/Guidebook $(PREFIX)/share/doc/nethack + chown $(GAMEUID):$(GAMEGRP) $(PREFIX)/share/doc/nethack/Guidebook + chmod $(FILEPERM) $(PREFIX)/share/doc/nethack/Guidebook # and a reminder @echo You may also want to reinstall the man pages via the doc Makefile. +binfiles: $(GAME) + cp src/$(GAME) $(SHELLDIR)/$(GAME)$(GTYPE) + -( cd $(GAMEDIR) ; $(CHOWN) $(GAMEUID) $(SHELLDIR)/$(GAME)$(GTYPE) ; \ + $(CHGRP) $(GAMEGRP) $(SHELLDIR)/$(GAME)$(GTYPE) ) + chmod $(GAMEPERM) $(SHELLDIR)/$(GAME)$(GTYPE) # 'make clean' removes all the .o files, but leaves around all the executables # and compiled data files