1#	NetHack Makefile (VMS) - for building nethack itself.
2#	NetHack 3.6	Makefile.src	$NHDT-Date: 1557701517 2019/05/12 22:51:57 $	$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.36 $
3# Copyright (c) 2011 by Robert Patrick Rankin
4# NetHack may be freely redistributed.  See license for details.
5
6#  Copy this file to [.src]Makefile. and then edit it as needed.
7#  The default configuration is for building with DEC C (aka Compaq C,
8#  then HP C).
9#  If you change CC or CFLAGS, make similar changes in [.util]Makefile.
10#
11#  Note:  modifying this Makefile will cause crtl.opt to be rebuilt,
12#	which will trigger an update of makedefs, which will in turn
13#	result in a full build of just about _everything_.
14
15MAKE	= $(MMS)
16CD	= set default
17ECHO	= write sys$output
18NOOP	= continue
19RUN	= mcr
20TOUCH	= append/New _NLA0:	# only one file per $(TOUCH)
21# source tree, relative to 'src' and 'util'
22INC = [-.include]
23SYSSHR = [-.sys.share]
24SRC = [-.src]
25TTY = [-.win.tty]
26CURSES = [-.win.curses]
27UTL = [-.util]
28VMS = [-.sys.vms]
29WINSHR = [-.win.share]
30X11 = [-.win.X11]
31
32MAKEFILE= $(SRC)Makefile.
33
34# if you are using gcc as your compiler:
35#	uncomment the CC definition below if it's not in your environment
36# CC = gcc
37
38# set option flags for C compiler and linker
39#
40CFLAGS	= /Prefix=All/Incl=$(INC)/noList	# DECC in native mode
41#CFLAGS	= /Include=$(INC)/noList	# VAXC or GNUC
42#LFLAGS	= /Debug/Map/Cross_Ref			# for development
43#LFLAGS	= /noTraceback/noMap			# for installing w/ privs
44LFLAGS	= /noMap
45LINK	= link
46
47# DEC C (decc$shr linked by default)
48LIBS	=
49MORELIBS =
50# VAX C or GNU C, using shareable image run-time library
51# (leave MORELIBS blank for VAX C)
52#LIBS	= sys$share:vaxcrtl.exe/Shareable
53#MORELIBS = gnu_cc:[000000]gcclib.olb/Library
54# VAX C or GNU C, using object library run-time library
55# (leave LIBS blank for VAX C)
56#LIBS	= gnu_cc:[000000]gcclib.olb/Library
57#MORELIBS = sys$library:vaxcrtl.olb/Library
58
59# Specific VMS object files
60SYSSRC = $(VMS)vmsmain.c,$(VMS)vmstty.c,$(VMS)vmsunix.c,\
61	$(VMS)vmsmisc.c,$(VMS)vmsfiles.c,$(VMS)vmsmail.c
62SYSOBJ = vmsmain.obj,vmstty.obj,vmsunix.obj,vmsmail.obj #,vmsmisc.obj,vmsfiles.obj
63LIBOPT = $(SRC)crtl.opt;
64ID_OPT = $(SRC)ident.opt;
65
66# termcap library
67TERMCAPSRC = tclib.c
68TERMCAPOBJ = ,tclib.obj
69
70# Set WINSRC and WINOBJ lines corresponding to your desired combination
71# of windowing systems.  Also set windowing systems in config.h.
72#
73# a straight tty port using no native windowing system
74WINTTYSRC = $(TTY)getline.c $(TTY)termcap.c $(TTY)topl.c $(TTY)wintty.c \
75	$(TERMCAPSRC)
76WINTTYOBJ = getline.obj,termcap.obj,topl.obj,wintty.obj $(TERMCAPOBJ)
77#
78# curses; doesn't use termcap; may or may not support TERMTABLE for non-DEC tty
79WINCURSESSRC = $(CURSES)cursdial.c $(CURSES)cursmesg.c $(CURSES)cursinit.c \
80	$(CURSES)cursmisc.c $(CURSES)cursinvt.c $(CURSES)cursstat.c \
81	$(CURSES)cursmain.c $(CURSES)curswins.c
82WINCURSESOBJ = cursdial.obj,cursmesg.obj,cursinit.obj,cursmisc.obj, \
83	cursinvt.obj,cursstat.obj,cursmain.obj,curswins.obj
84#
85# an X11 port (not supported under DECwindows)
86WINX11SRC = $(X11)Window.c $(X11)dialogs.c $(X11)winX.c $(X11)winmap.c \
87	$(X11)winmenu.c $(X11)winmesg.c $(X11)winmisc.c $(X11)winstat.c \
88	$(X11)wintext.c $(X11)winval.c $(SRC)tile.c
89WINX11OBJ = Window.obj,dialogs.obj,winX.obj,winmap.obj,winmenu.obj,\
90	winmesg.obj,winmisc.obj,winstat.obj,wintext.obj,winval.obj,tile.obj
91#
92#
93# make sure both WANT_WIN_TTY and WANT_WIN_CURSES have a value
94.ifndef WANT_WIN_CURSES
95WANT_WIN_CURSES=0
96.endif
97.ifndef WANT_WIN_TTY
98.if WANT_WIN_CURSES
99WANT_WIN_TTY=0
100.else
101WANT_WIN_TTY=1
102.endif
103.endif
104
105.if WANT_WIN_TTY
106WINSRC = $(WINTTYSRC)
107WINOBJ = $(WINTTYOBJ)
108.if WANT_WIN_CURSES
109WINSRC +=,$(WINCURSESSRC)
110WINOBJ += $(WINCURSESOBJ)
111.endif
112.else
113.if WANT_WIN_CURSES
114WINSRC = $(WINCURSESSRC)
115WINOBJ = $(WINCURSESOBJ)
116.else
117# Neither WANT_WIN_TTY nor WANT_WIN_CURSES?
118.endif
119.endif
120
121# make NetHack for VMS
122SYSTEM	= SysVMS.timestamp;
123GAME	= $(SRC)nethack.exe;
124
125# RANDOM is defined in vmsconf.h, USE_ISAAC64 might be defined in config.h;
126RANDSRC = isaac64.c random.c
127RANDOBJ = isaac64.obj,random.obj
128
129# ----------------------------------------
130#
131# Nothing below this line should have to be changed.
132#
133# Other things that have to be reconfigured are in vmsconf.h,
134# and config.h
135
136VERSION  = 3.6.6
137
138MAKEDEFS = $(UTL)makedefs.exe;
139
140# timestamp files to reduce `make' overhead and shorten .obj dependency lists
141CONFIG_H = $(SRC)config.h-t
142HACK_H	= $(SRC)hack.h-t
143
144# all .c that are part of the main NetHack program and are not operating- or
145# windowing-system specific
146HACKCSRC = allmain.c alloc.c apply.c artifact.c attrib.c ball.c bones.c \
147	   botl.c cmd.c dbridge.c decl.c detect.c dig.c display.c dlb.c do.c \
148	   do_name.c do_wear.c dog.c dogmove.c dokick.c dothrow.c drawing.c \
149	   dungeon.c eat.c end.c engrave.c exper.c explode.c extralev.c \
150	   files.c fountain.c hack.c hacklib.c invent.c light.c lock.c \
151	   mail.c makemon.c mapglyph.c mcastu.c mhitm.c mhitu.c minion.c \
152	   mklev.c mkmap.c \
153	   mkmaze.c mkobj.c mkroom.c mon.c mondata.c monmove.c monst.c \
154	   mplayer.c mthrowu.c muse.c music.c o_init.c objects.c objnam.c \
155	   options.c pager.c pickup.c pline.c polyself.c potion.c pray.c \
156	   priest.c quest.c questpgr.c read.c rect.c region.c restore.c \
157	   rip.c rnd.c role.c \
158	   rumors.c save.c shk.c shknam.c sit.c sounds.c sp_lev.c spell.c \
159	   steal.c steed.c sys.c teleport.c timeout.c topten.c track.c \
160	   trap.c u_init.c \
161	   uhitm.c vault.c version.c vision.c weapon.c were.c wield.c \
162	   windows.c wizard.c worm.c worn.c write.c zap.c
163
164# generated source files (tile.c is handled separately via WINxxxSRC)
165GENCSRC = vis_tab.c	#tile.c
166
167# .c files for this version (for date.h)
168VERSOURCES = $(HACKCSRC) $(SYSSRC) $(WINSRC) $(RANDSRC) $(GENCSRC)
169
170# all .h files except date.h, onames.h, pm.h, and vis_tab.h which would
171# cause dependency loops if run through "make depend"
172# and dgn_comp.h, dgn_file.h, lev_comp.h, special level & dungeon files.
173#
174HACKINCL = align.h amiconf.h artifact.h artilist.h attrib.h beconf.h color.h \
175	   config.h config1.h context.h coord.h decl.h def_os2.h display.h \
176	   dlb.h dungeon.h engrave.h extern.h flag.h func_tab.h global.h \
177	   hack.h lev.h macconf.h mextra.h mfndpos.h micro.h mkroom.h \
178	   monattk.h mondata.h monflag.h monst.h monsym.h obj.h objclass.h \
179	   os2conf.h patchlevel.h pcconf.h permonst.h prop.h rect.h \
180	   region.h rm.h sp_lev.h spell.h sys.h system.h tcap.h timeout.h \
181	   tosconf.h tradstdc.h trampoli.h trap.h unixconf.h vision.h \
182	   vmsconf.h wintty.h winX.h winprocs.h wintype.h you.h youprop.h
183
184#HSOURCES = $(HACKINCL) date.h onames.h pm.h vis_tab.h\
185#		lev_comp.h dgn_comp.h dgn_file.h
186
187# the following .obj's should be made before any others (for makedefs)
188FIRSTOBJ = vmsmisc.obj,vmsfiles.obj,monst.obj,objects.obj
189
190# split up long list so that we can write pieces of it into nethack.opt
191HOBJ1 = allmain.obj,alloc.obj,apply.obj,artifact.obj,attrib.obj, \
192	ball.obj,bones.obj,botl.obj,cmd.obj,dbridge.obj,decl.obj, \
193	detect.obj,dig.obj,display.obj,dlb.obj,do.obj,do_name.obj,do_wear.obj
194HOBJ2 = dog.obj,dogmove.obj,dokick.obj,dothrow.obj,drawing.obj, \
195	dungeon.obj,eat.obj,end.obj,engrave.obj,exper.obj,explode.obj, \
196	extralev.obj,files.obj,fountain.obj,hack.obj,hacklib.obj,invent.obj
197HOBJ3 = light.obj,lock.obj,mail.obj,makemon.obj,mapglyph.obj,mcastu.obj, \
198	mhitm.obj,mhitu.obj,minion.obj,mklev.obj,mkmap.obj,mkmaze.obj, \
199	mkobj.obj,mkroom.obj,mon.obj,mondata.obj,monmove.obj
200HOBJ4 = mplayer.obj,mthrowu.obj,muse.obj,music.obj,o_init.obj,objnam.obj, \
201	options.obj,pager.obj,pickup.obj,pline.obj,polyself.obj, \
202	potion.obj,pray.obj,priest.obj,quest.obj,questpgr.obj,read.obj
203HOBJ5 = rect.obj,region.obj,restore.obj,rip.obj,rnd.obj,role.obj, \
204	rumors.obj,save.obj,shk.obj,shknam.obj,sit.obj,sounds.obj,sp_lev.obj, \
205	spell.obj,steal.obj,steed.obj,sys.obj,teleport.obj,timeout.obj, \
206	topten.obj, track.obj,trap.obj
207HOBJ6 = u_init.obj,uhitm.obj,vault.obj,vision.obj,vis_tab.obj,weapon.obj, \
208	were.obj,wield.obj,windows.obj,wizard.obj,worm.obj,worn.obj, \
209	write.obj,zap.obj,version.obj
210HOBJ  = $(FIRSTOBJ) $(SYSOBJ) $(WINOBJ) $(RANDOBJ) \
211	$(HOBJ1) $(HOBJ2) $(HOBJ3) $(HOBJ4) $(HOBJ5) $(HOBJ6)
212
213# simpler target name
214nethack : $(GAME)
215      @ $(ECHO) "nethack is up to date."
216
217$(GAME) :	$(SYSTEM)
218      @ $(NOOP)
219
220$(SYSTEM) :	$(LIBOPT) $(ID_OPT) $(HOBJ) nethack.opt
221      @ $(ECHO) "Linking ..."
222	$(LINK)/Exe=$(GAME) $(LFLAGS) nethack.opt/Opt,$(LIBOPT)/Opt,$(ID_OPT)/Opt
223	$(TOUCH) $(SYSTEM)
224
225all :	$(GAME)
226      @ $(ECHO) "nethack is up to date."
227
228# linker options file for nethack's object modules
229nethack.opt :	$(MAKEFILE)	# this file
230	open/Write f nethack.opt
231	write f "! nethack.opt"
232      @ write f f$edit("$(SYSOBJ)","COLLAPSE")
233      @ write f f$edit("$(WINOBJ)","COLLAPSE")
234      @ write f f$edit("$(RANDOBJ)","COLLAPSE")
235      @ write f f$edit("$(FIRSTOBJ)","COLLAPSE")
236      @ write f f$edit("$(HOBJ1)","COLLAPSE")
237      @ write f f$edit("$(HOBJ2)","COLLAPSE")
238      @ write f f$edit("$(HOBJ3)","COLLAPSE")
239      @ write f f$edit("$(HOBJ4)","COLLAPSE")
240      @ write f f$edit("$(HOBJ5)","COLLAPSE")
241      @ write f f$edit("$(HOBJ6)","COLLAPSE")
242      @ write f "sys$library:starlet.olb/Include=(lib$initialize)
243      @ write f "! psect_attributes Usr, noPic, and Long removed"
244      @ write f "psect_attr=lib$initialize, Con,Rel,Gbl,noShr,noExe,Rd,noWrt"
245      @ write f "iosegment=128"
246	close f
247
248# linker options file for run-time libraries, also used by $(UTL)Makefile
249$(LIBOPT) :	$(MAKEFILE)	# this file
250	open/Write f $(LIBOPT)
251	write f "! crtl.opt"
252	write f "$(LIBS)"
253	write f "$(MORELIBS)"
254	close f
255# simplified target name, for interactive convenience
256crtl.opt :	$(LIBOPT)
257      @ $(NOOP)
258
259# linker options file for version number, also used by $(UTL)Makefile
260$(ID_OPT) :	$(MAKEFILE)	# this file
261	open/Write f $(ID_OPT)
262	write f "! ident.opt"
263	write f "identification=""$(VERSION)"""
264	close f
265# simplified target name, for interactive convenience
266ident.opt :	$(ID_OPT)
267      @ $(NOOP)
268
269#	dependencies for makedefs and its outputs, which the util
270#	Makefile is responsible for keeping up to date
271#
272
273# special rules, to force update of makedefs, real dependencies should be
274# below in the 'make depend' output.
275monst.obj :
276	$(CC) $(CFLAGS) monst.c
277     @- if f$search("$(MAKEDEFS)").nes."" then delete $(MAKEDEFS)
278
279objects.obj :
280	$(CC) $(CFLAGS) objects.c
281     @- if f$search("$(MAKEDEFS)").nes."" then delete $(MAKEDEFS)
282
283$(MAKEDEFS) :	$(FIRSTOBJ) $(UTL)makedefs.c \
284		$(CONFIG_H) $(INC)permonst.h $(INC)objclass.h \
285		$(INC)monsym.h $(INC)artilist.h $(INC)dungeon.h \
286		$(INC)obj.h $(INC)monst.h $(INC)you.h $(INC)flag.h \
287		$(INC)dlb.h $(INC)patchlevel.h $(INC)qtext.h \
288		$(LIBOPT) $(ID_OPT)
289	$(CD) $(UTL)
290	$(MAKE)$(MAKEFLAGS) $(MAKEDEFS)
291      @ $(CD) $(SRC)
292$(INC)onames.h : $(MAKEDEFS)
293	$(CD) $(UTL)
294	$(MAKE)$(MAKEFLAGS) $(INC)onames.h
295      @ $(CD) $(SRC)
296$(INC)pm.h :	$(MAKEDEFS)
297	$(CD) $(UTL)
298	$(MAKE)$(MAKEFLAGS) $(INC)pm.h
299      @ $(CD) $(SRC)
300# both vis_tab.h and vis_tab.c are made at the same time by makedefs
301$(INC)vis_tab.h : vis_tab.c
302	$(TOUCH) $(INC)vis_tab.h
303vis_tab.c : $(MAKEDEFS)
304	$(CD) $(UTL)
305	$(MAKE)$(MAKEFLAGS) $(SRC)vis_tab.c
306      @ $(CD) $(SRC)
307$(SRC)tile.c : $(WINSHR)tilemap.c $(HACK_H)
308	$(CD) $(UTL)
309	$(MAKE)$(MAKEFLAGS) $(SRC)tile.c
310      @ $(CD) $(SRC)
311
312#	date.h should be remade any time any of the source or include code
313#	is modified.  Unfortunately, this would make the contents of this
314#	file far more complex.  Since "hack.h" depends on most of the include
315#	files, we kludge around this by making date.h dependent on hack.h,
316#	even though it doesn't include this file.
317#
318#	hack.h depends on makedefs' output, so we know makedefs will be
319#	up to date before being executed; kill old date.h to force update
320$(INC)date.h :	$(VERSOURCES) $(HACK_H)
321     @- if f$search("$(INC)date.h").nes."" then  delete $(INC)date.h;*
322	$(CD) $(UTL)
323	$(MAKE)$(MAKEFLAGS) $(INC)date.h
324      @ $(CD) $(SRC)
325
326#	special targets (monstr.c is an obsolete generated source file)
327clean :
328      - if f$search("*.*;-2").nes."" then  purge/Keep=2
329      - if f$search("$(INC)*.*;-2").nes."" then  purge/Keep=2 $(INC) /Exclude=*conf*.h
330      - if f$search("*.obj").nes."" then  delete *.obj;*
331      - if f$search("*.h-t").nes."" then  delete *.h-t;* !$(HACK_H),$(CONFIG_H)
332      - if f$search("monstr.c").nes."" then  delete monstr.c;*
333
334spotless :	clean
335      - if f$search("*.*;-1).nes."" then  purge
336      - if f$search("$(INC)*.*;-1").nes."" then  purge $(INC)
337      - if f$search("$(SYSTEM)").nes."" then  delete $(SYSTEM)
338      - if f$search("$(GAME)").nes."" then  delete $(GAME)
339      - delete vis_tab.c;,$(INC)vis_tab.h;,\
340 $(INC)pm.h;,$(INC)onames.h;,$(INC)date.h;
341      - if f$search("tile.c").nes."" then  delete tile.c;
342      - if f$search("tclib.c").nes."" then  delete tclib.c;
343      - if f$search("random.c").nes."" then  delete random.c;
344      - if f$search("nethack.olb").nes."" then  delete nethack.olb;
345      - if f$search("*.opt").nes."" then  delete *.opt; !nethack.opt,$(LIBOPT),$(ID_OPT)
346
347#	dependencies (mostly cloned from sys/unix/Makefile.src)
348# config.h timestamp
349$(CONFIG_H) : $(INC)config.h $(INC)config1.h $(INC)tradstdc.h $(INC)global.h \
350		$(INC)coord.h $(INC)vmsconf.h $(INC)system.h \
351		$(INC)unixconf.h $(INC)os2conf.h $(INC)micro.h \
352		$(INC)pcconf.h $(INC)tosconf.h $(INC)amiconf.h \
353		$(INC)macconf.h $(INC)beconf.h $(INC)wceconf.h \
354		$(INC)ntconf.h
355	$(TOUCH) $(CONFIG_H)
356# hack.h timestamp
357$(HACK_H) : $(INC)hack.h $(CONFIG_H) $(INC)align.h \
358		$(INC)dungeon.h $(INC)monsym.h $(INC)mkroom.h \
359		$(INC)objclass.h $(INC)youprop.h $(INC)prop.h \
360		$(INC)permonst.h $(INC)monattk.h \
361		$(INC)monflag.h $(INC)mondata.h $(INC)pm.h \
362		$(INC)wintype.h $(INC)context.h $(INC)decl.h $(INC)quest.h \
363		$(INC)spell.h $(INC)color.h $(INC)obj.h \
364		$(INC)you.h $(INC)attrib.h $(INC)monst.h \
365		$(INC)mextra.h $(INC)skills.h \
366		$(INC)onames.h $(INC)timeout.h $(INC)trap.h \
367		$(INC)flag.h $(INC)rm.h $(INC)vision.h \
368		$(INC)display.h $(INC)engrave.h $(INC)rect.h $(INC)region.h \
369		$(INC)winprocs.h $(INC)wintty.h $(INC)trampoli.h $(INC)sys.h
370	$(TOUCH) $(HACK_H)
371#	VMS-specific code
372vmsmain.obj :	$(VMS)vmsmain.c $(HACK_H) $(INC)dlb.h
373vmstty.obj :	$(VMS)vmstty.c $(HACK_H) $(INC)wintty.h $(INC)tcap.h
374vmsunix.obj :	$(VMS)vmsunix.c $(HACK_H)
375vmsmisc.obj :	$(VMS)vmsmisc.c $(VMS)oldcrtl.c $(CONFIG_H)
376vmsfiles.obj :	$(VMS)vmsfiles.c $(CONFIG_H)
377vmsmail.obj :	$(VMS)vmsmail.c $(CONFIG_H) $(INC)mail.h \
378		$(INC)wintype.h $(INC)winprocs.h
379#	conditionally used code -- VMS always wants these
380isaac64.obj :	isaac64.c $(CONFIG_H) $(INC)isaac64.h
381random.obj :	random.c $(HACK_H)
382random.c :	$(SYSSHR)random.c
383	copy $(SYSSHR)random.c random.c
384tclib.obj :	tclib.c $(CONFIG_H)
385tclib.c :	$(SYSSHR)tclib.c
386	copy $(SYSSHR)tclib.c tclib.c
387#	user interface code -- VMS uses tty or curses or both, not X11
388getline.obj :	$(TTY)getline.c $(HACK_H) $(INC)func_tab.h
389termcap.obj :	$(TTY)termcap.c $(HACK_H) $(INC)tcap.h
390topl.obj :	$(TTY)topl.c $(HACK_H) $(INC)tcap.h
391wintty.obj :	$(TTY)wintty.c $(HACK_H) $(INC)dlb.h \
392		$(INC)date.h $(INC)patchlevel.h $(INC)tcap.h
393cursmain.obj :	$(CURSES)cursmain.c $(HACK_H) $(INC)patchlevel.h \
394		$(INC)wincurs.h
395curswins.obj : 	$(CURSES)curswins.c $(HACK_H) $(INC)wincurs.h \
396		$(CURSES)curswins.h
397cursmisc.obj : 	$(CURSES)cursmisc.c $(HACK_H) $(INC)wincurs.h \
398		$(CURSES)cursmisc.h $(INC)func_tab.h $(INC)dlb.h
399cursdial.obj : 	$(CURSES)cursdial.c $(HACK_H) $(INC)wincurs.h \
400		$(CURSES)cursdial.h ../include/func_tab.h
401cursstat.obj : 	$(CURSES)cursstat.c $(HACK_H) $(INC)wincurs.h \
402		$(CURSES)cursstat.h
403cursinit.obj : 	$(CURSES)cursinit.c $(HACK_H) $(INC)wincurs.h \
404		$(CURSES)cursinit.h
405cursmesg.obj : 	$(CURSES)cursmesg.c $(HACK_H) $(INC)wincurs.h \
406		$(CURSES)cursmesg.h
407cursinvt.obj : 	$(CURSES)cursinvt.c $(HACK_H) $(INC)wincurs.h \
408		$(CURSES)cursinvt.h
409Window.obj :	$(X11)Window.c $(INC)xwindowp.h $(INC)xwindow.h $(CONFIG_H)
410dialogs.obj :	$(X11)dialogs.c $(CONFIG_H)
411winX.obj :	$(X11)winX.c $(HACK_H) $(INC)winX.h $(INC)dlb.h \
412		$(INC)patchlevel.h $(X11)nh72icon $(X11)nh56icon $(X11)nh32icon
413winmap.obj :	$(X11)winmap.c $(INC)xwindow.h $(HACK_H) $(INC)dlb.h \
414		$(INC)winX.h $(INC)tile2x11.h
415winmenu.obj :	$(X11)winmenu.c $(HACK_H) $(INC)winX.h
416winmesg.obj :	$(X11)winmesg.c $(INC)xwindow.h $(HACK_H) $(INC)winX.h
417winmisc.obj :	$(X11)winmisc.c $(HACK_H) $(INC)func_tab.h $(INC)winX.h
418winstat.obj :	$(X11)winstat.c $(HACK_H) $(INC)winX.h
419wintext.obj :	$(X11)wintext.c $(HACK_H) $(INC)winX.h $(INC)xwindow.h
420winval.obj :	$(X11)winval.c $(HACK_H) $(INC)winX.h
421tile.obj :	$(SRC)tile.c $(HACK_H)
422vis_tab.obj :	vis_tab.c $(CONFIG_H) $(INC)vis_tab.h
423#	general code
424allmain.obj :	allmain.c $(HACK_H)
425alloc.obj :	alloc.c $(CONFIG_H)
426apply.obj :	apply.c $(HACK_H)
427artifact.obj :	artifact.c $(HACK_H) $(INC)artifact.h $(INC)artilist.h
428attrib.obj :	attrib.c $(HACK_H)
429ball.obj :	ball.c $(HACK_H)
430bones.obj :	bones.c $(HACK_H) $(INC)lev.h
431botl.obj :	botl.c $(HACK_H)
432cmd.obj :	cmd.c $(HACK_H) $(INC)lev.h $(INC)func_tab.h
433dbridge.obj :	dbridge.c $(HACK_H)
434decl.obj :	decl.c $(HACK_H)
435detect.obj :	detect.c $(HACK_H) $(INC)artifact.h
436dig.obj :	dig.c $(HACK_H)
437display.obj :	display.c $(HACK_H)
438dlb.obj :	dlb.c $(CONFIG_H) $(INC)dlb.h
439do.obj :	do.c $(HACK_H) $(INC)lev.h
440do_name.obj :	do_name.c $(HACK_H)
441do_wear.obj :	do_wear.c $(HACK_H)
442dog.obj :	dog.c $(HACK_H)
443dogmove.obj :	dogmove.c $(HACK_H) $(INC)mfndpos.h
444dokick.obj :	dokick.c $(HACK_H)
445dothrow.obj :	dothrow.c $(HACK_H)
446drawing.obj :	drawing.c $(HACK_H) $(INC)tcap.h
447dungeon.obj :	dungeon.c $(HACK_H) $(INC)dgn_file.h $(INC)dlb.h $(INC)lev.h
448eat.obj :	eat.c $(HACK_H)
449end.obj :	end.c $(HACK_H) $(INC)lev.h $(INC)dlb.h
450engrave.obj :	engrave.c $(HACK_H) $(INC)lev.h
451exper.obj :	exper.c $(HACK_H)
452explode.obj :	explode.c $(HACK_H)
453extralev.obj :	extralev.c $(HACK_H)
454files.obj :	files.c $(HACK_H) $(INC)dlb.h $(INC)wintty.h #zlib.h
455fountain.obj :	fountain.c $(HACK_H)
456hack.obj :	hack.c $(HACK_H)
457hacklib.obj :	hacklib.c $(HACK_H)
458invent.obj :	invent.c $(HACK_H)
459light.obj :	light.c $(HACK_H) $(INC)lev.h
460lock.obj :	lock.c $(HACK_H)
461mail.obj :	mail.c $(HACK_H) $(INC)mail.h
462makemon.obj :	makemon.c $(HACK_H)
463mapglyph.obj :	mapglyph.c $(HACK_H) $(INC)wintty.h $(INC)color.h
464mcastu.obj :	mcastu.c $(HACK_H)
465mhitm.obj :	mhitm.c $(HACK_H) $(INC)artifact.h
466mhitu.obj :	mhitu.c $(HACK_H) $(INC)artifact.h
467minion.obj :	minion.c $(HACK_H)
468mklev.obj :	mklev.c $(HACK_H)
469mkmap.obj :	mkmap.c $(HACK_H) $(INC)sp_lev.h
470mkmaze.obj :	mkmaze.c $(HACK_H) $(INC)sp_lev.h $(INC)lev.h
471mkobj.obj :	mkobj.c $(HACK_H)
472mkroom.obj :	mkroom.c $(HACK_H)
473mon.obj :	mon.c $(HACK_H) $(INC)mfndpos.h
474mondata.obj :	mondata.c $(HACK_H)
475monmove.obj :	monmove.c $(HACK_H) $(INC)mfndpos.h $(INC)artifact.h
476monst.obj :	monst.c $(CONFIG_H) $(INC)permonst.h $(INC)align.h \
477		$(INC)monattk.h $(INC)monflag.h $(INC)monsym.h \
478		$(INC)color.h
479mplayer.obj :	mplayer.c $(HACK_H)
480mthrowu.obj :	mthrowu.c $(HACK_H)
481muse.obj :	muse.c $(HACK_H)
482music.obj :	music.c $(HACK_H) #interp.c
483o_init.obj :	o_init.c $(HACK_H) $(INC)lev.h
484objects.obj :	objects.c $(CONFIG_H) $(INC)obj.h $(INC)objclass.h \
485		$(INC)prop.h $(INC)skills.h $(INC)color.h
486objnam.obj :	objnam.c $(HACK_H)
487options.obj :	options.c $(CONFIG_H) $(INC)objclass.h $(INC)flag.h \
488		$(HACK_H) $(INC)tcap.h
489pager.obj :	pager.c $(HACK_H) $(INC)dlb.h
490pickup.obj :	pickup.c $(HACK_H)
491pline.obj :	pline.c $(HACK_H)
492polyself.obj :	polyself.c $(HACK_H)
493potion.obj :	potion.c $(HACK_H)
494pray.obj :	pray.c $(HACK_H)
495priest.obj :	priest.c $(HACK_H) $(INC)mfndpos.h
496quest.obj :	quest.c $(HACK_H) $(INC)qtext.h
497questpgr.obj :	questpgr.c $(HACK_H) $(INC)dlb.h $(INC)qtext.h
498read.obj :	read.c $(HACK_H)
499rect.obj :	rect.c $(HACK_H)
500region.obj :	region.c $(HACK_H) $(INC)lev.h
501restore.obj :	restore.c $(HACK_H) $(INC)lev.h $(INC)tcap.h
502rip.obj :	rip.c $(HACK_H)
503rnd.obj :	rnd.c $(HACK_H)
504role.obj :	role.c $(HACK_H)
505rumors.obj :	rumors.c $(HACK_H) $(INC)lev.h $(INC)dlb.h
506save.obj :	save.c $(HACK_H) $(INC)lev.h
507shk.obj :	shk.c $(HACK_H)
508shknam.obj :	shknam.c $(HACK_H)
509sit.obj :	sit.c $(HACK_H) $(INC)artifact.h
510sounds.obj :	sounds.c $(HACK_H)
511sp_lev.obj :	sp_lev.c $(HACK_H) $(INC)dlb.h $(INC)sp_lev.h
512spell.obj :	spell.c $(HACK_H)
513steal.obj :	steal.c $(HACK_H)
514steed.obj :	steed.c $(HACK_H)
515sys.obj :	sys.c $(HACK_H)
516teleport.obj :	teleport.c $(HACK_H)
517timeout.obj :	timeout.c $(HACK_H) $(INC)lev.h
518topten.obj :	topten.c $(HACK_H) $(INC)dlb.h $(INC)patchlevel.h
519track.obj :	track.c $(HACK_H)
520trap.obj :	trap.c $(HACK_H)
521u_init.obj :	u_init.c $(HACK_H)
522uhitm.obj :	uhitm.c $(HACK_H)
523vault.obj :	vault.c $(HACK_H)
524version.obj :	version.c $(HACK_H) $(INC)dlb.h $(INC)date.h $(INC)patchlevel.h
525vision.obj :	vision.c $(HACK_H) $(INC)vis_tab.h
526weapon.obj :	weapon.c $(HACK_H)
527were.obj :	were.c $(HACK_H)
528wield.obj :	wield.c $(HACK_H)
529windows.obj :	windows.c $(HACK_H) $(INC)wingem.h $(INC)winGnome.h
530wizard.obj :	wizard.c $(HACK_H) $(INC)qtext.h
531worm.obj :	worm.c $(HACK_H) $(INC)lev.h
532worn.obj :	worn.c $(HACK_H)
533write.obj :	write.c $(HACK_H)
534zap.obj :	zap.c $(HACK_H)
535# eof
536