diff options
Diffstat (limited to 'games/nethack/files/Makefile.top.slack')
-rw-r--r-- | games/nethack/files/Makefile.top.slack | 266 |
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 0000000000000..705f04e0486f8 --- /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 ) |