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.
5
6#  Copy this file to [.dat]Makefile.; no editing needed.
7
8MAKE	= $(MMS)
9CD	= set default
10ECHO	= write sys$output
11NOOP	= continue		# don't do anything interesting
12RUN	= mcr			# simplest way to pass command line args
13TOUCH	= append/New _NLA0:	# only one file per $(TOUCH)
14# support directories, relative to each other and to 'src'
15DAT = [-.dat]
16UTL = [-.util]
17WINSHR = [-.win.share]
18WINX11 = [-.win.X11]
19# utilities; must match Makefile.utl in spelling and punctuation
20MAKEDEFS = $(UTL)makedefs.exe;
21LEVCOMP  = $(UTL)lev_comp.exe;
22DGNCOMP  = $(UTL)dgn_comp.exe;
23DLB	 = $(UTL)dlb.exe;
24TILE2X11 = $(UTL)tile2x11.exe;
25UTILMARKER = $(UTL)util.timestamp;
26
27# note: filespecs have enough punctuation to satisfy DELETE
28MARKERS = spec_levs.timestamp;,quest_levs.timestamp;
29VARDAT	= data.;,rumors.;,quest.dat;,oracles.;,options.;,\
30	engrave.;,epitaph.;,bogusmon.;
31DUNGEON = dungeon.;
32X11TILES= x11tiles.;
33# note: the level lists need to be space separated for use as-is by $(LEVCOMP)
34QUESTLEVS = 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
37SPECLEVS  = bigroom.des castle.des endgame.des gehennom.des knox.des \
38	medusa.des mines.des oracle.des sokoban.des tower.des yendor.des
39
40all :	$(VARDAT) $(DUNGEON) $(MARKERS) $(DLB)
41      @ $(ECHO) "data files are up to date."
42
43# these are convenience targets for "manual" interactive use
44spec_levs :	spev_levs.timestamp
45      @ $(ECHO) "special levels are up to date."
46quest_levs :	quest_levs.timestamp
47      @ $(ECHO) "quest levels are up to date."
48dungeon :	$(DUNGEON)
49      @ $(ECHO) "dungeon is up to date."
50data :		data.;
51      @ $(NOOP)
52rumors :	rumors.;
53      @ $(NOOP)
54quest.dat :	quest.dat;
55      @ $(NOOP)
56oracles :	oracles.;
57      @ $(NOOP)
58engrave :	engrave.;
59      @ $(NOOP)
60epitaph :	epitaph.;
61      @ $(NOOP)
62bogusmon :	bogusmon.;
63      @ $(NOOP)
64options :	options.;
65      @ $(NOOP)
66x11tiles :	$(X11TILES)
67      @ $(NOOP)
68
69$(MAKEDEFS) : $(UTILMARKER)
70	$(CD) $(UTL)
71	$(MAKE)$(MAKEFLAGS) $(MAKEDEFS)
72      @ $(CD) $(DAT)
73
74$(DGNCOMP) : $(UTILMARKER)
75	$(CD) $(UTL)
76	$(MAKE)$(MAKEFLAGS) $(DGNCOMP)
77      @ $(CD) $(DAT)
78
79$(LEVCOMP) : $(UTILMARKER)
80	$(CD) $(UTL)
81	$(MAKE)$(MAKEFLAGS) $(LEVCOMP)
82      @ $(CD) $(DAT)
83
84$(DLB) : $(UTILMARKER)
85	$(CD) $(UTL)
86	$(MAKE)$(MAKEFLAGS) $(DLB)
87      @ $(CD) $(DAT)
88
89$(TILE2X11) : $(UTILMARKER)
90	$(CD) $(UTL)
91	$(MAKE)$(MAKEFLAGS) $(TILE2X11)
92      @ $(CD) $(DAT)
93
94$(X11TILES) : $(TILE2X11) \
95		$(WINSHR)monsters.txt $(WINSHR)objects.txt $(WINSHR)other.txt
96	$(RUN) $(TILE2X11) \
97		$(WINSHR)monsters.txt $(WINSHR)objects.txt $(WINSHR)other.txt
98
99pet_mark.xbm : $(WINX11)pet_mark.xbm
100	copy $(WINX11)pet_mark.xbm pet_mark.xbm
101
102rip.xpm : $(WINX11)rip.xpm
103	copy $(WINX11)rip.xpm rip.xpm
104
105
106data.; :	data.base $(MAKEDEFS)
107	$(RUN) $(MAKEDEFS) -d
108
109rumors.; :	rumors.tru rumors.fal $(MAKEDEFS)
110	$(RUN) $(MAKEDEFS) -r
111
112engrave.; epitaph.; bogusmon.; : engrave.txt epitaph.txt bogusmon.txt
113	$(RUN) $(MAKEDEFS) -s
114
115quest.dat; :	quest.txt $(MAKEDEFS)
116	$(RUN) $(MAKEDEFS) -q
117
118oracles.; :	oracles.txt $(MAKEDEFS)
119	$(RUN) $(MAKEDEFS) -h
120
121# note: 'options' should have already been made when include/date.h was created
122options.; :	$(MAKEDEFS)
123	$(RUN) $(MAKEDEFS) -v
124
125spec_levs.timestamp; :	$(SPECLEVS) $(LEVCOMP)
126	$(RUN) $(LEVCOMP) $(SPECLEVS)
127	$(TOUCH) spec_levs.timestamp;
128
129quest_levs.timestamp; : $(QUESTLEVS) $(LEVCOMP)
130	$(RUN) $(LEVCOMP) $(QUESTLEVS)
131	$(TOUCH) quest_levs.timestamp;
132
133$(DUNGEON) :	dungeon.def $(MAKEDEFS) $(DGNCOMP)
134	$(RUN) $(MAKEDEFS) -e		!dungeon.def -> dungeon.pdf
135	$(RUN) $(DGNCOMP) dungeon.pdf	!dungeon.pdr -> dungeon
136
137clean :
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)
141
142spotless :	clean
143      - delete $(VARDAT)
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;
150