OSDN Git Service

shrink mine
[nethackexpress/trunk.git] / src / Makefile.bcc
1 #   SCCS Id: @(#)Makefile.bcc       3.4     $Date: 2003/11/16 04:50:56 $
2 #   Copyright (c) NetHack PC Development Team 1993-2003
3 #
4 #
5 # IMPORTANT NOTE: This Makefile has not been tested for 3.4.3.
6 #
7 #
8 #   NetHack 3.4.x Makefile for Borland C++ V5.5.1 and above and Borland's MAKE
9 #  
10 #   Win32 Compilers Tested:
11 #                              - Borland C++ 5.5.1 for Win32
12 #
13 #   If you don't have this compiler, you can get it at:
14 #       http://www.borland.com/bcppbuilder/freecompiler/
15 #
16 #   This makefile is set up to assume the directories are extracted at the
17 #   root, but this can be changed by modifying the bccroot and related
18 #   variables.
19 #
20 #   This is used for building two versions of NetHack:
21 #   A tty port utilizing the Win32 Console I/O subsystem, Console
22 #       NetHack;
23 #   A Win32 native port built on the Windows API, Graphical NetHack or
24 #       NetHackW.
25 #
26 #   In addition to your C compiler,
27 #
28 #     if you want to change     you will need a
29 #     files with suffix         workalike for
30 #              .y                   yacc   (such as bison)
31 #              .l                   lex    (such as flex)
32 #
33 #
34 #   If you have any questions read the sys/winnt/Install.nt file included 
35 #   with the distribution.
36 #
37 #   --
38 #   Yitzhak Sapir
39 #==============================================================================
40 # Do not delete the following 3 lines.
41 #
42 TARGETOS=BOTH
43 APPVER=4.0
44
45 bccbin = $(MAKEDIR)
46 bccroot = $(MAKEDIR)\..
47 bccinc = $(bccroot)\include
48 bcclib = $(bccroot)\lib
49
50 !IFNDEF APPVER
51 APPVER = 4.0
52 !ENDIF
53
54 # Graphical interface
55 # Set to Y for a graphical version
56 # Set to anything else (or undefine) for a tty version
57
58 #GRAPHICAL = Y
59
60 # Debug
61 # Set to Y for Debug support (to produce full map files, listing files, and debug information)
62 # Set to anything else (or undefine) for a "release" version
63
64 DEBUG = Y
65
66 !IF "$(APPVER)" == "4.0"
67 MAKE_WINVER = 0x0400
68 !ELSEIF "$(APPVER)" == "5.0"
69 MAKE_WINVER = 0x0500
70 !ENDIF
71
72 cc     = $(bccbin)\bcc32
73 rc     = $(bccbin)\brc32
74 link   = $(bccbin)\ilink32
75 implib = $(bccbin)\tlib
76
77 cflags = -c -D_X86_=1 -DWINVER=$(MAKE_WINVER) -q -I$(bccinc) -w-pia -w-rch -w-csu -w-par -w-aus
78 cdebug = -y -v -O2
79 cvarsmt  = -DWIN32 -D_WIN32 -D_MT 
80 lflags  = 
81 !IF "$(DEBUG)" == "Y"
82 linkdebug = /v /m /s 
83 cdebug = -v -y -Q
84 !ELSE
85 linkdebug = /C /Gn
86 cdebug =
87 !ENDIF
88 startobj = $(bcclib)\c0x32.obj
89 !IF "$(GRAPHICAL)" == "Y"
90 verlflags = /Gn /Gz /q -L$(bcclib) /c  /Tpe /V$(APPVER)
91 startobjg = $(bcclib)\c0w32.obj
92 !ELSE
93 verlflags = /Gn /Gz /q -L$(bcclib) /c  /ap /Tpe /V$(APPVER)
94 startobjg = $(startobj)
95 !ENDIF
96 libsmt  = $(bcclib)\cw32mt.lib $(bcclib)\import32.lib 
97
98 #
99 #  Set the gamedir according to your preference.  
100 #  It must be present prior to compilation.
101
102 !IF "$(GRAPHICAL)" == "Y"
103 GAME    = NetHackW                # Game Name
104 !ELSE
105 GAME    = NetHack                 # Game Name
106 !ENDIF
107 GAMEDIR = ..\binary               # Game directory
108
109 #
110 #  Source directories.    Makedefs hardcodes these, don't change them.
111 #
112
113 INCL  = ..\include   # NetHack include files
114 DAT   = ..\dat       # NetHack data files
115 DOC   = ..\doc       # NetHack documentation files
116 UTIL  = ..\util      # Utility source
117 SRC   = ..\src       # Main source
118 SSYS  = ..\sys\share # Shared system files
119 NTSYS = ..\sys\winnt # NT Win32 specific files
120 TTY   = ..\win\tty   # window port files (tty)
121 WIN32 = ..\win\win32 # window port files (Win32)
122 WSHR  = ..\win\share # Tile support files 
123
124 #
125 #  Object directory.
126 #
127
128 OBJ     = o
129
130
131 #
132 #==========================================
133 # Exe File Info.
134 #==========================================
135  
136 # Yacc/Lex ... if you got 'em.
137 #
138 # If you have yacc and lex programs (or work-alike such as bison 
139 # and flex), uncomment the upper two macros.
140 #
141
142 #DO_YACC  = YACC_ACT
143 #DO_LEX   = LEX_ACT
144
145 !IFNDEF DO_YACC
146 DO_YACC = YACC_MSG
147 !ENDIF
148 !IFNDEF DO_LEX
149 DO_LEX  = LEX_MSG
150 !ENDIF
151
152 # Wilbur Streett's Win32 ports of GNU bison and flex are available at:
153 #    http://www.monmouth.com/~wstreett/lex-yacc/lex-yacc.html
154 #
155 # To use them, download the executables and templates (bison.simple,
156 # bison.hairy) to some directory, and set the environment variables
157 # BISON_SIMPLE and BISON_HAIRY, and your path to point to this
158 # directory.
159 #
160 # For example, if you placed them in C:\BIN, you should set:
161 #   C:> SET BISON_SIMPLE=C:\BIN\BISON.SIMPLE
162 #   C:> SET BISON_HAIRY=C:\BIN\BISON.HAIRY
163 #
164 # Also, make sure your path points to the bison/flex directories.
165 #
166 # The following settings are configured for Wilbur Streett's ports.
167
168 # - Specify your yacc and lex programs (or work-alikes) here.
169
170 YACC    = bison -y
171 #YACC   = byacc
172 #YACC   = yacc
173
174 #LEX    = lex
175 LEX     = flex
176
177 #
178 # - Specify your flex skeleton file (if needed).
179 #
180
181 FLEXSKEL =
182 #FLEXSKEL = -S../tools/flex.ske
183
184 #YTABC   = y.tab.c
185 #YTABH   = y.tab.h
186 YTABC   = y_tab.c
187 YTABH   = y_tab.h
188 LEXYYC  = lex.yy.c
189
190 #
191 # Optional high-quality BSD random number generation routines
192 # (see pcconf.h). Set to nothing if not used.
193 #
194
195 RANDOM  = $(OBJ)\random.o
196 #RANDOM =
197
198 #
199 # Compiler and Linker flags
200 #
201
202 PRECOMPHEAD = N                 # set to Y if you want to use precomp. headers
203
204 #===============================================
205 #======= End of Modification Section ===========
206 #===============================================
207 ################################################
208 #                                              #
209 # Nothing below here should have to be changed.#
210 #                                              #
211 ################################################
212
213 !IF "$(GRAPHICAL)" == "Y"
214 WINPORT = $(O)tile.o $(O)mhaskyn.o $(O)mhdlg.o \
215         $(O)mhfont.o $(O)mhinput.o $(O)mhmain.o $(O)mhmap.o \
216         $(O)mhmenu.o $(O)mhmsgwnd.o $(O)mhrip.o $(O)mhsplash.o \
217         $(O)mhstatus.o $(O)mhtext.o $(O)mswproc.o $(O)winhack.o
218 WINPHDR = $(WIN32)\mhaskyn.h $(WIN32)\mhdlg.h $(WIN32)\mhfont.h \
219         $(WIN32)\mhinput.h $(WIN32)\mhmain.h $(WIN32)\mhmap.h $(WIN32)\mhmenu.h \
220         $(WIN32)\mhmsg.h $(WIN32)\mhmsgwnd.h $(WIN32)\mhrip.h $(WIN32)\mhstatus.h \
221         $(WIN32)\mhtext.h $(WIN32)\resource.h $(WIN32)\winMS.h
222 WINDLLS =
223 WINPFLAG= -DTILES -DMSWIN_GRAPHICS
224 NHRES   = $(O)winhack.res
225 WINPINC = -I$(WIN32)
226 !ELSE
227 WINPORT = $(O)nttty.o    
228 WINPHDR =
229 WINDLLS = $(GAMEDIR)\nhdefkey.dll $(GAMEDIR)\nh340key.dll $(GAMEDIR)\nhraykey.dll
230 WINPFLAG= -DWIN32CON
231 NHRES   = $(O)console.res
232 WINPINC =
233 !ENDIF
234
235 TILEUTIL16  = $(UTIL)\tile2bmp.exe
236 TILEBMP16   = $(SRC)\tiles.bmp
237
238 TILEUTIL32  = $(UTIL)\til2bm32.exe
239 TILEBMP32   = $(SRC)\tiles32.bmp
240
241 SOUND = $(OBJ)\ntsound.o
242 #SOUND =
243
244 # To store all the level files,
245 # help files, etc. in a single library file.
246 # USE_DLB = Y is left uncommented
247
248 USE_DLB = Y
249
250 ! IF ("$(USE_DLB)"=="Y")
251 DLBFLG = -DDLB
252 ! ELSE
253 DLBFLG =
254 ! ENDIF
255
256
257 #==========================================
258 # Setting up the compiler and linker
259 # macros. All builds include the base ones.
260 #==========================================
261
262 CFLAGSBASE  = -c $(cflags) $(cvarsmt) -I$(INCL) $(WINPINC) -q $(cdebug) -v
263 LFLAGSBASE  = $(linkdebug) $(verlflags) -L$(bcclib) -v
264
265 #==========================================
266 # Util builds
267 #==========================================
268
269 CFLAGSU = $(CFLAGSBASE) $(WINPFLAG)
270 LFLAGSU = $(LFLAGSBASE)
271
272 #==========================================
273 # - Game build
274 #==========================================
275
276 LFLAGSBASE = $(linkdebug) $(conflags) 
277 CFLAGS   = $(CFLAGSBASE) $(WINPFLAG) $(DLBFLG)
278 NHLFLAGS1 = /Gn /v /m /s /Gz /q /c
279 lflags  = $(LFLAGSBASE) $(NHLFLAGS1)
280
281 GAMEFILE = $(FDIR)\$(GAME).exe # whole thing
282
283 ! IF ("$(USE_DLB)"=="Y")
284 DLB = nhdat
285 ! ELSE
286 DLB =
287 ! ENDIF
288
289 #==========================================
290 #================ RULES ==================
291 #==========================================
292
293 .SUFFIXES: .exe .o .til .uu .c .y .l
294
295 #==========================================
296 # Rules for files in src
297 #==========================================
298
299 .c{$(OBJ)}.o:
300         @$(cc) $(CFLAGS)  -o$@ $<
301
302 {$(SRC)}.c{$(OBJ)}.o:
303         @$(cc) $(CFLAGS)   -o$@  $<
304
305 #==========================================
306 # Rules for files in sys\share
307 #==========================================
308
309 {$(SSYS)}.c{$(OBJ)}.o:
310         @$(cc) $(CFLAGS)  -o$@  $<
311
312 #==========================================
313 # Rules for files in sys\winnt
314 #==========================================
315
316 {$(NTSYS)}.c{$(OBJ)}.o:
317         @$(cc) $(CFLAGS)  -o$@  $<
318
319 {$(NTSYS)}.h{$(INCL)}.h:
320         @copy $< $@
321
322 #==========================================
323 # Rules for files in util
324 #==========================================
325
326 {$(UTIL)}.c{$(OBJ)}.o:
327         @$(cc) $(CFLAGSU) -o$@ $<
328
329 #==========================================
330 # Rules for files in win\share
331 #==========================================
332
333 {$(WSHR)}.c{$(OBJ)}.o:
334         @$(cc) $(CFLAGS)  -o$@ $<
335
336 {$(WSHR)}.h{$(INCL)}.h:
337         @copy $< $@
338
339 #{$(WSHR)}.txt{$(DAT)}.txt:
340 #       @copy $< $@
341
342 #==========================================
343 # Rules for files in win\tty
344 #==========================================
345
346 {$(TTY)}.c{$(OBJ)}.o:
347         @$(cc) $(CFLAGS)  -o$@  $<
348
349 #==========================================
350 # Rules for files in win\win32
351 #==========================================
352
353 {$(WIN32)}.c{$(OBJ)}.o:
354         @$(cc) $(CFLAGS)  -o$@  $<
355
356 #==========================================
357 #================ MACROS ==================
358 #==========================================
359 # This section creates shorthand macros for many objects
360 # referenced later on in the Makefile.
361 #
362
363 DEFFILE = $(NTSYS)\$(GAME).def
364
365 #
366 # Shorten up the location for some files
367 #
368
369 O  = $(OBJ)^\
370
371 U  = $(UTIL)^\
372
373 #
374 # Utility Objects.
375 #
376
377 MAKESRC        = $(U)makedefs.c
378
379 SPLEVSRC       = $(U)lev_yacc.c $(U)lev_$(LEX).c $(U)lev_main.c  $(U)panic.c
380
381 DGNCOMPSRC     = $(U)dgn_yacc.c $(U)dgn_$(LEX).c $(U)dgn_main.c
382
383 MAKEOBJS       = $(O)makedefs.o $(O)monst.o $(O)objects.o
384
385 SPLEVOBJS      = $(O)lev_yacc.o $(O)lev_$(LEX).o $(O)lev_main.o \
386                  $(O)alloc.o    $(O)decl.o      $(O)drawing.o \
387                  $(O)monst.o    $(O)objects.o   $(O)panic.o
388
389 DGNCOMPOBJS    = $(O)dgn_yacc.o $(O)dgn_$(LEX).o $(O)dgn_main.o \
390                  $(O)alloc.o    $(O)panic.o
391
392 RECOVOBJS      = $(O)recover.o
393
394 TILEFILES      = $(WSHR)\monsters.txt $(WSHR)\objects.txt $(WSHR)\other.txt
395
396 #
397 # These are not invoked during a normal game build in 3.4
398 #
399 TEXT_IO        = $(O)tiletext.o $(O)tiletxt.o   $(O)drawing.o \
400                  $(O)decl.o     $(O)monst.o     $(O)objects.o
401
402 GIFREADERS     = $(O)gifread.o  $(O)alloc.o $(O)panic.o
403
404 PPMWRITERS     = $(O)ppmwrite.o $(O)alloc.o $(O)panic.o
405
406 #
407 #  Object files for the game itself.
408 #
409
410 VOBJ01 = $(O)allmain.o  $(O)alloc.o    $(O)apply.o    $(O)artifact.o
411 VOBJ02 = $(O)attrib.o   $(O)ball.o     $(O)bones.o    $(O)botl.o    
412 VOBJ03 = $(O)cmd.o      $(O)dbridge.o  $(O)decl.o     $(O)detect.o  
413 VOBJ04 = $(O)dig.o      $(O)display.o  $(O)do.o       $(O)do_name.o 
414 VOBJ05 = $(O)do_wear.o  $(O)dog.o      $(O)dogmove.o  $(O)dokick.o  
415 VOBJ06 = $(O)dothrow.o  $(O)drawing.o  $(O)dungeon.o  $(O)eat.o     
416 VOBJ07 = $(O)end.o      $(O)engrave.o  $(O)exper.o    $(O)explode.o 
417 VOBJ08 = $(O)extralev.o $(O)files.o    $(O)fountain.o $(O)hack.o    
418 VOBJ09 = $(O)hacklib.o  $(O)invent.o   $(O)light.o    $(O)lock.o    
419 VOBJ10 = $(O)mail.o     $(O)makemon.o  $(O)mapglyph.o $(O)mcastu.o  
420 VOBJ11 = $(O)mhitm.o    $(O)mhitu.o    $(O)minion.o   $(O)mklev.o   
421 VOBJ12 = $(O)mkmap.o    $(O)mkmaze.o   $(O)mkobj.o    $(O)mkroom.o  
422 VOBJ13 = $(O)mon.o      $(O)mondata.o  $(O)monmove.o  $(O)monst.o   
423 VOBJ14 = $(O)monstr.o   $(O)mplayer.o  $(O)mthrowu.o  $(O)muse.o    
424 VOBJ15 = $(O)music.o    $(O)o_init.o   $(O)objects.o  $(O)objnam.o  
425 VOBJ16 = $(O)options.o  $(O)pager.o    $(O)pickup.o   $(O)pline.o   
426 VOBJ17 = $(O)polyself.o $(O)potion.o   $(O)pray.o     $(O)priest.o  
427 VOBJ18 = $(O)quest.o    $(O)questpgr.o $(RANDOM)      $(O)read.o    
428 VOBJ19 = $(O)rect.o     $(O)region.o   $(O)restore.o  $(O)rip.o     
429 VOBJ20 = $(O)rnd.o      $(O)role.o     $(O)rumors.o   $(O)save.o    
430 VOBJ21 = $(O)shk.o      $(O)shknam.o   $(O)sit.o      $(O)sounds.o  
431 VOBJ22 = $(O)sp_lev.o   $(O)spell.o    $(O)steal.o    $(O)steed.o   
432 VOBJ23 = $(O)teleport.o $(O)timeout.o  $(O)topten.o   $(O)track.o   
433 VOBJ24 = $(O)trap.o     $(O)u_init.o   $(O)uhitm.o    $(O)vault.o   
434 VOBJ25 = $(O)vis_tab.o  $(O)vision.o   $(O)weapon.o   $(O)were.o    
435 VOBJ26 = $(O)wield.o    $(O)windows.o  $(O)wizard.o   $(O)worm.o    
436 VOBJ27 = $(O)worn.o     $(O)write.o    $(O)zap.o     
437
438 DLBOBJ = $(O)dlb.o
439
440 TTYOBJ = $(O)topl.o     $(O)getline.o  $(O)wintty.o
441
442 SOBJ   = $(O)winnt.o    $(O)pcsys.o      $(O)pcunix.o  \
443            $(SOUND) $(O)pcmain.o        $(O)mapimail.o $(O)nhlan.o
444
445 OBJS   = $(VOBJ01) $(VOBJ02) $(VOBJ03) $(VOBJ04) $(VOBJ05) \
446          $(VOBJ06) $(VOBJ07) $(VOBJ08) $(VOBJ09) $(VOBJ10) \
447          $(VOBJ11) $(VOBJ12) $(VOBJ13) $(VOBJ14) $(VOBJ15) \
448          $(VOBJ16) $(VOBJ17) $(VOBJ18) $(VOBJ19) $(VOBJ20) \
449          $(VOBJ21) $(VOBJ22) $(VOBJ23) $(VOBJ24) $(VOBJ25) \
450          $(VOBJ26) $(VOBJ27)
451
452 TILOBJ = $(WINPORT)
453
454 VVOBJ  = $(O)version.o
455
456 ALLOBJ  = $(TILOBJ) $(SOBJ) $(DLBOBJ)  $(TTYOBJ) $(WOBJ) $(OBJS) $(VVOBJ)
457
458
459 !IF "$(GRAPHICAL)" == "Y"
460 OPTIONS_FILE = $(DAT)\guioptions
461 !ELSE
462 OPTIONS_FILE = $(DAT)\ttyoptions
463 !ENDIF
464 #==========================================
465 # Header file macros
466 #==========================================
467
468 CONFIG_H = $(INCL)\config.h $(INCL)\config1.h $(INCL)\tradstdc.h \
469                 $(INCL)\global.h $(INCL)\coord.h $(INCL)\vmsconf.h \
470                 $(INCL)\system.h $(INCL)\unixconf.h $(INCL)\os2conf.h \
471                 $(INCL)\micro.h $(INCL)\pcconf.h $(INCL)\tosconf.h \
472                 $(INCL)\amiconf.h $(INCL)\macconf.h $(INCL)\beconf.h \
473                 $(INCL)\ntconf.h $(INCL)\nhlan.h
474
475 HACK_H = $(INCL)\hack.h $(CONFIG_H) $(INCL)\align.h \
476                 $(INCL)\dungeon.h $(INCL)\monsym.h $(INCL)\mkroom.h \
477                 $(INCL)\objclass.h $(INCL)\youprop.h $(INCL)\prop.h \
478                 $(INCL)\permonst.h $(INCL)\monattk.h \
479                 $(INCL)\monflag.h $(INCL)\mondata.h $(INCL)\pm.h \
480                 $(INCL)\wintype.h $(INCL)\decl.h $(INCL)\quest.h \
481                 $(INCL)\spell.h $(INCL)\color.h $(INCL)\obj.h \
482                 $(INCL)\you.h $(INCL)\attrib.h $(INCL)\monst.h \
483                 $(INCL)\skills.h $(INCL)\onames.h $(INCL)\timeout.h \
484                 $(INCL)\trap.h $(INCL)\flag.h $(INCL)\rm.h \
485                 $(INCL)\vision.h $(INCL)\display.h $(INCL)\engrave.h \
486                 $(INCL)\rect.h $(INCL)\region.h $(INCL)\winprocs.h \
487                 $(INCL)\wintty.h $(INCL)\trampoli.h
488
489 LEV_H       = $(INCL)\lev.h
490 DGN_FILE_H  = $(INCL)\dgn_file.h
491 LEV_COMP_H  = $(INCL)\lev_comp.h
492 SP_LEV_H    = $(INCL)\sp_lev.h
493 TILE_H      = ..\win\share\tile.h
494
495 #==========================================
496 # Miscellaneous
497 #==========================================
498
499 DATABASE = $(DAT)\data.base
500
501 #
502 #  The name of the game.
503 #
504
505 GAMEFILE = $(GAMEDIR)\$(GAME).exe
506
507 #==========================================
508 #=============== TARGETS ==================
509 #==========================================
510
511 #
512 #  The default make target (so just typing 'nmake' is useful).
513 #
514 default : $(GAMEFILE)
515
516 #
517 #  The main target.
518 #
519
520 $(GAME): $(O)obj.tag $(O)utility.tag graphicschk $(GAMEFILE)
521         @echo $(GAME) is up to date.
522
523 #
524 #  Everything
525 #
526
527 all :   install
528
529 install: graphicschk $(GAME) $(O)install.tag
530          @echo Done.
531
532 $(O)install.tag:        $(DAT)\data     $(DAT)\rumors    $(DAT)\dungeon \
533                 $(DAT)\oracles  $(DAT)\quest.dat $(O)sp_lev.tag $(DLB)
534 ! IF ("$(USE_DLB)"=="Y")
535         copy nhdat                $(GAMEDIR)
536         copy $(DAT)\license       $(GAMEDIR)
537         copy $(DAT)\opthelp       $(GAMEDIR)
538 ! ELSE
539         copy $(DAT)\*.            $(GAMEDIR)
540         copy $(DAT)\*.dat         $(GAMEDIR)
541         copy $(DAT)\*.lev         $(GAMEDIR)
542         if exist $(GAMEDIR)\makefile del $(GAMEDIR)\makefile
543 ! ENDIF
544         if exist $(DOC)\guidebook.txt copy $(DOC)\guidebook.txt $(GAMEDIR)\Guidebook.txt
545         if exist $(DOC)\nethack.txt copy $(DOC)\nethack.txt $(GAMEDIR)\NetHack.txt
546         @if exist $(SRC)\$(GAME).PDB copy $(SRC)\$(GAME).pdb $(GAMEDIR)\$(GAME).pdb
547         @if exist $(GAMEDIR)\$(GAME).PDB echo NOTE: You may want to remove $(GAMEDIR)\$(GAME).pdb to conserve space
548         -copy $(NTSYS)\defaults.nh   $(GAMEDIR)\defaults.nh
549         echo install done > $@
550
551 #       copy $(NTSYS)\winnt.hlp    $(GAMEDIR)
552
553 recover: $(U)recover.exe
554         if exist $(U)recover.exe copy $(U)recover.exe  $(GAMEDIR)
555         if exist $(DOC)\recover.txt copy $(DOC)\recover.txt $(GAMEDIR)\recover.txt
556
557 $(O)sp_lev.tag: $(O)utility.tag $(DAT)\bigroom.des  $(DAT)\castle.des \
558         $(DAT)\endgame.des $(DAT)\gehennom.des $(DAT)\knox.des   \
559         $(DAT)\medusa.des  $(DAT)\oracle.des   $(DAT)\tower.des  \
560         $(DAT)\yendor.des  $(DAT)\arch.des     $(DAT)\barb.des   \
561         $(DAT)\caveman.des $(DAT)\healer.des   $(DAT)\knight.des \
562         $(DAT)\monk.des    $(DAT)\priest.des   $(DAT)\ranger.des \
563         $(DAT)\rogue.des   $(DAT)\samurai.des  $(DAT)\sokoban.des \
564         $(DAT)\tourist.des $(DAT)\valkyrie.des $(DAT)\wizard.des
565         cd $(DAT)
566         $(U)lev_comp bigroom.des
567         $(U)lev_comp castle.des
568         $(U)lev_comp endgame.des
569         $(U)lev_comp gehennom.des
570         $(U)lev_comp knox.des
571         $(U)lev_comp mines.des
572         $(U)lev_comp medusa.des
573         $(U)lev_comp oracle.des
574         $(U)lev_comp sokoban.des
575         $(U)lev_comp tower.des
576         $(U)lev_comp yendor.des
577         $(U)lev_comp arch.des
578         $(U)lev_comp barb.des
579         $(U)lev_comp caveman.des
580         $(U)lev_comp healer.des
581         $(U)lev_comp knight.des
582         $(U)lev_comp monk.des
583         $(U)lev_comp priest.des
584         $(U)lev_comp ranger.des
585         $(U)lev_comp rogue.des
586         $(U)lev_comp samurai.des
587         $(U)lev_comp tourist.des
588         $(U)lev_comp valkyrie.des
589         $(U)lev_comp wizard.des
590         cd $(SRC)
591         echo sp_levs done > $(O)sp_lev.tag
592
593 $(O)utility.tag: $(INCL)\date.h $(INCL)\onames.h $(INCL)\pm.h \
594                 $(SRC)\monstr.c         $(SRC)\vis_tab.c  \
595                 $(U)lev_comp.exe        $(INCL)\vis_tab.h \
596                 $(U)dgn_comp.exe $(TILEUTIL16)
597              @echo utilities made >$@
598              @echo utilities made.
599
600 tileutil: $(U)gif2txt.exe $(U)txt2ppm.exe
601         @echo Optional tile development utilities are up to date.
602
603 !IF "$(GRAPHICAL)"=="Y"
604 $(NHRES): $(TILEBMP16) $(WIN32)\winhack.rc $(WIN32)\mnsel.bmp \
605         $(WIN32)\mnselcnt.bmp $(WIN32)\mnunsel.bmp \
606         $(WIN32)\petmark.bmp $(WIN32)\NetHack.ico $(WIN32)\rip.bmp \
607         $(WIN32)\splash.bmp
608         @$(rc) -r -fo$@ -i$(WIN32) -i$(bccinc) -dNDEBUG $(WIN32)\winhack.rc
609 !ELSE
610 $(NHRES): $(NTSYS)\console.rc $(NTSYS)\NetHack.ico
611         @$(rc) -r -fo$@ -i$(NTSYS) -i$(bccinc) -dNDEBUG $(NTSYS)\console.rc
612 !ENDIF
613
614 #==========================================
615 #  The main target.
616 #==========================================
617
618 $(SRC)\uuid.lib: $(bcclib)\uuid.lib
619         @copy $(bcclib)\uuid.lib $@
620
621 $(GAMEFILE) : $(ALLOBJ) $(NHRES) $(SRC)\uuid.lib $(O)gamedir.tag $(WINDLLS)
622         @echo Linking....
623         @$(link) $(lflags) $(startobjg) $(ALLOBJ), $@, $(GAME).map,$(libsmt),,$(NHRES)
624         @if exist $(O)install.tag del $(O)install.tag
625         @if exist $(GAMEDIR)\$(GAME).bak del $(GAMEDIR)\$(GAME).bak
626
627 $(O)gamedir.tag:
628         @if not exist $(GAMEDIR)\*.* echo creating directory $(GAMEDIR)
629         @if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
630         @echo directory created > $@
631
632 $(GAME)_.ico : $(NTSYS)\$(GAME).ico
633         @copy $(NTSYS)\$(GAME).ico $@
634
635 #==========================================
636 # Create directory for holding object files
637 #==========================================
638
639 $(O)obj.tag:
640         @if not exist $(O)*.* mkdir $(OBJ)
641         @echo directory $(OBJ) created >$@
642
643 #==========================================
644 # Notify of any CL environment variables
645 # in effect since they change the compiler
646 # options.
647 #==========================================
648
649 graphicschk:
650 !       IF "$(GRAPHICAL)"=="Y"
651            @echo ----
652            @echo NOTE: This build will include tile support.
653            @echo ----
654 !       ENDIF
655         @echo graphicschk > graphicschk
656
657
658 $(GAMEDIR)\nhdefkey.dll : $(O)nhdefkey.o
659         @if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
660         @echo EXPORTS >nhdefkey.def
661         @echo    ProcessKeystroke >>nhdefkey.def
662         @echo    NHkbhit >>nhdefkey.def
663         @echo    CheckInput >>nhdefkey.def
664         @echo    SourceWhere >>nhdefkey.def
665         @echo    SourceAuthor >>nhdefkey.def
666         @echo    KeyHandlerName >>nhdefkey.def
667         @echo Linking $@
668         $(link) $(linkdebug) /Gn /Gz /q -L$(bcclib) /c  /aa /Tpd /V$(APPVER) -L$(bcclib) -v \
669             c0d32.obj $(O)nhdefkey.o, $@,nhdefkey.map,$(libsmt),nhdefkey.def
670
671 $(GAMEDIR)\nh340key.dll : $(O)nh340key.o
672         @if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
673         @echo EXPORTS >nh340key.def
674         @echo    ProcessKeystroke >>nh340key.def
675         @echo    NHkbhit >>nh340key.def
676         @echo    CheckInput >>nh340key.def
677         @echo    SourceWhere >>nh340key.def
678         @echo    SourceAuthor >>nh340key.def
679         @echo    KeyHandlerName >>nh340key.def
680         @echo Linking $@
681         $(link) $(linkdebug) /Gn /Gz /q -L$(bcclib) /c  /aa /Tpd /V$(APPVER) -L$(bcclib) -v \
682             c0d32.obj $(O)nh340key.o, $@,nh340key.map,$(libsmt),nh340key.def
683
684 $(GAMEDIR)\nhraykey.dll : $(O)nhraykey.o
685         @if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
686         @echo EXPORTS >nhraykey.def
687         @echo    ProcessKeystroke >>nhraykey.def
688         @echo    NHkbhit >>nhraykey.def
689         @echo    CheckInput >>nhraykey.def
690         @echo    SourceWhere >>nhraykey.def
691         @echo    SourceAuthor >>nhraykey.def
692         @echo    KeyHandlerName >>nhraykey.def
693         @echo Linking $@
694         $(link) $(linkdebug) /Gn /Gz /q -L$(bcclib) /c  /aa /Tpd /V$(APPVER) -L$(bcclib) -v \
695             c0d32.obj $(O)nhraykey.o, $@,nhraykey.map,$(libsmt),nhraykey.def
696
697 #
698 #  Secondary Targets.
699 #
700     
701 #==========================================
702 # Makedefs Stuff
703 #==========================================
704
705 $(U)makedefs.exe:       $(O)obj.tag $(MAKEOBJS) $(SRC)\uuid.lib
706         @$(link) $(LFLAGSU) $(startobj) $(MAKEOBJS), $@,,$(libsmt)
707
708 $(O)makedefs.o: $(CONFIG_H)     $(INCL)\monattk.h $(INCL)\monflag.h   $(INCL)\objclass.h \
709                  $(INCL)\monsym.h    $(INCL)\qtext.h    $(INCL)\patchlevel.h \
710                  $(U)makedefs.c
711         @$(cc) $(CFLAGSU) -o$@ $(U)makedefs.c
712
713 #
714 #  date.h should be remade every time any of the source or include
715 #  files is modified.
716 #
717
718 $(INCL)\date.h $(OPTIONS_FILE) : $(U)makedefs.exe
719         $(U)makedefs -v
720
721 $(INCL)\onames.h : $(U)makedefs.exe
722         $(U)makedefs -o
723
724 $(INCL)\pm.h : $(U)makedefs.exe
725         $(U)makedefs -p
726
727 #$(INCL)\trap.h : $(U)makedefs.exe
728 #       $(U)makedefs -t
729
730 $(SRC)\monstr.c: $(U)makedefs.exe
731         $(U)makedefs -m
732
733 $(INCL)\vis_tab.h: $(U)makedefs.exe
734         $(U)makedefs -z
735
736 $(SRC)\vis_tab.c: $(U)makedefs.exe
737         $(U)makedefs -z
738
739 #==========================================
740 # uudecode utility and uuencoded targets
741 #==========================================
742
743 $(U)uudecode.exe: $(O)uudecode.o
744         @$(link) $(LFLAGSU) $(startobj) $(O)uudecode.o, $@,,$(libsmt)
745
746 $(O)uudecode.o: $(SSYS)\uudecode.c
747
748 $(NTSYS)\NetHack.ico : $(U)uudecode.exe $(NTSYS)\nhico.uu
749         chdir $(NTSYS)
750         ..\..\util\uudecode.exe nhico.uu
751         chdir ..\..\src
752
753 $(WIN32)\NetHack.ico : $(U)uudecode.exe $(NTSYS)\nhico.uu
754         chdir $(WIN32)
755         ..\..\util\uudecode.exe ../../sys/winnt/nhico.uu
756         chdir ..\..\src
757
758 $(WIN32)\mnsel.bmp: $(U)uudecode.exe $(WIN32)\mnsel.uu
759         chdir $(WIN32)
760         ..\..\util\uudecode.exe mnsel.uu
761         chdir ..\..\src
762
763 $(WIN32)\mnselcnt.bmp: $(U)uudecode.exe $(WIN32)\mnselcnt.uu
764         chdir $(WIN32)
765         ..\..\util\uudecode.exe mnselcnt.uu
766         chdir ..\..\src
767
768 $(WIN32)\mnunsel.bmp: $(U)uudecode.exe $(WIN32)\mnunsel.uu
769         chdir $(WIN32)
770         ..\..\util\uudecode.exe mnunsel.uu
771         chdir ..\..\src
772
773 $(WIN32)\petmark.bmp: $(U)uudecode.exe $(WIN32)\petmark.uu
774         chdir $(WIN32)
775         ..\..\util\uudecode.exe petmark.uu
776         chdir ..\..\src
777
778 $(WIN32)\rip.bmp: $(U)uudecode.exe $(WIN32)\rip.uu
779         chdir $(WIN32)
780         ..\..\util\uudecode.exe rip.uu
781         chdir ..\..\src
782
783 $(WIN32)\splash.bmp: $(U)uudecode.exe $(WIN32)\splash.uu
784         chdir $(WIN32)
785         ..\..\util\uudecode.exe splash.uu
786         chdir ..\..\src
787
788 #==========================================
789 # Level Compiler Stuff
790 #==========================================
791
792 LEVCFLAGS=$(cflags) -DWIN32 -D_WIN32 -D_MT -I..\include $(cdebug) -DDLB
793
794 $(U)lev_comp.exe: $(SPLEVOBJS) $(SRC)\uuid.lib
795         @echo Linking $@...
796         @$(link) $(LFLAGSU) $(startobj) $(SPLEVOBJS), $@,,$(libsmt)
797
798 $(O)lev_yacc.o: $(HACK_H)   $(SP_LEV_H) $(INCL)\lev_comp.h $(U)lev_yacc.c
799         @$(cc) $(LEVCFLAGS) -o$@ $(U)lev_yacc.c
800
801 $(O)lev_$(LEX).o: $(HACK_H)   $(INCL)\lev_comp.h $(SP_LEV_H) \
802                $(U)lev_$(LEX).c
803         @$(cc) $(LEVCFLAGS) -D__IO_H -o$@ $(U)lev_$(LEX).c
804
805 $(O)lev_main.o: $(U)lev_main.c $(HACK_H)   $(SP_LEV_H)
806         @$(cc) $(LEVCFLAGS) -o$@ $(U)lev_main.c
807
808
809 $(U)lev_yacc.c $(INCL)\lev_comp.h : $(U)lev_comp.y
810 !       IF "$(DO_YACC)"=="YACC_ACT"
811            chdir $(UTIL)
812            $(YACC) -d lev_comp.y
813            copy $(YTABC) lev_yacc.c
814            copy $(YTABH) $(INCL)\lev_comp.h
815            @del $(YTABC)
816            @del $(YTABH)
817            chdir $(SRC)
818 !       ELSE
819            @echo $(U)lev_comp.y has changed.
820            @echo To update $(U)lev_yacc.c and $(INCL)\lev_comp.h run $(YACC).
821            @echo ---
822            @echo For now, we will copy the prebuilt lev_yacc.c and 
823            @echo lev_comp.h from $(SSYS) into $(UTIL) and use them.
824            @copy $(SSYS)\lev_yacc.c $(U)lev_yacc.c >nul
825            @copy $(SSYS)\lev_comp.h $(INCL)\lev_comp.h >nul
826            @echo /**/ >>$(U)lev_yacc.c
827            @echo /**/ >>$(INCL)\lev_comp.h
828 !       ENDIF
829
830 $(U)lev_$(LEX).c: $(U)lev_comp.l
831 !       IF "$(DO_LEX)"=="LEX_ACT"
832            chdir $(UTIL)
833            $(LEX) $(FLEXSKEL) lev_comp.l
834            copy $(LEXYYC) $@
835            @del $(LEXYYC)
836            chdir $(SRC)
837 !       ELSE
838            @echo $(U)lev_comp.l has changed. To update $@ run $(LEX).
839            @echo ---
840            @echo For now, we will copy the prebuilt lev_lex.c 
841            @echo from $(SSYS) into $(UTIL) and use it.
842            @copy $(SSYS)\lev_lex.c $@ >nul
843            @echo /**/ >>$@
844 !       ENDIF
845
846 #==========================================
847 # Dungeon Compiler Stuff
848 #==========================================
849
850 $(U)dgn_comp.exe: $(DGNCOMPOBJS) $(SRC)\uuid.lib
851     @echo Linking $@...
852         @$(link) $(LFLAGSU) $(startobj) $(DGNCOMPOBJS), $@,,$(libsmt)
853
854
855 $(O)dgn_yacc.o: $(HACK_H)   $(DGN_FILE_H) $(INCL)\dgn_comp.h $(U)dgn_yacc.c
856         @$(cc) $(LEVCFLAGS) -o$@ $(U)dgn_yacc.c
857
858 $(O)dgn_$(LEX).o: $(HACK_H)   $(DGN_FILE_H)  $(INCL)\dgn_comp.h \
859         $(U)dgn_$(LEX).c
860         @$(cc) $(LEVCFLAGS) -D__IO_H -o$@ $(U)dgn_$(LEX).c
861
862 $(O)dgn_main.o: $(HACK_H) $(U)dgn_main.c
863         @$(cc) $(LEVCFLAGS) -o$@ $(U)dgn_main.c
864
865 $(U)dgn_yacc.c $(INCL)\dgn_comp.h : $(U)dgn_comp.y
866 !       IF "$(DO_YACC)"=="YACC_ACT"
867            chdir $(UTIL)
868            $(YACC) -d dgn_comp.y
869            copy $(YTABC) dgn_yacc.c
870            copy $(YTABH) $(INCL)\dgn_comp.h
871            @del $(YTABC)
872            @del $(YTABH)
873            chdir $(SRC)
874 !       ELSE
875            @echo $(U)dgn_comp.y has changed. To update dgn_yacc.c and 
876            @echo $(INCL)\dgn_comp.h run $(YACC).
877            @echo ---
878            @echo For now, we will copy the prebuilt $(U)dgn_yacc.c and 
879            @echo dgn_comp.h from $(SSYS) into $(UTIL) and use them.
880            @copy $(SSYS)\dgn_yacc.c $(U)dgn_yacc.c >nul
881            @copy $(SSYS)\dgn_comp.h $(INCL)\dgn_comp.h >nul
882            @echo /**/ >>$(U)dgn_yacc.c
883            @echo /**/ >>$(INCL)\dgn_comp.h
884 !       ENDIF
885
886 $(U)dgn_$(LEX).c: $(U)dgn_comp.l
887 !       IF "$(DO_LEX)"=="LEX_ACT"
888            chdir $(UTIL)
889            $(LEX) $(FLEXSKEL)  dgn_comp.l
890            copy $(LEXYYC) $@
891            @del $(LEXYYC)
892            chdir $(SRC)
893 !       ELSE
894            @echo $(U)dgn_comp.l has changed. To update $@ run $(LEX).
895            @echo ---
896            @echo For now, we will copy the prebuilt dgn_lex.c 
897            @echo from $(SSYS) into $(UTIL) and use it.
898            @copy $(SSYS)\dgn_lex.c $@ >nul
899            @echo /**/ >>$@
900 !       ENDIF
901
902
903 #==========================================
904 #=========== SECONDARY TARGETS ============
905 #==========================================
906
907 #===========================================
908 # Header files NOT distributed in ..\include
909 #===========================================
910
911 $(INCL)\win32api.h: $(NTSYS)\win32api.h
912         copy $(NTSYS)\win32api.h $@
913
914
915 #==========================================
916 # DLB utility and nhdat file creation
917 #==========================================
918
919 $(U)dlb_main.exe: $(DLBOBJ) $(O)dlb.o $(SRC)\uuid.lib
920         @$(link) $(LFLAGSU) $(startobj) $(O)dlb_main.o $(O)dlb.o $(O)alloc.o $(O)panic.o, $@,,$(libsmt)
921
922
923 $(O)dlb.o:      $(O)dlb_main.o $(O)alloc.o $(O)panic.o $(INCL)\dlb.h
924         @$(cc) $(CFLAGS) -o$@ $(SRC)\dlb.c
925         
926 $(O)dlb_main.o: $(UTIL)\dlb_main.c $(INCL)\config.h $(INCL)\dlb.h
927         @$(cc) $(CFLAGS) -o$@ $(UTIL)\dlb_main.c
928
929 $(DAT)\porthelp: $(NTSYS)\porthelp
930         @copy $(NTSYS)\porthelp $@ >nul
931
932 nhdat:  $(U)dlb_main.exe $(DAT)\data $(DAT)\oracles $(OPTIONS_FILE) \
933         $(DAT)\quest.dat $(DAT)\rumors $(DAT)\help $(DAT)\hh $(DAT)\cmdhelp \
934         $(DAT)\history $(DAT)\opthelp $(DAT)\wizhelp $(DAT)\dungeon $(DAT)\porthelp \
935         $(DAT)\license $(O)sp_lev.tag
936         cd $(DAT)
937         echo data >dlb.lst
938         echo oracles >>dlb.lst
939         if exist options echo options >>dlb.lst
940         if exist ttyoptions echo ttyoptions >>dlb.lst
941         if exist guioptions echo guioptions >>dlb.lst
942         if exist porthelp echo porthelp >>dlb.lst
943         echo quest.dat >>dlb.lst
944         echo rumors >>dlb.lst
945         echo help >>dlb.lst
946         echo hh >>dlb.lst
947         echo cmdhelp >>dlb.lst
948         echo history >>dlb.lst
949         echo opthelp >>dlb.lst
950         echo wizhelp >>dlb.lst
951         echo dungeon >>dlb.lst
952         echo license >>dlb.lst
953         for %N in (*.lev) do echo %N >>dlb.lst
954         $(U)dlb_main cIf dlb.lst $(SRC)\nhdat
955         cd $(SRC)
956
957 #==========================================
958 #  Recover Utility
959 #==========================================
960
961 $(U)recover.exe: $(RECOVOBJS) $(SRC)\uuid.lib
962         $(link) $(LFLAGSU) $(startobj) $(RECOVOBJS), $@,,$(libsmt)
963
964
965 $(O)recover.o: $(CONFIG_H) $(U)recover.c $(INCL)\win32api.h
966         $(cc) $(CFLAGSU) -o$@ $(U)recover.c
967
968 #==========================================
969 #  Tile Mapping
970 #==========================================
971
972 $(SRC)\tile.c: $(U)tilemap.exe
973         @echo A new $@ has been created
974         @$(U)tilemap
975
976 $(U)tilemap.exe: $(O)tilemap.o $(SRC)\uuid.lib
977         @$(link) $(LFLAGSU) $(startobj) $(O)tilemap.o, $@,,$(libsmt)
978
979
980 $(O)tilemap.o: $(WSHR)\tilemap.c $(HACK_H)
981         @$(cc) $(CFLAGSU) -o$@ $(WSHR)\tilemap.c
982
983 $(O)tiletxt.o: $(WSHR)\tilemap.c $(HACK_H)
984         @$(cc) $(CFLAGS) /DTILETEXT -o$@ $(WSHR)\tilemap.c
985
986 $(O)gifread.o: $(WSHR)\gifread.c  $(CONFIG_H) $(TILE_H)
987         @$(cc) $(CFLAGS) -I$(WSHR) -o$@ $(WSHR)\gifread.c
988
989 $(O)ppmwrite.o: $(WSHR)\ppmwrite.c $(CONFIG_H) $(TILE_H)
990         @$(cc) $(CFLAGS) -I$(WSHR) -o$@ $(WSHR)\ppmwrite.c
991
992 $(O)tiletext.o: $(WSHR)\tiletext.c  $(CONFIG_H) $(TILE_H)
993         @$(cc) $(CFLAGS) -I$(WSHR) -o$@ $(WSHR)\tiletext.c
994
995 #==========================================
996 # Optional Tile Utilities
997 #==========================================
998
999 $(U)gif2txt.exe: $(GIFREADERS) $(TEXT_IO) $(SRC)\uuid.lib
1000     @echo Linking $@...
1001         @$(link) $(LFLAGSU) $(startobj) $(GIFREADERS) $(TEXT_IO), $@,,$(libsmt)
1002
1003
1004 $(U)txt2ppm.exe: $(PPMWRITERS) $(TEXT_IO) $(SRC)\uuid.lib
1005     @echo Linking $@...
1006         @$(link) $(LFLAGSU) $(startobj) $(PPMWRITERS) $(TEXT_IO), $@,,$(libsmt)
1007
1008
1009 !IF "$(GRAPHICAL)"=="Y"
1010 $(TILEBMP16): $(TILEUTIL16) $(TILEFILES)
1011         @echo Creating 16x16 binary tile files (this may take some time)
1012         @$(U)tile2bmp $(TILEBMP16)
1013 !ENDIF
1014
1015 $(U)tile2bmp.exe: $(O)tile2bmp.o $(TEXT_IO) $(SRC)\uuid.lib
1016     @echo Linking $@...
1017         @$(link) $(LFLAGSU) $(startobj) $(O)tile2bmp.o $(TEXT_IO), $@,,$(libsmt)
1018
1019
1020 $(O)tile2bmp.o: $(WSHR)\tile2bmp.c $(HACK_H) $(TILE_H) $(INCL)\win32api.h
1021         @$(cc) $(CFLAGS) -I$(WSHR) /DPACKED_FILE -o$@ $(WSHR)\tile2bmp.c
1022
1023 #==========================================
1024 # Housekeeping
1025 #==========================================
1026
1027 spotless: clean
1028 ! IF ("$(OBJ)"!="")
1029         -rmdir $(OBJ) /s /Q
1030 ! ENDIF
1031         if exist $(INCL)\date.h    del $(INCL)\date.h
1032         if exist $(INCL)\onames.h  del $(INCL)\onames.h
1033         if exist $(INCL)\pm.h      del $(INCL)\pm.h
1034         if exist $(INCL)\vis_tab.h del $(INCL)\vis_tab.h
1035         if exist $(SRC)\vis_tab.c  del $(SRC)\vis_tab.c
1036         if exist $(SRC)\tile.c     del $(SRC)\tile.c
1037         if exist $(U)*.lnk         del $(U)*.lnk
1038         if exist $(U)*.map         del $(U)*.map
1039         if exist $(DAT)\data       del $(DAT)\data
1040         if exist $(DAT)\rumors     del $(DAT)\rumors
1041         if exist $(DAT)\???-fil?.lev    del $(DAT)\???-fil?.lev
1042         if exist $(DAT)\???-goal.lev    del $(DAT)\???-goal.lev
1043         if exist $(DAT)\???-loca.lev    del $(DAT)\???-loca.lev
1044         if exist $(DAT)\???-strt.lev    del $(DAT)\???-strt.lev
1045         if exist $(DAT)\air.lev         del $(DAT)\air.lev
1046         if exist $(DAT)\asmodeus.lev    del $(DAT)\asmodeus.lev
1047         if exist $(DAT)\astral.lev      del $(DAT)\astral.lev
1048         if exist $(DAT)\baalz.lev       del $(DAT)\baalz.lev
1049         if exist $(DAT)\bigroom.lev     del $(DAT)\bigroom.lev
1050         if exist $(DAT)\castle.lev      del $(DAT)\castle.lev
1051         if exist $(DAT)\data            del $(DAT)\data
1052         if exist $(DAT)\dungeon         del $(DAT)\dungeon
1053         if exist $(DAT)\dungeon.pdf     del $(DAT)\dungeon.pdf
1054         if exist $(DAT)\earth.lev       del $(DAT)\earth.lev
1055         if exist $(DAT)\fakewiz?.lev    del $(DAT)\fakewiz?.lev
1056         if exist $(DAT)\fire.lev        del $(DAT)\fire.lev
1057         if exist $(DAT)\juiblex.lev     del $(DAT)\juiblex.lev
1058         if exist $(DAT)\knox.lev        del $(DAT)\knox.lev
1059         if exist $(DAT)\medusa-?.lev    del $(DAT)\medusa-?.lev
1060         if exist $(DAT)\mine*.lev       del $(DAT)\mine*.lev
1061         if exist $(DAT)\options         del $(DAT)\options
1062         if exist $(DAT)\ttyoptions      del $(DAT)\ttyoptions
1063         if exist $(DAT)\guioptions      del $(DAT)\guioptions
1064         if exist $(DAT)\oracle.lev      del $(DAT)\oracle.lev
1065         if exist $(DAT)\oracles         del $(DAT)\oracles
1066         if exist $(DAT)\orcus.lev       del $(DAT)\orcus.lev
1067         if exist $(DAT)\rumors          del $(DAT)\rumors
1068         if exist $(DAT)\quest.dat       del $(DAT)\quest.dat
1069         if exist $(DAT)\sanctum.lev     del $(DAT)\sanctum.lev
1070         if exist $(DAT)\soko?-?.lev     del $(DAT)\soko?-?.lev
1071         if exist $(DAT)\tower?.lev      del $(DAT)\tower?.lev
1072         if exist $(DAT)\valley.lev      del $(DAT)\valley.lev
1073         if exist $(DAT)\water.lev       del $(DAT)\water.lev
1074         if exist $(DAT)\wizard?.lev     del $(DAT)\wizard?.lev
1075         if exist $(O)sp_lev.tag         del $(O)sp_lev.tag
1076         if exist $(SRC)\monstr.c        del $(SRC)\monstr.c
1077         if exist $(SRC)\vis_tab.c       del $(SRC)\vis_tab.c
1078         if exist $(U)recover.exe        del $(U)recover.exe
1079         if exist nhdat.                 del nhdat.
1080
1081 clean:
1082         if exist $(O)*.o del $(O)*.o
1083         if exist $(O)utility.tag   del $(O)utility.tag
1084         if exist $(U)makedefs.exe  del $(U)makedefs.exe
1085         if exist $(U)lev_comp.exe  del $(U)lev_comp.exe
1086         if exist $(U)dgn_comp.exe  del $(U)dgn_comp.exe
1087         if exist $(SRC)\*.lnk      del $(SRC)\*.lnk
1088         if exist $(SRC)\*.map      del $(SRC)\*.map
1089         if exist $(TILEBMP16)        del $(TILEBMP16)
1090
1091 #===================================================================
1092 # OTHER DEPENDENCIES
1093 #===================================================================
1094
1095 #
1096 # dat dependencies
1097 #
1098
1099 $(DAT)\data: $(O)utility.tag    $(DATABASE)
1100         $(U)makedefs -d
1101
1102 $(DAT)\rumors: $(O)utility.tag    $(DAT)\rumors.tru   $(DAT)\rumors.fal
1103         $(U)makedefs -r
1104
1105 $(DAT)\quest.dat: $(O)utility.tag  $(DAT)\quest.txt
1106         $(U)makedefs -q
1107
1108 $(DAT)\oracles: $(O)utility.tag    $(DAT)\oracles.txt
1109         $(U)makedefs -h
1110
1111 $(DAT)\dungeon: $(O)utility.tag  $(DAT)\dungeon.def
1112         $(U)makedefs -e
1113         cd $(DAT)
1114         $(U)dgn_comp dungeon.pdf
1115         cd $(SRC)
1116
1117 #
1118 # NT dependencies
1119 #
1120
1121 $(O)nttty.o:   $(HACK_H) $(TILE_H) $(INCL)\win32api.h $(NTSYS)\nttty.c
1122         @$(cc) $(CFLAGS) -I$(WSHR) -o$@  $(NTSYS)\nttty.c
1123 $(O)winnt.o: $(HACK_H) $(INCL)\win32api.h $(NTSYS)\winnt.c
1124         @$(cc) $(CFLAGS) -o$@  $(NTSYS)\winnt.c
1125 $(O)ntsound.o: $(HACK_H) $(NTSYS)\ntsound.c
1126         @$(cc) $(CFLAGS)  -o$@ $(NTSYS)\ntsound.c
1127 $(O)mapimail.o: $(HACK_H) $(INCL)\nhlan.h $(NTSYS)\mapimail.c
1128         @$(cc) $(CFLAGS) -DMAPI_VERBOSE  -o$@ $(NTSYS)\mapimail.c
1129
1130
1131 # util dependencies
1132 #
1133
1134 $(O)panic.o:  $(U)panic.c $(CONFIG_H)
1135         @$(cc) $(CFLAGS) -o$@ $(U)panic.c
1136
1137 #
1138 # The rest are stolen from sys/unix/Makefile.src, 
1139 # with the following changes:
1140 #   * ../include changed to $(INCL)
1141 #   * slashes changed to back-slashes 
1142 #   * -c (which is included in CFLAGS) substituted
1143 #       with -o$@
1144 #   * $(CC) changed to $(cc)
1145 # but otherwise untouched.
1146 # That means that there is some irrelevant stuff
1147 # in here, but maintenance should be easier.
1148 #
1149 $(O)tos.o: ..\sys\atari\tos.c $(HACK_H) $(INCL)\tcap.h
1150         $(cc) $(CFLAGS) -o$@ ..\sys\atari\tos.c
1151 $(O)pcmain.o: ..\sys\share\pcmain.c $(HACK_H) $(INCL)\dlb.h \
1152                 $(INCL)\win32api.h
1153         $(cc) $(CFLAGS) -o$@ ..\sys\share\pcmain.c
1154 $(O)pcsys.o: ..\sys\share\pcsys.c $(HACK_H)
1155         $(cc) $(CFLAGS) -o$@ ..\sys\share\pcsys.c
1156 $(O)pctty.o: ..\sys\share\pctty.c $(HACK_H)
1157         $(cc) $(CFLAGS) -o$@ ..\sys\share\pctty.c
1158 $(O)pcunix.o: ..\sys\share\pcunix.c $(HACK_H)
1159         $(cc) $(CFLAGS) -o$@ ..\sys\share\pcunix.c
1160 $(O)random.o: ..\sys\share\random.c $(HACK_H)
1161         $(cc) $(CFLAGS) -o$@ ..\sys\share\random.c
1162 $(O)ioctl.o: ..\sys\share\ioctl.c $(HACK_H) $(INCL)\tcap.h
1163         $(cc) $(CFLAGS) -o$@ ..\sys\share\ioctl.c
1164 $(O)unixtty.o: ..\sys\share\unixtty.c $(HACK_H)
1165         $(cc) $(CFLAGS) -o$@ ..\sys\share\unixtty.c
1166 $(O)unixmain.o: ..\sys\unix\unixmain.c $(HACK_H) $(INCL)\dlb.h
1167         $(cc) $(CFLAGS) -o$@ ..\sys\unix\unixmain.c
1168 $(O)unixunix.o: ..\sys\unix\unixunix.c $(HACK_H)
1169         $(cc) $(CFLAGS) -o$@ ..\sys\unix\unixunix.c
1170 $(O)bemain.o: ..\sys\be\bemain.c $(HACK_H) $(INCL)\dlb.h
1171         $(cc) $(CFLAGS) -o$@ ..\sys\be\bemain.c
1172 $(O)getline.o: ..\win\tty\getline.c $(HACK_H) $(INCL)\func_tab.h
1173         $(cc) $(CFLAGS) -o$@ ..\win\tty\getline.c
1174 $(O)termcap.o: ..\win\tty\termcap.c $(HACK_H) $(INCL)\tcap.h
1175         $(cc) $(CFLAGS) -o$@ ..\win\tty\termcap.c
1176 $(O)topl.o: ..\win\tty\topl.c $(HACK_H) $(INCL)\tcap.h
1177         $(cc) $(CFLAGS) -o$@ ..\win\tty\topl.c
1178 $(O)wintty.o: ..\win\tty\wintty.c $(HACK_H) $(INCL)\dlb.h \
1179                 $(INCL)\patchlevel.h $(INCL)\tcap.h
1180         $(cc) $(CFLAGS) -o$@ ..\win\tty\wintty.c
1181 $(O)Window.o: ..\win\X11\Window.c $(INCL)\xwindowp.h $(INCL)\xwindow.h \
1182                 $(CONFIG_H)
1183         $(cc) $(CFLAGS) -o$@ ..\win\X11\Window.c
1184 $(O)dialogs.o: ..\win\X11\dialogs.c $(CONFIG_H)
1185         $(cc) $(CFLAGS) -o$@ ..\win\X11\dialogs.c
1186 $(O)winX.o: ..\win\X11\winX.c $(HACK_H) $(INCL)\winX.h $(INCL)\dlb.h \
1187                 $(INCL)\patchlevel.h ..\win\X11\nh72icon \
1188                 ..\win\X11\nh56icon ..\win\X11\nh32icon
1189         $(cc) $(CFLAGS) -o$@ ..\win\X11\winX.c
1190 $(O)winmap.o: ..\win\X11\winmap.c $(INCL)\xwindow.h $(HACK_H) $(INCL)\dlb.h \
1191                 $(INCL)\winX.h $(INCL)\tile2x11.h
1192         $(cc) $(CFLAGS) -o$@ ..\win\X11\winmap.c
1193 $(O)winmenu.o: ..\win\X11\winmenu.c $(HACK_H) $(INCL)\winX.h
1194         $(cc) $(CFLAGS) -o$@ ..\win\X11\winmenu.c
1195 $(O)winmesg.o: ..\win\X11\winmesg.c $(INCL)\xwindow.h $(HACK_H) $(INCL)\winX.h
1196         $(cc) $(CFLAGS) -o$@ ..\win\X11\winmesg.c
1197 $(O)winmisc.o: ..\win\X11\winmisc.c $(HACK_H) $(INCL)\func_tab.h \
1198                 $(INCL)\winX.h
1199         $(cc) $(CFLAGS) -o$@ ..\win\X11\winmisc.c
1200 $(O)winstat.o: ..\win\X11\winstat.c $(HACK_H) $(INCL)\winX.h
1201         $(cc) $(CFLAGS) -o$@ ..\win\X11\winstat.c
1202 $(O)wintext.o: ..\win\X11\wintext.c $(HACK_H) $(INCL)\winX.h $(INCL)\xwindow.h
1203         $(cc) $(CFLAGS) -o$@ ..\win\X11\wintext.c
1204 $(O)winval.o: ..\win\X11\winval.c $(HACK_H) $(INCL)\winX.h
1205         $(cc) $(CFLAGS) -o$@ ..\win\X11\winval.c
1206 $(O)tile.o: $(SRC)\tile.c $(HACK_H)
1207 $(O)gnaskstr.o: ..\win\gnome\gnaskstr.c ..\win\gnome\gnaskstr.h \
1208                 ..\win\gnome\gnmain.h
1209         $(cc) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnaskstr.c
1210 $(O)gnbind.o: ..\win\gnome\gnbind.c ..\win\gnome\gnbind.h ..\win\gnome\gnmain.h \
1211                 ..\win\gnome\gnaskstr.h ..\win\gnome\gnyesno.h
1212         $(cc) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnbind.c
1213 $(O)gnglyph.o: ..\win\gnome\gnglyph.c ..\win\gnome\gnglyph.h
1214         $(cc) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnglyph.c
1215 $(O)gnmain.o: ..\win\gnome\gnmain.c ..\win\gnome\gnmain.h ..\win\gnome\gnsignal.h \
1216                 ..\win\gnome\gnbind.h ..\win\gnome\gnopts.h $(HACK_H) \
1217                 $(INCL)\date.h
1218         $(cc) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnmain.c
1219 $(O)gnmap.o: ..\win\gnome\gnmap.c ..\win\gnome\gnmap.h ..\win\gnome\gnglyph.h \
1220                 ..\win\gnome\gnsignal.h $(HACK_H)
1221         $(cc) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnmap.c
1222 $(O)gnmenu.o: ..\win\gnome\gnmenu.c ..\win\gnome\gnmenu.h ..\win\gnome\gnmain.h \
1223                 ..\win\gnome\gnbind.h
1224         $(cc) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnmenu.c
1225 $(O)gnmesg.o: ..\win\gnome\gnmesg.c ..\win\gnome\gnmesg.h ..\win\gnome\gnsignal.h
1226         $(cc) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnmesg.c
1227 $(O)gnopts.o: ..\win\gnome\gnopts.c ..\win\gnome\gnopts.h ..\win\gnome\gnglyph.h \
1228                 ..\win\gnome\gnmain.h ..\win\gnome\gnmap.h $(HACK_H)
1229         $(cc) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnopts.c
1230 $(O)gnplayer.o: ..\win\gnome\gnplayer.c ..\win\gnome\gnplayer.h \
1231                 ..\win\gnome\gnmain.h $(HACK_H)
1232         $(cc) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnplayer.c
1233 $(O)gnsignal.o: ..\win\gnome\gnsignal.c ..\win\gnome\gnsignal.h \
1234                 ..\win\gnome\gnmain.h
1235         $(cc) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnsignal.c
1236 $(O)gnstatus.o: ..\win\gnome\gnstatus.c ..\win\gnome\gnstatus.h \
1237                 ..\win\gnome\gnsignal.h ..\win\gnome\gn_xpms.h \
1238                 ..\win\gnome\gnomeprv.h
1239         $(cc) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnstatus.c
1240 $(O)gntext.o: ..\win\gnome\gntext.c ..\win\gnome\gntext.h ..\win\gnome\gnmain.h \
1241                 ..\win\gnome\gn_rip.h
1242         $(cc) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gntext.c
1243 $(O)gnyesno.o: ..\win\gnome\gnyesno.c ..\win\gnome\gnbind.h ..\win\gnome\gnyesno.h
1244         $(cc) $(CFLAGS) $(GNOMEINC) -c ..\win\gnome\gnyesno.c
1245 $(O)wingem.o: ..\win\gem\wingem.c $(HACK_H) $(INCL)\func_tab.h $(INCL)\dlb.h \
1246                 $(INCL)\patchlevel.h $(INCL)\wingem.h
1247         $(cc) $(CFLAGS) -o$@ ..\win\gem\wingem.c
1248 $(O)wingem1.o: ..\win\gem\wingem1.c $(INCL)\gem_rsc.h $(INCL)\load_img.h \
1249                 $(INCL)\wintype.h $(INCL)\wingem.h
1250         $(cc) $(CFLAGS) -o$@ ..\win\gem\wingem1.c
1251 $(O)load_img.o: ..\win\gem\load_img.c $(INCL)\load_img.h
1252         $(cc) $(CFLAGS) -o$@ ..\win\gem\load_img.c
1253 $(O)tile.o: tile.c $(HACK_H)
1254 $(O)qt_win.o: ..\win\Qt\qt_win.cpp $(HACK_H) $(INCL)\func_tab.h \
1255                 $(INCL)\dlb.h $(INCL)\patchlevel.h $(INCL)\qt_win.h \
1256                 $(INCL)\qt_clust.h $(INCL)\qt_kde0.h \
1257                 $(INCL)\qt_xpms.h qt_win.moc qt_kde0.moc
1258         $(CXX) $(CXXFLAGS) -c ..\win\Qt\qt_win.cpp
1259 $(O)qt_clust.o: ..\win\Qt\qt_clust.cpp $(INCL)\qt_clust.h
1260         $(CXX) $(CXXFLAGS) -c ..\win\Qt\qt_clust.cpp
1261 $(O)monstr.o: $(SRC)\monstr.c $(CONFIG_H)
1262 $(O)vis_tab.o: $(SRC)\vis_tab.c $(CONFIG_H) $(INCL)\vis_tab.h
1263 $(O)allmain.o: allmain.c $(HACK_H)
1264 $(O)alloc.o: alloc.c $(CONFIG_H)
1265 $(O)apply.o: apply.c $(HACK_H) $(INCL)\edog.h
1266 $(O)artifact.o: artifact.c $(HACK_H) $(INCL)\artifact.h $(INCL)\artilist.h
1267 $(O)attrib.o: attrib.c $(HACK_H) $(INCL)\artifact.h
1268 $(O)ball.o: ball.c $(HACK_H)
1269 $(O)bones.o: bones.c $(HACK_H) $(INCL)\lev.h
1270 $(O)botl.o: botl.c $(HACK_H)
1271 $(O)cmd.o: cmd.c $(HACK_H) $(INCL)\func_tab.h
1272 $(O)dbridge.o: dbridge.c $(HACK_H)
1273 $(O)decl.o: decl.c $(HACK_H)
1274 $(O)detect.o: detect.c $(HACK_H) $(INCL)\artifact.h
1275 $(O)dig.o: dig.c $(HACK_H) $(INCL)\edog.h
1276 $(O)display.o: display.c $(HACK_H)
1277 $(O)dlb.o: dlb.c $(CONFIG_H) $(INCL)\dlb.h
1278 $(O)do.o: do.c $(HACK_H) $(INCL)\lev.h
1279 $(O)do_name.o: do_name.c $(HACK_H)
1280 $(O)do_wear.o: do_wear.c $(HACK_H)
1281 $(O)dog.o: dog.c $(HACK_H) $(INCL)\edog.h
1282 $(O)dogmove.o: dogmove.c $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
1283 $(O)dokick.o: dokick.c $(HACK_H) $(INCL)\eshk.h
1284 $(O)dothrow.o: dothrow.c $(HACK_H) $(INCL)\edog.h
1285 $(O)drawing.o: drawing.c $(HACK_H) $(INCL)\tcap.h
1286 $(O)dungeon.o: dungeon.c $(HACK_H) $(INCL)\dgn_file.h $(INCL)\dlb.h
1287 $(O)eat.o: eat.c $(HACK_H)
1288 $(O)end.o: end.c $(HACK_H) $(INCL)\eshk.h $(INCL)\dlb.h
1289 $(O)engrave.o: engrave.c $(HACK_H) $(INCL)\lev.h
1290 $(O)exper.o: exper.c $(HACK_H)
1291 $(O)explode.o: explode.c $(HACK_H)
1292 $(O)extralev.o: extralev.c $(HACK_H)
1293 $(O)files.o: files.c $(HACK_H) $(INCL)\dlb.h
1294 $(O)fountain.o: fountain.c $(HACK_H)
1295 $(O)hack.o: hack.c $(HACK_H)
1296 $(O)hacklib.o: hacklib.c $(HACK_H)
1297 $(O)invent.o: invent.c $(HACK_H) $(INCL)\artifact.h
1298 $(O)light.o: light.c $(HACK_H) $(INCL)\lev.h
1299 $(O)lock.o: lock.c $(HACK_H)
1300 $(O)mail.o: mail.c $(HACK_H) $(INCL)\mail.h
1301 $(O)makemon.o: makemon.c $(HACK_H) $(INCL)\epri.h $(INCL)\emin.h \
1302                 $(INCL)\edog.h
1303 $(O)mapglyph.o: mapglyph.c $(HACK_H)
1304 $(O)mcastu.o: mcastu.c $(HACK_H)
1305 $(O)mhitm.o: mhitm.c $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h
1306 $(O)mhitu.o: mhitu.c $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h
1307 $(O)minion.o: minion.c $(HACK_H) $(INCL)\emin.h $(INCL)\epri.h
1308 $(O)mklev.o: mklev.c $(HACK_H)
1309 $(O)mkmap.o: mkmap.c $(HACK_H) $(INCL)\sp_lev.h
1310 $(O)mkmaze.o: mkmaze.c $(HACK_H) $(INCL)\sp_lev.h $(INCL)\lev.h
1311 $(O)mkobj.o: mkobj.c $(HACK_H) $(INCL)\artifact.h
1312 $(O)mkroom.o: mkroom.c $(HACK_H)
1313 $(O)mon.o: mon.c $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
1314 $(O)mondata.o: mondata.c $(HACK_H) $(INCL)\eshk.h $(INCL)\epri.h
1315 $(O)monmove.o: monmove.c $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
1316 $(O)monst.o: monst.c $(CONFIG_H) $(INCL)\permonst.h $(INCL)\align.h \
1317                 $(INCL)\monattk.h $(INCL)\monflag.h $(INCL)\monsym.h \
1318                 $(INCL)\dungeon.h $(INCL)\eshk.h $(INCL)\vault.h \
1319                 $(INCL)\epri.h $(INCL)\color.h
1320 $(O)mplayer.o: mplayer.c $(HACK_H)
1321 $(O)mthrowu.o: mthrowu.c $(HACK_H)
1322 $(O)muse.o: muse.c $(HACK_H) $(INCL)\edog.h
1323 $(O)music.o: music.c $(HACK_H) #interp.c
1324 $(O)o_init.o: o_init.c $(HACK_H) $(INCL)\lev.h
1325 $(O)objects.o: objects.c $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h \
1326                 $(INCL)\prop.h $(INCL)\skills.h $(INCL)\color.h
1327 $(O)objnam.o: objnam.c $(HACK_H)
1328 $(O)options.o: options.c $(CONFIG_H) $(INCL)\objclass.h $(INCL)\flag.h \
1329                 $(HACK_H) $(INCL)\tcap.h
1330 $(O)pager.o: pager.c $(HACK_H) $(INCL)\dlb.h
1331 $(O)pickup.o: pickup.c $(HACK_H)
1332 $(O)pline.o: pline.c $(HACK_H) $(INCL)\epri.h $(INCL)\edog.h
1333 $(O)polyself.o: polyself.c $(HACK_H)
1334 $(O)potion.o: potion.c $(HACK_H)
1335 $(O)pray.o: pray.c $(HACK_H) $(INCL)\epri.h
1336 $(O)priest.o: priest.c $(HACK_H) $(INCL)\mfndpos.h $(INCL)\eshk.h \
1337                 $(INCL)\epri.h $(INCL)\emin.h
1338 $(O)quest.o: quest.c $(HACK_H) $(INCL)\qtext.h
1339 $(O)questpgr.o: questpgr.c $(HACK_H) $(INCL)\dlb.h $(INCL)\qtext.h
1340 $(O)read.o: read.c $(HACK_H)
1341 $(O)rect.o: rect.c $(HACK_H)
1342 $(O)region.o: region.c $(HACK_H) $(INCL)\lev.h
1343 $(O)restore.o: restore.c $(HACK_H) $(INCL)\lev.h $(INCL)\tcap.h
1344 $(O)rip.o: rip.c $(HACK_H)
1345 $(O)rnd.o: rnd.c $(HACK_H)
1346 $(O)role.o: role.c $(HACK_H)
1347 $(O)rumors.o: rumors.c $(HACK_H) $(INCL)\lev.h $(INCL)\dlb.h
1348 $(O)save.o: save.c $(HACK_H) $(INCL)\lev.h
1349 $(O)shk.o: shk.c $(HACK_H) $(INCL)\eshk.h
1350 $(O)shknam.o: shknam.c $(HACK_H) $(INCL)\eshk.h
1351 $(O)sit.o: sit.c $(HACK_H) $(INCL)\artifact.h
1352 $(O)sounds.o: sounds.c $(HACK_H) $(INCL)\edog.h
1353 $(O)sp_lev.o: sp_lev.c $(HACK_H) $(INCL)\dlb.h $(INCL)\sp_lev.h
1354 $(O)spell.o: spell.c $(HACK_H)
1355 $(O)steal.o: steal.c $(HACK_H)
1356 $(O)steed.o: steed.c $(HACK_H)
1357 $(O)teleport.o: teleport.c $(HACK_H)
1358 $(O)timeout.o: timeout.c $(HACK_H) $(INCL)\lev.h
1359 $(O)topten.o: topten.c $(HACK_H) $(INCL)\dlb.h $(INCL)\patchlevel.h
1360 $(O)track.o: track.c $(HACK_H)
1361 $(O)trap.o: trap.c $(HACK_H)
1362 $(O)u_init.o: u_init.c $(HACK_H)
1363 $(O)uhitm.o: uhitm.c $(HACK_H)
1364 $(O)vault.o: vault.c $(HACK_H) $(INCL)\vault.h
1365 $(O)version.o: version.c $(HACK_H) $(INCL)\date.h $(INCL)\patchlevel.h
1366 $(O)vision.o: vision.c $(HACK_H) $(INCL)\vis_tab.h
1367 $(O)weapon.o: weapon.c $(HACK_H)
1368 $(O)were.o: were.c $(HACK_H)
1369 $(O)wield.o: wield.c $(HACK_H)
1370 $(O)windows.o: windows.c $(HACK_H) $(INCL)\wingem.h $(INCL)\winGnome.h
1371 $(O)wizard.o: wizard.c $(HACK_H) $(INCL)\qtext.h
1372 $(O)worm.o: worm.c $(HACK_H) $(INCL)\lev.h
1373 $(O)worn.o: worn.c $(HACK_H)
1374 $(O)write.o: write.c $(HACK_H)
1375 $(O)zap.o: zap.c $(HACK_H)
1376
1377 # end of file
1378