NHDT->ANH, nethack->anethack, nhdat->anhdat
[aNetHack.git] / sys / winnt / Makefile.msc
blob8f8dc28687a7ed5f1b76fef91ef00450e0351e66
1 # aNetHack 0.0.1        Makefile.msc    $ANH-Date: 1451610993 2016/01/01 01:16:33 $  $ANH-Branch: aNetHack-3.6.0 $:$ANH-Revision: 1.101 $ */
2 #       Copyright (c) aNetHack PC Development Team 1993-2015
4 #==============================================================================
5 # Build Tools Environment
7 #       aNetHack 0.0.1.x Makefile for MS Visual Studio Visual C++ compiler
8 #  
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 2015 Express (pre-release)
14 #==============================================================================
15 #   This is used for building two versions of aNetHack:
17 #   A tty port utilizing the Win32 Console I/O subsystem, Console
18 #       aNetHack.exe
20 #   A Win32 native port built on the Windows API, Graphical aNetHack or
21 #       aNetHackW.exe
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 # Before we get started, this section is used to determine the version of 
34 # Visual Studio we are using.  We set VSVER to 0000 to flag any version that 
35 # is too old or untested.
38 !IF "$(_NMAKE_VER)" == "14.00.22310.1"
39 VSVER=2015
40 !ELSEIF "$(_NMAKE_VER)" == "12.00.21005.1"
41 VSVER=2013
42 !ELSEIF "$(_NMAKE_VER)" == "11.00.50727.1"
43 VSVER=2012
44 !ELSEIF "$(_NMAKE_VER)" == "10.00.40219.01"
45 VSVER=2010
46 !ELSE
47 VSVER=0000              #untested version
48 !ENDIF
50 #==============================================================================
51 # BUILD DECISIONS SECTION
53 # There are currently only 3 decisions that you have to make.
54 #       1. 32-bit or 64-bit?
55 #       2. Where do you want your build to end up?
56 #       3. Do you want debug information in the executable?
58 #---------------------------------------------------------------
59 #==============================================================================
60 # 1. 32-bit or 64-bit? (comment/uncomment appropriate TARGET_CPU line)
63 !IF ($(VSVER) >= 2012)
65 # 64 bit
66 #TARGET_CPU=x64
68 # 32 bit
69 TARGET_CPU=x86
71 !ELSE
72 # For VS2010 use "setenv /x86" or "setenv /x64" before invoking make process
73 # DO NOT DELETE THE FOLLOWING LINE
74 !include <win32.mak>
75 !ENDIF
77 #---------------------------------------------------------------
78 # 2. Where do you want the game to be built (which folder)?
81 GAMEDIR = ..\binary               # Game directory
84 #---------------------------------------------------------------
85 # 3. Do you want debug information in the executable?
87   
88 DEBUGINFO = Y
90 #==============================================================================
91 # This marks the end of the BUILD DECISIONS section.
92 #==============================================================================
94 #===============================================
95 #======= End of Modification Section ===========
96 #===============================================
98 ################################################
99 #                                              #
100 # Nothing below here should have to be changed.#
101 #                                              #
102 ################################################
105 #==============================================================================
107 #  Set the gamedir according to your preference.  
108 #  If not present prior to compilation it gets created.
111 #  Source directories.    Makedefs hardcodes these, don't change them.
114 INCL  = ..\include   # aNetHack include files
115 DAT   = ..\dat       # aNetHack data files
116 DOC   = ..\doc       # aNetHack documentation files
117 UTIL  = ..\util      # Utility source
118 SRC   = ..\src       # Main source
119 SSYS  = ..\sys\share # Shared system files
120 MSWSYS= ..\sys\winnt # mswin specific files
121 TTY   = ..\win\tty   # window port files (tty)
122 MSWIN = ..\win\win32 # window port files (WIN32)
123 WSHR  = ..\win\share # Tile support files 
126 #  Object directory.
129 OBJ     = o
131 cc=cl
132 link=link
133 rc=Rc
136 #==========================================
137 # Exe File Info.
138 #==========================================
140 #        
142 # Optional high-quality BSD random number generation routines
143 # (see pcconf.h). Set to nothing if not used.
146 RANDOM  = $(OBJ)\random.o
147 #RANDOM =
149 WINPFLAG= -DTILES -DMSWIN_GRAPHICS -DWIN32CON
151 # To store all the level files,
152 # help files, etc. in a single library file.
153 # USE_DLB = Y is left uncommented
155 USE_DLB = Y
157 ! IF ("$(USE_DLB)"=="Y")
158 DLBFLG = -DDLB
159 ! ELSE
160 DLBFLG =
161 ! ENDIF
164 # If you defined ZLIB_COMP in include/config.h and you need
165 # to link with the zlib.lib library, uncomment the line below.
166 # If necessary, prefix explicit path information to the file name
167 # otherwise it assumes the aNetHack src directory.
170 #ZLIB = zlib.lib
172 #==========================================
173 #==========================================
174 # Setting up the compiler and linker
175 #==========================================
176 #==========================================
178 !IF "$(TARGET_CPU)" == ""
179 TARGET_CPU=x86
180 !ENDIF
182 !IF "$(_NMAKE_VER)" == "10.00.40219.01"
183 CL2013=
184 !ELSE
185 ! IF ($(VSVER) > 2010)
186 CL2013=-sdl
187 ! ENDIF
188 !ENDIF
190 ccommon= -c -nologo -D"_CONSOLE" -D"_CRT_NONSTDC_NO_DEPRECATE" -D"_CRT_SECURE_NO_DEPRECATE" \
191         -D"_LIB" -D"_SCL_SECURE_NO_DEPRECATE" -D"_VC80_UPGRADE=0x0600" -D"DLB" -D"_MBCS" \
192         -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -D"NDEBUG" -D"YY_NO_UNISTD_H" -EHsc -fp:precise -Gd -GF -GS -Gy \
193         $(CL2013) -WX- -Zc:forScope -Zc:wchar_t -Zi
194 cdebug= -analyze- -D"_DEBUG" -Gm -MTd -RTC1 -Od
195 crelease= -analyze- -D"_MBCS" -errorReport:prompt -Gm- -MT -O2 -Ot -Ox -Oy
197 lcommon= /NOLOGO /INCREMENTAL:NO
199 !IF "$(DEBUGINFO)" == "Y"
200 ldebug = /DEBUG
201 cflags1=$(ccommon) $(cdebug)
202 lflags1=$(lcommon) $(ldebug)
203 !ELSE
204 ldebug= /DEBUG
205 cflags1=$(ccommon) $(crelease)
206 lflags1=$(lcommon) $(ldebug)
207 !ENDIF
209 lflags= $(lflags1)
211 !IF "$(TARGET_CPU)" == "x86"
212 cflags = $(cflags1) -D_X86_=1  -DWIN32 -D_WIN32 -W3
213 scall  = -Gz
215 !ELSEIF "$(TARGET_CPU)" == "x64"
216 cflags = $(cflags1) -D_AMD64_=1 -DWIN64 -D_WIN64  -DWIN32 -D_WIN32 -W4
217 scall  =
218 !ENDIF
220 !IF ($(VSVER) >= 2012)
221 cflags = $(cflags:-W4=-W3)
222 !ENDIF
224 #More verbose warning output options below
225 #cflags = $(cflags:-W4=-wd4131
226 #cflags = $(cflags:-W4=-Wall)
227 #cflags = $(cflags:-W3=-wd4131
228 #cflags = $(cflags:-W3=-Wall)
230 # declarations for use on Intel x86 systems
231 !IF "$(TARGET_CPU)" == "x86"
232 DLLENTRY = @12
233 EXEVER=5.01
234 MACHINE=/MACHINE:X86
235 !ENDIF
237 # declarations for use on AMD64 systems
238 !IF "$(TARGET_CPU)" == "x64"
239 DLLENTRY =
240 EXEVER=5.02
241 MACHINE=/MACHINE:X64
242 !ENDIF
244 # for Windows applications
245 conlflags = $(lflags) -subsystem:console,$(EXEVER)
246 guilflags = $(lflags) -subsystem:windows,$(EXEVER)
247 dlllflags = $(lflags) -entry:_DllMainCRTStartup$(DLLENTRY) -dll
249 # basic subsystem specific libraries, less the C Run-Time
250 baselibs    = kernel32.lib $(optlibs) $(winsocklibs) advapi32.lib
251 winlibs     = $(baselibs) user32.lib gdi32.lib comdlg32.lib winspool.lib
253 # for Windows applications that use the C Run-Time libraries
254 conlibs     = $(baselibs)
255 guilibs     = $(winlibs)
258 INCLDIR= /I..\include
260 #==========================================
261 # Util builds
262 #==========================================
264 cflagsBuild = $(cflags) $(INCLDIR) $(WINPFLAG) $(DLBFLG)
265 lflagsBuild = $(lflags) $(conlibs) $(MACHINE)
267 #==========================================
268 # - Game build
269 #==========================================
271 LIBS= user32.lib winmm.lib $(ZLIB)
273 ! IF ("$(USE_DLB)"=="Y")
274 DLB = anhdat
275 ! ELSE
276 DLB =
277 ! ENDIF
279 #==========================================
280 #================ MACROS ==================
281 #==========================================
282 # This section creates shorthand macros for many objects
283 # referenced later on in the Makefile.
286 # Shorten up the location for some files
289 O  = $(OBJ)^\
291 U  = $(UTIL)^\
294 # Utility Objects.
297 MAKESRC       = $(U)makedefs.c
299 MAKEOBJS      = $(O)makedefs.o $(O)monst.o $(O)objects.o
301 LEVCOMPOBJS   = $(O)lev_yacc.o  $(O)lev_lex.o   $(O)lev_main.o  \
302                 $(O)alloc.o $(O)decl.o  $(O)drawing.o   $(O)monst.o     $(O)objects.o   $(O)panic.o
304 DGNCOMPOBJS   = $(O)dgn_yacc.o  $(O)dgn_lex.o   $(O)dgn_main.o  \
305                 $(O)alloc.o     $(O)panic.o
307 RECOVOBJS      = $(O)recover.o
309 TILEFILES      = $(WSHR)\monsters.txt $(WSHR)\objects.txt $(WSHR)\other.txt
312 # These are not invoked during a normal game build in 3.4
314 TEXT_IO        = $(O)tiletext.o $(O)tiletxt.o   $(O)drawing.o \
315                  $(O)decl.o     $(O)monst.o     $(O)objects.o
317 TEXT_IO32      = $(O)tilete32.o $(O)tiletx32.o $(O)drawing.o \
318                  $(O)decl.o     $(O)monst.o     $(O)objects.o
320 GIFREADERS     = $(O)gifread.o  $(O)alloc.o $(O)panic.o
321 GIFREADERS32   = $(O)gifrd32.o $(O)alloc.o $(O)panic.o
323 PPMWRITERS     = $(O)ppmwrite.o $(O)alloc.o $(O)panic.o
326 #  Object files for the game itself.
329 VOBJ01 = $(O)allmain.o  $(O)alloc.o    $(O)apply.o    $(O)artifact.o
330 VOBJ02 = $(O)attrib.o   $(O)ball.o     $(O)bones.o    $(O)botl.o    
331 VOBJ03 = $(O)cmd.o      $(O)dbridge.o  $(O)decl.o     $(O)detect.o  
332 VOBJ04 = $(O)dig.o      $(O)display.o  $(O)do.o       $(O)do_name.o 
333 VOBJ05 = $(O)do_wear.o  $(O)dog.o      $(O)dogmove.o  $(O)dokick.o  
334 VOBJ06 = $(O)dothrow.o  $(O)drawing.o  $(O)dungeon.o  $(O)eat.o     
335 VOBJ07 = $(O)end.o      $(O)engrave.o  $(O)exper.o    $(O)explode.o 
336 VOBJ08 = $(O)extralev.o $(O)files.o    $(O)fountain.o $(O)hack.o    
337 VOBJ09 = $(O)hacklib.o  $(O)invent.o   $(O)light.o    $(O)lock.o    
338 VOBJ10 = $(O)mail.o     $(O)pcmain.o   $(O)makemon.o  $(O)mapglyph.o $(O)mcastu.o  
339 VOBJ11 = $(O)mhitm.o    $(O)mhitu.o    $(O)minion.o   $(O)mklev.o   
340 VOBJ12 = $(O)mkmap.o    $(O)mkmaze.o   $(O)mkobj.o    $(O)mkroom.o  
341 VOBJ13 = $(O)mon.o      $(O)mondata.o  $(O)monmove.o  $(O)monst.o   
342 VOBJ14 = $(O)monstr.o   $(O)mplayer.o  $(O)mthrowu.o  $(O)muse.o    
343 VOBJ15 = $(O)music.o    $(O)o_init.o   $(O)objects.o  $(O)objnam.o  
344 VOBJ16 = $(O)options.o  $(O)pager.o    $(O)pickup.o   $(O)pline.o   
345 VOBJ17 = $(O)polyself.o $(O)potion.o   $(O)pray.o     $(O)priest.o  
346 VOBJ18 = $(O)quest.o    $(O)questpgr.o $(RANDOM)      $(O)read.o    
347 VOBJ19 = $(O)rect.o     $(O)region.o   $(O)restore.o  $(O)rip.o     
348 VOBJ20 = $(O)rnd.o      $(O)role.o     $(O)rumors.o   $(O)save.o    
349 VOBJ21 = $(O)shk.o      $(O)shknam.o   $(O)sit.o      $(O)sounds.o  
350 VOBJ22 = $(O)sp_lev.o   $(O)spell.o    $(O)steal.o    $(O)steed.o   
351 VOBJ23 = $(O)sys.o      $(O)teleport.o $(O)timeout.o  $(O)topten.o
352 VOBJ24 = $(O)track.o    $(O)trap.o     $(O)u_init.o   $(O)uhitm.o
353 VOBJ25 = $(O)vault.o    $(O)vis_tab.o  $(O)vision.o   $(O)weapon.o
354 VOBJ26 = $(O)were.o     $(O)wield.o    $(O)windows.o  $(O)wizard.o
355 VOBJ27 = $(O)worm.o     $(O)worn.o     $(O)write.o    $(O)zap.o     
357 DLBOBJ = $(O)dlb.o
359 REGEX  = $(O)cppregex.o
361 TTYOBJ = $(O)topl.o     $(O)getline.o  $(O)wintty.o
363 SOBJ   = $(O)winnt.o    $(O)pcsys.o      $(O)pcunix.o  \
364            $(SOUND)     $(O)nhlan.o
366 OBJS   = $(VOBJ01) $(VOBJ02) $(VOBJ03) $(VOBJ04) $(VOBJ05) \
367          $(VOBJ06) $(VOBJ07) $(VOBJ08) $(VOBJ09) $(VOBJ10) \
368          $(VOBJ11) $(VOBJ12) $(VOBJ13) $(VOBJ14) $(VOBJ15) \
369          $(VOBJ16) $(VOBJ17) $(VOBJ18) $(VOBJ19) $(VOBJ20) \
370          $(VOBJ21) $(VOBJ22) $(VOBJ23) $(VOBJ24) $(VOBJ25) \
371          $(VOBJ26) $(VOBJ27) $(VOBJ28) $(VOBJ29) $(REGEX)
373 GUIOBJ  = $(O)mhaskyn.o $(O)mhdlg.o \
374         $(O)mhfont.o $(O)mhinput.o $(O)mhmain.o $(O)mhmap.o \
375         $(O)mhmenu.o $(O)mhmsgwnd.o $(O)mhrip.o $(O)mhsplash.o \
376         $(O)mhstatus.o $(O)mhtext.o $(O)mswproc.o $(O)winhack.o
378 GUIHDR  = $(MSWIN)\mhaskyn.h $(MSWIN)\mhdlg.h $(MSWIN)\mhfont.h \
379         $(MSWIN)\mhinput.h $(MSWIN)\mhmain.h $(MSWIN)\mhmap.h $(MSWIN)\mhmenu.h \
380         $(MSWIN)\mhmsg.h $(MSWIN)\mhmsgwnd.h $(MSWIN)\mhrip.h $(MSWIN)\mhstatus.h \
381         $(MSWIN)\mhtext.h $(MSWIN)\resource.h $(MSWIN)\winMS.h
383 COMCTRL = comctl32.lib
385 KEYDLLS = $(GAMEDIR)\nhdefkey.dll $(GAMEDIR)\nh340key.dll $(GAMEDIR)\nhraykey.dll
387 TILEUTIL16  = $(UTIL)\tile2bmp.exe
388 TILEBMP16   = $(SRC)\tiles.bmp
390 TILEUTIL32  = $(UTIL)\til2bm32.exe
391 TILEBMP32   = $(SRC)\tiles32.bmp
393 SOUND = $(OBJ)\ntsound.o
395 VVOBJ  = $(O)version.o
397 ALLOBJ  = $(SOBJ) $(DLBOBJ)  $(WOBJ) $(OBJS) $(VVOBJ)
399 OPTIONS_FILE = $(DAT)\options
401 #==========================================
402 # Header file macros
403 #==========================================
405 CONFIG_H = $(INCL)\config.h $(INCL)\config1.h $(INCL)\tradstdc.h \
406                 $(INCL)\global.h $(INCL)\coord.h $(INCL)\vmsconf.h \
407                 $(INCL)\system.h $(INCL)\unixconf.h $(INCL)\os2conf.h \
408                 $(INCL)\micro.h $(INCL)\pcconf.h $(INCL)\tosconf.h \
409                 $(INCL)\amiconf.h $(INCL)\macconf.h $(INCL)\beconf.h \
410                 $(INCL)\ntconf.h
412 HACK_H = $(INCL)\hack.h $(CONFIG_H) $(INCL)\align.h $(INCL)\context.h \
413                 $(INCL)\dungeon.h $(INCL)\monsym.h $(INCL)\mkroom.h \
414                 $(INCL)\objclass.h $(INCL)\youprop.h $(INCL)\prop.h \
415                 $(INCL)\permonst.h $(INCL)\monattk.h \
416                 $(INCL)\monflag.h $(INCL)\mondata.h $(INCL)\pm.h \
417                 $(INCL)\wintype.h $(INCL)\decl.h $(INCL)\quest.h \
418                 $(INCL)\spell.h $(INCL)\color.h $(INCL)\obj.h \
419                 $(INCL)\you.h $(INCL)\attrib.h $(INCL)\monst.h $(INCL)\lint.h \
420                 $(INCL)\mextra.h $(INCL)\skills.h $(INCL)\onames.h \
421                 $(INCL)\timeout.h $(INCL)\trap.h $(INCL)\flag.h $(INCL)\rm.h \
422                 $(INCL)\vision.h $(INCL)\display.h $(INCL)\engrave.h \
423                 $(INCL)\rect.h $(INCL)\region.h $(INCL)\winprocs.h $(INCL)\botl.h \
424                 $(INCL)\wintty.h $(INCL)\sys.h $(INCL)\trampoli.h
426 LEV_H       = $(INCL)\lev.h
427 DGN_FILE_H  = $(INCL)\dgn_file.h
428 LEV_COMP_H  = $(INCL)\lev_comp.h
429 SP_LEV_H    = $(INCL)\sp_lev.h
430 TILE_H      = ..\win\share\tile.h
432 #==========================================
433 # Miscellaneous
434 #==========================================
436 DATABASE = $(DAT)\data.base
438 #==========================================
439 #================ RULES ==================
440 #==========================================
442 .SUFFIXES: .exe .o .til .uu .c .y .l
444 #==========================================
445 # Rules for files in src
446 #==========================================
448 .c{$(OBJ)}.o:
449         @$(cc) $(cflagsBuild)  -Fo$@ $<
451 {$(SRC)}.c{$(OBJ)}.o:
452         @$(cc) $(cflagsBuild)   -Fo$@  $<
454 #==========================================
455 # Rules for files in sys\share
456 #==========================================
458 {$(SSYS)}.c{$(OBJ)}.o:
459         @$(cc) $(cflagsBuild)  -Fo$@  $<
461 {$(SSYS)}.cpp{$(OBJ)}.o:
462         @$(CC) $(cflagsBuild) /EHsc -Fo$@  $<
464 #==========================================
465 # Rules for files in sys\winnt
466 #==========================================
468 {$(MSWSYS)}.c{$(OBJ)}.o:
469         @$(cc) $(cflagsBuild)  -Fo$@  $<
471 {$(MSWSYS)}.h{$(INCL)}.h:
472         @copy $< $@
474 #==========================================
475 # Rules for files in util
476 #==========================================
478 {$(UTIL)}.c{$(OBJ)}.o:
479         @$(cc) $(cflagsBuild) -Fo$@ $<
481 #==========================================
482 # Rules for files in win\share
483 #==========================================
485 {$(WSHR)}.c{$(OBJ)}.o:
486         @$(cc) $(cflagsBuild)  -Fo$@ $<
488 {$(WSHR)}.h{$(INCL)}.h:
489         @copy $< $@
491 #{$(WSHR)}.txt{$(DAT)}.txt:
492 #       @copy $< $@
494 #==========================================
495 # Rules for files in win\tty
496 #==========================================
498 {$(TTY)}.c{$(OBJ)}.o:
499         $(cc) $(cflagsBuild)  -Fo$@  $<
502 #==========================================
503 # Rules for files in win\win32
504 #==========================================
506 {$(MSWIN)}.c{$(OBJ)}.o:
507         @$(cc) $(cflagsBuild)  -Fo$@  $<
509 #==========================================
510 #=============== TARGETS ==================
511 #==========================================
514 #  The default make target (so just typing 'nmake' is useful).
516 default : install
519 #  The game target.
523 #  Everything
526 all :   install
528 install: envchk $(O)obj.tag $(O)utility.tag $(GAMEDIR)\aNetHack.exe $(GAMEDIR)\aNetHackW.exe $(O)install.tag
529          @echo Done.
531 $(O)install.tag:        $(DAT)\data     $(DAT)\rumors    $(DAT)\dungeon \
532                 $(DAT)\oracles  $(DAT)\quest.dat $(O)sp_lev.tag $(DLB)
533 ! IF ("$(USE_DLB)"=="Y")
534         copy anhdat                $(GAMEDIR)
535         copy $(DAT)\license       $(GAMEDIR)
536         copy $(DAT)\opthelp       $(GAMEDIR)
537 ! ELSE
538         copy $(DAT)\*.            $(GAMEDIR)
539         copy $(DAT)\*.dat         $(GAMEDIR)
540         copy $(DAT)\*.lev         $(GAMEDIR)
541         if exist $(GAMEDIR)\makefile del $(GAMEDIR)\makefile
542 ! ENDIF
543         if not exist $(GAMEDIR)\sysconf copy $(MSWSYS)\sysconf $(GAMEDIR)
544         if exist $(DAT)\symbols copy $(DAT)\symbols $(GAMEDIR)
545         if exist $(DOC)\guidebook.txt copy $(DOC)\guidebook.txt $(GAMEDIR)\Guidebook.txt
546         if exist $(DOC)\anethack.txt copy $(DOC)\anethack.txt $(GAMEDIR)\aNetHack.txt
547         @if exist $(GAMEDIR)\aNetHack.PDB echo NOTE: You may want to remove $(GAMEDIR:\=/)/aNetHack.PDB to conserve space
548         @if exist $(GAMEDIR)\aNetHackW.PDB echo NOTE: You may want to remove $(GAMEDIR:\=/)/aNetHackW.PDB to conserve space
549         -copy $(MSWSYS)\defaults.nh   $(GAMEDIR)\defaults.nh
550         -if not exist $(GAMEDIR)\record. goto>$(GAMEDIR)\record.
551         echo install done > $@
553 #       copy $(MSWSYS)\winnt.hlp    $(GAMEDIR)
555 recover: $(U)recover.exe
556         if exist $(U)recover.exe copy $(U)recover.exe  $(GAMEDIR)
557         if exist $(DOC)\recover.txt copy $(DOC)\recover.txt $(GAMEDIR)\recover.txt
559 $(O)sp_lev.tag: $(O)utility.tag $(DAT)\bigroom.des  $(DAT)\castle.des \
560         $(DAT)\endgame.des $(DAT)\gehennom.des $(DAT)\knox.des   \
561         $(DAT)\medusa.des  $(DAT)\oracle.des   $(DAT)\tower.des  \
562         $(DAT)\yendor.des  $(DAT)\arch.des     $(DAT)\barb.des   \
563         $(DAT)\caveman.des $(DAT)\healer.des   $(DAT)\knight.des \
564         $(DAT)\monk.des    $(DAT)\priest.des   $(DAT)\ranger.des \
565         $(DAT)\rogue.des   $(DAT)\samurai.des  $(DAT)\sokoban.des \
566         $(DAT)\tourist.des $(DAT)\valkyrie.des $(DAT)\wizard.des
567         cd $(DAT)
568         $(U)levcomp bigroom.des
569         $(U)levcomp castle.des
570         $(U)levcomp endgame.des
571         $(U)levcomp gehennom.des
572         $(U)levcomp knox.des
573         $(U)levcomp mines.des
574         $(U)levcomp medusa.des
575         $(U)levcomp oracle.des
576         $(U)levcomp sokoban.des
577         $(U)levcomp tower.des
578         $(U)levcomp yendor.des
579         $(U)levcomp arch.des
580         $(U)levcomp barb.des
581         $(U)levcomp caveman.des
582         $(U)levcomp healer.des
583         $(U)levcomp knight.des
584         $(U)levcomp monk.des
585         $(U)levcomp priest.des
586         $(U)levcomp ranger.des
587         $(U)levcomp rogue.des
588         $(U)levcomp samurai.des
589         $(U)levcomp tourist.des
590         $(U)levcomp valkyrie.des
591         $(U)levcomp wizard.des
592         cd $(SRC)
593         echo sp_levs done > $(O)sp_lev.tag
595 $(O)utility.tag: $(INCL)\date.h $(INCL)\onames.h $(INCL)\pm.h \
596                 $(SRC)\monstr.c         $(SRC)\vis_tab.c  \
597                 $(U)levcomp.exe $(INCL)\vis_tab.h \
598                 $(U)dgncomp.exe $(TILEUTIL16)
599              @echo utilities made >$@
600              @echo utilities made.
602 tileutil: $(U)gif2txt.exe $(U)gif2tx32.exe $(U)txt2ppm.exe
603         @echo Optional tile development utilities are up to date.
605 $(O)winhack.res: $(TILEBMP16) $(MSWIN)\winhack.rc $(MSWIN)\mnsel.bmp \
606         $(MSWIN)\mnselcnt.bmp $(MSWIN)\mnunsel.bmp \
607         $(MSWIN)\petmark.bmp $(MSWIN)\pilemark.bmp $(MSWIN)\aNetHack.ico $(MSWIN)\rip.bmp \
608         $(MSWIN)\splash.bmp
609         @$(rc) -r -fo$@ -i$(MSWIN) -dNDEBUG $(MSWIN)\winhack.rc
611 $(O)console.res: $(MSWSYS)\console.rc $(MSWSYS)\aNetHack.ico
612         @$(rc) -r -fo$@ -i$(MSWSYS) -dNDEBUG $(MSWSYS)\console.rc
615 #==========================================
616 #  The game targets.
617 #==========================================
619 #  The section for linking the aNetHack image looks a little strange at 
620 #  first, especially if you are used to UNIX makes, or NDMAKE.  It is 
621 #  Microsoft nmake specific, and it gets around the problem of the 
622 #  link command line being too long for the linker.  An "in-line" linker 
623 #  response file is generated temporarily.
625 #  It takes advantage of the following features of nmake:
627 #  Inline files : 
628 #                       Specifying the "<<" means to start an inline file.
629 #                       Another "<<" at the start of a line closes the 
630 #                       inline file.
632 #  Substitution within Macros:
633 #                       $(mymacro:string1=string2) replaces every
634 #                       occurrence of string1 with string2 in the 
635 #                       macro mymacro.  Special ascii key codes may be 
636 #                       used in the substitution text by preceding it 
637 #                       with ^ as we have done below.  Every occurence
638 #                       of a <tab> in $(ALLOBJ) is replaced by 
639 #                       <+><return><tab>.
641 GAMEOBJ=$(ALLOBJ:^      =^
643 GAMEOBJ=$(GAMEOBJ:^ =^
647 #  DO NOT INDENT THE << below!
650 # aNetHack
651 # full gui linkage libs:
652 #    libs: $(LIBS) $(conlibs) $(guilibs) $(COMCTRL)
653 #    objs: $(GAMEOBJ) $(TTYOBJ) $(O)nttty.o $(O)tile.o $(GUIOBJ)
654 # otherwise:
655 #    libs: $(LIBS) $(conlibs) 
656 #    objs: $(GAMEOBJ) $(TTYOBJ) $(O)tile.o $(O)guistub.o
659 $(GAMEDIR)\aNetHack.exe : $(O)gamedir.tag $(O)tile.o $(O)nttty.o $(O)guistub.o \
660                         $(ALLOBJ) $(TTYOBJ) $(GUIOBJ) $(O)console.res $(KEYDLLS)
661         @if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
662         @echo Linking $(@:\=/)
663         $(link) $(lflagsBuild) $(conlflags) /STACK:2048 /PDB:$(GAMEDIR)\$(@B).PDB /MAP:$(O)$(@B).MAP \
664                 $(LIBS) $(conlibs) -out:$@ @<<$(@B).lnk
665                 $(GAMEOBJ)
666                 $(TTYOBJ)
667                 $(O)nttty.o
668                 $(O)tile.o
669                 $(O)guistub.o
670                 $(O)console.res
672         @if exist $(O)install.tag del $(O)install.tag
674 # aNetHackW
675 # full tty linkage libs:
676 #    libs: $(LIBS) $(guilibs) $(COMCTRL)
677 #    objs: $(GAMEOBJ) $(GUIOBJ) $(TTYOBJ) $(O)tile.o $(O)nttty.o
678 # otherwise:
679 #    libs: $(LIBS) $(guilibs) $(COMCTRL)
680 #    objs: $(GAMEOBJ) $(GUIOBJ) $(O)tile.o $(O)ttystub.o
682 $(GAMEDIR)\aNetHackW.exe : $(O)gamedir.tag $(O)tile.o $(O)ttystub.o \
683                         $(ALLOBJ) $(TTYOBJ) $(GUIOBJ) $(O)winhack.res $(O)gamedir.tag $(KEYDLLS)
684         @if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
685         @echo   Linking $(@:\=/)
686         $(link) $(lflagsBuild) $(guilflags) /STACK:2048 /PDB:$(GAMEDIR)\$(@B).PDB \
687                 /MAP:$(O)$(@B).MAP $(LIBS) $(guilibs) $(COMCTRL) -out:$@ @<<$(@B).lnk
688                 $(GAMEOBJ)
689                 $(GUIOBJ)
690                 $(O)tile.o
691                 $(O)ttystub.o
692                 $(O)winhack.res
694         @if exist $(O)install.tag del $(O)install.tag
696 $(O)gamedir.tag:
697         @if not exist $(GAMEDIR)\*.* echo creating directory $(GAMEDIR:\=/)
698         @if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
699         @echo directory created > $@
701 $(O)nhdefkey.def:
702         @echo LIBRARY $(@B) >$@
703 ! IF "$(TARGET_CPU)"=="x64" || "$(PROCESSOR_ARCHITECTURE)"=="x64"
704 ! ELSE
705         @echo EXPORTS >>$@
706         @echo    ProcessKeystroke >>$@
707         @echo    NHkbhit >>$@
708         @echo    CheckInput >>$@
709         @echo    SourceWhere >>$@
710         @echo    SourceAuthor >>$@
711         @echo    KeyHandlerName >>$@
712 ! ENDIF
714 $(GAMEDIR)\nhdefkey.dll : $(O)$(@B).o $(O)gamedir.tag $(O)$(@B).def
715         @echo Linking $(@:\=/)
716         @$(link) $(ldebug) /RELEASE /DLL user32.lib \
717                 /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).map" /DEF:$(O)$(@B).def \
718                 /IMPLIB:$(O)$(@B).lib -out:$@ $(O)$(@B).o
720 $(O)nh340key.def:
721         @echo LIBRARY $(@B) >$@
722 ! IF "$(TARGET_CPU)"=="x64" || "$(PROCESSOR_ARCHITECTURE)"=="x64"
723 ! ELSE
724         @echo EXPORTS >>$@
725         @echo    ProcessKeystroke >>$@
726         @echo    NHkbhit >>$@
727         @echo    CheckInput >>$@
728         @echo    SourceWhere >>$@
729         @echo    SourceAuthor >>$@
730         @echo    KeyHandlerName >>$@
731 ! ENDIF
733 $(GAMEDIR)\nh340key.dll : $(O)$(@B).o $(O)gamedir.tag $(O)$(@B).def
734         @echo Linking $(@:\=/)
735         @$(link) $(ldebug) /RELEASE /NOLOGO /DLL user32.lib \
736                 /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).map" /DEF:$(O)$(@B).def \
737                 /IMPLIB:$(O)$(@B).lib -out:$@ $(O)$(@B).o
739 $(O)nhraykey.def:
740         @echo LIBRARY $(@B) >$@
741 ! IF "$(TARGET_CPU)"=="x64" || "$(PROCESSOR_ARCHITECTURE)"=="x64"
742 ! ELSE
743         @echo EXPORTS >>$@
744         @echo    ProcessKeystroke >>$@
745         @echo    NHkbhit >>$@
746         @echo    CheckInput >>$@
747         @echo    SourceWhere >>$@
748         @echo    SourceAuthor >>$@
749         @echo    KeyHandlerName >>$@
750 ! ENDIF
752 $(GAMEDIR)\nhraykey.dll : $(O)$(@B).o $(O)gamedir.tag $(O)$(@B).def
753         @echo Linking $(@:\=/)
754         @$(link) $(ldebug) /RELEASE /NOLOGO /DLL user32.lib \
755                 /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).map" /DEF:$(O)$(@B).def \
756                 /IMPLIB:$(O)$(@B).lib -out:$@ $(O)$(@B).o
759 #  Secondary Targets.
761     
762 #==========================================
763 # Makedefs Stuff
764 #==========================================
765 $(U)nhsizes.exe: $(O)nhsizes.o
766         @echo Linking $(@:\=/)
767         $(link) $(lflagsBuild) -out:$@ $(O)nhsizes.o $(O)panic.o $(O)alloc.o
769 $(O)nhsizes.o: $(CONFIG_H) nhsizes.c
770         @$(cc) $(cflagsBuild) -Fo$@ nhsizes.c
772 $(U)makedefs.exe:       $(MAKEOBJS)
773         @echo Linking $(@:\=/)
774         @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(MAKEOBJS)
776 $(O)makedefs.o: $(CONFIG_H)     $(INCL)\monattk.h $(INCL)\monflag.h   $(INCL)\objclass.h \
777                  $(INCL)\monsym.h    $(INCL)\qtext.h    $(INCL)\patchlevel.h \
778                  $(U)makedefs.c
779         @if not exist $(OBJ)\*.* echo creating directory $(OBJ:\=/)
780         @if not exist $(OBJ)\*.* mkdir $(OBJ)
781         @$(cc) $(cflagsBuild) -Fo$@ $(U)makedefs.c
784 #  date.h should be remade every time any of the source or include
785 #  files is modified.
788 $(INCL)\date.h $(OPTIONS_FILE) : $(U)makedefs.exe
789         $(U)makedefs -v
791 $(INCL)\onames.h : $(U)makedefs.exe
792         $(U)makedefs -o
794 $(INCL)\pm.h : $(U)makedefs.exe
795         $(U)makedefs -p
797 #$(INCL)\trap.h : $(U)makedefs.exe
798 #       $(U)makedefs -t
800 $(SRC)\monstr.c: $(U)makedefs.exe
801         $(U)makedefs -m
803 $(INCL)\vis_tab.h: $(U)makedefs.exe
804         $(U)makedefs -z
806 $(SRC)\vis_tab.c: $(U)makedefs.exe
807         $(U)makedefs -z
809 #==========================================
810 # uudecode utility and uuencoded targets
811 #==========================================
813 $(U)uudecode.exe: $(O)uudecode.o
814         @echo Linking $(@:\=/)
815         @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(O)uudecode.o
817 $(O)uudecode.o: $(SSYS)\uudecode.c
818         @$(cc) $(cflagsBuild) /D_CRT_SECURE_NO_DEPRECATE -Fo$@ $(SSYS)\uudecode.c
820 $(MSWSYS)\aNetHack.ico : $(U)uudecode.exe $(MSWSYS)\nhico.uu 
821         chdir $(MSWSYS)
822         ..\..\util\uudecode.exe nhico.uu
823         chdir ..\..\src
825 $(MSWIN)\aNetHack.ico : $(U)uudecode.exe $(MSWSYS)\nhico.uu 
826         chdir $(MSWIN)
827         ..\..\util\uudecode.exe ../../sys/winnt/nhico.uu
828         chdir ..\..\src
830 $(MSWIN)\mnsel.bmp: $(U)uudecode.exe $(MSWIN)\mnsel.uu
831         chdir $(MSWIN)
832         ..\..\util\uudecode.exe mnsel.uu
833         chdir ..\..\src
835 $(MSWIN)\mnselcnt.bmp: $(U)uudecode.exe $(MSWIN)\mnselcnt.uu
836         chdir $(MSWIN)
837         ..\..\util\uudecode.exe mnselcnt.uu
838         chdir ..\..\src
840 $(MSWIN)\mnunsel.bmp: $(U)uudecode.exe $(MSWIN)\mnunsel.uu
841         chdir $(MSWIN)
842         ..\..\util\uudecode.exe mnunsel.uu
843         chdir ..\..\src
845 $(MSWIN)\petmark.bmp: $(U)uudecode.exe $(MSWIN)\petmark.uu
846         chdir $(MSWIN)
847         ..\..\util\uudecode.exe petmark.uu
848         chdir ..\..\src
850 $(MSWIN)\pilemark.bmp: $(U)uudecode.exe $(MSWIN)\pilemark.uu
851         chdir $(MSWIN)
852         ..\..\util\uudecode.exe pilemark.uu
853         chdir ..\..\src
855 $(MSWIN)\rip.bmp: $(U)uudecode.exe $(MSWIN)\rip.uu
856         chdir $(MSWIN)
857         ..\..\util\uudecode.exe rip.uu
858         chdir ..\..\src
860 $(MSWIN)\splash.bmp: $(U)uudecode.exe $(MSWIN)\splash.uu
861         chdir $(MSWIN)
862         ..\..\util\uudecode.exe splash.uu
863         chdir ..\..\src
865 #=================================================
866 # Level Compiler Stuff
867 #=================================================
869 # defer to the steps in ..\win\win32\levstuff.mak
872 $(U)lev_yacc.c $(INCL)\lev_comp.h: $(U)lev_comp.y
873         nmake -nologo -f ..\win\win32\levstuff.mak default
875 $(O)lev_yacc.o: $(HACK_H)   $(SP_LEV_H) $(INCL)\lev_comp.h $(U)lev_yacc.c
876         @$(cc) $(cflagsBuild) -Fo$@ $(U)lev_yacc.c
878 $(O)lev_lex.o: $(HACK_H) $(INCL)\lev_comp.h $(SP_LEV_H) \
879                $(U)lev_lex.c
880         @$(cc) $(cflagsBuild) -Fo$@ $(U)lev_lex.c
882 $(O)lev_main.o: $(U)lev_main.c $(HACK_H) $(SP_LEV_H)
883         @$(cc) $(cflagsBuild) -Fo$@ $(U)lev_main.c
885 $(U)levcomp.exe: $(LEVCOMPOBJS)
886         @echo Linking $(@:\=/)
887         @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
888                 $(LEVCOMPOBJS:^ =^
889                 )
892 #=================================================
893 # Dungeon Compiler Stuff
894 #=================================================
896 # defer to the steps in ..\win\win32\dgnstuff.mak
898 $(U)dgn_yacc.c $(INCL)\dgn_comp.h : $(U)dgn_comp.y
899         nmake -nologo -f ..\win\win32\dgnstuff.mak default
901 $(O)dgn_yacc.o: $(HACK_H)   $(DGN_FILE_H) $(INCL)\dgn_comp.h $(U)dgn_yacc.c
902         @$(cc) $(cflagsBuild) -Fo$@ $(U)dgn_yacc.c
904 $(O)dgn_lex.o: $(HACK_H)   $(DGN_FILE_H)  $(INCL)\dgn_comp.h \
905         $(U)dgn_lex.c
906         @$(cc) $(cflagsBuild) -Fo$@ $(U)dgn_lex.c
908 $(O)dgn_main.o: $(HACK_H) $(U)dgn_main.c
909         @$(cc) $(cflagsBuild) -Fo$@ $(U)dgn_main.c
911 $(U)dgncomp.exe: $(DGNCOMPOBJS)
912         @echo Linking $(@:\=/)
913         @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
914                 $(DGNCOMPOBJS:^ =^
915                 )
918 #=================================================
919 # Create directory for holding object files
920 #=================================================
922 $(O)obj.tag:
923         @if not exist $(OBJ)\*.* echo creating directory $(OBJ:\=/)
924         @if not exist $(OBJ)\*.* mkdir $(OBJ)
925         @echo directory created >$@
927 #==========================================
928 # Notify of any CL environment variables
929 # in effect since they change the compiler
930 # options.
931 #==========================================
933 envchk:
934 !       IF ($(VSVER) < 2010)
935         @echo Your Visual Studio version is too old or untested ($(_NMAKE_VER))
936 !ERROR Your Visual Studio version is too old or untested ($(_NMAKE_VER))
937 !       ENDIF
938 !       IF "$(TARGET_CPU)"=="x64"
939         @echo Windows x64 64-bit build
940 !       ELSE
941         @echo Windows x86 32-bit build
942 !       ENDIF
943 !       IF "$(CL)"!=""
944 #          @echo Warning, the CL Environment variable is defined:
945 #          @echo CL=$(CL)
946 !       ENDIF
947            @echo ----
948            @echo NOTE: This build will include tile support.
949            @echo ----
951 #==========================================
952 #=========== SECONDARY TARGETS ============
953 #==========================================
955 #===========================================
956 # Header files NOT distributed in $(INCL)
957 #===========================================
959 $(INCL)\win32api.h: $(MSWSYS)\win32api.h
960         copy $(MSWSYS)\win32api.h $@
963 #==========================================
964 # DLB utility and anhdat file creation
965 #==========================================
967 $(U)dlb_main.exe: $(DLBOBJ) $(O)dlb.o
968         @echo Linking $(@:\=/)
969         @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
970                 $(O)dlb_main.o
971                 $(O)dlb.o
972                 $(O)alloc.o
973                 $(O)panic.o
976 $(O)dlb.o:      $(O)dlb_main.o $(O)alloc.o $(O)panic.o $(INCL)\dlb.h
977         @$(cc) $(cflagsBuild) /Fo$@ $(SRC)\dlb.c
978         
979 $(O)dlb_main.o: $(UTIL)\dlb_main.c $(INCL)\config.h $(INCL)\dlb.h
980         @$(cc) $(cflagsBuild) /Fo$@ $(UTIL)\dlb_main.c
982 $(DAT)\porthelp: $(MSWSYS)\porthelp
983         @copy $(MSWSYS)\porthelp $@ >nul
985 anhdat: $(U)dlb_main.exe $(DAT)\data $(DAT)\oracles $(OPTIONS_FILE) \
986         $(DAT)\quest.dat $(DAT)\rumors $(DAT)\help $(DAT)\hh $(DAT)\cmdhelp \
987         $(DAT)\history $(DAT)\opthelp $(DAT)\wizhelp $(DAT)\dungeon $(DAT)\porthelp \
988         $(DAT)\license $(DAT)\engrave $(DAT)\epitaph $(DAT)\bogusmon $(DAT)\tribute $(O)sp_lev.tag
989         cd $(DAT)
990         echo data >dlb.lst
991         echo oracles >>dlb.lst
992         if exist options echo options >>dlb.lst
993         if exist ttyoptions echo ttyoptions >>dlb.lst
994         if exist guioptions echo guioptions >>dlb.lst
995         if exist porthelp echo porthelp >>dlb.lst
996         echo quest.dat >>dlb.lst
997         echo rumors >>dlb.lst
998         echo engrave >>dlb.lst
999         echo epitaph >>dlb.lst
1000         echo bogusmon >>dlb.lst
1001         echo tribute >>dlb.lst
1002         echo help >>dlb.lst
1003         echo hh >>dlb.lst
1004         echo cmdhelp >>dlb.lst
1005         echo history >>dlb.lst
1006         echo opthelp >>dlb.lst
1007         echo wizhelp >>dlb.lst
1008         echo dungeon >>dlb.lst
1009         echo license >>dlb.lst
1010         for %%N in (*.lev) do echo %%N >>dlb.lst
1011         $(U)dlb_main cIf dlb.lst $(SRC)\anhdat
1012         cd $(SRC)
1014 #==========================================
1015 #  Recover Utility
1016 #==========================================
1018 $(U)recover.exe: $(RECOVOBJS)
1019         @echo Linking $(@:\=/)
1020         $(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(RECOVOBJS)
1022 $(O)recover.o: $(CONFIG_H) $(U)recover.c $(INCL)\win32api.h
1023         @$(cc) $(cflagsBuild) -Fo$@ $(U)recover.c
1025 #==========================================
1026 #  Tile Mapping
1027 #==========================================
1029 $(SRC)\tile.c: $(U)tilemap.exe
1030         @echo A new $(@:\=/) has been created
1031         @$(U)tilemap
1033 $(U)tilemap.exe: $(O)tilemap.o
1034         @echo Linking $(@:\=/)
1035         @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(O)tilemap.o
1037 $(O)tilemap.o: $(WSHR)\tilemap.c $(HACK_H)
1038         @$(cc) $(cflagsBuild) -Fo$@ $(WSHR)\tilemap.c
1040 $(O)tiletx32.o: $(WSHR)\tilemap.c $(HACK_H)
1041         @$(cc) $(cflagsBuild) /DTILETEXT /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\tilemap.c
1043 $(O)tiletxt.o: $(WSHR)\tilemap.c $(HACK_H)
1044         @$(cc) $(cflagsBuild) /DTILETEXT -Fo$@ $(WSHR)\tilemap.c
1046 $(O)gifread.o: $(WSHR)\gifread.c  $(CONFIG_H) $(TILE_H)
1047         @$(cc) $(cflagsBuild) -I$(WSHR) -Fo$@ $(WSHR)\gifread.c
1049 $(O)gifrd32.o: $(WSHR)\gifread.c  $(CONFIG_H) $(TILE_H)
1050         @$(cc) $(cflagsBuild) -I$(WSHR) /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\gifread.c
1052 $(O)ppmwrite.o: $(WSHR)\ppmwrite.c $(CONFIG_H) $(TILE_H)
1053         @$(cc) $(cflagsBuild) -I$(WSHR) -Fo$@ $(WSHR)\ppmwrite.c
1055 $(O)tiletext.o: $(WSHR)\tiletext.c  $(CONFIG_H) $(TILE_H)
1056         @$(cc) $(cflagsBuild) -I$(WSHR) -Fo$@ $(WSHR)\tiletext.c
1058 $(O)tilete32.o: $(WSHR)\tiletext.c  $(CONFIG_H) $(TILE_H)
1059         @$(cc) $(cflagsBuild) -I$(WSHR) /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\tiletext.c
1061 #==========================================
1062 # Optional Tile Utilities
1063 #==========================================
1065 $(U)gif2txt.exe: $(GIFREADERS) $(TEXT_IO)
1066         @echo Linking $(@:\=/)
1067         @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
1068                 $(GIFREADERS:^  =^
1069                 )
1070                 $(TEXT_IO:^     =^
1071                 )
1074 $(U)gif2tx32.exe: $(GIFREADERS32) $(TEXT_IO32)
1075         @echo Linking $(@:\=/)
1076         @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
1077                 $(GIFREADERS32:^        =^
1078                 )
1079                 $(TEXT_IO32:^   =^
1080                 )
1083 $(U)txt2ppm.exe: $(PPMWRITERS) $(TEXT_IO)
1084         @echo Linking $(@:\=/)
1085         @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
1086                 $(PPMWRITERS:^  =^
1087                 )
1088                 $(TEXT_IO:^     =^
1089                 )
1092 $(TILEBMP16): $(TILEUTIL16) $(TILEFILES)
1093         @echo Creating 16x16 binary tile files (this may take some time)
1094         @$(U)tile2bmp $(TILEBMP16)
1095 #$(TILEBMP32): $(TILEUTIL32) $(TILEFILES32)
1096 #       @echo Creating 32x32 binary tile files (this may take some time)
1097 #       @$(U)til2bm32 $(TILEBMP32)
1100 $(U)tile2bmp.exe: $(O)tile2bmp.o $(TEXT_IO)
1101         @echo Linking $(@:\=/)
1102         @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
1103                 $(O)tile2bmp.o
1104                 $(TEXT_IO:^  =^
1105                 )
1108 $(U)til2bm32.exe: $(O)til2bm32.o $(TEXT_IO32)
1109         @echo Linking $(@:\=/)
1110         @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
1111                 $(O)til2bm32.o
1112                 $(TEXT_IO32:^  =^
1113                 )
1116 $(O)tile2bmp.o: $(WSHR)\tile2bmp.c $(HACK_H) $(TILE_H) $(INCL)\win32api.h
1117         @$(cc) $(cflagsBuild) -I$(WSHR) /DPACKED_FILE /Fo$@ $(WSHR)\tile2bmp.c
1119 $(O)til2bm32.o: $(WSHR)\tile2bmp.c $(HACK_H) $(TILE_H) $(INCL)\win32api.h
1120         @$(cc) $(cflagsBuild) -I$(WSHR) /DPACKED_FILE /DTILE_X=32 /DTILE_Y=32 /Fo$@ $(WSHR)\tile2bmp.c
1122 #==========================================
1123 # Housekeeping
1124 #==========================================
1126 spotless: clean
1127 ! IF ("$(OBJ)"!="")
1128         if exist $(OBJ)\* rmdir $(OBJ) /s /Q
1129         if exist $(GAMEDIR)\nhdefkey.dll del $(GAMEDIR)\nhdefkey.dll
1130         if exist $(GAMEDIR)\nh340key.dll del $(GAMEDIR)\nh340key.dll
1131         if exist $(GAMEDIR)\nhraykey.dll del $(GAMEDIR)\nhraykey.dll
1132         if exist $(GAMEDIR)\aNetHack.exe  del $(GAMEDIR)\aNetHack.exe
1133         if exist $(GAMEDIR)\aNetHack.pdb  del $(GAMEDIR)\aNetHack.pdb
1134         if exist $(GAMEDIR)\anhdat        del $(GAMEDIR)\anhdat
1135 ! ENDIF
1136         if exist $(INCL)\date.h    del $(INCL)\date.h
1137         if exist $(INCL)\onames.h  del $(INCL)\onames.h
1138         if exist $(INCL)\pm.h      del $(INCL)\pm.h
1139         if exist $(INCL)\vis_tab.h del $(INCL)\vis_tab.h
1140         if exist $(SRC)\vis_tab.c  del $(SRC)\vis_tab.c
1141         if exist $(SRC)\tile.c     del $(SRC)\tile.c
1142         if exist $(U)*.lnk         del $(U)*.lnk
1143         if exist $(U)*.map         del $(U)*.map
1144         if exist $(DAT)\data       del $(DAT)\data
1145         if exist $(DAT)\rumors     del $(DAT)\rumors
1146         if exist $(DAT)\engrave    del $(DAT)\engrave
1147         if exist $(DAT)\epitaph    del $(DAT)\epitaph
1148         if exist $(DAT)\bogusmon   del $(DAT)\bogusmon
1149         if exist $(DAT)\???-fil?.lev    del $(DAT)\???-fil?.lev
1150         if exist $(DAT)\???-goal.lev    del $(DAT)\???-goal.lev
1151         if exist $(DAT)\???-loca.lev    del $(DAT)\???-loca.lev
1152         if exist $(DAT)\???-strt.lev    del $(DAT)\???-strt.lev
1153         if exist $(DAT)\air.lev         del $(DAT)\air.lev
1154         if exist $(DAT)\asmodeus.lev    del $(DAT)\asmodeus.lev
1155         if exist $(DAT)\astral.lev      del $(DAT)\astral.lev
1156         if exist $(DAT)\baalz.lev       del $(DAT)\baalz.lev
1157         if exist $(DAT)\bigrm-*.lev     del $(DAT)\bigrm-*.lev
1158         if exist $(DAT)\castle.lev      del $(DAT)\castle.lev
1159         if exist $(DAT)\data            del $(DAT)\data
1160         if exist $(DAT)\dungeon         del $(DAT)\dungeon
1161         if exist $(DAT)\dungeon.pdf     del $(DAT)\dungeon.pdf
1162         if exist $(DAT)\earth.lev       del $(DAT)\earth.lev
1163         if exist $(DAT)\fakewiz?.lev    del $(DAT)\fakewiz?.lev
1164         if exist $(DAT)\fire.lev        del $(DAT)\fire.lev
1165         if exist $(DAT)\juiblex.lev     del $(DAT)\juiblex.lev
1166         if exist $(DAT)\knox.lev        del $(DAT)\knox.lev
1167         if exist $(DAT)\medusa-?.lev    del $(DAT)\medusa-?.lev
1168         if exist $(DAT)\mine*.lev       del $(DAT)\mine*.lev
1169         if exist $(DAT)\options         del $(DAT)\options
1170         if exist $(DAT)\ttyoptions      del $(DAT)\ttyoptions
1171         if exist $(DAT)\guioptions      del $(DAT)\guioptions
1172         if exist $(DAT)\oracle.lev      del $(DAT)\oracle.lev
1173         if exist $(DAT)\oracles         del $(DAT)\oracles
1174         if exist $(DAT)\orcus.lev       del $(DAT)\orcus.lev
1175         if exist $(DAT)\rumors          del $(DAT)\rumors
1176         if exist $(DAT)\quest.dat       del $(DAT)\quest.dat
1177         if exist $(DAT)\sanctum.lev     del $(DAT)\sanctum.lev
1178         if exist $(DAT)\soko?-?.lev     del $(DAT)\soko?-?.lev
1179         if exist $(DAT)\tower?.lev      del $(DAT)\tower?.lev
1180         if exist $(DAT)\valley.lev      del $(DAT)\valley.lev
1181         if exist $(DAT)\water.lev       del $(DAT)\water.lev
1182         if exist $(DAT)\wizard?.lev     del $(DAT)\wizard?.lev
1183         if exist $(DAT)\dlb.lst         del $(DAT)\dlb.lst
1184         if exist $(O)sp_lev.tag         del $(O)sp_lev.tag
1185         if exist $(SRC)\monstr.c        del $(SRC)\monstr.c
1186         if exist $(SRC)\vis_tab.c       del $(SRC)\vis_tab.c
1187         if exist $(U)recover.exe        del $(U)recover.exe
1188         if exist anhdat.                        del anhdat.
1189         if exist $(O)obj.tag            del $(O)obj.tag
1190         if exist $(O)gamedir.tag        del $(O)gamedir.tag
1191         if exist $(O)nh*key.lib         del $(O)nh*key.lib
1192         if exist $(O)nh*key.exp         del $(O)nh*key.exp
1193 clean:
1194         if exist $(O)*.o del $(O)*.o
1195         if exist $(O)utility.tag   del $(O)utility.tag
1196         if exist $(U)makedefs.exe  del $(U)makedefs.exe
1197         if exist $(U)levcomp.exe   del $(U)levcomp.exe
1198         if exist $(U)dgncomp.exe   del $(U)dgncomp.exe
1199         if exist $(SRC)\*.lnk      del $(SRC)\*.lnk
1200         if exist $(SRC)\*.map      del $(SRC)\*.map
1201         if exist $(O)install.tag   del $(O)install.tag
1202         if exist $(O)console.res  del $(O)console.res
1203         if exist $(O)dgncomp.MAP  del $(O)dgncomp.MAP
1204         if exist $(O)dgncomp.PDB  del $(O)dgncomp.PDB
1205         if exist $(O)dlb_main.MAP del $(O)dlb_main.MAP
1206         if exist $(O)dlb_main.PDB del $(O)dlb_main.PDB
1207         if exist $(O)gamedir.tag  del $(O)gamedir.tag
1208         if exist $(O)levcomp.MAP  del $(O)levcomp.MAP
1209         if exist $(O)levcomp.PDB  del $(O)levcomp.PDB
1210         if exist $(O)makedefs.MAP del $(O)makedefs.MAP
1211         if exist $(O)makedefs.PDB del $(O)makedefs.PDB
1212         if exist $(O)aNetHack.MAP  del $(O)aNetHack.MAP
1213         if exist $(O)nh340key.def del $(O)nh340key.def
1214         if exist $(O)nh340key.exp del $(O)nh340key.exp
1215         if exist $(O)nh340key.lib del $(O)nh340key.lib
1216         if exist $(O)nh340key.map del $(O)nh340key.map
1217         if exist $(O)nh340key.PDB del $(O)nh340key.PDB
1218         if exist $(O)nhdefkey.def del $(O)nhdefkey.def
1219         if exist $(O)nhdefkey.exp del $(O)nhdefkey.exp
1220         if exist $(O)nhdefkey.lib del $(O)nhdefkey.lib
1221         if exist $(O)nhdefkey.map del $(O)nhdefkey.map
1222         if exist $(O)nhdefkey.PDB del $(O)nhdefkey.PDB
1223         if exist $(O)nhraykey.def del $(O)nhraykey.def
1224         if exist $(O)nhraykey.exp del $(O)nhraykey.exp
1225         if exist $(O)nhraykey.lib del $(O)nhraykey.lib
1226         if exist $(O)nhraykey.map del $(O)nhraykey.map
1227         if exist $(O)nhraykey.PDB del $(O)nhraykey.PDB
1228         if exist $(O)obj.tag      del $(O)obj.tag
1229         if exist $(O)sp_lev.tag   del $(O)sp_lev.tag
1230         if exist $(O)uudecode.MAP del $(O)uudecode.MAP
1231         if exist $(O)uudecode.PDB del $(O)uudecode.PDB
1232         rem
1233         rem defer to the steps in ..\win\win32\levstuff.mak
1234         rem 
1235         nmake -nologo -f ..\win\win32\levstuff.mak clean
1236         rem
1237         rem defer to the steps in ..\win\win32\dgnstuff.mak
1238         rem
1239         nmake -nologo -f ..\win\win32\dgnstuff.mak clean
1241         if exist $(TILEBMP16)        del $(TILEBMP16)
1242         if exist $(TILEBMP32)        del $(TILEBMP32)
1244 #===================================================================
1245 # OTHER DEPENDENCIES
1246 #===================================================================
1249 # dat dependencies
1252 $(DAT)\data: $(O)utility.tag    $(DATABASE)
1253         $(U)makedefs -d
1255 $(DAT)\rumors: $(O)utility.tag    $(DAT)\rumors.tru   $(DAT)\rumors.fal
1256         $(U)makedefs -r
1258 $(DAT)\quest.dat: $(O)utility.tag  $(DAT)\quest.txt
1259         $(U)makedefs -q
1261 $(DAT)\oracles: $(O)utility.tag    $(DAT)\oracles.txt
1262         $(U)makedefs -h
1264 $(DAT)\engrave: $(DAT)\engrave.txt $(U)makedefs.exe
1265         $(U)makedefs -s
1267 $(DAT)\epitaph: $(DAT)\epitaph.txt $(U)makedefs.exe
1268         $(U)makedefs -s
1270 $(DAT)\bogusmon: $(DAT)\bogusmon.txt $(U)makedefs.exe
1271         $(U)makedefs -s
1273 $(DAT)\dungeon: $(O)utility.tag  $(DAT)\dungeon.def
1274         $(U)makedefs -e
1275         cd $(DAT)
1276         $(U)dgncomp dungeon.pdf
1277         cd $(SRC)
1280 # NT dependencies
1283 $(O)nttty.o:   $(HACK_H) $(TILE_H) $(INCL)\win32api.h $(MSWSYS)\nttty.c
1284         @$(cc) $(cflagsBuild) -I$(WSHR) -Fo$@  $(MSWSYS)\nttty.c
1285 $(O)winnt.o: $(HACK_H) $(INCL)\win32api.h $(MSWSYS)\winnt.c
1286         @$(cc) $(cflagsBuild) -Fo$@  $(MSWSYS)\winnt.c
1287 $(O)ntsound.o: $(HACK_H) $(MSWSYS)\ntsound.c
1288         @$(cc) $(cflagsBuild)  -Fo$@ $(MSWSYS)\ntsound.c
1290 #if you aren't linking in the full gui then
1291 #include the following stub for proper linkage.
1293 $(O)guistub.o: $(HACK_H) $(MSWSYS)\stubs.c
1294         @$(cc) $(cflagsBuild) -DGUISTUB -Fo$@ $(MSWSYS)\stubs.c
1296 #if you aren't linking in the full tty then
1297 #include the following stub for proper linkage.
1299 $(O)ttystub.o: $(HACK_H) $(MSWSYS)\stubs.c
1300         @$(cc) $(cflagsBuild) -DTTYSTUB -Fo$@ $(MSWSYS)\stubs.c
1303 # util dependencies
1306 $(O)panic.o:  $(U)panic.c $(CONFIG_H)
1307         @$(cc) $(cflagsBuild) -Fo$@ $(U)panic.c
1310 # sys/share dependencies
1313 (O)cppregex.o:  $(O)cppregex.cpp $(HACK_H)
1314         @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\cppregex.cpp
1317 # The rest are stolen from sys/unix/Makefile.src, 
1318 # with the following changes:
1319 #   * ../include changed to $(INCL)
1320 #   * slashes changed to back-slashes 
1321 #   * -c (which is included in CFLAGS) substituted with -Fo$@
1322 #   * $(CFLAGS) replaced with $(cflagsBuild)
1323 #   * $(CC) replaced with @$(CC)
1324 #   * targets prefixed with $(O)
1325 #   * the single win32api.h reference uncommented
1326 # but otherwise untouched.
1327 # That means that there is some irrelevant stuff
1328 # in here, but maintenance should be easier.
1331 $(O)tos.o: ..\sys\atari\tos.c $(HACK_H) $(INCL)\tcap.h
1332         @$(CC) $(cflagsBuild) -Fo$@ ..\sys\atari\tos.c
1333 $(O)pcmain.o: ..\sys\share\pcmain.c $(HACK_H) $(INCL)\dlb.h \
1334                 $(INCL)\win32api.h
1335         @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\pcmain.c
1336 $(O)pcsys.o: ..\sys\share\pcsys.c $(HACK_H)
1337         @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\pcsys.c
1338 $(O)pctty.o: ..\sys\share\pctty.c $(HACK_H)
1339         @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\pctty.c
1340 $(O)pcunix.o: ..\sys\share\pcunix.c $(HACK_H)
1341         @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\pcunix.c
1342 $(O)random.o: ..\sys\share\random.c $(HACK_H)
1343         @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\random.c
1344 $(O)ioctl.o: ..\sys\share\ioctl.c $(HACK_H) $(INCL)\tcap.h
1345         @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\ioctl.c
1346 $(O)unixtty.o: ..\sys\share\unixtty.c $(HACK_H)
1347         @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\unixtty.c
1348 $(O)unixmain.o: ..\sys\unix\unixmain.c $(HACK_H) $(INCL)\dlb.h
1349         @$(CC) $(cflagsBuild) -Fo$@ ..\sys\unix\unixmain.c
1350 $(O)unixunix.o: ..\sys\unix\unixunix.c $(HACK_H)
1351         @$(CC) $(cflagsBuild) -Fo$@ ..\sys\unix\unixunix.c
1352 $(O)unixres.o: ..\sys\unix\unixres.c $(CONFIG_H)
1353         @$(CC) $(cflagsBuild) -Fo$@ ..\sys\unix\unixres.c
1354 $(O)bemain.o: ..\sys\be\bemain.c $(HACK_H) $(INCL)\dlb.h
1355         @$(CC) $(cflagsBuild) -Fo$@ ..\sys\be\bemain.c
1356 $(O)getline.o: ..\win\tty\getline.c $(HACK_H) $(INCL)\func_tab.h
1357         @$(CC) $(cflagsBuild) -Fo$@ ..\win\tty\getline.c
1358 $(O)termcap.o: ..\win\tty\termcap.c $(HACK_H) $(INCL)\tcap.h
1359         @$(CC) $(cflagsBuild) -Fo$@ ..\win\tty\termcap.c
1360 $(O)topl.o: ..\win\tty\topl.c $(HACK_H) $(INCL)\tcap.h
1361         @$(CC) $(cflagsBuild) -Fo$@ ..\win\tty\topl.c
1362 $(O)wintty.o: ..\win\tty\wintty.c $(HACK_H) $(INCL)\dlb.h $(INCL)\tcap.h
1363         @$(CC) $(cflagsBuild) -Fo$@ ..\win\tty\wintty.c
1364 $(O)Window.o: ..\win\X11\Window.c $(INCL)\xwindowp.h $(INCL)\xwindow.h \
1365                 $(CONFIG_H)
1366         @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\Window.c
1367 $(O)dialogs.o: ..\win\X11\dialogs.c $(CONFIG_H)
1368         @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\dialogs.c
1369 $(O)winX.o: ..\win\X11\winX.c $(HACK_H) $(INCL)\winX.h $(INCL)\dlb.h \
1370                 ..\win\X11\nh72icon ..\win\X11\nh56icon ..\win\X11\nh32icon
1371         @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winX.c
1372 $(O)winmap.o: ..\win\X11\winmap.c $(INCL)\xwindow.h $(HACK_H) $(INCL)\dlb.h \
1373                 $(INCL)\winX.h $(INCL)\tile2x11.h
1374         @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winmap.c
1375 $(O)winmenu.o: ..\win\X11\winmenu.c $(HACK_H) $(INCL)\winX.h
1376         @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winmenu.c
1377 $(O)winmesg.o: ..\win\X11\winmesg.c $(INCL)\xwindow.h $(HACK_H) $(INCL)\winX.h
1378         @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winmesg.c
1379 $(O)winmisc.o: ..\win\X11\winmisc.c $(HACK_H) $(INCL)\func_tab.h \
1380                 $(INCL)\winX.h
1381         @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winmisc.c
1382 $(O)winstat.o: ..\win\X11\winstat.c $(HACK_H) $(INCL)\winX.h
1383         @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winstat.c
1384 $(O)wintext.o: ..\win\X11\wintext.c $(HACK_H) $(INCL)\winX.h $(INCL)\xwindow.h
1385         @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\wintext.c
1386 $(O)winval.o: ..\win\X11\winval.c $(HACK_H) $(INCL)\winX.h
1387         @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winval.c
1388 $(O)tile.o: $(SRC)\tile.c $(HACK_H)
1389 $(O)gnaskstr.o: ..\win\gnome\gnaskstr.c ..\win\gnome\gnaskstr.h \
1390                 ..\win\gnome\gnmain.h
1391         @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnaskstr.c
1392 $(O)gnbind.o: ..\win\gnome\gnbind.c ..\win\gnome\gnbind.h ..\win\gnome\gnmain.h \
1393                 ..\win\gnome\gnmenu.h ..\win\gnome\gnaskstr.h \
1394                 ..\win\gnome\gnyesno.h
1395         @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnbind.c
1396 $(O)gnglyph.o: ..\win\gnome\gnglyph.c ..\win\gnome\gnglyph.h $(INCL)\tile2x11.h
1397         @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnglyph.c
1398 $(O)gnmain.o: ..\win\gnome\gnmain.c ..\win\gnome\gnmain.h ..\win\gnome\gnsignal.h \
1399                 ..\win\gnome\gnbind.h ..\win\gnome\gnopts.h $(HACK_H) \
1400                 $(INCL)\date.h
1401         @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnmain.c
1402 $(O)gnmap.o: ..\win\gnome\gnmap.c ..\win\gnome\gnmap.h ..\win\gnome\gnglyph.h \
1403                 ..\win\gnome\gnsignal.h $(HACK_H)
1404         @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnmap.c
1405 $(O)gnmenu.o: ..\win\gnome\gnmenu.c ..\win\gnome\gnmenu.h ..\win\gnome\gnmain.h \
1406                 ..\win\gnome\gnbind.h $(INCL)\func_tab.h
1407         @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnmenu.c
1408 $(O)gnmesg.o: ..\win\gnome\gnmesg.c ..\win\gnome\gnmesg.h ..\win\gnome\gnsignal.h
1409         @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnmesg.c
1410 $(O)gnopts.o: ..\win\gnome\gnopts.c ..\win\gnome\gnopts.h ..\win\gnome\gnglyph.h \
1411                 ..\win\gnome\gnmain.h ..\win\gnome\gnmap.h $(HACK_H)
1412         @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnopts.c
1413 $(O)gnplayer.o: ..\win\gnome\gnplayer.c ..\win\gnome\gnplayer.h \
1414                 ..\win\gnome\gnmain.h $(HACK_H)
1415         @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnplayer.c
1416 $(O)gnsignal.o: ..\win\gnome\gnsignal.c ..\win\gnome\gnsignal.h \
1417                 ..\win\gnome\gnmain.h
1418         @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnsignal.c
1419 $(O)gnstatus.o: ..\win\gnome\gnstatus.c ..\win\gnome\gnstatus.h \
1420                 ..\win\gnome\gnsignal.h ..\win\gnome\gn_xpms.h \
1421                 ..\win\gnome\gnomeprv.h
1422         @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnstatus.c
1423 $(O)gntext.o: ..\win\gnome\gntext.c ..\win\gnome\gntext.h ..\win\gnome\gnmain.h \
1424                 ..\win\gnome\gn_rip.h
1425         @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gntext.c
1426 $(O)gnyesno.o: ..\win\gnome\gnyesno.c ..\win\gnome\gnbind.h ..\win\gnome\gnyesno.h
1427         @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnyesno.c
1428 $(O)gnworn.o: ..\win\gnome\gnworn.c ..\win\gnome\gnworn.h ..\win\gnome\gnglyph.h \
1429                 ..\win\gnome\gnsignal.h ..\win\gnome\gnomeprv.h
1430         @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnworn.c
1431 $(O)wingem.o: ..\win\gem\wingem.c $(HACK_H) $(INCL)\func_tab.h $(INCL)\dlb.h \
1432                 $(INCL)\patchlevel.h $(INCL)\wingem.h
1433         @$(CC) $(cflagsBuild) -Fo$@ ..\win\gem\wingem.c
1434 $(O)wingem1.o: ..\win\gem\wingem1.c $(INCL)\gem_rsc.h $(INCL)\load_img.h \
1435                 $(INCL)\gr_rect.h $(INCL)\wintype.h $(INCL)\wingem.h
1436         @$(CC) $(cflagsBuild) -Fo$@ ..\win\gem\wingem1.c
1437 $(O)load_img.o: ..\win\gem\load_img.c $(INCL)\load_img.h
1438         @$(CC) $(cflagsBuild) -Fo$@ ..\win\gem\load_img.c
1439 $(O)gr_rect.o: ..\win\gem\gr_rect.c $(INCL)\gr_rect.h
1440         @$(CC) $(cflagsBuild) -Fo$@ ..\win\gem\gr_rect.c
1441 $(O)tile.o: $(SRC)\tile.c $(HACK_H)
1442 $(O)qt_win.o: ..\win\Qt\qt_win.cpp $(HACK_H) $(INCL)\func_tab.h \
1443                 $(INCL)\dlb.h $(INCL)\patchlevel.h $(INCL)\tile2x11.h \
1444                 $(INCL)\qt_win.h $(INCL)\qt_clust.h $(INCL)\qt_kde0.h \
1445                 $(INCL)\qt_xpms.h qt_win.moc qt_kde0.moc qttableview.moc
1446         $(CXX) $(CXXFLAGS) -Fo$@ ..\win\Qt\qt_win.cpp
1447 $(O)qt_clust.o: ..\win\Qt\qt_clust.cpp $(INCL)\qt_clust.h
1448         $(CXX) $(CXXFLAGS) -Fo$@ ..\win\Qt\qt_clust.cpp
1449 $(O)qttableview.o: ..\win\Qt\qttableview.cpp $(INCL)\qttableview.h
1450         $(CXX) $(CXXFLAGS) -Fo$@ ..\win\Qt\qttableview.cpp
1451 $(O)wc_chainin.o: ..\win\chain\wc_chainin.c $(HACK_H)
1452         @$(cc) $(cflagsBuild) -Fo$@ ..\win\chain\wc_chainin.c
1453 $(O)wc_chainout.o: ..\win\chain\wc_chainout.c $(HACK_H)
1454         @$(cc) $(cflagsBuild) -Fo$@ ..\win\chain\wc_chainout.c
1455 $(O)wc_trace.o: ..\win\chain\wc_trace.c $(HACK_H) $(INCL)\func_tab.h
1456         @$(cc) $(cflagsBuild) -Fo$@ ..\win\chain\wc_trace.c
1457 $(O)monstr.o: monstr.c $(CONFIG_H)
1458 $(O)vis_tab.o: vis_tab.c $(CONFIG_H) $(INCL)\vis_tab.h
1459 $(O)allmain.o: allmain.c $(HACK_H)
1460 $(O)alloc.o: alloc.c $(CONFIG_H)
1461 $(O)apply.o: apply.c $(HACK_H)
1462 $(O)artifact.o: artifact.c $(HACK_H) $(INCL)\artifact.h $(INCL)\artilist.h
1463 $(O)attrib.o: attrib.c $(HACK_H)
1464 $(O)ball.o: ball.c $(HACK_H)
1465 $(O)bones.o: bones.c $(HACK_H) $(INCL)\lev.h
1466 $(O)botl.o: botl.c $(HACK_H)
1467 $(O)cmd.o: cmd.c $(HACK_H) $(INCL)\func_tab.h
1468 $(O)dbridge.o: dbridge.c $(HACK_H)
1469 $(O)decl.o: decl.c $(HACK_H)
1470 $(O)detect.o: detect.c $(HACK_H) $(INCL)\artifact.h
1471 $(O)dig.o: dig.c $(HACK_H)
1472 $(O)display.o: display.c $(HACK_H)
1473 $(O)dlb.o: dlb.c $(CONFIG_H) $(INCL)\dlb.h
1474 $(O)do.o: do.c $(HACK_H) $(INCL)\lev.h
1475 $(O)do_name.o: do_name.c $(HACK_H)
1476 $(O)do_wear.o: do_wear.c $(HACK_H)
1477 $(O)dog.o: dog.c $(HACK_H)
1478 $(O)dogmove.o: dogmove.c $(HACK_H) $(INCL)\mfndpos.h
1479 $(O)dokick.o: dokick.c $(HACK_H)
1480 $(O)dothrow.o: dothrow.c $(HACK_H)
1481 $(O)drawing.o: drawing.c $(HACK_H) $(INCL)\tcap.h
1482 $(O)dungeon.o: dungeon.c $(HACK_H) $(INCL)\dgn_file.h $(INCL)\dlb.h
1483 $(O)eat.o: eat.c $(HACK_H)
1484 $(O)end.o: end.c $(HACK_H) $(INCL)\lev.h $(INCL)\dlb.h
1485 $(O)engrave.o: engrave.c $(HACK_H) $(INCL)\lev.h
1486 $(O)exper.o: exper.c $(HACK_H)
1487 $(O)explode.o: explode.c $(HACK_H)
1488 $(O)extralev.o: extralev.c $(HACK_H)
1489 $(O)files.o: files.c $(HACK_H) $(INCL)\dlb.h #zlib.h
1490 $(O)fountain.o: fountain.c $(HACK_H)
1491 $(O)hack.o: hack.c $(HACK_H)
1492 $(O)hacklib.o: hacklib.c $(HACK_H)
1493 $(O)invent.o: invent.c $(HACK_H)
1494 $(O)light.o: light.c $(HACK_H) $(INCL)\lev.h
1495 $(O)lock.o: lock.c $(HACK_H)
1496 $(O)mail.o: mail.c $(HACK_H) $(INCL)\mail.h
1497 $(O)makemon.o: makemon.c $(HACK_H)
1498 $(O)mapglyph.o: mapglyph.c $(HACK_H)
1499 $(O)mcastu.o: mcastu.c $(HACK_H)
1500 $(O)mhitm.o: mhitm.c $(HACK_H) $(INCL)\artifact.h
1501 $(O)mhitu.o: mhitu.c $(HACK_H) $(INCL)\artifact.h
1502 $(O)minion.o: minion.c $(HACK_H)
1503 $(O)mklev.o: mklev.c $(HACK_H)
1504 $(O)mkmap.o: mkmap.c $(HACK_H) $(INCL)\sp_lev.h
1505 $(O)mkmaze.o: mkmaze.c $(HACK_H) $(INCL)\sp_lev.h $(INCL)\lev.h
1506 $(O)mkobj.o: mkobj.c $(HACK_H)
1507 $(O)mkroom.o: mkroom.c $(HACK_H)
1508 $(O)mon.o: mon.c $(HACK_H) $(INCL)\mfndpos.h
1509 $(O)mondata.o: mondata.c $(HACK_H)
1510 $(O)monmove.o: monmove.c $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
1511 $(O)monst.o: monst.c $(CONFIG_H) $(INCL)\permonst.h $(INCL)\align.h \
1512                 $(INCL)\monattk.h $(INCL)\monflag.h $(INCL)\monsym.h \
1513                 $(INCL)\color.h
1514 $(O)mplayer.o: mplayer.c $(HACK_H)
1515 $(O)mthrowu.o: mthrowu.c $(HACK_H)
1516 $(O)muse.o: muse.c $(HACK_H)
1517 $(O)music.o: music.c $(HACK_H) #interp.c
1518 $(O)o_init.o: o_init.c $(HACK_H) $(INCL)\lev.h
1519 $(O)objects.o: objects.c $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h \
1520                 $(INCL)\prop.h $(INCL)\skills.h $(INCL)\color.h
1521 $(O)objnam.o: objnam.c $(HACK_H)
1522 $(O)options.o: options.c $(CONFIG_H) $(INCL)\objclass.h $(INCL)\flag.h \
1523                 $(HACK_H) $(INCL)\tcap.h
1524 $(O)pager.o: pager.c $(HACK_H) $(INCL)\dlb.h
1525 $(O)pickup.o: pickup.c $(HACK_H)
1526 $(O)pline.o: pline.c $(HACK_H)
1527 $(O)polyself.o: polyself.c $(HACK_H)
1528 $(O)potion.o: potion.c $(HACK_H)
1529 $(O)pray.o: pray.c $(HACK_H)
1530 $(O)priest.o: priest.c $(HACK_H) $(INCL)\mfndpos.h
1531 $(O)quest.o: quest.c $(HACK_H) $(INCL)\qtext.h
1532 $(O)questpgr.o: questpgr.c $(HACK_H) $(INCL)\dlb.h $(INCL)\qtext.h
1533 $(O)read.o: read.c $(HACK_H)
1534 $(O)rect.o: rect.c $(HACK_H)
1535 $(O)region.o: region.c $(HACK_H) $(INCL)\lev.h
1536 $(O)restore.o: restore.c $(HACK_H) $(INCL)\lev.h $(INCL)\tcap.h
1537 $(O)rip.o: rip.c $(HACK_H)
1538 $(O)rnd.o: rnd.c $(HACK_H)
1539 $(O)role.o: role.c $(HACK_H)
1540 $(O)rumors.o: rumors.c $(HACK_H) $(INCL)\lev.h $(INCL)\dlb.h
1541 $(O)save.o: save.c $(HACK_H) $(INCL)\lev.h
1542 $(O)shk.o: shk.c $(HACK_H)
1543 $(O)shknam.o: shknam.c $(HACK_H)
1544 $(O)sit.o: sit.c $(HACK_H) $(INCL)\artifact.h
1545 $(O)sounds.o: sounds.c $(HACK_H)
1546 $(O)sp_lev.o: sp_lev.c $(HACK_H) $(INCL)\dlb.h $(INCL)\sp_lev.h
1547 $(O)spell.o: spell.c $(HACK_H)
1548 $(O)steal.o: steal.c $(HACK_H)
1549 $(O)steed.o: steed.c $(HACK_H)
1550 $(O)sys.o: sys.c $(HACK_H)
1551 $(O)teleport.o: teleport.c $(HACK_H)
1552 $(O)timeout.o: timeout.c $(HACK_H) $(INCL)\lev.h
1553 $(O)topten.o: topten.c $(HACK_H) $(INCL)\dlb.h $(INCL)\patchlevel.h
1554 $(O)track.o: track.c $(HACK_H)
1555 $(O)trap.o: trap.c $(HACK_H)
1556 $(O)u_init.o: u_init.c $(HACK_H)
1557 $(O)uhitm.o: uhitm.c $(HACK_H)
1558 $(O)vault.o: vault.c $(HACK_H)
1559 $(O)version.o: version.c $(HACK_H) $(INCL)\dlb.h $(INCL)\date.h \
1560                 $(INCL)\patchlevel.h
1561 $(O)vision.o: vision.c $(HACK_H) $(INCL)\vis_tab.h
1562 $(O)weapon.o: weapon.c $(HACK_H)
1563 $(O)were.o: were.c $(HACK_H)
1564 $(O)wield.o: wield.c $(HACK_H)
1565 $(O)windows.o: windows.c $(HACK_H) $(INCL)\wingem.h $(INCL)\winGnome.h
1566 $(O)wizard.o: wizard.c $(HACK_H) $(INCL)\qtext.h
1567 $(O)worm.o: worm.c $(HACK_H) $(INCL)\lev.h
1568 $(O)worn.o: worn.c $(HACK_H)
1569 $(O)write.o: write.c $(HACK_H)
1570 $(O)zap.o: zap.c $(HACK_H)
1572 # end of file