summaryrefslogtreecommitdiff
path: root/games/nethack/files/Makefile.top.slack
diff options
context:
space:
mode:
Diffstat (limited to 'games/nethack/files/Makefile.top.slack')
-rw-r--r--games/nethack/files/Makefile.top.slack266
1 files changed, 266 insertions, 0 deletions
diff --git a/games/nethack/files/Makefile.top.slack b/games/nethack/files/Makefile.top.slack
new file mode 100644
index 0000000000..705f04e048
--- /dev/null
+++ b/games/nethack/files/Makefile.top.slack
@@ -0,0 +1,266 @@
+# NetHack Makefile.
+# SCCS Id: @(#)Makefile.top 3.4 1995/01/05
+
+# newer makes predefine $(MAKE) to 'make' and do smarter processing of
+# recursive make calls if $(MAKE) is used
+# these makes allow $(MAKE) to be overridden by the environment if someone
+# wants to (or has to) use something other than the standard make, so we do
+# not want to unconditionally set $(MAKE) here
+#
+# unfortunately, some older makes do not predefine $(MAKE); if you have one of
+# these, uncomment the following line
+# (you will know that you have one if you get complaints about unable to
+# execute things like 'data' and 'rumors')
+# MAKE = make
+
+# make NetHack
+PREFIX = /usr
+GAME = nethack
+# GAME = nethack.prg
+GAMEUID = root
+GAMEGRP = games
+
+# Permissions - some places use setgid instead of setuid, for instance
+# See also the option "SECURE" in include/config.h
+GAMEPERM = 02755
+FILEPERM = 0664
+EXEPERM = 0755
+DIRPERM = 0775
+
+# GAMEDIR also appears in config.h as "HACKDIR".
+# VARDIR may also appear in unixconf.h as "VAR_PLAYGROUND" else GAMEDIR
+#
+# note that 'make install' believes in creating a nice tidy GAMEDIR for
+# installation, free of debris from previous NetHack versions --
+# 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)/share/games/nethack
+VARDIR = /var/lib/nethack
+SHELLDIR = $(PREFIX)/bin
+
+# per discussion in Install.X11 and Install.Qt
+# VARDATND =
+# VARDATND = x11tiles NetHack.ad pet_mark.xbm
+VARDATND = x11tiles NetHack.ad pet_mark.xbm rip.xpm nhsplash.xpm
+# for Atari/Gem
+# VARDATND = nh16.img title.img GEM_RSC.RSC rip.img
+# for BeOS
+# VARDATND = beostiles
+# for Gnome
+# VARDATND = x11tiles pet_mark.xbm rip.xpm mapbg.xpm
+
+VARDATD = data oracles options quest.dat rumors
+VARDAT = $(VARDATD) $(VARDATND)
+
+# Some versions of make use the SHELL environment variable as the shell
+# for running commands. We need this to be a Bourne shell.
+# SHELL = /bin/sh
+# for Atari
+# SHELL=E:/GEMINI2/MUPFEL.TTP
+
+# Commands for setting the owner and group on files during installation.
+# Some systems fail with one or the other when installing over NFS or for
+# other permission-related reasons. If that happens, you may want to set the
+# command to "true", which is a no-op. Note that disabling chown or chgrp
+# will only work if setuid (or setgid) behavior is not desired or required.
+CHOWN = chown
+CHGRP = chgrp
+
+#
+# end of configuration
+#
+
+DATHELP = help hh cmdhelp history opthelp wizhelp
+
+SPEC_LEVS = asmodeus.lev baalz.lev bigrm-?.lev castle.lev fakewiz?.lev \
+ juiblex.lev knox.lev medusa-?.lev minend-?.lev minefill.lev \
+ minetn-?.lev oracle.lev orcus.lev sanctum.lev soko?-?.lev \
+ tower?.lev valley.lev wizard?.lev \
+ astral.lev air.lev earth.lev fire.lev water.lev
+QUEST_LEVS = ???-goal.lev ???-fil?.lev ???-loca.lev ???-strt.lev
+
+DATNODLB = $(VARDATND) license
+DATDLB = $(DATHELP) dungeon $(SPEC_LEVS) $(QUEST_LEVS) $(VARDATD)
+DAT = $(DATNODLB) $(DATDLB)
+
+$(GAME):
+ ( cd src ; $(MAKE) )
+
+all: $(GAME) recover Guidebook $(VARDAT) dungeon spec_levs check-dlb
+ @echo "Done."
+
+# Note: many of the dependencies below are here to allow parallel make
+# to generate valid output
+
+Guidebook:
+ ( cd doc ; $(MAKE) Guidebook )
+
+manpages:
+ ( cd doc ; $(MAKE) manpages )
+
+data: $(GAME)
+ ( cd dat ; $(MAKE) data )
+
+rumors: $(GAME)
+ ( cd dat ; $(MAKE) rumors )
+
+oracles: $(GAME)
+ ( cd dat ; $(MAKE) oracles )
+
+# Note: options should have already been made with make, but...
+options: $(GAME)
+ ( cd dat ; $(MAKE) options )
+
+quest.dat: $(GAME)
+ ( cd dat ; $(MAKE) quest.dat )
+
+spec_levs: dungeon
+ ( cd util ; $(MAKE) lev_comp )
+ ( cd dat ; $(MAKE) spec_levs )
+ ( cd dat ; $(MAKE) quest_levs )
+
+dungeon: $(GAME)
+ ( cd util ; $(MAKE) dgn_comp )
+ ( cd dat ; $(MAKE) dungeon )
+
+nhtiles.bmp: $(GAME)
+ ( cd dat ; $(MAKE) nhtiles.bmp )
+
+x11tiles: $(GAME)
+ ( cd util ; $(MAKE) tile2x11 )
+ ( cd dat ; $(MAKE) x11tiles )
+
+beostiles: $(GAME)
+ ( cd util ; $(MAKE) tile2beos )
+ ( cd dat ; $(MAKE) beostiles )
+
+NetHack.ad: $(GAME)
+ ( cd dat ; $(MAKE) NetHack.ad )
+
+pet_mark.xbm:
+ ( cd dat ; $(MAKE) pet_mark.xbm )
+
+rip.xpm:
+ ( cd dat ; $(MAKE) rip.xpm )
+
+mapbg.xpm:
+ (cd dat ; $(MAKE) mapbg.xpm )
+
+nhsplash.xpm:
+ ( cd dat ; $(MAKE) nhsplash.xpm )
+
+nh16.img: $(GAME)
+ ( cd util ; $(MAKE) tile2img.ttp )
+ ( cd dat ; $(MAKE) nh16.img )
+
+rip.img:
+ ( cd util ; $(MAKE) xpm2img.ttp )
+ ( cd dat ; $(MAKE) rip.img )
+GEM_RSC.RSC:
+ ( cd dat ; $(MAKE) GEM_RSC.RSC )
+
+title.img:
+ ( cd dat ; $(MAKE) title.img )
+
+check-dlb: options
+ @if egrep -s librarian dat/options ; then $(MAKE) dlb ; else true ; fi
+
+dlb:
+ ( cd util ; $(MAKE) dlb )
+ ( cd dat ; ../util/dlb cf nhdat $(DATDLB) )
+
+# recover can be used when INSURANCE is defined in include/config.h
+# and the checkpoint option is true
+recover: $(GAME)
+ ( cd util ; $(MAKE) recover )
+
+dofiles:
+ target=`sed -n \
+ -e '/librarian/{' \
+ -e 's/.*/dlb/p' \
+ -e 'q' \
+ -e '}' \
+ -e '$$s/.*/nodlb/p' < dat/options` ; \
+ $(MAKE) dofiles-$${target-nodlb}
+ cp src/$(GAME) $(DESTDIR)/$(GAMEDIR)
+ cp util/recover $(DESTDIR)/$(GAMEDIR)
+ -rm -f $(DESTDIR)/$(SHELLDIR)/$(GAME)
+ sed -e 's;/usr/games/lib/nethackdir;$(GAMEDIR);' \
+ -e 's;HACKDIR/nethack;HACKDIR/$(GAME);' \
+ < sys/unix/nethack.sh \
+ > $(DESTDIR)/$(SHELLDIR)/$(GAME)
+# set up their permissions
+ -( cd $(DESTDIR)/$(GAMEDIR) ; $(CHOWN) $(GAMEUID) $(GAME) recover ; \
+ $(CHGRP) $(GAMEGRP) $(GAME) recover )
+ chmod $(GAMEPERM) $(DESTDIR)/$(GAMEDIR)/$(GAME)
+ chmod $(EXEPERM) $(DESTDIR)/$(GAMEDIR)/recover
+ -$(CHOWN) $(GAMEUID) $(DESTDIR)/$(SHELLDIR)/$(GAME)
+ $(CHGRP) $(GAMEGRP) $(DESTDIR)/$(SHELLDIR)/$(GAME)
+ chmod $(EXEPERM) $(DESTDIR)/$(SHELLDIR)/$(GAME)
+
+dofiles-dlb: check-dlb
+ ( cd dat ; cp nhdat $(DATNODLB) $(DESTDIR)/$(GAMEDIR) )
+# set up their permissions
+ -( cd $(DESTDIR)/$(GAMEDIR) ; $(CHOWN) $(GAMEUID) nhdat $(DATNODLB) ; \
+ $(CHGRP) $(GAMEGRP) nhdat $(DATNODLB) ; \
+ chmod $(FILEPERM) nhdat $(DATNODLB) )
+
+dofiles-nodlb:
+# copy over the game files
+ ( cd dat ; cp $(DAT) $(DESTDIR)/$(GAMEDIR) )
+# set up their permissions
+ -( cd $(DESTDIR)/$(GAMEDIR) ; $(CHOWN) $(GAMEUID) $(DAT) ; \
+ $(CHGRP) $(GAMEGRP) $(DAT) ; \
+ chmod $(FILEPERM) $(DAT) )
+
+update: $(GAME) recover $(VARDAT) dungeon spec_levs
+# (don't yank the old version out from under people who're playing it)
+ -mv $(DESTDIR)/$(GAMEDIR)/$(GAME) $(DESTDIR)/$(GAMEDIR)/$(GAME).old
+# quest.dat is also kept open and has the same problems over NFS
+# (quest.dat may be inside nhdat if dlb is in use)
+ -mv $(DESTDIR)/$(GAMEDIR)/quest.dat $(DESTDIR)/$(GAMEDIR)/quest.dat.old
+ -mv $(DESTDIR)/$(GAMEDIR)/nhdat $(DESTDIR)/$(GAMEDIR)/nhdat.old
+# set up new versions of the game files
+ ( $(MAKE) dofiles )
+# touch time-sensitive files
+ -touch -c $(DESTDIR)/$(VARDIR)/bones* $(DESTDIR)/$(VARDIR)/?lock* $(DESTDIR)/$(VARDIR)/wizard*
+ -touch -c $(DESTDIR)/$(VARDIR)/save/*
+ touch $(DESTDIR)/$(VARDIR)/perm $(DESTDIR)/$(VARDIR)/record
+# and a reminder
+ @echo You may also want to install the man pages via the doc Makefile.
+
+install: $(GAME) 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 $(DESTDIR)/$(SHELLDIR)
+ -rm -rf $(DESTDIR)/$(GAMEDIR) $(DESTDIR)/$(VARDIR)
+ -mkdir -p $(DESTDIR)/$(GAMEDIR) $(DESTDIR)/$(VARDIR) $(DESTDIR)/$(VARDIR)/save
+ -rmdir ./-p
+ -$(CHOWN) $(GAMEUID) $(DESTDIR)/$(GAMEDIR) $(DESTDIR)/$(VARDIR) $(DESTDIR)/$(VARDIR)/save
+ $(CHGRP) $(GAMEGRP) $(DESTDIR)/$(GAMEDIR) $(DESTDIR)/$(VARDIR) $(DESTDIR)/$(VARDIR)/save
+ chmod $(DIRPERM) $(DESTDIR)/$(GAMEDIR) $(DESTDIR)/$(VARDIR) $(DESTDIR)/$(VARDIR)/save
+# set up the game files
+ ( $(MAKE) dofiles )
+# set up some additional files
+ touch $(DESTDIR)/$(VARDIR)/perm $(DESTDIR)/$(VARDIR)/record $(DESTDIR)/$(VARDIR)/logfile
+ -( cd $(DESTDIR)/$(VARDIR) ; $(CHOWN) $(GAMEUID) perm record logfile ; \
+ $(CHGRP) $(GAMEGRP) perm record logfile ; \
+ chmod $(FILEPERM) perm record logfile )
+# and a reminder
+ @echo You may also want to reinstall the man pages via the doc Makefile.
+
+
+# 'make clean' removes all the .o files, but leaves around all the executables
+# and compiled data files
+clean:
+ ( cd src ; $(MAKE) clean )
+ ( cd util ; $(MAKE) clean )
+
+# 'make spotless' returns the source tree to near-distribution condition.
+# it removes .o files, executables, and compiled data files
+spotless:
+ ( cd src ; $(MAKE) spotless )
+ ( cd util ; $(MAKE) spotless )
+ ( cd dat ; $(MAKE) spotless )
+ ( cd doc ; $(MAKE) spotless )