From: jwalz Date: Sat, 5 Jan 2002 21:05:59 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: MOVE2GIT~3667 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=48ff9f230b7542b051fcd8dbe6ff6de66ea44074;p=nethack *** empty log message *** --- diff --git a/sys/vms/Makefile.top b/sys/vms/Makefile.top new file mode 100644 index 000000000..a4523feb6 --- /dev/null +++ b/sys/vms/Makefile.top @@ -0,0 +1,147 @@ +# NetHack Makefile (VMS) - top level for making & installing everything. +# SCCS Id: @(#)Makefile.top 3.3 96/03/02 + +# Copy this file to Makefile.; edit the appropriate values for +# GAMEDIR ("playground" location) and GAMEOWNER (UIC or identifier +# for the owner of playground files). + +# usage: mms all,install +# or mms no_tools,all,install +# or substitute freeware `MMK' for Digital's `MMS'. + +MAKE = $(MMS) +CD = set default +ECHO = write sys$output +EXEC = @ +NOOP = continue # don't do anything interesting +TOUCH = set file/truncate # multiple files per $(TOUCH), but no creation +# support directories, relative to 'top' +DAT = [.dat] +DOC = [.doc] +SRC = [.src] +TOP = [-] # relative to the others +UTL = [.util] +VMS = [.sys.vms] + +GAMEDIR = # defaults to [.play] +GAMEOWNER = # defaults to installer's UIC +# these are the distributed values in [.include]vmsconf.h +#GAMEDIR = DISK$USERS:[GAMES.NETHACK.3-3-0.PLAY] +#GAMEOWNER = NHWIZARD + +# just about everything, except installation +all : program utilities data dlb_data documentation + @ $(ECHO) "all code and data is now up to date." + +program : + $(CD) $(SRC) + $(MAKE)$(MAKEFLAGS) all + @ $(CD) $(TOP) +utilities : + $(CD) $(UTL) + $(MAKE)$(MAKEFLAGS) all + @ $(CD) $(TOP) +data : + $(CD) $(DAT) + $(MAKE)$(MAKEFLAGS) all + @ $(CD) $(TOP) +documentation : + $(CD) $(DOC) + $(MAKE)$(MAKEFLAGS) all + @ $(CD) $(TOP) + +install : program all_data make_directories create_writeable_files update + @ $(ECHO) "installation is now complete." + +# assume there're no active games in progress +update : place_readonly_files place_executable place_vms_support + @ open/Write f tmp-update.com; + @ write f "$ set noon" + @ write f "$ if p1.eqs."""" then p1 = f$trnlnm(""HACKDIR"")" + @ write f "$ if p1.eqs."""" then p1 = ""[.play]""" + @ write f "$ old_default = f$environ(""DEFAULT"")" + @ write f "$ set default 'p1'" + @ write f\ + "$ if f$search(""*.*;-2"").nes."""" then set file/prot=(s:rwed,o:rwed) *.*;-2" + @ write f\ + "$ if f$search(""*.*;-1"").nes."""" then set file/prot=(s:rwed,o:rwed) *.*;-1" + @ write f "$ if f$search(""*.*;-1"").nes."""" then purge" + @ write f "$! if f$search(""bones*.*"").nes."""" then $(TOUCH) bones*.*" + @ write f "$! if f$search(""[.save]*"").nes."""" then $(TOUCH) [.save]*" + @ write f "$ set default 'old_default'" + @ write f "$ exit" + @ close f + - $(EXEC)tmp-update.com; $(GAMEDIR) !purge old version + @ delete tmp-update.com; + @ $(ECHO) "playground files updated." + +Guidebook : + $(CD) $(DOC) + $(MAKE)$(MAKEFLAGS) Guidebook + @ $(CD) $(TOP) +manpages : + $(CD) $(DOC) + $(MAKE)$(MAKEFLAGS) manpages + @ $(CD) $(TOP) + +all_data : data dlb_data + @ $(NOOP) + +dlb_data : + $(EXEC)$(VMS)install.com "$(GAMEDIR)" "$(GAMEOWNER)" dlb + +make_directories : + $(EXEC)$(VMS)install.com "$(GAMEDIR)" "$(GAMEOWNER)" directories + +create_writeable_files : + $(EXEC)$(VMS)install.com "$(GAMEDIR)" "$(GAMEOWNER)" writeable_files + +place_readonly_files : + $(EXEC)$(VMS)install.com "$(GAMEDIR)" "$(GAMEOWNER)" readonly_files + +place_executable : + $(EXEC)$(VMS)install.com "$(GAMEDIR)" "$(GAMEOWNER)" executable + +place_vms_support : + $(EXEC)$(VMS)install.com "$(GAMEDIR)" "$(GAMEOWNER)" termcap + $(EXEC)$(VMS)install.com "$(GAMEDIR)" "$(GAMEOWNER)" procedure + $(EXEC)$(VMS)install.com "$(GAMEDIR)" "$(GAMEOWNER)" documentation + + +# 'make no_tools' should be done first if you don't have the appropriate +# tools to process the parser and scanner for the special level and +# dungeon compilers; doing so will copy distributed, pre-processed files +# from [.sys.share] to [.util]. If you _do_ have the tools, be sure to +# edit [.util]Makefile so that it uses the right ones. +no_tools : + $(CD) $(UTL) + $(MAKE)$(MAKEFLAGS) no_yacc + $(MAKE)$(MAKEFLAGS) no_lex + @ $(CD) $(TOP) + + +# 'make clean' removes all the .obj files, but leaves around all the executables +# and compiled data files. +clean : + $(CD) $(SRC) + - $(MAKE)$(MAKEFLAGS) clean + @ $(CD) $(TOP) + $(CD) $(UTL) + - $(MAKE)$(MAKEFLAGS) clean + @ $(CD) $(TOP) + +# 'make spotless' returns the source tree to near-distribution condition. +# it removes .obj files, executables, and compiled data files. +spotless : + $(CD) $(SRC) + - $(MAKE)$(MAKEFLAGS) spotless + @ $(CD) $(TOP) + $(CD) $(UTL) + - $(MAKE)$(MAKEFLAGS) spotless + @ $(CD) $(TOP) + $(CD) $(DAT) + - $(MAKE)$(MAKEFLAGS) spotless + @ $(CD) $(TOP) + $(CD) $(DOC) + - $(MAKE)$(MAKEFLAGS) spotless + @ $(CD) $(TOP)