1 # NetHack Makefile (VMS) - data files: special levels and other data.
2 # NetHack 3.6 Makefile.dat $NHDT-Date: 1542388601 2018/11/16 17:16:41 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.10 $
3 # Copyright (c) 2015 by Mike Stephenson
4 # NetHack may be freely redistributed. See license for details.
6 # Copy this file to [.dat]Makefile.; no editing needed.
10 ECHO = write sys$output
11 NOOP = continue # don't do anything interesting
12 RUN = mcr # simplest way to pass command line args
13 TOUCH = append/New _NLA0: # only one file per $(TOUCH)
14 # support directories, relative to each other and to 'src'
17 WINSHR = [-.win.share]
19 # utilities; must match Makefile.utl in spelling and punctuation
20 MAKEDEFS = $(UTL)makedefs.exe;
21 LEVCOMP = $(UTL)lev_comp.exe;
22 DGNCOMP = $(UTL)dgn_comp.exe;
24 TILE2X11 = $(UTL)tile2x11.exe;
25 UTILMARKER = $(UTL)util.timestamp;
27 # note: filespecs have enough punctuation to satisfy DELETE
28 MARKERS = spec_levs.timestamp;,quest_levs.timestamp;
29 VARDAT = data.;,rumors.;,quest.dat;,oracles.;,options.;,\
30 engrave.;,epitaph.;,bogusmon.;
33 # note: the level lists need to be space separated for use as-is by $(LEVCOMP)
34 QUESTLEVS = Arch.des Barb.des Caveman.des Healer.des Knight.des \
35 Monk.des Priest.des Ranger.des Rogue.des Samurai.des Tourist.des \
36 Valkyrie.des Wizard.des
37 SPECLEVS = bigroom.des castle.des endgame.des gehennom.des knox.des \
38 medusa.des mines.des oracle.des sokoban.des tower.des yendor.des
40 all : $(VARDAT) $(DUNGEON) $(MARKERS) $(DLB)
41 @ $(ECHO) "data files are up to date."
43 # these are convenience targets for "manual" interactive use
44 spec_levs : spev_levs.timestamp
45 @ $(ECHO) "special levels are up to date."
46 quest_levs : quest_levs.timestamp
47 @ $(ECHO) "quest levels are up to date."
49 @ $(ECHO) "dungeon is up to date."
54 quest.dat : quest.dat;
66 x11tiles : $(X11TILES)
69 $(MAKEDEFS) : $(UTILMARKER)
71 $(MAKE)$(MAKEFLAGS) $(MAKEDEFS)
74 $(DGNCOMP) : $(UTILMARKER)
76 $(MAKE)$(MAKEFLAGS) $(DGNCOMP)
79 $(LEVCOMP) : $(UTILMARKER)
81 $(MAKE)$(MAKEFLAGS) $(LEVCOMP)
84 $(DLB) : $(UTILMARKER)
86 $(MAKE)$(MAKEFLAGS) $(DLB)
89 $(TILE2X11) : $(UTILMARKER)
91 $(MAKE)$(MAKEFLAGS) $(TILE2X11)
94 $(X11TILES) : $(TILE2X11) \
95 $(WINSHR)monsters.txt $(WINSHR)objects.txt $(WINSHR)other.txt
97 $(WINSHR)monsters.txt $(WINSHR)objects.txt $(WINSHR)other.txt
99 pet_mark.xbm : $(WINX11)pet_mark.xbm
100 copy $(WINX11)pet_mark.xbm pet_mark.xbm
102 rip.xpm : $(WINX11)rip.xpm
103 copy $(WINX11)rip.xpm rip.xpm
106 data.; : data.base $(MAKEDEFS)
107 $(RUN) $(MAKEDEFS) -d
109 rumors.; : rumors.tru rumors.fal $(MAKEDEFS)
110 $(RUN) $(MAKEDEFS) -r
112 engrave.; epitaph.; bogusmon.; : engrave.txt epitaph.txt bogusmon.txt
113 $(RUN) $(MAKEDEFS) -s
115 quest.dat; : quest.txt $(MAKEDEFS)
116 $(RUN) $(MAKEDEFS) -q
118 oracles.; : oracles.txt $(MAKEDEFS)
119 $(RUN) $(MAKEDEFS) -h
121 # note: 'options' should have already been made when include/date.h was created
122 options.; : $(MAKEDEFS)
123 $(RUN) $(MAKEDEFS) -v
125 spec_levs.timestamp; : $(SPECLEVS) $(LEVCOMP)
126 $(RUN) $(LEVCOMP) $(SPECLEVS)
127 $(TOUCH) spec_levs.timestamp;
129 quest_levs.timestamp; : $(QUESTLEVS) $(LEVCOMP)
130 $(RUN) $(LEVCOMP) $(QUESTLEVS)
131 $(TOUCH) quest_levs.timestamp;
133 $(DUNGEON) : dungeon.def $(MAKEDEFS) $(DGNCOMP)
134 $(RUN) $(MAKEDEFS) -e !dungeon.def -> dungeon.pdf
135 $(RUN) $(DGNCOMP) dungeon.pdf !dungeon.pdr -> dungeon
138 - if f$search("*.*;-1").nes."" then purge
139 - if f$search("dungeon.pdf").nes."" then delete dungeon.pdf;
140 - if f$search("*.timestamp").nes."" then delete $(MARKERS)
144 - if f$search("$(DUNGEON)").nes."" then delete $(DUNGEON)
145 - if f$search("*.lev").nes."" then delete *.lev;
146 - if f$search("$(X11TILES)").nes."" then delete $(X11TILES)
147 - if f$search("*.x%m").nes."" then delete *.x%m; !*.xbm,*.xpm
148 - if f$search("nh*.dlb").nes."" then delete nh*.dlb;
149 - if f$search("nhdat.lst").nes."" then delete nhdat.lst;