1 # NetHack 3.6 Makefile.msc $NHDT-Date: 1520858848 2018/03/12 12:47:28 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.112 $ */
2 # Copyright (c) NetHack PC Development Team 1993-2018
4 #==============================================================================
5 # Build Tools Environment
7 # NetHack 3.6.x Makefile for MS Visual Studio Visual C++ compiler
9 # Visual Studio Compilers Tested:
10 # - Microsoft Visual Studio 2010 Express, with the Platform SDK
11 # - Microsoft Visual Studio 2013 Express
12 # - Microsoft Visual Studio 2017 Community Edition
14 #==============================================================================
15 # This is used for building two versions of NetHack:
17 # A tty port utilizing the Win32 Console I/O subsystem, Console
20 # A Win32 native port built on the Windows API, Graphical NetHack or
23 # In addition to your C compiler,
25 # if you want to change you will need a
26 # files with suffix workalike for
27 # .y yacc (such as bison)
28 # .l lex (such as flex)
30 # If you have any questions read the sys/winnt/Install.nt file included
31 # with the distribution.
32 #========================================================================================
33 # BUILD DECISIONS SECTION
35 # There are currently only 3 decisions that you can choose to make, and none are
37 # 1. Where do you want your build to end up?
38 # 2. Do you want debug information in the executable?
39 # 3. Do you want to explicitly override auto-detection of a 32-bit or 64-bit target?
41 #-----------------------------------------------------------------------------------------
42 #=========================================================================================
44 #---------------------------------------------------------------
45 # 1. Where do you want the game to be built (which folder)?
47 GAMEDIR = ..\binary # Default game build directory
49 #---------------------------------------------------------------
50 # 2. Do you want debug information available to the executable?
54 #---------------------------------------------------------------
55 # 3. This Makefile will attempt to auto-detect your selected target architecture
56 # based on Visual Studio command prompt configuration settins etc.
57 # However, if you want to manually override generation of a
58 # 32-bit or 64-bit build target, you can uncomment the apppropriate
59 # TARGET_CPU line below.
64 #==============================================================================
65 # This marks the end of the BUILD DECISIONS section.
66 #==============================================================================
68 #===============================================
69 #======= End of Modification Section ===========
70 #===============================================
72 ################################################
74 # Nothing below here should have to be changed.#
76 ################################################
79 #==============================================================================
81 # Set the gamedir according to your preference.
82 # If not present prior to compilation it gets created.
85 # Source directories. Makedefs hardcodes these, don't change them.
88 INCL = ..\include # NetHack include files
89 DAT = ..\dat # NetHack data files
90 DOC = ..\doc # NetHack documentation files
91 UTIL = ..\util # Utility source
92 SRC = ..\src # Main source
93 SSYS = ..\sys\share # Shared system files
94 MSWSYS= ..\sys\winnt # mswin specific files
95 TTY = ..\win\tty # window port files (tty)
96 MSWIN = ..\win\win32 # window port files (WIN32)
97 WSHR = ..\win\share # Tile support files
111 #==========================================
113 #==========================================
117 # Optional high-quality BSD random number generation routines
118 # (see pcconf.h). Set to nothing if not used.
121 RANDOM = $(OBJ)\random.o
124 WINPFLAG= -DTILES -DMSWIN_GRAPHICS -DWIN32CON
126 # To store all the level files,
127 # help files, etc. in a single library file.
128 # USE_DLB = Y is left uncommented
132 ! IF ("$(USE_DLB)"=="Y")
139 # If you defined ZLIB_COMP in include/config.h and you need
140 # to link with the zlib.lib library, uncomment the line below.
141 # If necessary, prefix explicit path information to the file name
142 # otherwise it assumes the NetHack src directory.
147 #==========================================
148 #==========================================
149 # Setting up the compiler and linker
150 #==========================================
151 #==========================================
153 # Before we get started, this section is used to determine the version of
154 # Visual Studio we are using. We set VSVER to 0000 to flag any version that
155 # is too old or untested.
158 #!MESSAGE $(MAKEFLAGS)
162 MAKEVERSION=$(_NMAKE_VER:.= )
163 MAKEVERSION=$(MAKEVERSION: =)
164 #!MESSAGE $(_NMAKE_VER)
165 #!MESSAGE $(MAKEVERSION)
168 !IF ($(MAKEVERSION) < 1000000000)
169 VSVER=0000 #untested ancient version
170 !ELSEIF ($(MAKEVERSION) > 1000000000) && ($(MAKEVERSION) < 1100000000)
172 !ELSEIF ($(MAKEVERSION) > 1100000000) && ($(MAKEVERSION) < 1200000000)
174 !ELSEIF ($(MAKEVERSION) > 1200000000) && ($(MAKEVERSION) < 1400000000)
176 !ELSEIF ($(MAKEVERSION) > 1400000000) && ($(MAKEVERSION) < 1411000000)
178 !ELSEIF ($(MAKEVERSION) > 1411000000) && ($(MAKEVERSION) < 1412258351)
180 !ELSEIF ($(MAKEVERSION) > 1412258350)
181 VSVER=2999 #untested future version
184 !IF ($(VSVER) >= 2012)
185 !MESSAGE Autodetected Visual Studio $(VSVER)
186 !ELSEIF ($(VSVER) == 2999
187 !MESSAGE The version of Visual Studio is newer than the most recent at
188 !MESSAGE the time this Makefile was crafted (Visual Studio $(VSNEWEST)).
189 !MESSAGE Because it is newer we'll proceed expecting that the
190 !MESSAGE VS$(VSNEWEST) processing will still work.
191 !ELSEIF ($(VSVER) == 0000)
192 !MESSAGE The version of Visual Studio appears to be quite old, older
193 !MESSAGE than VS2010 which is the oldest supported version by this
194 !MESSAGE Makefile, so we'll stop now.
195 !ERROR Untested old Visual Studio version with NMAKE $(_NMAKE_VER).
198 !IF ($(VSVER) == 2010)
199 # For VS2010 use "setenv /x86" or "setenv /x64" before invoking make process
200 # DO NOT DELETE THE FOLLOWING LINE
204 #----------------------------------------------------------------
206 #These will be in the environment variables with one of the VS2017
207 #developer command prompts.
208 #VSCMD_ARG_HOST_ARCH=x64
209 #VSCMD_ARG_TGT_ARCH=x86
211 !IFDEF VSCMD_ARG_HOST_ARCH
212 !MESSAGE Host architecture is $(VSCMD_ARG_HOST_ARCH)
213 !MESSAGE Target architecture is $(VSCMD_ARG_TGT_ARCH)
215 ! IF "$(VSCMD_ARG_TGT_ARCH)"=="x64"
223 !IF "$(TARGET_CPU)" == ""
227 !IF ($(VSVER) == 2010)
230 ! IF ($(VSVER) > 2010)
235 ccommon= -c -nologo -D"_CONSOLE" -D"_CRT_NONSTDC_NO_DEPRECATE" -D"_CRT_SECURE_NO_DEPRECATE" \
236 -D"_LIB" -D"_SCL_SECURE_NO_DEPRECATE" -D"_VC80_UPGRADE=0x0600" -D"DLB" -D"_MBCS" \
237 -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -D"NDEBUG" -D"YY_NO_UNISTD_H" -EHsc -fp:precise -Gd -GF -GS -Gy \
238 $(CL_RECENT) -WX- -Zc:forScope -Zc:wchar_t -Zi
239 cdebug= -analyze- -D"_DEBUG" -Gm -MTd -RTC1 -Od
240 crelease= -analyze- -D"_MBCS" -errorReport:prompt -Gm- -MT -O2 -Ot -Ox -Oy
242 lcommon= /NOLOGO /INCREMENTAL:NO
244 !IF "$(DEBUGINFO)" == "Y"
246 cflags1=$(ccommon) $(cdebug)
247 lflags1=$(lcommon) $(ldebug)
250 cflags1=$(ccommon) $(crelease)
251 lflags1=$(lcommon) $(ldebug)
256 !IF "$(TARGET_CPU)" == "x86"
257 cflags = $(cflags1) -D_X86_=1 -DWIN32 -D_WIN32 -W3
260 !ELSEIF "$(TARGET_CPU)" == "x64"
261 cflags = $(cflags1) -D_AMD64_=1 -DWIN64 -D_WIN64 -DWIN32 -D_WIN32 -W4
265 !IF ($(VSVER) >= 2012)
266 cflags = $(cflags:-W4=-W3)
269 #More verbose warning output options below
270 #cflags = $(cflags:-W4=-wd4131
271 #cflags = $(cflags:-W4=-Wall)
272 #cflags = $(cflags:-W3=-wd4131
273 #cflags = $(cflags:-W3=-Wall)
275 # declarations for use on Intel x86 systems
276 !IF "$(TARGET_CPU)" == "x86"
282 # declarations for use on AMD64 systems
283 !IF "$(TARGET_CPU)" == "x64"
289 # for Windows applications
290 conlflags = $(lflags) -subsystem:console,$(EXEVER)
291 guilflags = $(lflags) -subsystem:windows,$(EXEVER)
292 dlllflags = $(lflags) -entry:_DllMainCRTStartup$(DLLENTRY) -dll
294 # basic subsystem specific libraries, less the C Run-Time
295 baselibs = kernel32.lib $(optlibs) $(winsocklibs) advapi32.lib gdi32.lib
296 winlibs = $(baselibs) user32.lib comdlg32.lib winspool.lib
298 # for Windows applications that use the C Run-Time libraries
299 conlibs = $(baselibs)
303 INCLDIR= /I..\include
305 #==========================================
307 #==========================================
309 cflagsBuild = $(cflags) $(INCLDIR) $(WINPFLAG) $(DLBFLG)
310 lflagsBuild = $(lflags) $(conlibs) $(MACHINE)
312 #==========================================
314 #==========================================
316 LIBS= user32.lib winmm.lib $(ZLIB)
318 ! IF ("$(USE_DLB)"=="Y")
324 #==========================================
325 #================ MACROS ==================
326 #==========================================
327 # This section creates shorthand macros for many objects
328 # referenced later on in the Makefile.
331 # Shorten up the location for some files
342 MAKESRC = $(U)makedefs.c
344 MAKEOBJS = $(O)makedefs.o $(O)monst.o $(O)objects.o
346 LEVCOMPOBJS = $(O)lev_yacc.o $(O)lev_lex.o $(O)lev_main.o \
347 $(O)alloc.o $(O)decl.o $(O)drawing.o $(O)monst.o $(O)objects.o $(O)panic.o
349 DGNCOMPOBJS = $(O)dgn_yacc.o $(O)dgn_lex.o $(O)dgn_main.o \
350 $(O)alloc.o $(O)panic.o
352 RECOVOBJS = $(O)recover.o
354 TILEFILES = $(WSHR)\monsters.txt $(WSHR)\objects.txt $(WSHR)\other.txt
357 # These are not invoked during a normal game build in 3.4
359 TEXT_IO = $(O)tiletext.o $(O)tiletxt.o $(O)drawing.o \
360 $(O)decl.o $(O)monst.o $(O)objects.o
362 TEXT_IO32 = $(O)tilete32.o $(O)tiletx32.o $(O)drawing.o \
363 $(O)decl.o $(O)monst.o $(O)objects.o
365 GIFREADERS = $(O)gifread.o $(O)alloc.o $(O)panic.o
366 GIFREADERS32 = $(O)gifrd32.o $(O)alloc.o $(O)panic.o
368 PPMWRITERS = $(O)ppmwrite.o $(O)alloc.o $(O)panic.o
371 # Object files for the game itself.
374 VOBJ01 = $(O)allmain.o $(O)alloc.o $(O)apply.o $(O)artifact.o
375 VOBJ02 = $(O)attrib.o $(O)ball.o $(O)bones.o $(O)botl.o
376 VOBJ03 = $(O)cmd.o $(O)dbridge.o $(O)decl.o $(O)detect.o
377 VOBJ04 = $(O)dig.o $(O)display.o $(O)do.o $(O)do_name.o
378 VOBJ05 = $(O)do_wear.o $(O)dog.o $(O)dogmove.o $(O)dokick.o
379 VOBJ06 = $(O)dothrow.o $(O)drawing.o $(O)dungeon.o $(O)eat.o
380 VOBJ07 = $(O)end.o $(O)engrave.o $(O)exper.o $(O)explode.o
381 VOBJ08 = $(O)extralev.o $(O)files.o $(O)fountain.o $(O)hack.o
382 VOBJ09 = $(O)hacklib.o $(O)invent.o $(O)light.o $(O)lock.o
383 VOBJ10 = $(O)mail.o $(O)pcmain.o $(O)makemon.o $(O)mapglyph.o $(O)mcastu.o
384 VOBJ11 = $(O)mhitm.o $(O)mhitu.o $(O)minion.o $(O)mklev.o
385 VOBJ12 = $(O)mkmap.o $(O)mkmaze.o $(O)mkobj.o $(O)mkroom.o
386 VOBJ13 = $(O)mon.o $(O)mondata.o $(O)monmove.o $(O)monstj.o
387 VOBJ14 = $(O)monstr.o $(O)mplayer.o $(O)mthrowu.o $(O)muse.o
388 VOBJ15 = $(O)music.o $(O)o_init.o $(O)objectsj.o $(O)objnam.o
389 VOBJ16 = $(O)options.o $(O)pager.o $(O)pickup.o $(O)pline.o
390 VOBJ17 = $(O)polyself.o $(O)potion.o $(O)pray.o $(O)priest.o
391 VOBJ18 = $(O)quest.o $(O)questpgr.o $(RANDOM) $(O)read.o
392 VOBJ19 = $(O)rect.o $(O)region.o $(O)restore.o $(O)rip.o
393 VOBJ20 = $(O)rnd.o $(O)role.o $(O)rumors.o $(O)save.o
394 VOBJ21 = $(O)shk.o $(O)shknam.o $(O)sit.o $(O)sounds.o
395 VOBJ22 = $(O)sp_lev.o $(O)spell.o $(O)steal.o $(O)steed.o
396 VOBJ23 = $(O)sys.o $(O)teleport.o $(O)timeout.o $(O)topten.o
397 VOBJ24 = $(O)track.o $(O)trap.o $(O)u_init.o $(O)uhitm.o
398 VOBJ25 = $(O)vault.o $(O)vis_tab.o $(O)vision.o $(O)weapon.o
399 VOBJ26 = $(O)were.o $(O)wield.o $(O)windows.o $(O)wizard.o
400 VOBJ27 = $(O)worm.o $(O)worn.o $(O)write.o $(O)zap.o
401 JOBJ = $(O)jlib.o $(O)jconj.o
405 REGEX = $(O)cppregex.o
407 TTYOBJ = $(O)topl.o $(O)getline.o $(O)wintty.o
409 SOBJ = $(O)winnt.o $(O)pcsys.o $(O)pcunix.o \
412 OBJS = $(VOBJ01) $(VOBJ02) $(VOBJ03) $(VOBJ04) $(VOBJ05) \
413 $(VOBJ06) $(VOBJ07) $(VOBJ08) $(VOBJ09) $(VOBJ10) \
414 $(VOBJ11) $(VOBJ12) $(VOBJ13) $(VOBJ14) $(VOBJ15) \
415 $(VOBJ16) $(VOBJ17) $(VOBJ18) $(VOBJ19) $(VOBJ20) \
416 $(VOBJ21) $(VOBJ22) $(VOBJ23) $(VOBJ24) $(VOBJ25) \
417 $(VOBJ26) $(VOBJ27) $(VOBJ28) $(VOBJ29) $(REGEX)
419 GUIOBJ = $(O)mhaskyn.o $(O)mhdlg.o \
420 $(O)mhfont.o $(O)mhinput.o $(O)mhmain.o $(O)mhmap.o \
421 $(O)mhmenu.o $(O)mhmsgwnd.o $(O)mhrip.o $(O)mhsplash.o \
422 $(O)mhstatus.o $(O)mhtext.o $(O)mswproc.o $(O)winhack.o
424 GUIHDR = $(MSWIN)\mhaskyn.h $(MSWIN)\mhdlg.h $(MSWIN)\mhfont.h \
425 $(MSWIN)\mhinput.h $(MSWIN)\mhmain.h $(MSWIN)\mhmap.h $(MSWIN)\mhmenu.h \
426 $(MSWIN)\mhmsg.h $(MSWIN)\mhmsgwnd.h $(MSWIN)\mhrip.h $(MSWIN)\mhstatus.h \
427 $(MSWIN)\mhtext.h $(MSWIN)\resource.h $(MSWIN)\winMS.h
429 COMCTRL = comctl32.lib
431 KEYDLLS = $(GAMEDIR)\nhdefkey.dll $(GAMEDIR)\nh340key.dll $(GAMEDIR)\nhraykey.dll
433 TILEUTIL16 = $(UTIL)\tile2bmp.exe
434 TILEBMP16 = $(SRC)\tiles.bmp
436 TILEUTIL32 = $(UTIL)\til2bm32.exe
437 TILEBMP32 = $(SRC)\tiles32.bmp
439 SOUND = $(OBJ)\ntsound.o
441 VVOBJ = $(O)version.o
443 ALLOBJ = $(SOBJ) $(DLBOBJ) $(WOBJ) $(OBJS) $(VVOBJ) $(JOBJ)
445 OPTIONS_FILE = $(DAT)\options
447 #==========================================
449 #==========================================
451 CONFIG_H = $(INCL)\config.h $(INCL)\config1.h $(INCL)\tradstdc.h \
452 $(INCL)\global.h $(INCL)\coord.h $(INCL)\vmsconf.h \
453 $(INCL)\system.h $(INCL)\unixconf.h $(INCL)\os2conf.h \
454 $(INCL)\micro.h $(INCL)\pcconf.h $(INCL)\tosconf.h \
455 $(INCL)\amiconf.h $(INCL)\macconf.h $(INCL)\beconf.h \
458 HACK_H = $(INCL)\hack.h $(CONFIG_H) $(INCL)\align.h $(INCL)\context.h \
459 $(INCL)\dungeon.h $(INCL)\monsym.h $(INCL)\mkroom.h \
460 $(INCL)\objclass.h $(INCL)\youprop.h $(INCL)\prop.h \
461 $(INCL)\permonst.h $(INCL)\monattk.h \
462 $(INCL)\monflag.h $(INCL)\mondata.h $(INCL)\pm.h \
463 $(INCL)\wintype.h $(INCL)\decl.h $(INCL)\quest.h \
464 $(INCL)\spell.h $(INCL)\color.h $(INCL)\obj.h \
465 $(INCL)\you.h $(INCL)\attrib.h $(INCL)\monst.h $(INCL)\lint.h \
466 $(INCL)\mextra.h $(INCL)\skills.h $(INCL)\onames.h \
467 $(INCL)\timeout.h $(INCL)\trap.h $(INCL)\flag.h $(INCL)\rm.h \
468 $(INCL)\vision.h $(INCL)\display.h $(INCL)\engrave.h \
469 $(INCL)\rect.h $(INCL)\region.h $(INCL)\winprocs.h $(INCL)\botl.h \
470 $(INCL)\wintty.h $(INCL)\sys.h $(INCL)\trampoli.h
472 LEV_H = $(INCL)\lev.h
473 DGN_FILE_H = $(INCL)\dgn_file.h
474 LEV_COMP_H = $(INCL)\lev_comp.h
475 SP_LEV_H = $(INCL)\sp_lev.h
476 TILE_H = ..\win\share\tile.h
478 #==========================================
480 #==========================================
482 DATABASE = $(DAT)\data.base
484 #==========================================
485 #================ RULES ==================
486 #==========================================
488 .SUFFIXES: .exe .o .til .uu .c .y .l
490 #==========================================
491 # Rules for files in src
492 #==========================================
495 @$(cc) $(cflagsBuild) -Fo$@ $<
497 {$(SRC)}.c{$(OBJ)}.o:
498 @$(cc) $(cflagsBuild) -Fo$@ $<
500 #==========================================
501 # Rules for files in sys\share
502 #==========================================
504 {$(SSYS)}.c{$(OBJ)}.o:
505 @$(cc) $(cflagsBuild) -Fo$@ $<
507 {$(SSYS)}.cpp{$(OBJ)}.o:
508 @$(CC) $(cflagsBuild) /EHsc -Fo$@ $<
510 #==========================================
511 # Rules for files in sys\winnt
512 #==========================================
514 {$(MSWSYS)}.c{$(OBJ)}.o:
515 @$(cc) $(cflagsBuild) -Fo$@ $<
517 {$(MSWSYS)}.h{$(INCL)}.h:
520 #==========================================
521 # Rules for files in util
522 #==========================================
524 {$(UTIL)}.c{$(OBJ)}.o:
525 @$(cc) $(cflagsBuild) -Fo$@ $<
527 #==========================================
528 # Rules for files in win\share
529 #==========================================
531 {$(WSHR)}.c{$(OBJ)}.o:
532 @$(cc) $(cflagsBuild) -Fo$@ $<
534 {$(WSHR)}.h{$(INCL)}.h:
537 #{$(WSHR)}.txt{$(DAT)}.txt:
540 #==========================================
541 # Rules for files in win\tty
542 #==========================================
544 {$(TTY)}.c{$(OBJ)}.o:
545 $(cc) $(cflagsBuild) -Fo$@ $<
547 #==========================================
548 # Rules for files in japanese
549 #==========================================
552 $(cc) $(cflagsBuild) -Fo$@ $<
554 #==========================================
555 # Rules for files in win\win32
556 #==========================================
558 {$(MSWIN)}.c{$(OBJ)}.o:
559 @$(cc) $(cflagsBuild) -Fo$@ $<
561 #==========================================
562 #=============== TARGETS ==================
563 #==========================================
566 # The default make target (so just typing 'nmake' is useful).
580 install: $(O)envchk.tag $(O)obj.tag $(O)utility.tag $(GAMEDIR)\JNetHack.exe $(GAMEDIR)\JNetHackW.exe $(O)install.tag
583 $(O)install.tag: $(DAT)\data $(DAT)\rumors $(DAT)\dungeon \
584 $(DAT)\oracles $(DAT)\quest.dat $(O)sp_lev.tag $(DLB)
585 ! IF ("$(USE_DLB)"=="Y")
586 copy nhdat $(GAMEDIR)
587 copy $(DAT)\license $(GAMEDIR)
588 copy $(DAT)\opthelp $(GAMEDIR)
590 copy $(DAT)\*. $(GAMEDIR)
591 copy $(DAT)\*.dat $(GAMEDIR)
592 copy $(DAT)\*.lev $(GAMEDIR)
593 if exist $(GAMEDIR)\makefile del $(GAMEDIR)\makefile
595 if not exist $(GAMEDIR)\sysconf copy $(MSWSYS)\sysconf $(GAMEDIR)
596 if exist $(DAT)\symbols copy $(DAT)\symbols $(GAMEDIR)
597 if exist $(DOC)\guidebook.txt copy $(DOC)\guidebook.txt $(GAMEDIR)\Guidebook.txt
598 if exist $(DOC)\nethack.txt copy $(DOC)\nethack.txt $(GAMEDIR)\NetHack.txt
599 @if exist $(GAMEDIR)\JNetHack.PDB echo NOTE: You may want to remove $(GAMEDIR:\=/)/JNetHack.PDB to conserve space
600 @if exist $(GAMEDIR)\JNetHackW.PDB echo NOTE: You may want to remove $(GAMEDIR:\=/)/JNetHackW.PDB to conserve space
601 -copy $(MSWSYS)\defaults.nh $(GAMEDIR)\defaults.nh
602 -if not exist $(GAMEDIR)\record. goto>$(GAMEDIR)\record.
603 echo install done > $@
605 # copy $(MSWSYS)\winnt.hlp $(GAMEDIR)
607 recover: $(U)recover.exe
608 if exist $(U)recover.exe copy $(U)recover.exe $(GAMEDIR)
609 if exist $(DOC)\recover.txt copy $(DOC)\recover.txt $(GAMEDIR)\recover.txt
611 $(O)sp_lev.tag: $(O)utility.tag $(DAT)\bigroom.des $(DAT)\castle.des \
612 $(DAT)\endgame.des $(DAT)\gehennom.des $(DAT)\knox.des \
613 $(DAT)\medusa.des $(DAT)\oracle.des $(DAT)\tower.des \
614 $(DAT)\yendor.des $(DAT)\arch.des $(DAT)\barb.des \
615 $(DAT)\caveman.des $(DAT)\healer.des $(DAT)\knight.des \
616 $(DAT)\monk.des $(DAT)\priest.des $(DAT)\ranger.des \
617 $(DAT)\rogue.des $(DAT)\samurai.des $(DAT)\sokoban.des \
618 $(DAT)\tourist.des $(DAT)\valkyrie.des $(DAT)\wizard.des
620 $(U)levcomp bigroom.des
621 $(U)levcomp castle.des
622 $(U)levcomp endgame.des
623 $(U)levcomp gehennom.des
625 $(U)levcomp mines.des
626 $(U)levcomp medusa.des
627 $(U)levcomp oracle.des
628 $(U)levcomp sokoban.des
629 $(U)levcomp tower.des
630 $(U)levcomp yendor.des
633 $(U)levcomp caveman.des
634 $(U)levcomp healer.des
635 $(U)levcomp knight.des
637 $(U)levcomp priest.des
638 $(U)levcomp ranger.des
639 $(U)levcomp rogue.des
640 $(U)levcomp samurai.des
641 $(U)levcomp tourist.des
642 $(U)levcomp valkyrie.des
643 $(U)levcomp wizard.des
645 echo sp_levs done > $(O)sp_lev.tag
647 $(O)utility.tag: $(INCL)\date.h $(INCL)\onames.h $(INCL)\pm.h \
648 $(SRC)\monstr.c $(SRC)\vis_tab.c \
649 $(U)levcomp.exe $(INCL)\vis_tab.h \
650 $(U)dgncomp.exe $(TILEUTIL16)
651 @echo utilities made >$@
652 @echo utilities made.
654 tileutil: $(U)gif2txt.exe $(U)gif2tx32.exe $(U)txt2ppm.exe
655 @echo Optional tile development utilities are up to date.
657 $(O)winhack.res: $(TILEBMP16) $(MSWIN)\winhack.rc $(MSWIN)\mnsel.bmp \
658 $(MSWIN)\mnselcnt.bmp $(MSWIN)\mnunsel.bmp \
659 $(MSWIN)\petmark.bmp $(MSWIN)\pilemark.bmp $(MSWIN)\NetHack.ico $(MSWIN)\rip.bmp \
661 @$(rc) -r -fo$@ -i$(MSWIN) -dNDEBUG $(MSWIN)\winhack.rc
663 $(O)console.res: $(MSWSYS)\console.rc $(MSWSYS)\NetHack.ico
664 @$(rc) -r -fo$@ -i$(MSWSYS) -dNDEBUG $(MSWSYS)\console.rc
667 #==========================================
669 #==========================================
671 # The section for linking the NetHack image looks a little strange at
672 # first, especially if you are used to UNIX makes, or NDMAKE. It is
673 # Microsoft nmake specific, and it gets around the problem of the
674 # link command line being too long for the linker. An "in-line" linker
675 # response file is generated temporarily.
677 # It takes advantage of the following features of nmake:
680 # Specifying the "<<" means to start an inline file.
681 # Another "<<" at the start of a line closes the
684 # Substitution within Macros:
685 # $(mymacro:string1=string2) replaces every
686 # occurrence of string1 with string2 in the
687 # macro mymacro. Special ascii key codes may be
688 # used in the substitution text by preceding it
689 # with ^ as we have done below. Every occurence
690 # of a <tab> in $(ALLOBJ) is replaced by
693 GAMEOBJ=$(ALLOBJ:^ =^
695 GAMEOBJ=$(GAMEOBJ:^ =^
699 # DO NOT INDENT THE << below!
703 # full gui linkage libs:
704 # libs: $(LIBS) $(conlibs) $(guilibs) $(COMCTRL)
705 # objs: $(GAMEOBJ) $(TTYOBJ) $(O)nttty.o $(O)tile.o $(GUIOBJ)
707 # libs: $(LIBS) $(conlibs)
708 # objs: $(GAMEOBJ) $(TTYOBJ) $(O)tile.o $(O)guistub.o
711 $(GAMEDIR)\JNetHack.exe : $(O)gamedir.tag $(O)tile.o $(O)nttty.o $(O)guistub.o \
712 $(ALLOBJ) $(TTYOBJ) $(GUIOBJ) $(O)console.res $(KEYDLLS)
713 @if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
714 @echo Linking $(@:\=/)
715 $(link) $(lflagsBuild) $(conlflags) /STACK:2048 /PDB:$(GAMEDIR)\$(@B).PDB /MAP:$(O)$(@B).MAP \
716 $(LIBS) $(conlibs) -out:$@ @<<$(@B).lnk
724 @if exist $(O)install.tag del $(O)install.tag
727 # full tty linkage libs:
728 # libs: $(LIBS) $(guilibs) $(COMCTRL)
729 # objs: $(GAMEOBJ) $(GUIOBJ) $(TTYOBJ) $(O)tile.o $(O)nttty.o
731 # libs: $(LIBS) $(guilibs) $(COMCTRL)
732 # objs: $(GAMEOBJ) $(GUIOBJ) $(O)tile.o $(O)ttystub.o
734 $(GAMEDIR)\JNetHackW.exe : $(O)gamedir.tag $(O)tile.o $(O)ttystub.o \
735 $(ALLOBJ) $(TTYOBJ) $(GUIOBJ) $(O)winhack.res $(O)gamedir.tag $(KEYDLLS)
736 @if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
737 @echo Linking $(@:\=/)
738 $(link) $(lflagsBuild) $(guilflags) /STACK:2048 /PDB:$(GAMEDIR)\$(@B).PDB \
739 /MAP:$(O)$(@B).MAP $(LIBS) $(guilibs) $(COMCTRL) -out:$@ @<<$(@B).lnk
746 @if exist $(O)install.tag del $(O)install.tag
749 @if not exist $(GAMEDIR)\*.* echo creating directory $(GAMEDIR:\=/)
750 @if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
751 @echo directory created > $@
754 @echo LIBRARY $(@B) >$@
755 ! IF "$(TARGET_CPU)"=="x64" || "$(PROCESSOR_ARCHITECTURE)"=="x64"
758 @echo ProcessKeystroke >>$@
760 @echo CheckInput >>$@
761 @echo SourceWhere >>$@
762 @echo SourceAuthor >>$@
763 @echo KeyHandlerName >>$@
766 $(GAMEDIR)\nhdefkey.dll : $(O)$(@B).o $(O)gamedir.tag $(O)$(@B).def
767 @echo Linking $(@:\=/)
768 @$(link) $(ldebug) /RELEASE /DLL user32.lib \
769 /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).map" /DEF:$(O)$(@B).def \
770 /IMPLIB:$(O)$(@B).lib -out:$@ $(O)$(@B).o
773 @echo LIBRARY $(@B) >$@
774 ! IF "$(TARGET_CPU)"=="x64" || "$(PROCESSOR_ARCHITECTURE)"=="x64"
777 @echo ProcessKeystroke >>$@
779 @echo CheckInput >>$@
780 @echo SourceWhere >>$@
781 @echo SourceAuthor >>$@
782 @echo KeyHandlerName >>$@
785 $(GAMEDIR)\nh340key.dll : $(O)$(@B).o $(O)gamedir.tag $(O)$(@B).def
786 @echo Linking $(@:\=/)
787 @$(link) $(ldebug) /RELEASE /NOLOGO /DLL user32.lib \
788 /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).map" /DEF:$(O)$(@B).def \
789 /IMPLIB:$(O)$(@B).lib -out:$@ $(O)$(@B).o
792 @echo LIBRARY $(@B) >$@
793 ! IF "$(TARGET_CPU)"=="x64" || "$(PROCESSOR_ARCHITECTURE)"=="x64"
796 @echo ProcessKeystroke >>$@
798 @echo CheckInput >>$@
799 @echo SourceWhere >>$@
800 @echo SourceAuthor >>$@
801 @echo KeyHandlerName >>$@
804 $(GAMEDIR)\nhraykey.dll : $(O)$(@B).o $(O)gamedir.tag $(O)$(@B).def
805 @echo Linking $(@:\=/)
806 @$(link) $(ldebug) /RELEASE /NOLOGO /DLL user32.lib \
807 /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).map" /DEF:$(O)$(@B).def \
808 /IMPLIB:$(O)$(@B).lib -out:$@ $(O)$(@B).o
814 #==========================================
816 #==========================================
817 $(U)nhsizes.exe: $(O)nhsizes.o
818 @echo Linking $(@:\=/)
819 $(link) $(lflagsBuild) -out:$@ $(O)nhsizes.o $(O)panic.o $(O)alloc.o
821 $(O)nhsizes.o: $(CONFIG_H) nhsizes.c
822 @$(cc) $(cflagsBuild) -Fo$@ nhsizes.c
824 $(U)makedefs.exe: $(MAKEOBJS)
825 @echo Linking $(@:\=/)
826 @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(MAKEOBJS)
828 $(O)makedefs.o: $(CONFIG_H) $(INCL)\monattk.h $(INCL)\monflag.h $(INCL)\objclass.h \
829 $(INCL)\monsym.h $(INCL)\qtext.h $(INCL)\patchlevel.h \
831 @if not exist $(OBJ)\*.* echo creating directory $(OBJ:\=/)
832 @if not exist $(OBJ)\*.* mkdir $(OBJ)
833 @$(cc) $(cflagsBuild) -Fo$@ $(U)makedefs.c
836 # date.h should be remade every time any of the source or include
840 $(INCL)\date.h $(OPTIONS_FILE) : $(U)makedefs.exe
843 $(INCL)\onames.h : $(U)makedefs.exe
846 $(INCL)\pm.h : $(U)makedefs.exe
849 #$(INCL)\trap.h : $(U)makedefs.exe
852 $(SRC)\monstr.c: $(U)makedefs.exe
855 $(INCL)\vis_tab.h: $(U)makedefs.exe
858 $(SRC)\vis_tab.c: $(U)makedefs.exe
861 #==========================================
862 # uudecode utility and uuencoded targets
863 #==========================================
865 $(U)uudecode.exe: $(O)uudecode.o
866 @echo Linking $(@:\=/)
867 @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(O)uudecode.o
869 $(O)uudecode.o: $(SSYS)\uudecode.c
870 @$(cc) $(cflagsBuild) /D_CRT_SECURE_NO_DEPRECATE -Fo$@ $(SSYS)\uudecode.c
872 $(MSWSYS)\NetHack.ico : $(U)uudecode.exe $(MSWSYS)\nhico.uu
874 ..\..\util\uudecode.exe nhico.uu
877 $(MSWIN)\NetHack.ico : $(U)uudecode.exe $(MSWSYS)\nhico.uu
879 ..\..\util\uudecode.exe ../../sys/winnt/nhico.uu
882 $(MSWIN)\mnsel.bmp: $(U)uudecode.exe $(MSWIN)\mnsel.uu
884 ..\..\util\uudecode.exe mnsel.uu
887 $(MSWIN)\mnselcnt.bmp: $(U)uudecode.exe $(MSWIN)\mnselcnt.uu
889 ..\..\util\uudecode.exe mnselcnt.uu
892 $(MSWIN)\mnunsel.bmp: $(U)uudecode.exe $(MSWIN)\mnunsel.uu
894 ..\..\util\uudecode.exe mnunsel.uu
897 $(MSWIN)\petmark.bmp: $(U)uudecode.exe $(MSWIN)\petmark.uu
899 ..\..\util\uudecode.exe petmark.uu
902 $(MSWIN)\pilemark.bmp: $(U)uudecode.exe $(MSWIN)\pilemark.uu
904 ..\..\util\uudecode.exe pilemark.uu
907 $(MSWIN)\rip.bmp: $(U)uudecode.exe $(MSWIN)\rip.uu
909 ..\..\util\uudecode.exe rip.uu
912 $(MSWIN)\splash.bmp: $(U)uudecode.exe $(MSWIN)\splash.uu
914 ..\..\util\uudecode.exe splash.uu
917 #=================================================
918 # Level Compiler Stuff
919 #=================================================
921 # defer to the steps in ..\win\win32\levstuff.mak
924 $(U)lev_yacc.c: $(U)lev_comp.y
925 nmake -nologo -f ..\win\win32\levstuff.mak $(U)lev_yacc.c
927 $(U)lev_lex.c: $(U)lev_comp.l
928 nmake -nologo -f ..\win\win32\levstuff.mak $(U)lev_lex.c
931 nmake -nologo -f ..\win\win32\levstuff.mak $(INCL)\lev_comp.h
933 $(O)lev_yacc.o: $(HACK_H) $(SP_LEV_H) $(INCL)\lev_comp.h $(U)lev_yacc.c
934 @$(cc) $(cflagsBuild) -Fo$@ $(U)lev_yacc.c
936 $(O)lev_lex.o: $(HACK_H) $(INCL)\lev_comp.h $(SP_LEV_H) $(U)lev_lex.c
937 @$(cc) $(cflagsBuild) -Fo$@ $(U)lev_lex.c
939 $(O)lev_main.o: $(U)lev_main.c $(HACK_H) $(SP_LEV_H)
940 @$(cc) $(cflagsBuild) -Fo$@ $(U)lev_main.c
942 $(U)levcomp.exe: $(LEVCOMPOBJS)
943 @echo Linking $(@:\=/)
944 @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
949 #=================================================
950 # Dungeon Compiler Stuff
951 #=================================================
953 # defer to the steps in ..\win\win32\dgnstuff.mak
955 $(U)dgn_yacc.c: $(U)dgn_comp.y
956 nmake -nologo -f ..\win\win32\dgnstuff.mak $(U)dgn_yacc.c
959 nmake -nologo -f ..\win\win32\dgnstuff.mak $(INCL)\dgn_comp.h
961 $(U)dgn_lex.c: $(U)dgn_comp.l
962 nmake -nologo -f ..\win\win32\dgnstuff.mak $(U)dgn_lex.c
964 $(O)dgn_yacc.o: $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h $(U)dgn_yacc.c
965 @$(cc) $(cflagsBuild) -Fo$@ $(U)dgn_yacc.c
967 $(O)dgn_lex.o: $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h \
969 @$(cc) $(cflagsBuild) -Fo$@ $(U)dgn_lex.c
971 $(O)dgn_main.o: $(HACK_H) $(U)dgn_main.c
972 @$(cc) $(cflagsBuild) -Fo$@ $(U)dgn_main.c
974 $(U)dgncomp.exe: $(DGNCOMPOBJS)
975 @echo Linking $(@:\=/)
976 @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
981 #=================================================
982 # Create directory for holding object files
983 #=================================================
986 @if not exist $(OBJ)\*.* echo creating directory $(OBJ:\=/)
987 @if not exist $(OBJ)\*.* mkdir $(OBJ)
988 @echo directory created >$@
990 #==========================================
991 # Notify of any CL environment variables
992 # in effect since they change the compiler
994 #==========================================
996 $(O)envchk.tag: $(O)obj.tag
997 ! IF "$(TARGET_CPU)"=="x64"
998 @echo Windows x64 64-bit target build
1000 @echo Windows x86 32-bit target build
1003 # @echo Warning, the CL Environment variable is defined:
1008 #==========================================
1009 #=========== SECONDARY TARGETS ============
1010 #==========================================
1012 #===========================================
1013 # Header files NOT distributed in $(INCL)
1014 #===========================================
1016 $(INCL)\win32api.h: $(MSWSYS)\win32api.h
1017 copy $(MSWSYS)\win32api.h $@
1020 #==========================================
1021 # DLB utility and nhdat file creation
1022 #==========================================
1024 $(U)dlb_main.exe: $(DLBOBJ) $(O)dlb.o
1025 @echo Linking $(@:\=/)
1026 @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
1033 $(O)dlb.o: $(O)dlb_main.o $(O)alloc.o $(O)panic.o $(INCL)\dlb.h
1034 @$(cc) $(cflagsBuild) /Fo$@ $(SRC)\dlb.c
1036 $(O)dlb_main.o: $(UTIL)\dlb_main.c $(INCL)\config.h $(INCL)\dlb.h
1037 @$(cc) $(cflagsBuild) /Fo$@ $(UTIL)\dlb_main.c
1039 $(DAT)\porthelp: $(MSWSYS)\porthelp
1040 @copy $(MSWSYS)\porthelp $@ >nul
1042 nhdat: $(U)dlb_main.exe $(DAT)\data $(DAT)\oracles $(OPTIONS_FILE) \
1043 $(DAT)\quest.dat $(DAT)\rumors $(DAT)\help $(DAT)\hh $(DAT)\cmdhelp \
1044 $(DAT)\history $(DAT)\opthelp $(DAT)\wizhelp $(DAT)\dungeon $(DAT)\porthelp \
1045 $(DAT)\license $(DAT)\engrave $(DAT)\epitaph $(DAT)\bogusmon $(DAT)\tribute $(O)sp_lev.tag
1048 echo oracles >>dlb.lst
1049 if exist options echo options >>dlb.lst
1050 if exist ttyoptions echo ttyoptions >>dlb.lst
1051 if exist guioptions echo guioptions >>dlb.lst
1052 if exist porthelp echo porthelp >>dlb.lst
1053 echo quest.dat >>dlb.lst
1054 echo rumors >>dlb.lst
1055 echo engrave >>dlb.lst
1056 echo epitaph >>dlb.lst
1057 echo bogusmon >>dlb.lst
1058 echo tribute >>dlb.lst
1061 echo cmdhelp >>dlb.lst
1062 echo history >>dlb.lst
1063 echo opthelp >>dlb.lst
1064 echo wizhelp >>dlb.lst
1065 echo dungeon >>dlb.lst
1066 echo license >>dlb.lst
1067 for %%N in (*.lev) do echo %%N >>dlb.lst
1068 $(U)dlb_main cIf dlb.lst $(SRC)\nhdat
1071 #==========================================
1073 #==========================================
1075 $(U)recover.exe: $(RECOVOBJS)
1076 @echo Linking $(@:\=/)
1077 $(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(RECOVOBJS)
1079 $(O)recover.o: $(CONFIG_H) $(U)recover.c $(INCL)\win32api.h
1080 @$(cc) $(cflagsBuild) -Fo$@ $(U)recover.c
1082 #==========================================
1084 #==========================================
1086 $(SRC)\tile.c: $(U)tilemap.exe
1087 @echo A new $(@:\=/) has been created
1090 $(U)tilemap.exe: $(O)tilemap.o
1091 @echo Linking $(@:\=/)
1092 @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(O)tilemap.o
1094 $(O)tilemap.o: $(WSHR)\tilemap.c $(HACK_H)
1095 @$(cc) $(cflagsBuild) -Fo$@ $(WSHR)\tilemap.c
1097 $(O)tiletx32.o: $(WSHR)\tilemap.c $(HACK_H)
1098 @$(cc) $(cflagsBuild) /DTILETEXT /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\tilemap.c
1100 $(O)tiletxt.o: $(WSHR)\tilemap.c $(HACK_H)
1101 @$(cc) $(cflagsBuild) /DTILETEXT -Fo$@ $(WSHR)\tilemap.c
1103 $(O)gifread.o: $(WSHR)\gifread.c $(CONFIG_H) $(TILE_H)
1104 @$(cc) $(cflagsBuild) -I$(WSHR) -Fo$@ $(WSHR)\gifread.c
1106 $(O)gifrd32.o: $(WSHR)\gifread.c $(CONFIG_H) $(TILE_H)
1107 @$(cc) $(cflagsBuild) -I$(WSHR) /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\gifread.c
1109 $(O)ppmwrite.o: $(WSHR)\ppmwrite.c $(CONFIG_H) $(TILE_H)
1110 @$(cc) $(cflagsBuild) -I$(WSHR) -Fo$@ $(WSHR)\ppmwrite.c
1112 $(O)tiletext.o: $(WSHR)\tiletext.c $(CONFIG_H) $(TILE_H)
1113 @$(cc) $(cflagsBuild) -I$(WSHR) -Fo$@ $(WSHR)\tiletext.c
1115 $(O)tilete32.o: $(WSHR)\tiletext.c $(CONFIG_H) $(TILE_H)
1116 @$(cc) $(cflagsBuild) -I$(WSHR) /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\tiletext.c
1118 #==========================================
1119 # Optional Tile Utilities
1120 #==========================================
1122 $(U)gif2txt.exe: $(GIFREADERS) $(TEXT_IO)
1123 @echo Linking $(@:\=/)
1124 @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
1131 $(U)gif2tx32.exe: $(GIFREADERS32) $(TEXT_IO32)
1132 @echo Linking $(@:\=/)
1133 @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
1140 $(U)txt2ppm.exe: $(PPMWRITERS) $(TEXT_IO)
1141 @echo Linking $(@:\=/)
1142 @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
1149 $(TILEBMP16): $(TILEUTIL16) $(TILEFILES)
1150 @echo Creating 16x16 binary tile files (this may take some time)
1151 @$(U)tile2bmp $(TILEBMP16)
1152 #$(TILEBMP32): $(TILEUTIL32) $(TILEFILES32)
1153 # @echo Creating 32x32 binary tile files (this may take some time)
1154 # @$(U)til2bm32 $(TILEBMP32)
1157 $(U)tile2bmp.exe: $(O)tile2bmp.o $(TEXT_IO)
1158 @echo Linking $(@:\=/)
1159 @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
1165 $(U)til2bm32.exe: $(O)til2bm32.o $(TEXT_IO32)
1166 @echo Linking $(@:\=/)
1167 @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
1173 $(O)tile2bmp.o: $(WSHR)\tile2bmp.c $(HACK_H) $(TILE_H) $(INCL)\win32api.h
1174 @$(cc) $(cflagsBuild) -I$(WSHR) /DPACKED_FILE /Fo$@ $(WSHR)\tile2bmp.c
1176 $(O)til2bm32.o: $(WSHR)\tile2bmp.c $(HACK_H) $(TILE_H) $(INCL)\win32api.h
1177 @$(cc) $(cflagsBuild) -I$(WSHR) /DPACKED_FILE /DTILE_X=32 /DTILE_Y=32 /Fo$@ $(WSHR)\tile2bmp.c
1179 #==========================================
1181 #==========================================
1185 if exist $(OBJ)\* rmdir $(OBJ) /s /Q
1186 if exist $(GAMEDIR)\nhdefkey.dll del $(GAMEDIR)\nhdefkey.dll
1187 if exist $(GAMEDIR)\nh340key.dll del $(GAMEDIR)\nh340key.dll
1188 if exist $(GAMEDIR)\nhraykey.dll del $(GAMEDIR)\nhraykey.dll
1189 if exist $(GAMEDIR)\JNetHack.exe del $(GAMEDIR)\JNetHack.exe
1190 if exist $(GAMEDIR)\JNetHack.pdb del $(GAMEDIR)\JNetHack.pdb
1191 if exist $(GAMEDIR)\nhdat del $(GAMEDIR)\nhdat
1193 if exist $(INCL)\date.h del $(INCL)\date.h
1194 if exist $(INCL)\onames.h del $(INCL)\onames.h
1195 if exist $(INCL)\pm.h del $(INCL)\pm.h
1196 if exist $(INCL)\vis_tab.h del $(INCL)\vis_tab.h
1197 if exist $(SRC)\vis_tab.c del $(SRC)\vis_tab.c
1198 if exist $(SRC)\tile.c del $(SRC)\tile.c
1199 if exist $(U)*.lnk del $(U)*.lnk
1200 if exist $(U)*.map del $(U)*.map
1201 if exist $(DAT)\data del $(DAT)\data
1202 if exist $(DAT)\rumors del $(DAT)\rumors
1203 if exist $(DAT)\engrave del $(DAT)\engrave
1204 if exist $(DAT)\epitaph del $(DAT)\epitaph
1205 if exist $(DAT)\bogusmon del $(DAT)\bogusmon
1206 if exist $(DAT)\???-fil?.lev del $(DAT)\???-fil?.lev
1207 if exist $(DAT)\???-goal.lev del $(DAT)\???-goal.lev
1208 if exist $(DAT)\???-loca.lev del $(DAT)\???-loca.lev
1209 if exist $(DAT)\???-strt.lev del $(DAT)\???-strt.lev
1210 if exist $(DAT)\air.lev del $(DAT)\air.lev
1211 if exist $(DAT)\asmodeus.lev del $(DAT)\asmodeus.lev
1212 if exist $(DAT)\astral.lev del $(DAT)\astral.lev
1213 if exist $(DAT)\baalz.lev del $(DAT)\baalz.lev
1214 if exist $(DAT)\bigrm-*.lev del $(DAT)\bigrm-*.lev
1215 if exist $(DAT)\castle.lev del $(DAT)\castle.lev
1216 if exist $(DAT)\data del $(DAT)\data
1217 if exist $(DAT)\dungeon del $(DAT)\dungeon
1218 if exist $(DAT)\dungeon.pdf del $(DAT)\dungeon.pdf
1219 if exist $(DAT)\earth.lev del $(DAT)\earth.lev
1220 if exist $(DAT)\fakewiz?.lev del $(DAT)\fakewiz?.lev
1221 if exist $(DAT)\fire.lev del $(DAT)\fire.lev
1222 if exist $(DAT)\juiblex.lev del $(DAT)\juiblex.lev
1223 if exist $(DAT)\knox.lev del $(DAT)\knox.lev
1224 if exist $(DAT)\medusa-?.lev del $(DAT)\medusa-?.lev
1225 if exist $(DAT)\mine*.lev del $(DAT)\mine*.lev
1226 if exist $(DAT)\options del $(DAT)\options
1227 if exist $(DAT)\ttyoptions del $(DAT)\ttyoptions
1228 if exist $(DAT)\guioptions del $(DAT)\guioptions
1229 if exist $(DAT)\oracle.lev del $(DAT)\oracle.lev
1230 if exist $(DAT)\oracles del $(DAT)\oracles
1231 if exist $(DAT)\orcus.lev del $(DAT)\orcus.lev
1232 if exist $(DAT)\rumors del $(DAT)\rumors
1233 if exist $(DAT)\quest.dat del $(DAT)\quest.dat
1234 if exist $(DAT)\sanctum.lev del $(DAT)\sanctum.lev
1235 if exist $(DAT)\soko?-?.lev del $(DAT)\soko?-?.lev
1236 if exist $(DAT)\tower?.lev del $(DAT)\tower?.lev
1237 if exist $(DAT)\valley.lev del $(DAT)\valley.lev
1238 if exist $(DAT)\water.lev del $(DAT)\water.lev
1239 if exist $(DAT)\wizard?.lev del $(DAT)\wizard?.lev
1240 if exist $(DAT)\dlb.lst del $(DAT)\dlb.lst
1241 if exist $(DAT)\porthelp del $(DAT)\porthelp
1242 if exist $(O)sp_lev.tag del $(O)sp_lev.tag
1243 if exist $(SRC)\monstr.c del $(SRC)\monstr.c
1244 if exist $(SRC)\vis_tab.c del $(SRC)\vis_tab.c
1245 if exist nhdat. del nhdat.
1246 if exist $(O)obj.tag del $(O)obj.tag
1247 if exist $(O)gamedir.tag del $(O)gamedir.tag
1248 if exist $(O)nh*key.lib del $(O)nh*key.lib
1249 if exist $(O)nh*key.exp del $(O)nh*key.exp
1250 if exist $(INCL)\win32api.h del $(INCL)\win32api.h
1251 if exist $(MSWIN)\mnsel.bmp del $(MSWIN)\mnsel.bmp
1252 if exist $(MSWIN)\mnselcnt.bmp del $(MSWIN)\mnselcnt.bmp
1253 if exist $(MSWIN)\mnunsel.bmp del $(MSWIN)\mnunsel.bmp
1254 if exist $(MSWIN)\petmark.bmp del $(MSWIN)\petmark.bmp
1255 if exist $(MSWIN)\pilemark.bmp del $(MSWIN)\pilemark.bmp
1256 if exist $(MSWIN)\rip.bmp del $(MSWIN)\rip.bmp
1257 if exist $(MSWIN)\splash.bmp del $(MSWIN)\splash.bmp
1258 if exist $(MSWIN)\nethack.ico del $(MSWIN)\nethack.ico
1259 if exist $(MSWSYS)\nethack.ico del $(MSWSYS)\nethack.ico
1260 if exist $(U)recover.exe del $(U)recover.exe
1261 if exist $(U)tile2bmp.exe del $(U)tile2bmp.exe
1262 if exist $(U)tilemap.exe del $(U)tilemap.exe
1263 if exist $(U)uudecode.exe del $(U)uudecode.exe
1264 if exist $(U)dlb_main.exe del $(U)dlb_main.exe
1266 if exist $(O)*.o del $(O)*.o
1267 if exist $(O)utility.tag del $(O)utility.tag
1268 if exist $(U)makedefs.exe del $(U)makedefs.exe
1269 if exist $(U)levcomp.exe del $(U)levcomp.exe
1270 if exist $(U)dgncomp.exe del $(U)dgncomp.exe
1271 if exist $(SRC)\*.lnk del $(SRC)\*.lnk
1272 if exist $(SRC)\*.map del $(SRC)\*.map
1273 if exist $(O)install.tag del $(O)install.tag
1274 if exist $(O)console.res del $(O)console.res
1275 if exist $(O)dgncomp.MAP del $(O)dgncomp.MAP
1276 if exist $(O)dgncomp.PDB del $(O)dgncomp.PDB
1277 if exist $(O)dlb_main.MAP del $(O)dlb_main.MAP
1278 if exist $(O)dlb_main.PDB del $(O)dlb_main.PDB
1279 if exist $(O)gamedir.tag del $(O)gamedir.tag
1280 if exist $(O)levcomp.MAP del $(O)levcomp.MAP
1281 if exist $(O)levcomp.PDB del $(O)levcomp.PDB
1282 if exist $(O)makedefs.MAP del $(O)makedefs.MAP
1283 if exist $(O)makedefs.PDB del $(O)makedefs.PDB
1284 if exist $(O)NetHack.MAP del $(O)NetHack.MAP
1285 if exist $(O)nh340key.def del $(O)nh340key.def
1286 if exist $(O)nh340key.exp del $(O)nh340key.exp
1287 if exist $(O)nh340key.lib del $(O)nh340key.lib
1288 if exist $(O)nh340key.map del $(O)nh340key.map
1289 if exist $(O)nh340key.PDB del $(O)nh340key.PDB
1290 if exist $(O)nhdefkey.def del $(O)nhdefkey.def
1291 if exist $(O)nhdefkey.exp del $(O)nhdefkey.exp
1292 if exist $(O)nhdefkey.lib del $(O)nhdefkey.lib
1293 if exist $(O)nhdefkey.map del $(O)nhdefkey.map
1294 if exist $(O)nhdefkey.PDB del $(O)nhdefkey.PDB
1295 if exist $(O)nhraykey.def del $(O)nhraykey.def
1296 if exist $(O)nhraykey.exp del $(O)nhraykey.exp
1297 if exist $(O)nhraykey.lib del $(O)nhraykey.lib
1298 if exist $(O)nhraykey.map del $(O)nhraykey.map
1299 if exist $(O)nhraykey.PDB del $(O)nhraykey.PDB
1300 if exist $(O)envchk.tag del $(O)envchk.tag
1301 if exist $(O)obj.tag del $(O)obj.tag
1302 if exist $(O)sp_lev.tag del $(O)sp_lev.tag
1303 if exist $(O)uudecode.MAP del $(O)uudecode.MAP
1304 if exist $(O)uudecode.PDB del $(O)uudecode.PDB
1306 rem defer to the steps in ..\win\win32\levstuff.mak
1308 nmake -nologo -f ..\win\win32\levstuff.mak clean
1310 rem defer to the steps in ..\win\win32\dgnstuff.mak
1312 nmake -nologo -f ..\win\win32\dgnstuff.mak clean
1313 if exist $(TILEBMP16) del $(TILEBMP16)
1314 if exist $(TILEBMP32) del $(TILEBMP32)
1316 #===================================================================
1317 # OTHER DEPENDENCIES
1318 #===================================================================
1324 $(DAT)\data: $(O)utility.tag $(DATABASE)
1327 $(DAT)\rumors: $(O)utility.tag $(DAT)\rumors.tru $(DAT)\rumors.fal
1330 $(DAT)\quest.dat: $(O)utility.tag $(DAT)\quest.txt
1333 $(DAT)\oracles: $(O)utility.tag $(DAT)\oracles.txt
1336 $(DAT)\engrave: $(DAT)\engrave.txt $(U)makedefs.exe
1339 $(DAT)\epitaph: $(DAT)\epitaph.txt $(U)makedefs.exe
1342 $(DAT)\bogusmon: $(DAT)\bogusmon.txt $(U)makedefs.exe
1345 $(DAT)\dungeon: $(O)utility.tag $(DAT)\dungeon.def
1348 $(U)dgncomp dungeon.pdf
1355 $(O)nttty.o: $(HACK_H) $(TILE_H) $(INCL)\win32api.h $(MSWSYS)\nttty.c
1356 @$(cc) $(cflagsBuild) -I$(WSHR) -Fo$@ $(MSWSYS)\nttty.c
1357 $(O)winnt.o: $(HACK_H) $(INCL)\win32api.h $(MSWSYS)\winnt.c
1358 @$(cc) $(cflagsBuild) -Fo$@ $(MSWSYS)\winnt.c
1359 $(O)ntsound.o: $(HACK_H) $(MSWSYS)\ntsound.c
1360 @$(cc) $(cflagsBuild) -Fo$@ $(MSWSYS)\ntsound.c
1362 #if you aren't linking in the full gui then
1363 #include the following stub for proper linkage.
1365 $(O)guistub.o: $(HACK_H) $(MSWSYS)\stubs.c
1366 @$(cc) $(cflagsBuild) -DGUISTUB -Fo$@ $(MSWSYS)\stubs.c
1368 #if you aren't linking in the full tty then
1369 #include the following stub for proper linkage.
1371 $(O)ttystub.o: $(HACK_H) $(MSWSYS)\stubs.c
1372 @$(cc) $(cflagsBuild) -DTTYSTUB -Fo$@ $(MSWSYS)\stubs.c
1378 $(O)panic.o: $(U)panic.c $(CONFIG_H)
1379 @$(cc) $(cflagsBuild) -Fo$@ $(U)panic.c
1382 # sys/share dependencies
1385 (O)cppregex.o: $(O)cppregex.cpp $(HACK_H)
1386 @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\cppregex.cpp
1389 # The rest are stolen from sys/unix/Makefile.src,
1390 # with the following changes:
1391 # * ../include changed to $(INCL)
1392 # * slashes changed to back-slashes
1393 # * -c (which is included in CFLAGS) substituted with -Fo$@
1394 # * $(CFLAGS) replaced with $(cflagsBuild)
1395 # * $(CC) replaced with @$(CC)
1396 # * targets prefixed with $(O)
1397 # * the single win32api.h reference uncommented
1398 # but otherwise untouched.
1399 # That means that there is some irrelevant stuff
1400 # in here, but maintenance should be easier.
1403 $(O)tos.o: ..\sys\atari\tos.c $(HACK_H) $(INCL)\tcap.h
1404 @$(CC) $(cflagsBuild) -Fo$@ ..\sys\atari\tos.c
1405 $(O)pcmain.o: ..\sys\share\pcmain.c $(HACK_H) $(INCL)\dlb.h \
1407 @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\pcmain.c
1408 $(O)pcsys.o: ..\sys\share\pcsys.c $(HACK_H)
1409 @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\pcsys.c
1410 $(O)pctty.o: ..\sys\share\pctty.c $(HACK_H)
1411 @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\pctty.c
1412 $(O)pcunix.o: ..\sys\share\pcunix.c $(HACK_H)
1413 @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\pcunix.c
1414 $(O)random.o: ..\sys\share\random.c $(HACK_H)
1415 @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\random.c
1416 $(O)ioctl.o: ..\sys\share\ioctl.c $(HACK_H) $(INCL)\tcap.h
1417 @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\ioctl.c
1418 $(O)unixtty.o: ..\sys\share\unixtty.c $(HACK_H)
1419 @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\unixtty.c
1420 $(O)unixmain.o: ..\sys\unix\unixmain.c $(HACK_H) $(INCL)\dlb.h
1421 @$(CC) $(cflagsBuild) -Fo$@ ..\sys\unix\unixmain.c
1422 $(O)unixunix.o: ..\sys\unix\unixunix.c $(HACK_H)
1423 @$(CC) $(cflagsBuild) -Fo$@ ..\sys\unix\unixunix.c
1424 $(O)unixres.o: ..\sys\unix\unixres.c $(CONFIG_H)
1425 @$(CC) $(cflagsBuild) -Fo$@ ..\sys\unix\unixres.c
1426 $(O)bemain.o: ..\sys\be\bemain.c $(HACK_H) $(INCL)\dlb.h
1427 @$(CC) $(cflagsBuild) -Fo$@ ..\sys\be\bemain.c
1428 $(O)getline.o: ..\win\tty\getline.c $(HACK_H) $(INCL)\func_tab.h
1429 @$(CC) $(cflagsBuild) -Fo$@ ..\win\tty\getline.c
1430 $(O)termcap.o: ..\win\tty\termcap.c $(HACK_H) $(INCL)\tcap.h
1431 @$(CC) $(cflagsBuild) -Fo$@ ..\win\tty\termcap.c
1432 $(O)topl.o: ..\win\tty\topl.c $(HACK_H) $(INCL)\tcap.h
1433 @$(CC) $(cflagsBuild) -Fo$@ ..\win\tty\topl.c
1434 $(O)wintty.o: ..\win\tty\wintty.c $(HACK_H) $(INCL)\dlb.h $(INCL)\tcap.h
1435 @$(CC) $(cflagsBuild) -Fo$@ ..\win\tty\wintty.c
1436 $(O)Window.o: ..\win\X11\Window.c $(INCL)\xwindowp.h $(INCL)\xwindow.h \
1438 @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\Window.c
1439 $(O)dialogs.o: ..\win\X11\dialogs.c $(CONFIG_H)
1440 @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\dialogs.c
1441 $(O)winX.o: ..\win\X11\winX.c $(HACK_H) $(INCL)\winX.h $(INCL)\dlb.h \
1442 ..\win\X11\nh72icon ..\win\X11\nh56icon ..\win\X11\nh32icon
1443 @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winX.c
1444 $(O)winmap.o: ..\win\X11\winmap.c $(INCL)\xwindow.h $(HACK_H) $(INCL)\dlb.h \
1445 $(INCL)\winX.h $(INCL)\tile2x11.h
1446 @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winmap.c
1447 $(O)winmenu.o: ..\win\X11\winmenu.c $(HACK_H) $(INCL)\winX.h
1448 @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winmenu.c
1449 $(O)winmesg.o: ..\win\X11\winmesg.c $(INCL)\xwindow.h $(HACK_H) $(INCL)\winX.h
1450 @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winmesg.c
1451 $(O)winmisc.o: ..\win\X11\winmisc.c $(HACK_H) $(INCL)\func_tab.h \
1453 @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winmisc.c
1454 $(O)winstat.o: ..\win\X11\winstat.c $(HACK_H) $(INCL)\winX.h
1455 @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winstat.c
1456 $(O)wintext.o: ..\win\X11\wintext.c $(HACK_H) $(INCL)\winX.h $(INCL)\xwindow.h
1457 @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\wintext.c
1458 $(O)winval.o: ..\win\X11\winval.c $(HACK_H) $(INCL)\winX.h
1459 @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winval.c
1460 $(O)tile.o: $(SRC)\tile.c $(HACK_H)
1461 $(O)gnaskstr.o: ..\win\gnome\gnaskstr.c ..\win\gnome\gnaskstr.h \
1462 ..\win\gnome\gnmain.h
1463 @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnaskstr.c
1464 $(O)gnbind.o: ..\win\gnome\gnbind.c ..\win\gnome\gnbind.h ..\win\gnome\gnmain.h \
1465 ..\win\gnome\gnmenu.h ..\win\gnome\gnaskstr.h \
1466 ..\win\gnome\gnyesno.h
1467 @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnbind.c
1468 $(O)gnglyph.o: ..\win\gnome\gnglyph.c ..\win\gnome\gnglyph.h $(INCL)\tile2x11.h
1469 @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnglyph.c
1470 $(O)gnmain.o: ..\win\gnome\gnmain.c ..\win\gnome\gnmain.h ..\win\gnome\gnsignal.h \
1471 ..\win\gnome\gnbind.h ..\win\gnome\gnopts.h $(HACK_H) \
1473 @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnmain.c
1474 $(O)gnmap.o: ..\win\gnome\gnmap.c ..\win\gnome\gnmap.h ..\win\gnome\gnglyph.h \
1475 ..\win\gnome\gnsignal.h $(HACK_H)
1476 @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnmap.c
1477 $(O)gnmenu.o: ..\win\gnome\gnmenu.c ..\win\gnome\gnmenu.h ..\win\gnome\gnmain.h \
1478 ..\win\gnome\gnbind.h $(INCL)\func_tab.h
1479 @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnmenu.c
1480 $(O)gnmesg.o: ..\win\gnome\gnmesg.c ..\win\gnome\gnmesg.h ..\win\gnome\gnsignal.h
1481 @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnmesg.c
1482 $(O)gnopts.o: ..\win\gnome\gnopts.c ..\win\gnome\gnopts.h ..\win\gnome\gnglyph.h \
1483 ..\win\gnome\gnmain.h ..\win\gnome\gnmap.h $(HACK_H)
1484 @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnopts.c
1485 $(O)gnplayer.o: ..\win\gnome\gnplayer.c ..\win\gnome\gnplayer.h \
1486 ..\win\gnome\gnmain.h $(HACK_H)
1487 @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnplayer.c
1488 $(O)gnsignal.o: ..\win\gnome\gnsignal.c ..\win\gnome\gnsignal.h \
1489 ..\win\gnome\gnmain.h
1490 @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnsignal.c
1491 $(O)gnstatus.o: ..\win\gnome\gnstatus.c ..\win\gnome\gnstatus.h \
1492 ..\win\gnome\gnsignal.h ..\win\gnome\gn_xpms.h \
1493 ..\win\gnome\gnomeprv.h
1494 @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnstatus.c
1495 $(O)gntext.o: ..\win\gnome\gntext.c ..\win\gnome\gntext.h ..\win\gnome\gnmain.h \
1496 ..\win\gnome\gn_rip.h
1497 @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gntext.c
1498 $(O)gnyesno.o: ..\win\gnome\gnyesno.c ..\win\gnome\gnbind.h ..\win\gnome\gnyesno.h
1499 @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnyesno.c
1500 $(O)gnworn.o: ..\win\gnome\gnworn.c ..\win\gnome\gnworn.h ..\win\gnome\gnglyph.h \
1501 ..\win\gnome\gnsignal.h ..\win\gnome\gnomeprv.h
1502 @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnworn.c
1503 $(O)wingem.o: ..\win\gem\wingem.c $(HACK_H) $(INCL)\func_tab.h $(INCL)\dlb.h \
1504 $(INCL)\patchlevel.h $(INCL)\wingem.h
1505 @$(CC) $(cflagsBuild) -Fo$@ ..\win\gem\wingem.c
1506 $(O)wingem1.o: ..\win\gem\wingem1.c $(INCL)\gem_rsc.h $(INCL)\load_img.h \
1507 $(INCL)\gr_rect.h $(INCL)\wintype.h $(INCL)\wingem.h
1508 @$(CC) $(cflagsBuild) -Fo$@ ..\win\gem\wingem1.c
1509 $(O)load_img.o: ..\win\gem\load_img.c $(INCL)\load_img.h
1510 @$(CC) $(cflagsBuild) -Fo$@ ..\win\gem\load_img.c
1511 $(O)gr_rect.o: ..\win\gem\gr_rect.c $(INCL)\gr_rect.h
1512 @$(CC) $(cflagsBuild) -Fo$@ ..\win\gem\gr_rect.c
1513 $(O)tile.o: $(SRC)\tile.c $(HACK_H)
1514 $(O)qt_win.o: ..\win\Qt\qt_win.cpp $(HACK_H) $(INCL)\func_tab.h \
1515 $(INCL)\dlb.h $(INCL)\patchlevel.h $(INCL)\tile2x11.h \
1516 $(INCL)\qt_win.h $(INCL)\qt_clust.h $(INCL)\qt_kde0.h \
1517 $(INCL)\qt_xpms.h qt_win.moc qt_kde0.moc qttableview.moc
1518 $(CXX) $(CXXFLAGS) -Fo$@ ..\win\Qt\qt_win.cpp
1519 $(O)qt_clust.o: ..\win\Qt\qt_clust.cpp $(INCL)\qt_clust.h
1520 $(CXX) $(CXXFLAGS) -Fo$@ ..\win\Qt\qt_clust.cpp
1521 $(O)qttableview.o: ..\win\Qt\qttableview.cpp $(INCL)\qttableview.h
1522 $(CXX) $(CXXFLAGS) -Fo$@ ..\win\Qt\qttableview.cpp
1523 $(O)wc_chainin.o: ..\win\chain\wc_chainin.c $(HACK_H)
1524 @$(cc) $(cflagsBuild) -Fo$@ ..\win\chain\wc_chainin.c
1525 $(O)wc_chainout.o: ..\win\chain\wc_chainout.c $(HACK_H)
1526 @$(cc) $(cflagsBuild) -Fo$@ ..\win\chain\wc_chainout.c
1527 $(O)wc_trace.o: ..\win\chain\wc_trace.c $(HACK_H) $(INCL)\func_tab.h
1528 @$(cc) $(cflagsBuild) -Fo$@ ..\win\chain\wc_trace.c
1529 $(O)monstr.o: monstr.c $(CONFIG_H)
1530 $(O)vis_tab.o: vis_tab.c $(CONFIG_H) $(INCL)\vis_tab.h
1531 $(O)allmain.o: allmain.c $(HACK_H)
1532 $(O)alloc.o: alloc.c $(CONFIG_H)
1533 $(O)apply.o: apply.c $(HACK_H)
1534 $(O)artifact.o: artifact.c $(HACK_H) $(INCL)\artifact.h $(INCL)\artilist.h
1535 $(O)attrib.o: attrib.c $(HACK_H)
1536 $(O)ball.o: ball.c $(HACK_H)
1537 $(O)bones.o: bones.c $(HACK_H) $(INCL)\lev.h
1538 $(O)botl.o: botl.c $(HACK_H)
1539 $(O)cmd.o: cmd.c $(HACK_H) $(INCL)\func_tab.h
1540 $(O)dbridge.o: dbridge.c $(HACK_H)
1541 $(O)decl.o: decl.c $(HACK_H)
1542 $(O)detect.o: detect.c $(HACK_H) $(INCL)\artifact.h
1543 $(O)dig.o: dig.c $(HACK_H)
1544 $(O)display.o: display.c $(HACK_H)
1545 $(O)dlb.o: dlb.c $(CONFIG_H) $(INCL)\dlb.h
1546 $(O)do.o: do.c $(HACK_H) $(INCL)\lev.h
1547 $(O)do_name.o: do_name.c $(HACK_H)
1548 $(O)do_wear.o: do_wear.c $(HACK_H)
1549 $(O)dog.o: dog.c $(HACK_H)
1550 $(O)dogmove.o: dogmove.c $(HACK_H) $(INCL)\mfndpos.h
1551 $(O)dokick.o: dokick.c $(HACK_H)
1552 $(O)dothrow.o: dothrow.c $(HACK_H)
1553 $(O)drawing.o: drawing.c $(HACK_H) $(INCL)\tcap.h
1554 $(O)dungeon.o: dungeon.c $(HACK_H) $(INCL)\dgn_file.h $(INCL)\dlb.h
1555 $(O)eat.o: eat.c $(HACK_H)
1556 $(O)end.o: end.c $(HACK_H) $(INCL)\lev.h $(INCL)\dlb.h
1557 $(O)engrave.o: engrave.c $(HACK_H) $(INCL)\lev.h
1558 $(O)exper.o: exper.c $(HACK_H)
1559 $(O)explode.o: explode.c $(HACK_H)
1560 $(O)extralev.o: extralev.c $(HACK_H)
1561 $(O)files.o: files.c $(HACK_H) $(INCL)\dlb.h #zlib.h
1562 $(O)fountain.o: fountain.c $(HACK_H)
1563 $(O)hack.o: hack.c $(HACK_H)
1564 $(O)hacklib.o: hacklib.c $(HACK_H)
1565 $(O)invent.o: invent.c $(HACK_H)
1566 $(O)light.o: light.c $(HACK_H) $(INCL)\lev.h
1567 $(O)lock.o: lock.c $(HACK_H)
1568 $(O)mail.o: mail.c $(HACK_H) $(INCL)\mail.h
1569 $(O)makemon.o: makemon.c $(HACK_H)
1570 $(O)mapglyph.o: mapglyph.c $(HACK_H)
1571 $(O)mcastu.o: mcastu.c $(HACK_H)
1572 $(O)mhitm.o: mhitm.c $(HACK_H) $(INCL)\artifact.h
1573 $(O)mhitu.o: mhitu.c $(HACK_H) $(INCL)\artifact.h
1574 $(O)minion.o: minion.c $(HACK_H)
1575 $(O)mklev.o: mklev.c $(HACK_H)
1576 $(O)mkmap.o: mkmap.c $(HACK_H) $(INCL)\sp_lev.h
1577 $(O)mkmaze.o: mkmaze.c $(HACK_H) $(INCL)\sp_lev.h $(INCL)\lev.h
1578 $(O)mkobj.o: mkobj.c $(HACK_H)
1579 $(O)mkroom.o: mkroom.c $(HACK_H)
1580 $(O)mon.o: mon.c $(HACK_H) $(INCL)\mfndpos.h
1581 $(O)mondata.o: mondata.c $(HACK_H)
1582 $(O)monmove.o: monmove.c $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
1583 $(O)monst.o: monst.c $(CONFIG_H) $(INCL)\permonst.h $(INCL)\align.h \
1584 $(INCL)\monattk.h $(INCL)\monflag.h $(INCL)\monsym.h \
1586 $(O)mplayer.o: mplayer.c $(HACK_H)
1587 $(O)mthrowu.o: mthrowu.c $(HACK_H)
1588 $(O)muse.o: muse.c $(HACK_H)
1589 $(O)music.o: music.c $(HACK_H) #interp.c
1590 $(O)o_init.o: o_init.c $(HACK_H) $(INCL)\lev.h
1591 $(O)objects.o: objects.c $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h \
1592 $(INCL)\prop.h $(INCL)\skills.h $(INCL)\color.h
1593 $(O)objectsj.o: objectsj.c $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h \
1594 $(INCL)\prop.h $(INCL)\skills.h $(INCL)\color.h
1595 $(O)objnam.o: objnam.c $(HACK_H)
1596 $(O)options.o: options.c $(CONFIG_H) $(INCL)\objclass.h $(INCL)\flag.h \
1597 $(HACK_H) $(INCL)\tcap.h
1598 $(O)pager.o: pager.c $(HACK_H) $(INCL)\dlb.h
1599 $(O)pickup.o: pickup.c $(HACK_H)
1600 $(O)pline.o: pline.c $(HACK_H)
1601 $(O)polyself.o: polyself.c $(HACK_H)
1602 $(O)potion.o: potion.c $(HACK_H)
1603 $(O)pray.o: pray.c $(HACK_H)
1604 $(O)priest.o: priest.c $(HACK_H) $(INCL)\mfndpos.h
1605 $(O)quest.o: quest.c $(HACK_H) $(INCL)\qtext.h
1606 $(O)questpgr.o: questpgr.c $(HACK_H) $(INCL)\dlb.h $(INCL)\qtext.h
1607 $(O)read.o: read.c $(HACK_H)
1608 $(O)rect.o: rect.c $(HACK_H)
1609 $(O)region.o: region.c $(HACK_H) $(INCL)\lev.h
1610 $(O)restore.o: restore.c $(HACK_H) $(INCL)\lev.h $(INCL)\tcap.h
1611 $(O)rip.o: rip.c $(HACK_H)
1612 $(O)rnd.o: rnd.c $(HACK_H)
1613 $(O)role.o: role.c $(HACK_H)
1614 $(O)rumors.o: rumors.c $(HACK_H) $(INCL)\lev.h $(INCL)\dlb.h
1615 $(O)save.o: save.c $(HACK_H) $(INCL)\lev.h
1616 $(O)shk.o: shk.c $(HACK_H)
1617 $(O)shknam.o: shknam.c $(HACK_H)
1618 $(O)sit.o: sit.c $(HACK_H) $(INCL)\artifact.h
1619 $(O)sounds.o: sounds.c $(HACK_H)
1620 $(O)sp_lev.o: sp_lev.c $(HACK_H) $(INCL)\dlb.h $(INCL)\sp_lev.h
1621 $(O)spell.o: spell.c $(HACK_H)
1622 $(O)steal.o: steal.c $(HACK_H)
1623 $(O)steed.o: steed.c $(HACK_H)
1624 $(O)sys.o: sys.c $(HACK_H)
1625 $(O)teleport.o: teleport.c $(HACK_H)
1626 $(O)timeout.o: timeout.c $(HACK_H) $(INCL)\lev.h
1627 $(O)topten.o: topten.c $(HACK_H) $(INCL)\dlb.h $(INCL)\patchlevel.h
1628 $(O)track.o: track.c $(HACK_H)
1629 $(O)trap.o: trap.c $(HACK_H)
1630 $(O)u_init.o: u_init.c $(HACK_H)
1631 $(O)uhitm.o: uhitm.c $(HACK_H)
1632 $(O)vault.o: vault.c $(HACK_H)
1633 $(O)version.o: version.c $(HACK_H) $(INCL)\dlb.h $(INCL)\date.h \
1634 $(INCL)\patchlevel.h
1635 $(O)vision.o: vision.c $(HACK_H) $(INCL)\vis_tab.h
1636 $(O)weapon.o: weapon.c $(HACK_H)
1637 $(O)were.o: were.c $(HACK_H)
1638 $(O)wield.o: wield.c $(HACK_H)
1639 $(O)windows.o: windows.c $(HACK_H) $(INCL)\wingem.h $(INCL)\winGnome.h
1640 $(O)wizard.o: wizard.c $(HACK_H) $(INCL)\qtext.h
1641 $(O)worm.o: worm.c $(HACK_H) $(INCL)\lev.h
1642 $(O)worn.o: worn.c $(HACK_H)
1643 $(O)write.o: write.c $(HACK_H)
1644 $(O)zap.o: zap.c $(HACK_H)
1650 $(O)jlib.o: $(PCH) $(JP)\jlib.c $(HACK_H)
1651 $(O)jconj.o: $(PCH) $(JP)\jconj.c $(HACK_H)
1652 #$(O)jtrns.o: $(PCH) $(JP)\jtrns.c $(HACK_H) $(INCL)\jdata.h