OSDN Git Service

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