1 # SCCS Id: @(#)Makefile.msc 3.4 $Date: 2003/11/16 04:50:58 $
2 # Copyright (c) NetHack PC Development Team 1993-2003
4 # NetHack 3.4.x Makefile for MS Visual C++ V6.x and above and MS NMAKE
6 # Win32 Compilers Tested:
7 # - Microsoft 32 bit Visual C++ V4.x
8 # - Microsoft 32 bit Visual C++ V6.0 SP3, SP4
10 # This is used for building two versions of NetHack:
11 # A tty port utilizing the Win32 Console I/O subsystem, Console
13 # A Win32 native port built on the Windows API, Graphical NetHack or
16 # In addition to your C compiler,
18 # if you want to change you will need a
19 # files with suffix workalike for
20 # .y yacc (such as bison)
21 # .l lex (such as flex)
24 # If you have any questions read the sys/winnt/Install.nt file included
25 # with the distribution.
26 #==============================================================================
27 # Do not delete the following 3 lines.
34 # Set to Y for a graphical version
38 # Set the gamedir according to your preference.
39 # If not present prior to compilation it gets created.
41 !IF "$(GRAPHICAL)" == "Y"
42 GAME = NetHackW # Game Name
44 GAME = NetHack # Game Name
47 GAMEDIR = ..\binary # Game directory
50 # Source directories. Makedefs hardcodes these, don't change them.
53 INCL = ..\include # NetHack include files
54 DAT = ..\dat # NetHack data files
55 DOC = ..\doc # NetHack documentation files
56 UTIL = ..\util # Utility source
57 SRC = ..\src # Main source
58 SSYS = ..\sys\share # Shared system files
59 NTSYS = ..\sys\winnt # NT Win32 specific files
60 TTY = ..\win\tty # window port files (tty)
61 WIN32 = ..\win\win32 # window port files (Win32)
62 WSHR = ..\win\share # Tile support files
72 #==========================================
74 #==========================================
76 # Yacc/Lex ... if you got 'em.
78 # If you have yacc and lex programs (or work-alike such as bison
79 # and flex), comment out the upper two macros and uncomment
88 # - Specify your yacc and lex programs (or work-alikes) here.
98 # - Specify your flex skeleton file (if needed).
102 #FLEXSKEL = -S../tools/flex.ske
109 # Optional high-quality BSD random number generation routines
110 # (see pcconf.h). Set to nothing if not used.
113 RANDOM = $(OBJ)\random.o
117 # Leave the next two lines uncommented _ONLY_ if you do NOT want any
118 # debug capability in the object files, or in the NetHack executable.
119 # Comment them if you want debug capability.
125 # Compiler and Linker flags
128 PRECOMPHEAD = N # set to Y if you want to use precomp. headers
130 #===============================================
131 #======= End of Modification Section ===========
132 #===============================================
133 ################################################
135 # Nothing below here should have to be changed.#
137 ################################################
139 !IF "$(GRAPHICAL)" == "Y"
140 WINPORT = $(O)tile.o $(O)mhaskyn.o $(O)mhdlg.o \
141 $(O)mhfont.o $(O)mhinput.o $(O)mhmain.o $(O)mhmap.o \
142 $(O)mhmenu.o $(O)mhmsgwnd.o $(O)mhrip.o $(O)mhsplash.o \
143 $(O)mhstatus.o $(O)mhtext.o $(O)mswproc.o $(O)winhack.o
144 WINPHDR = $(WIN32)\mhaskyn.h $(WIN32)\mhdlg.h $(WIN32)\mhfont.h \
145 $(WIN32)\mhinput.h $(WIN32)\mhmain.h $(WIN32)\mhmap.h $(WIN32)\mhmenu.h \
146 $(WIN32)\mhmsg.h $(WIN32)\mhmsgwnd.h $(WIN32)\mhrip.h $(WIN32)\mhstatus.h \
147 $(WIN32)\mhtext.h $(WIN32)\resource.h $(WIN32)\winMS.h
149 WINPFLAG= -DTILES -DMSWIN_GRAPHICS
150 NHRES = $(O)winhack.res
153 WINPORT = $(O)nttty.o
155 WINDLLS = $(GAMEDIR)\nhdefkey.dll $(GAMEDIR)\nh340key.dll $(GAMEDIR)\nhraykey.dll
157 NHRES = $(O)console.res
161 TILEUTIL16 = $(UTIL)\tile2bmp.exe
162 TILEBMP16 = $(SRC)\tiles.bmp
164 TILEUTIL32 = $(UTIL)\til2bm32.exe
165 TILEBMP32 = $(SRC)\tiles32.bmp
167 SOUND = $(OBJ)\ntsound.o
171 # To store all the level files,
172 # help files, etc. in a single library file.
173 # USE_DLB = Y is left uncommented
177 ! IF ("$(USE_DLB)"=="Y")
183 #==========================================
184 # Setting up the compiler and linker
185 # macros. All builds include the base ones.
186 #==========================================
188 CFLAGSBASE = -c $(cflags) $(cvarsmt) -I$(INCL) -nologo $(cdebug) $(WINPINC)
189 LFLAGSBASEC = $(linkdebug) /NODEFAULTLIB /INCREMENTAL:NO /RELEASE /NOLOGO -subsystem:console,4.0 $(conlibsmt)
190 LFLAGSBASEG = $(linkdebug) $(guiflags) $(guilibsmt) comctl32.lib
192 #==========================================
194 #==========================================
196 CFLAGSU = $(CFLAGSBASE) $(WINPFLAG)
197 LFLAGSU = $(LFLAGSBASEC)
199 #==========================================
201 #==========================================
202 LFLAGSBASE = $(linkdebug) /NODEFAULTLIB /INCREMENTAL:NO /RELEASE /NOLOGO -subsystem:console,4.0 $(conlibsmt)
203 CFLAGS = $(CFLAGSBASE) $(WINPFLAG) $(DLBFLG)
204 NHLFLAGS1 = /NODEFAULTLIB /INCREMENTAL:NO /PDB:"$(GAME).PDB" /RELEASE /NOLOGO
205 NHLFLAGS2 = /MAP:"$(GAME).MAP" /MACHINE:$(CPU) -IGNORE:505
206 !IF ("$(GRAPHICAL)"=="Y")
207 LFLAGS = $(LFLAGSBASEG) $(NHLFLAGS1) $(NHLFLAGS2)
209 LFLAGS = $(LFLAGSBASEC) $(NHLFLAGS1) $(NHLFLAGS2)
212 GAMEFILE = $(GAMEDIR)\$(GAME).exe # whole thing
214 ! IF ("$(USE_DLB)"=="Y")
220 #==========================================
221 #================ RULES ==================
222 #==========================================
224 .SUFFIXES: .exe .o .til .uu .c .y .l
226 #==========================================
227 # Rules for files in src
228 #==========================================
231 @$(cc) $(CFLAGS) -Fo$@ $<
233 {$(SRC)}.c{$(OBJ)}.o:
234 @$(CC) $(CFLAGS) -Fo$@ $<
236 #==========================================
237 # Rules for files in sys\share
238 #==========================================
240 {$(SSYS)}.c{$(OBJ)}.o:
241 @$(CC) $(CFLAGS) -Fo$@ $<
243 #==========================================
244 # Rules for files in sys\winnt
245 #==========================================
247 {$(NTSYS)}.c{$(OBJ)}.o:
248 @$(CC) $(CFLAGS) -Fo$@ $<
250 {$(NTSYS)}.h{$(INCL)}.h:
253 #==========================================
254 # Rules for files in util
255 #==========================================
257 {$(UTIL)}.c{$(OBJ)}.o:
258 @$(CC) $(CFLAGSU) -Fo$@ $<
260 #==========================================
261 # Rules for files in win\share
262 #==========================================
264 {$(WSHR)}.c{$(OBJ)}.o:
265 @$(CC) $(CFLAGS) -Fo$@ $<
267 {$(WSHR)}.h{$(INCL)}.h:
270 #{$(WSHR)}.txt{$(DAT)}.txt:
273 #==========================================
274 # Rules for files in win\tty
275 #==========================================
277 {$(TTY)}.c{$(OBJ)}.o:
278 @$(CC) $(CFLAGS) -Fo$@ $<
281 #==========================================
282 # Rules for files in win\win32
283 #==========================================
285 {$(WIN32)}.c{$(OBJ)}.o:
286 @$(cc) $(CFLAGS) -Fo$@ $<
288 #==========================================
289 #================ MACROS ==================
290 #==========================================
291 # This section creates shorthand macros for many objects
292 # referenced later on in the Makefile.
295 DEFFILE = $(NTSYS)\$(GAME).def
298 # Shorten up the location for some files
309 MAKESRC = $(U)makedefs.c
311 SPLEVSRC = $(U)lev_yacc.c $(U)lev_$(LEX).c $(U)lev_main.c $(U)panic.c
313 DGNCOMPSRC = $(U)dgn_yacc.c $(U)dgn_$(LEX).c $(U)dgn_main.c
315 MAKEOBJS = $(O)makedefs.o $(O)monst.o $(O)objects.o
317 SPLEVOBJS = $(O)lev_yacc.o $(O)lev_$(LEX).o $(O)lev_main.o \
318 $(O)alloc.o $(O)decl.o $(O)drawing.o \
319 $(O)monst.o $(O)objects.o $(O)panic.o
321 DGNCOMPOBJS = $(O)dgn_yacc.o $(O)dgn_$(LEX).o $(O)dgn_main.o \
322 $(O)alloc.o $(O)panic.o
324 RECOVOBJS = $(O)recover.o
326 TILEFILES = $(WSHR)\monsters.txt $(WSHR)\objects.txt $(WSHR)\other.txt
329 # These are not invoked during a normal game build in 3.4
331 TEXT_IO = $(O)tiletext.o $(O)tiletxt.o $(O)drawing.o \
332 $(O)decl.o $(O)monst.o $(O)objects.o
334 TEXT_IO32 = $(O)tilete32.o $(O)tiletx32.o $(O)drawing.o \
335 $(O)decl.o $(O)monst.o $(O)objects.o
337 GIFREADERS = $(O)gifread.o $(O)alloc.o $(O)panic.o
338 GIFREADERS32 = $(O)gifrd32.o $(O)alloc.o $(O)panic.o
340 PPMWRITERS = $(O)ppmwrite.o $(O)alloc.o $(O)panic.o
343 # Object files for the game itself.
346 VOBJ01 = $(O)allmain.o $(O)alloc.o $(O)apply.o $(O)artifact.o
347 VOBJ02 = $(O)attrib.o $(O)ball.o $(O)bones.o $(O)botl.o
348 VOBJ03 = $(O)cmd.o $(O)dbridge.o $(O)decl.o $(O)detect.o
349 VOBJ04 = $(O)dig.o $(O)display.o $(O)do.o $(O)do_name.o
350 VOBJ05 = $(O)do_wear.o $(O)dog.o $(O)dogmove.o $(O)dokick.o
351 VOBJ06 = $(O)dothrow.o $(O)drawing.o $(O)dungeon.o $(O)eat.o
352 VOBJ07 = $(O)end.o $(O)engrave.o $(O)exper.o $(O)explode.o
353 VOBJ08 = $(O)extralev.o $(O)files.o $(O)fountain.o $(O)hack.o
354 VOBJ09 = $(O)hacklib.o $(O)invent.o $(O)light.o $(O)lock.o
355 VOBJ10 = $(O)mail.o $(O)pcmain.o $(O)makemon.o $(O)mapglyph.o $(O)mcastu.o
356 VOBJ11 = $(O)mhitm.o $(O)mhitu.o $(O)minion.o $(O)mklev.o
357 VOBJ12 = $(O)mkmap.o $(O)mkmaze.o $(O)mkobj.o $(O)mkroom.o
358 VOBJ13 = $(O)mon.o $(O)mondata.o $(O)monmove.o $(O)monst.o
359 VOBJ14 = $(O)monstr.o $(O)mplayer.o $(O)mthrowu.o $(O)muse.o
360 VOBJ15 = $(O)music.o $(O)o_init.o $(O)objects.o $(O)objnam.o
361 VOBJ16 = $(O)options.o $(O)pager.o $(O)pickup.o $(O)pline.o
362 VOBJ17 = $(O)polyself.o $(O)potion.o $(O)pray.o $(O)priest.o
363 VOBJ18 = $(O)quest.o $(O)questpgr.o $(RANDOM) $(O)read.o
364 VOBJ19 = $(O)rect.o $(O)region.o $(O)restore.o $(O)rip.o
365 VOBJ20 = $(O)rnd.o $(O)role.o $(O)rumors.o $(O)save.o
366 VOBJ21 = $(O)shk.o $(O)shknam.o $(O)sit.o $(O)sounds.o
367 VOBJ22 = $(O)sp_lev.o $(O)spell.o $(O)steal.o $(O)steed.o
368 VOBJ23 = $(O)teleport.o $(O)timeout.o $(O)topten.o $(O)track.o
369 VOBJ24 = $(O)trap.o $(O)u_init.o $(O)uhitm.o $(O)vault.o
370 VOBJ25 = $(O)vis_tab.o $(O)vision.o $(O)weapon.o $(O)were.o
371 VOBJ26 = $(O)wield.o $(O)windows.o $(O)wizard.o $(O)worm.o
372 VOBJ27 = $(O)worn.o $(O)write.o $(O)zap.o
376 TTYOBJ = $(O)topl.o $(O)getline.o $(O)wintty.o
378 SOBJ = $(O)winnt.o $(O)pcsys.o $(O)pcunix.o \
379 $(SOUND) $(O)mapimail.o $(O)nhlan.o
381 OBJS = $(VOBJ01) $(VOBJ02) $(VOBJ03) $(VOBJ04) $(VOBJ05) \
382 $(VOBJ06) $(VOBJ07) $(VOBJ08) $(VOBJ09) $(VOBJ10) \
383 $(VOBJ11) $(VOBJ12) $(VOBJ13) $(VOBJ14) $(VOBJ15) \
384 $(VOBJ16) $(VOBJ17) $(VOBJ18) $(VOBJ19) $(VOBJ20) \
385 $(VOBJ21) $(VOBJ22) $(VOBJ23) $(VOBJ24) $(VOBJ25) \
390 VVOBJ = $(O)version.o
392 ALLOBJ = $(WINPOBJ) $(SOBJ) $(DLBOBJ) $(TTYOBJ) $(WOBJ) $(OBJS) $(VVOBJ)
394 !IF "$(GRAPHICAL)" == "Y"
395 OPTIONS_FILE = $(DAT)\guioptions
397 OPTIONS_FILE = $(DAT)\ttyoptions
399 #==========================================
401 #==========================================
403 CONFIG_H = $(INCL)\config.h $(INCL)\config1.h $(INCL)\tradstdc.h \
404 $(INCL)\global.h $(INCL)\coord.h $(INCL)\vmsconf.h \
405 $(INCL)\system.h $(INCL)\unixconf.h $(INCL)\os2conf.h \
406 $(INCL)\micro.h $(INCL)\pcconf.h $(INCL)\tosconf.h \
407 $(INCL)\amiconf.h $(INCL)\macconf.h $(INCL)\beconf.h \
408 $(INCL)\ntconf.h $(INCL)\nhlan.h
410 HACK_H = $(INCL)\hack.h $(CONFIG_H) $(INCL)\align.h \
411 $(INCL)\dungeon.h $(INCL)\monsym.h $(INCL)\mkroom.h \
412 $(INCL)\objclass.h $(INCL)\youprop.h $(INCL)\prop.h \
413 $(INCL)\permonst.h $(INCL)\monattk.h \
414 $(INCL)\monflag.h $(INCL)\mondata.h $(INCL)\pm.h \
415 $(INCL)\wintype.h $(INCL)\decl.h $(INCL)\quest.h \
416 $(INCL)\spell.h $(INCL)\color.h $(INCL)\obj.h \
417 $(INCL)\you.h $(INCL)\attrib.h $(INCL)\monst.h \
418 $(INCL)\skills.h $(INCL)\onames.h $(INCL)\timeout.h \
419 $(INCL)\trap.h $(INCL)\flag.h $(INCL)\rm.h \
420 $(INCL)\vision.h $(INCL)\display.h $(INCL)\engrave.h \
421 $(INCL)\rect.h $(INCL)\region.h $(INCL)\winprocs.h \
422 $(INCL)\wintty.h $(INCL)\trampoli.h
424 LEV_H = $(INCL)\lev.h
425 DGN_FILE_H = $(INCL)\dgn_file.h
426 LEV_COMP_H = $(INCL)\lev_comp.h
427 SP_LEV_H = $(INCL)\sp_lev.h
428 TILE_H = ..\win\share\tile.h
430 #==========================================
432 #==========================================
434 DATABASE = $(DAT)\data.base
437 # The name of the game.
440 GAMEFILE = $(GAMEDIR)\$(GAME).exe
442 #==========================================
443 #=============== TARGETS ==================
444 #==========================================
447 # The default make target (so just typing 'nmake' is useful).
449 default : $(GAMEFILE)
455 $(GAME): $(O)obj.tag $(O)utility.tag envchk $(GAMEFILE)
456 @echo $(GAME) is up to date.
464 install: envchk $(GAME) $(O)install.tag
467 $(O)install.tag: $(DAT)\data $(DAT)\rumors $(DAT)\dungeon \
468 $(DAT)\oracles $(DAT)\quest.dat $(O)sp_lev.tag $(DLB)
469 ! IF ("$(USE_DLB)"=="Y")
470 copy nhdat $(GAMEDIR)
471 copy $(DAT)\license $(GAMEDIR)
472 copy $(DAT)\opthelp $(GAMEDIR)
474 copy $(DAT)\*. $(GAMEDIR)
475 copy $(DAT)\*.dat $(GAMEDIR)
476 copy $(DAT)\*.lev $(GAMEDIR)
477 if exist $(GAMEDIR)\makefile del $(GAMEDIR)\makefile
479 if exist $(DOC)\guidebook.txt copy $(DOC)\guidebook.txt $(GAMEDIR)\Guidebook.txt
480 if exist $(DOC)\nethack.txt copy $(DOC)\nethack.txt $(GAMEDIR)\NetHack.txt
481 @if exist $(SRC)\$(GAME).PDB copy $(SRC)\$(GAME).pdb $(GAMEDIR)\$(GAME).pdb
482 @if exist $(GAMEDIR)\$(GAME).PDB echo NOTE: You may want to remove $(GAMEDIR)\$(GAME).pdb to conserve space
483 -copy $(NTSYS)\defaults.nh $(GAMEDIR)\defaults.nh
484 echo install done > $@
486 # copy $(NTSYS)\winnt.hlp $(GAMEDIR)
488 recover: $(U)recover.exe
489 if exist $(U)recover.exe copy $(U)recover.exe $(GAMEDIR)
490 if exist $(DOC)\recover.txt copy $(DOC)\recover.txt $(GAMEDIR)\recover.txt
492 $(O)sp_lev.tag: $(O)utility.tag $(DAT)\bigroom.des $(DAT)\castle.des \
493 $(DAT)\endgame.des $(DAT)\gehennom.des $(DAT)\knox.des \
494 $(DAT)\medusa.des $(DAT)\oracle.des $(DAT)\tower.des \
495 $(DAT)\yendor.des $(DAT)\arch.des $(DAT)\barb.des \
496 $(DAT)\caveman.des $(DAT)\healer.des $(DAT)\knight.des \
497 $(DAT)\monk.des $(DAT)\priest.des $(DAT)\ranger.des \
498 $(DAT)\rogue.des $(DAT)\samurai.des $(DAT)\sokoban.des \
499 $(DAT)\tourist.des $(DAT)\valkyrie.des $(DAT)\wizard.des
501 $(U)lev_comp bigroom.des
502 $(U)lev_comp castle.des
503 $(U)lev_comp endgame.des
504 $(U)lev_comp gehennom.des
505 $(U)lev_comp knox.des
506 $(U)lev_comp mines.des
507 $(U)lev_comp medusa.des
508 $(U)lev_comp oracle.des
509 $(U)lev_comp sokoban.des
510 $(U)lev_comp tower.des
511 $(U)lev_comp yendor.des
512 $(U)lev_comp arch.des
513 $(U)lev_comp barb.des
514 $(U)lev_comp caveman.des
515 $(U)lev_comp healer.des
516 $(U)lev_comp knight.des
517 $(U)lev_comp monk.des
518 $(U)lev_comp priest.des
519 $(U)lev_comp ranger.des
520 $(U)lev_comp rogue.des
521 $(U)lev_comp samurai.des
522 $(U)lev_comp tourist.des
523 $(U)lev_comp valkyrie.des
524 $(U)lev_comp wizard.des
526 echo sp_levs done > $(O)sp_lev.tag
528 $(O)utility.tag: $(INCL)\date.h $(INCL)\onames.h $(INCL)\pm.h \
529 $(SRC)\monstr.c $(SRC)\vis_tab.c \
530 $(U)lev_comp.exe $(INCL)\vis_tab.h \
532 @echo utilities made >$@
533 @echo utilities made.
535 tileutil: $(U)gif2txt.exe $(U)gif2tx32.exe $(U)txt2ppm.exe
536 @echo Optional tile development utilities are up to date.
538 !IF "$(GRAPHICAL)"=="Y"
539 $(NHRES): $(TILEBMP16) $(WIN32)\winhack.rc $(WIN32)\mnsel.bmp \
540 $(WIN32)\mnselcnt.bmp $(WIN32)\mnunsel.bmp \
541 $(WIN32)\petmark.bmp $(WIN32)\NetHack.ico $(WIN32)\rip.bmp \
543 @$(rc) -r -fo$@ -i$(WIN32) -dNDEBUG $(WIN32)\winhack.rc
545 $(NHRES): $(NTSYS)\console.rc $(NTSYS)\NetHack.ico
546 @$(rc) -r -fo$@ -i$(NTSYS) -dNDEBUG $(NTSYS)\console.rc
549 #==========================================
551 #==========================================
553 # The section for linking the NetHack image looks a little strange at
554 # first, especially if you are used to UNIX makes, or NDMAKE. It is
555 # Microsoft nmake specific, and it gets around the problem of the
556 # link command line being too long for the linker. An "in-line" linker
557 # response file is generated temporarily.
559 # It takes advantage of the following features of nmake:
562 # Specifying the "<<" means to start an inline file.
563 # Another "<<" at the start of a line closes the
566 # Substitution within Macros:
567 # $(mymacro:string1=string2) replaces every
568 # occurrence of string1 with string2 in the
569 # macro mymacro. Special ascii key codes may be
570 # used in the substitution text by preceding it
571 # with ^ as we have done below. Every occurence
572 # of a <tab> in $(ALLOBJ) is replaced by
575 # DO NOT INDENT THE << below!
578 $(GAMEFILE) : $(ALLOBJ) $(NHRES) $(O)gamedir.tag $(WINDLLS)
579 @if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
581 $(link) $(LFLAGS) user32.lib winmm.lib -out:$@ @<<$(GAME).lnk
585 @if exist $(O)install.tag del $(O)install.tag
586 @if exist $(GAMEDIR)\$(GAME).bak del $(GAMEDIR)\$(GAME).bak
589 @if not exist $(GAMEDIR)\*.* echo creating directory $(GAMEDIR)
590 @if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
591 @echo directory created > $@
595 @echo ProcessKeystroke >>$@
597 @echo CheckInput >>$@
598 @echo SourceWhere >>$@
599 @echo SourceAuthor >>$@
600 @echo KeyHandlerName >>$@
602 $(GAMEDIR)\nhdefkey.dll : $(O)$(@B).o $(O)gamedir.tag $(O)$(@B).def
604 @$(link) -debug:full -debugtype:cv /RELEASE /NOLOGO /DLL user32.lib \
605 /PDB:"$(@B).PDB" /MAP:"$(@B).map" /DEF:$(O)$(@B).def \
606 /IMPLIB:$(O)$(@B).lib -out:$@ $(O)$(@B).o
610 @echo ProcessKeystroke >>$@
612 @echo CheckInput >>$@
613 @echo SourceWhere >>$@
614 @echo SourceAuthor >>$@
615 @echo KeyHandlerName >>$@
617 $(GAMEDIR)\nh340key.dll : $(O)$(@B).o $(O)gamedir.tag $(O)$(@B).def
619 @$(link) -debug:full -debugtype:cv /RELEASE /NOLOGO /DLL user32.lib \
620 /PDB:"$(@B).PDB" /MAP:"$(@B).map" /DEF:$(O)$(@B).def \
621 /IMPLIB:$(O)$(@B).lib -out:$@ $(O)$(@B).o
625 @echo ProcessKeystroke >>$@
627 @echo CheckInput >>$@
628 @echo SourceWhere >>$@
629 @echo SourceAuthor >>$@
630 @echo KeyHandlerName >>$@
632 $(GAMEDIR)\nhraykey.dll : $(O)$(@B).o $(O)gamedir.tag $(O)$(@B).def
634 @$(link) -debug:full -debugtype:cv /RELEASE /NOLOGO /DLL user32.lib \
635 /PDB:"$(@B).PDB" /MAP:"$(@B).map" /DEF:$(O)$(@B).def \
636 /IMPLIB:$(O)$(@B).lib -out:$@ $(O)$(@B).o
642 #==========================================
644 #==========================================
646 $(U)makedefs.exe: $(MAKEOBJS)
647 @$(link) $(LFLAGSU) -out:$@ $(MAKEOBJS)
649 $(O)makedefs.o: $(CONFIG_H) $(INCL)\monattk.h $(INCL)\monflag.h $(INCL)\objclass.h \
650 $(INCL)\monsym.h $(INCL)\qtext.h $(INCL)\patchlevel.h \
652 @if not exist $(OBJ)\*.* echo creating directory $(OBJ)
653 @if not exist $(OBJ)\*.* mkdir $(OBJ)
654 @$(CC) $(CFLAGSU) -Fo$@ $(U)makedefs.c
657 # date.h should be remade every time any of the source or include
661 $(INCL)\date.h $(OPTIONS_FILE) : $(U)makedefs.exe
664 $(INCL)\onames.h : $(U)makedefs.exe
667 $(INCL)\pm.h : $(U)makedefs.exe
670 #$(INCL)\trap.h : $(U)makedefs.exe
673 $(SRC)\monstr.c: $(U)makedefs.exe
676 $(INCL)\vis_tab.h: $(U)makedefs.exe
679 $(SRC)\vis_tab.c: $(U)makedefs.exe
682 #==========================================
683 # uudecode utility and uuencoded targets
684 #==========================================
686 $(U)uudecode.exe: $(O)uudecode.o
687 @$(link) $(LFLAGSU) -out:$@ $(O)uudecode.o
689 $(O)uudecode.o: $(SSYS)\uudecode.c
691 $(NTSYS)\NetHack.ico : $(U)uudecode.exe $(NTSYS)\nhico.uu
693 ..\..\util\uudecode.exe nhico.uu
696 $(WIN32)\NetHack.ico : $(U)uudecode.exe $(NTSYS)\nhico.uu
698 ..\..\util\uudecode.exe ../../sys/winnt/nhico.uu
701 $(WIN32)\mnsel.bmp: $(U)uudecode.exe $(WIN32)\mnsel.uu
703 ..\..\util\uudecode.exe mnsel.uu
706 $(WIN32)\mnselcnt.bmp: $(U)uudecode.exe $(WIN32)\mnselcnt.uu
708 ..\..\util\uudecode.exe mnselcnt.uu
711 $(WIN32)\mnunsel.bmp: $(U)uudecode.exe $(WIN32)\mnunsel.uu
713 ..\..\util\uudecode.exe mnunsel.uu
716 $(WIN32)\petmark.bmp: $(U)uudecode.exe $(WIN32)\petmark.uu
718 ..\..\util\uudecode.exe petmark.uu
721 $(WIN32)\rip.bmp: $(U)uudecode.exe $(WIN32)\rip.uu
723 ..\..\util\uudecode.exe rip.uu
726 $(WIN32)\splash.bmp: $(U)uudecode.exe $(WIN32)\splash.uu
728 ..\..\util\uudecode.exe splash.uu
731 #==========================================
732 # Level Compiler Stuff
733 #==========================================
735 LEVCFLAGS=-c -nologo -DWINVER=0x0400 -DWIN32 -D_WIN32 \
736 -D_MT -MT -I..\include -nologo -Z7 -Od -DDLB
738 $(U)lev_comp.exe: $(SPLEVOBJS)
740 @$(link) $(LFLAGSU) -out:$@ @<<$(@B).lnk
745 $(O)lev_yacc.o: $(HACK_H) $(SP_LEV_H) $(INCL)\lev_comp.h $(U)lev_yacc.c
746 @$(CC) $(LEVCFLAGS) -W0 -Fo$@ $(U)lev_yacc.c
748 $(O)lev_$(LEX).o: $(HACK_H) $(INCL)\lev_comp.h $(SP_LEV_H) \
750 @$(CC) $(LEVCFLAGS) -W0 -Fo$@ $(U)lev_$(LEX).c
752 $(O)lev_main.o: $(U)lev_main.c $(HACK_H) $(SP_LEV_H)
753 @$(CC) $(LEVCFLAGS) -W0 -Fo$@ $(U)lev_main.c
756 $(U)lev_yacc.c $(INCL)\lev_comp.h : $(U)lev_comp.y
757 ! IF "$(DO_YACC)"=="YACC_ACT"
759 $(YACC) -d lev_comp.y
760 copy $(YTABC) lev_yacc.c
761 copy $(YTABH) $(INCL)\lev_comp.h
766 @echo $(U)lev_comp.y has changed.
767 @echo To update $(U)lev_yacc.c and $(INCL)\lev_comp.h run $(YACC).
769 @echo For now, we will copy the prebuilt lev_yacc.c and
770 @echo lev_comp.h from $(SSYS) into $(UTIL) and use them.
771 @copy $(SSYS)\lev_yacc.c $(U)lev_yacc.c >nul
772 @copy $(SSYS)\lev_comp.h $(INCL)\lev_comp.h >nul
773 @echo /**/ >>$(U)lev_yacc.c
774 @echo /**/ >>$(INCL)\lev_comp.h
777 $(U)lev_$(LEX).c: $(U)lev_comp.l
778 ! IF "$(DO_LEX)"=="LEX_ACT"
780 $(LEX) $(FLEXSKEL) lev_comp.l
785 @echo $(U)lev_comp.l has changed. To update $@ run $(LEX).
787 @echo For now, we will copy the prebuilt lev_lex.c
788 @echo from $(SSYS) into $(UTIL) and use it.
789 @copy $(SSYS)\lev_lex.c $@ >nul
793 #==========================================
794 # Dungeon Compiler Stuff
795 #==========================================
797 $(U)dgn_comp.exe: $(DGNCOMPOBJS)
799 @$(link) $(LFLAGSU) -out:$@ @<<$(@B).lnk
804 $(O)dgn_yacc.o: $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h $(U)dgn_yacc.c
805 @$(CC) $(LEVCFLAGS) -W0 -Fo$@ $(U)dgn_yacc.c
807 $(O)dgn_$(LEX).o: $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h \
809 @$(CC) $(LEVCFLAGS) -W0 -Fo$@ $(U)dgn_$(LEX).c
811 $(O)dgn_main.o: $(HACK_H) $(U)dgn_main.c
812 @$(CC) $(LEVCFLAGS) -W0 -Fo$@ $(U)dgn_main.c
814 $(U)dgn_yacc.c $(INCL)\dgn_comp.h : $(U)dgn_comp.y
815 ! IF "$(DO_YACC)"=="YACC_ACT"
817 $(YACC) -d dgn_comp.y
818 copy $(YTABC) dgn_yacc.c
819 copy $(YTABH) $(INCL)\dgn_comp.h
824 @echo $(U)dgn_comp.y has changed. To update dgn_yacc.c and
825 @echo $(INCL)\dgn_comp.h run $(YACC).
827 @echo For now, we will copy the prebuilt $(U)dgn_yacc.c and
828 @echo dgn_comp.h from $(SSYS) into $(UTIL) and use them.
829 @copy $(SSYS)\dgn_yacc.c $(U)dgn_yacc.c >nul
830 @copy $(SSYS)\dgn_comp.h $(INCL)\dgn_comp.h >nul
831 @echo /**/ >>$(U)dgn_yacc.c
832 @echo /**/ >>$(INCL)\dgn_comp.h
835 $(U)dgn_$(LEX).c: $(U)dgn_comp.l
836 ! IF "$(DO_LEX)"=="LEX_ACT"
838 $(LEX) $(FLEXSKEL) dgn_comp.l
843 @echo $(U)dgn_comp.l has changed. To update $@ run $(LEX).
845 @echo For now, we will copy the prebuilt dgn_lex.c
846 @echo from $(SSYS) into $(UTIL) and use it.
847 @copy $(SSYS)\dgn_lex.c $@ >nul
851 #==========================================
852 # Create directory for holding object files
853 #==========================================
856 @if not exist $(OBJ)\*.* echo creating directory $(OBJ)
857 @if not exist $(OBJ)\*.* mkdir $(OBJ)
858 @echo directory created >$@
860 #==========================================
861 # Notify of any CL environment variables
862 # in effect since they change the compiler
864 #==========================================
868 @echo Warning, the CL Environment variable is defined:
871 ! IF "$(GRAPHICAL)"=="Y"
873 @echo NOTE: This build will include tile support.
877 #==========================================
878 #=========== SECONDARY TARGETS ============
879 #==========================================
881 #===========================================
882 # Header files NOT distributed in ..\include
883 #===========================================
885 $(INCL)\win32api.h: $(NTSYS)\win32api.h
886 copy $(NTSYS)\win32api.h $@
889 #==========================================
890 # DLB utility and nhdat file creation
891 #==========================================
893 $(U)dlb_main.exe: $(DLBOBJ) $(O)dlb.o
894 @$(link) $(LFLAGSU) -out:$@ @<<$(@B).lnk
901 $(O)dlb.o: $(O)dlb_main.o $(O)alloc.o $(O)panic.o $(INCL)\dlb.h
902 @$(CC) $(CFLAGS) /Fo$@ $(SRC)\dlb.c
904 $(O)dlb_main.o: $(UTIL)\dlb_main.c $(INCL)\config.h $(INCL)\dlb.h
905 @$(CC) $(CFLAGS) /Fo$@ $(UTIL)\dlb_main.c
907 $(DAT)\porthelp: $(NTSYS)\porthelp
908 @copy $(NTSYS)\porthelp $@ >nul
910 nhdat: $(U)dlb_main.exe $(DAT)\data $(DAT)\oracles $(OPTIONS_FILE) \
911 $(DAT)\quest.dat $(DAT)\rumors $(DAT)\help $(DAT)\hh $(DAT)\cmdhelp \
912 $(DAT)\history $(DAT)\opthelp $(DAT)\wizhelp $(DAT)\dungeon $(DAT)\porthelp \
913 $(DAT)\license $(O)sp_lev.tag
916 echo oracles >>dlb.lst
917 if exist options echo options >>dlb.lst
918 if exist ttyoptions echo ttyoptions >>dlb.lst
919 if exist guioptions echo guioptions >>dlb.lst
920 if exist porthelp echo porthelp >>dlb.lst
921 echo quest.dat >>dlb.lst
922 echo rumors >>dlb.lst
925 echo cmdhelp >>dlb.lst
926 echo history >>dlb.lst
927 echo opthelp >>dlb.lst
928 echo wizhelp >>dlb.lst
929 echo dungeon >>dlb.lst
930 echo license >>dlb.lst
931 for %%N in (*.lev) do echo %%N >>dlb.lst
932 $(U)dlb_main cIf dlb.lst $(SRC)\nhdat
935 #==========================================
937 #==========================================
939 $(U)recover.exe: $(RECOVOBJS)
940 $(link) $(LFLAGSU) -out:$@ $(RECOVOBJS)
942 $(O)recover.o: $(CONFIG_H) $(U)recover.c $(INCL)\win32api.h
943 $(CC) $(CFLAGSU) -Fo$@ $(U)recover.c
945 #==========================================
947 #==========================================
949 $(SRC)\tile.c: $(U)tilemap.exe
950 @echo A new $@ has been created
953 $(U)tilemap.exe: $(O)tilemap.o
954 @$(link) $(LFLAGSU) -out:$@ $(O)tilemap.o
956 $(O)tilemap.o: $(WSHR)\tilemap.c $(HACK_H)
957 @$(CC) $(CFLAGSU) -Fo$@ $(WSHR)\tilemap.c
959 $(O)tiletx32.o: $(WSHR)\tilemap.c $(HACK_H)
960 @$(CC) $(CFLAGS) /DTILETEXT /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\tilemap.c
962 $(O)tiletxt.o: $(WSHR)\tilemap.c $(HACK_H)
963 @$(CC) $(CFLAGS) /DTILETEXT -Fo$@ $(WSHR)\tilemap.c
965 $(O)gifread.o: $(WSHR)\gifread.c $(CONFIG_H) $(TILE_H)
966 @$(CC) $(CFLAGS) -I$(WSHR) -Fo$@ $(WSHR)\gifread.c
968 $(O)gifrd32.o: $(WSHR)\gifread.c $(CONFIG_H) $(TILE_H)
969 @$(CC) $(CFLAGS) -I$(WSHR) /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\gifread.c
971 $(O)ppmwrite.o: $(WSHR)\ppmwrite.c $(CONFIG_H) $(TILE_H)
972 @$(CC) $(CFLAGS) -I$(WSHR) -Fo$@ $(WSHR)\ppmwrite.c
974 $(O)tiletext.o: $(WSHR)\tiletext.c $(CONFIG_H) $(TILE_H)
975 @$(CC) $(CFLAGS) -I$(WSHR) -Fo$@ $(WSHR)\tiletext.c
977 $(O)tilete32.o: $(WSHR)\tiletext.c $(CONFIG_H) $(TILE_H)
978 @$(CC) $(CFLAGS) -I$(WSHR) /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\tiletext.c
980 #==========================================
981 # Optional Tile Utilities
982 #==========================================
984 $(U)gif2txt.exe: $(GIFREADERS) $(TEXT_IO)
986 @$(link) $(LFLAGSU) -out:$@ @<<$(@B).lnk
993 $(U)gif2tx32.exe: $(GIFREADERS32) $(TEXT_IO32)
995 @$(link) $(LFLAGSU) -out:$@ @<<$(@B).lnk
1002 $(U)txt2ppm.exe: $(PPMWRITERS) $(TEXT_IO)
1004 @$(link) $(LFLAGSU) -out:$@ @<<$(@B).lnk
1011 !IF "$(GRAPHICAL)"=="Y"
1012 $(TILEBMP16): $(TILEUTIL16) $(TILEFILES)
1013 @echo Creating 16x16 binary tile files (this may take some time)
1014 @$(U)tile2bmp $(TILEBMP16)
1015 #$(TILEBMP32): $(TILEUTIL32) $(TILEFILES32)
1016 # @echo Creating 32x32 binary tile files (this may take some time)
1017 # @$(U)til2bm32 $(TILEBMP32)
1024 $(U)tile2bmp.exe: $(O)tile2bmp.o $(TEXT_IO)
1026 @$(link) $(LFLAGSU) -out:$@ @<<$(@B).lnk
1032 $(U)til2bm32.exe: $(O)til2bm32.o $(TEXT_IO32)
1034 @$(link) $(LFLAGSU) -out:$@ @<<$(@B).lnk
1040 $(O)tile2bmp.o: $(WSHR)\tile2bmp.c $(HACK_H) $(TILE_H) $(INCL)\win32api.h
1041 @$(CC) $(CFLAGS) -I$(WSHR) /DPACKED_FILE /Fo$@ $(WSHR)\tile2bmp.c
1043 $(O)til2bm32.o: $(WSHR)\tile2bmp.c $(HACK_H) $(TILE_H) $(INCL)\win32api.h
1044 @$(CC) $(CFLAGS) -I$(WSHR) /DPACKED_FILE /DTILE_X=32 /DTILE_Y=32 /Fo$@ $(WSHR)\tile2bmp.c
1046 #==========================================
1048 #==========================================
1054 if exist $(INCL)\date.h del $(INCL)\date.h
1055 if exist $(INCL)\onames.h del $(INCL)\onames.h
1056 if exist $(INCL)\pm.h del $(INCL)\pm.h
1057 if exist $(INCL)\vis_tab.h del $(INCL)\vis_tab.h
1058 if exist $(SRC)\vis_tab.c del $(SRC)\vis_tab.c
1059 if exist $(SRC)\tile.c del $(SRC)\tile.c
1060 if exist $(U)*.lnk del $(U)*.lnk
1061 if exist $(U)*.map del $(U)*.map
1062 if exist $(DAT)\data del $(DAT)\data
1063 if exist $(DAT)\rumors del $(DAT)\rumors
1064 if exist $(DAT)\???-fil?.lev del $(DAT)\???-fil?.lev
1065 if exist $(DAT)\???-goal.lev del $(DAT)\???-goal.lev
1066 if exist $(DAT)\???-loca.lev del $(DAT)\???-loca.lev
1067 if exist $(DAT)\???-strt.lev del $(DAT)\???-strt.lev
1068 if exist $(DAT)\air.lev del $(DAT)\air.lev
1069 if exist $(DAT)\asmodeus.lev del $(DAT)\asmodeus.lev
1070 if exist $(DAT)\astral.lev del $(DAT)\astral.lev
1071 if exist $(DAT)\baalz.lev del $(DAT)\baalz.lev
1072 if exist $(DAT)\bigroom.lev del $(DAT)\bigroom.lev
1073 if exist $(DAT)\castle.lev del $(DAT)\castle.lev
1074 if exist $(DAT)\data del $(DAT)\data
1075 if exist $(DAT)\dungeon del $(DAT)\dungeon
1076 if exist $(DAT)\dungeon.pdf del $(DAT)\dungeon.pdf
1077 if exist $(DAT)\earth.lev del $(DAT)\earth.lev
1078 if exist $(DAT)\fakewiz?.lev del $(DAT)\fakewiz?.lev
1079 if exist $(DAT)\fire.lev del $(DAT)\fire.lev
1080 if exist $(DAT)\juiblex.lev del $(DAT)\juiblex.lev
1081 if exist $(DAT)\knox.lev del $(DAT)\knox.lev
1082 if exist $(DAT)\medusa-?.lev del $(DAT)\medusa-?.lev
1083 if exist $(DAT)\mine*.lev del $(DAT)\mine*.lev
1084 if exist $(DAT)\options del $(DAT)\options
1085 if exist $(DAT)\ttyoptions del $(DAT)\ttyoptions
1086 if exist $(DAT)\guioptions del $(DAT)\guioptions
1087 if exist $(DAT)\oracle.lev del $(DAT)\oracle.lev
1088 if exist $(DAT)\oracles del $(DAT)\oracles
1089 if exist $(DAT)\orcus.lev del $(DAT)\orcus.lev
1090 if exist $(DAT)\rumors del $(DAT)\rumors
1091 if exist $(DAT)\quest.dat del $(DAT)\quest.dat
1092 if exist $(DAT)\sanctum.lev del $(DAT)\sanctum.lev
1093 if exist $(DAT)\soko?-?.lev del $(DAT)\soko?-?.lev
1094 if exist $(DAT)\tower?.lev del $(DAT)\tower?.lev
1095 if exist $(DAT)\valley.lev del $(DAT)\valley.lev
1096 if exist $(DAT)\water.lev del $(DAT)\water.lev
1097 if exist $(DAT)\wizard?.lev del $(DAT)\wizard?.lev
1098 if exist $(O)sp_lev.tag del $(O)sp_lev.tag
1099 if exist $(SRC)\monstr.c del $(SRC)\monstr.c
1100 if exist $(SRC)\vis_tab.c del $(SRC)\vis_tab.c
1101 if exist $(U)recover.exe del $(U)recover.exe
1102 if exist nhdat. del nhdat.
1103 if exist $(O)obj.tag del $(O)obj.tag
1104 if exist $(O)gamedir.tag del $(O)gamedir.tag
1105 if exist $(O)nh*key.lib del $(O)nh*key.lib
1106 if exist $(O)nh*key.exp del $(O)nh*key.exp
1109 if exist $(O)*.o del $(O)*.o
1110 if exist $(O)utility.tag del $(O)utility.tag
1111 if exist $(U)makedefs.exe del $(U)makedefs.exe
1112 if exist $(U)lev_comp.exe del $(U)lev_comp.exe
1113 if exist $(U)dgn_comp.exe del $(U)dgn_comp.exe
1114 if exist $(SRC)\*.lnk del $(SRC)\*.lnk
1115 if exist $(SRC)\*.map del $(SRC)\*.map
1116 if exist $(O)install.tag del $(O)install.tag
1117 ! IF ("$(WINPFLAG)"!="")
1118 if exist $(TILEBMP16) del $(TILEBMP16)
1119 if exist $(TILEBMP32) del $(TILEBMP32)
1122 #===================================================================
1123 # OTHER DEPENDENCIES
1124 #===================================================================
1130 $(DAT)\data: $(O)utility.tag $(DATABASE)
1133 $(DAT)\rumors: $(O)utility.tag $(DAT)\rumors.tru $(DAT)\rumors.fal
1136 $(DAT)\quest.dat: $(O)utility.tag $(DAT)\quest.txt
1139 $(DAT)\oracles: $(O)utility.tag $(DAT)\oracles.txt
1142 $(DAT)\dungeon: $(O)utility.tag $(DAT)\dungeon.def
1145 $(U)dgn_comp dungeon.pdf
1152 $(O)nttty.o: $(HACK_H) $(TILE_H) $(INCL)\win32api.h $(NTSYS)\nttty.c
1153 @$(CC) $(CFLAGS) -I$(WSHR) -Fo$@ $(NTSYS)\nttty.c
1154 $(O)nhkeys.o: $(HACK_H) $(TILE_H) $(INCL)\win32api.h $(NTSYS)\nhkeys.c
1155 @$(CC) $(CFLAGS) -I$(WSHR) -Fo$@ $(NTSYS)\nhkeys.c
1156 $(O)winnt.o: $(HACK_H) $(INCL)\win32api.h $(NTSYS)\winnt.c
1157 @$(CC) $(CFLAGS) -Fo$@ $(NTSYS)\winnt.c
1158 $(O)ntsound.o: $(HACK_H) $(NTSYS)\ntsound.c
1159 @$(CC) $(CFLAGS) -Fo$@ $(NTSYS)\ntsound.c
1160 $(O)mapimail.o: $(HACK_H) $(INCL)\nhlan.h $(NTSYS)\mapimail.c
1161 @$(CC) $(CFLAGS) -DMAPI_VERBOSE -Fo$@ $(NTSYS)\mapimail.c
1167 $(O)panic.o: $(U)panic.c $(CONFIG_H)
1168 @$(CC) $(CFLAGS) -Fo$@ $(U)panic.c
1171 # The rest are stolen from sys/unix/Makefile.src,
1172 # with the following changes:
1173 # * ../include changed to $(INCL)
1174 # * slashes changed to back-slashes
1175 # * -c (which is included in CFLAGS) substituted with -Fo$@
1176 # * targets prefixed with $(O)
1177 # but otherwise untouched.
1178 # That means that there is some irrelevant stuff
1179 # in here, but maintenance should be easier.
1181 $(O)tos.o: ..\sys\atari\tos.c $(HACK_H) $(INCL)\tcap.h
1182 @$(CC) $(CFLAGS) -Fo$@ ..\sys\atari\tos.c
1183 $(O)pcmain.o: ..\sys\share\pcmain.c $(HACK_H) $(INCL)\dlb.h \
1185 @$(CC) $(CFLAGS) -Fo$@ ..\sys\share\pcmain.c
1186 $(O)pcsys.o: ..\sys\share\pcsys.c $(HACK_H)
1187 @$(CC) $(CFLAGS) -Fo$@ ..\sys\share\pcsys.c
1188 $(O)pctty.o: ..\sys\share\pctty.c $(HACK_H)
1189 @$(CC) $(CFLAGS) -Fo$@ ..\sys\share\pctty.c
1190 $(O)pcunix.o: ..\sys\share\pcunix.c $(HACK_H)
1191 @$(CC) $(CFLAGS) -Fo$@ ..\sys\share\pcunix.c
1192 $(O)random.o: ..\sys\share\random.c $(HACK_H)
1193 @$(CC) $(CFLAGS) -Fo$@ ..\sys\share\random.c
1194 $(O)ioctl.o: ..\sys\share\ioctl.c $(HACK_H) $(INCL)\tcap.h
1195 @$(CC) $(CFLAGS) -Fo$@ ..\sys\share\ioctl.c
1196 $(O)unixtty.o: ..\sys\share\unixtty.c $(HACK_H)
1197 @$(CC) $(CFLAGS) -Fo$@ ..\sys\share\unixtty.c
1198 $(O)unixmain.o: ..\sys\unix\unixmain.c $(HACK_H) $(INCL)\dlb.h
1199 @$(CC) $(CFLAGS) -Fo$@ ..\sys\unix\unixmain.c
1200 $(O)unixunix.o: ..\sys\unix\unixunix.c $(HACK_H)
1201 @$(CC) $(CFLAGS) -Fo$@ ..\sys\unix\unixunix.c
1202 $(O)unixres.o: ..\sys\unix\unixres.c $(CONFIG_H)
1203 @$(CC) $(CFLAGS) -Fo$@ ..\sys\unix\unixres.c
1204 $(O)bemain.o: ..\sys\be\bemain.c $(HACK_H) $(INCL)\dlb.h
1205 @$(CC) $(CFLAGS) -Fo$@ ..\sys\be\bemain.c
1206 $(O)getline.o: ..\win\tty\getline.c $(HACK_H) $(INCL)\func_tab.h
1207 @$(CC) $(CFLAGS) -Fo$@ ..\win\tty\getline.c
1208 $(O)termcap.o: ..\win\tty\termcap.c $(HACK_H) $(INCL)\tcap.h
1209 @$(CC) $(CFLAGS) -Fo$@ ..\win\tty\termcap.c
1210 $(O)topl.o: ..\win\tty\topl.c $(HACK_H) $(INCL)\tcap.h
1211 @$(CC) $(CFLAGS) -Fo$@ ..\win\tty\topl.c
1212 $(O)wintty.o: ..\win\tty\wintty.c $(HACK_H) $(INCL)\dlb.h \
1213 $(INCL)\patchlevel.h $(INCL)\tcap.h
1214 @$(CC) $(CFLAGS) -Fo$@ ..\win\tty\wintty.c
1215 $(O)Window.o: ..\win\X11\Window.c $(INCL)\xwindowp.h $(INCL)\xwindow.h \
1217 @$(CC) $(CFLAGS) -Fo$@ ..\win\X11\Window.c
1218 $(O)dialogs.o: ..\win\X11\dialogs.c $(CONFIG_H)
1219 @$(CC) $(CFLAGS) -Fo$@ ..\win\X11\dialogs.c
1220 $(O)winX.o: ..\win\X11\winX.c $(HACK_H) $(INCL)\winX.h $(INCL)\dlb.h \
1221 $(INCL)\patchlevel.h ..\win\X11\nh72icon \
1222 ..\win\X11\nh56icon ..\win\X11\nh32icon
1223 @$(CC) $(CFLAGS) -Fo$@ ..\win\X11\winX.c
1224 $(O)winmap.o: ..\win\X11\winmap.c $(INCL)\xwindow.h $(HACK_H) $(INCL)\dlb.h \
1225 $(INCL)\winX.h $(INCL)\tile2x11.h
1226 @$(CC) $(CFLAGS) -Fo$@ ..\win\X11\winmap.c
1227 $(O)winmenu.o: ..\win\X11\winmenu.c $(HACK_H) $(INCL)\winX.h
1228 @$(CC) $(CFLAGS) -Fo$@ ..\win\X11\winmenu.c
1229 $(O)winmesg.o: ..\win\X11\winmesg.c $(INCL)\xwindow.h $(HACK_H) $(INCL)\winX.h
1230 @$(CC) $(CFLAGS) -Fo$@ ..\win\X11\winmesg.c
1231 $(O)winmisc.o: ..\win\X11\winmisc.c $(HACK_H) $(INCL)\func_tab.h \
1233 @$(CC) $(CFLAGS) -Fo$@ ..\win\X11\winmisc.c
1234 $(O)winstat.o: ..\win\X11\winstat.c $(HACK_H) $(INCL)\winX.h
1235 @$(CC) $(CFLAGS) -Fo$@ ..\win\X11\winstat.c
1236 $(O)wintext.o: ..\win\X11\wintext.c $(HACK_H) $(INCL)\winX.h $(INCL)\xwindow.h
1237 @$(CC) $(CFLAGS) -Fo$@ ..\win\X11\wintext.c
1238 $(O)winval.o: ..\win\X11\winval.c $(HACK_H) $(INCL)\winX.h
1239 @$(CC) $(CFLAGS) -Fo$@ ..\win\X11\winval.c
1240 $(O)tile.o: $(SRC)\tile.c $(HACK_H)
1241 $(O)gnaskstr.o: ..\win\gnome\gnaskstr.c ..\win\gnome\gnaskstr.h \
1242 ..\win\gnome\gnmain.h
1243 @$(CC) $(CFLAGS) $(GNOMEINC) -Fo$@ ..\win\gnome\gnaskstr.c
1244 $(O)gnbind.o: ..\win\gnome\gnbind.c ..\win\gnome\gnbind.h ..\win\gnome\gnmain.h \
1245 ..\win\gnome\gnaskstr.h ..\win\gnome\gnyesno.h
1246 @$(CC) $(CFLAGS) $(GNOMEINC) -Fo$@ ..\win\gnome\gnbind.c
1247 $(O)gnglyph.o: ..\win\gnome\gnglyph.c ..\win\gnome\gnglyph.h $(INCL)\tile2x11.h
1248 @$(CC) $(CFLAGS) $(GNOMEINC) -Fo$@ ..\win\gnome\gnglyph.c
1249 $(O)gnmain.o: ..\win\gnome\gnmain.c ..\win\gnome\gnmain.h ..\win\gnome\gnsignal.h \
1250 ..\win\gnome\gnbind.h ..\win\gnome\gnopts.h $(HACK_H) \
1252 @$(CC) $(CFLAGS) $(GNOMEINC) -Fo$@ ..\win\gnome\gnmain.c
1253 $(O)gnmap.o: ..\win\gnome\gnmap.c ..\win\gnome\gnmap.h ..\win\gnome\gnglyph.h \
1254 ..\win\gnome\gnsignal.h $(HACK_H)
1255 @$(CC) $(CFLAGS) $(GNOMEINC) -Fo$@ ..\win\gnome\gnmap.c
1256 $(O)gnmenu.o: ..\win\gnome\gnmenu.c ..\win\gnome\gnmenu.h ..\win\gnome\gnmain.h \
1257 ..\win\gnome\gnbind.h
1258 @$(CC) $(CFLAGS) $(GNOMEINC) -Fo$@ ..\win\gnome\gnmenu.c
1259 $(O)gnmesg.o: ..\win\gnome\gnmesg.c ..\win\gnome\gnmesg.h ..\win\gnome\gnsignal.h
1260 @$(CC) $(CFLAGS) $(GNOMEINC) -Fo$@ ..\win\gnome\gnmesg.c
1261 $(O)gnopts.o: ..\win\gnome\gnopts.c ..\win\gnome\gnopts.h ..\win\gnome\gnglyph.h \
1262 ..\win\gnome\gnmain.h ..\win\gnome\gnmap.h $(HACK_H)
1263 @$(CC) $(CFLAGS) $(GNOMEINC) -Fo$@ ..\win\gnome\gnopts.c
1264 $(O)gnplayer.o: ..\win\gnome\gnplayer.c ..\win\gnome\gnplayer.h \
1265 ..\win\gnome\gnmain.h $(HACK_H)
1266 @$(CC) $(CFLAGS) $(GNOMEINC) -Fo$@ ..\win\gnome\gnplayer.c
1267 $(O)gnsignal.o: ..\win\gnome\gnsignal.c ..\win\gnome\gnsignal.h \
1268 ..\win\gnome\gnmain.h
1269 @$(CC) $(CFLAGS) $(GNOMEINC) -Fo$@ ..\win\gnome\gnsignal.c
1270 $(O)gnstatus.o: ..\win\gnome\gnstatus.c ..\win\gnome\gnstatus.h \
1271 ..\win\gnome\gnsignal.h ..\win\gnome\gn_xpms.h \
1272 ..\win\gnome\gnomeprv.h
1273 @$(CC) $(CFLAGS) $(GNOMEINC) -Fo$@ ..\win\gnome\gnstatus.c
1274 $(O)gntext.o: ..\win\gnome\gntext.c ..\win\gnome\gntext.h ..\win\gnome\gnmain.h \
1275 ..\win\gnome\gn_rip.h
1276 @$(CC) $(CFLAGS) $(GNOMEINC) -Fo$@ ..\win\gnome\gntext.c
1277 $(O)gnworn.o: ..\win\gnome\gnworn.c ..\win\gnome\gnworn.h ..\win\gnome\gnglyph.h \
1278 ..\win\gnome\gnsignal.h ..\win\gnome\gnomeprv.h
1279 @$(CC) $(CFLAGS) $(GNOMEINC) -Fo$@ ..\win\gnome\gnworn.c
1280 $(O)gnyesno.o: ..\win\gnome\gnyesno.c ..\win\gnome\gnbind.h ..\win\gnome\gnyesno.h
1281 @$(CC) $(CFLAGS) $(GNOMEINC) -Fo$@ ..\win\gnome\gnyesno.c
1282 $(O)wingem.o: ..\win\gem\wingem.c $(HACK_H) $(INCL)\func_tab.h $(INCL)\dlb.h \
1283 $(INCL)\patchlevel.h $(INCL)\wingem.h
1284 @$(CC) $(CFLAGS) -Fo$@ ..\win\gem\wingem.c
1285 $(O)wingem1.o: ..\win\gem\wingem1.c $(INCL)\gem_rsc.h $(INCL)\load_img.h \
1286 $(INCL)\gr_rect.h $(INCL)\wintype.h $(INCL)\wingem.h
1287 @$(CC) $(CFLAGS) -Fo$@ ..\win\gem\wingem1.c
1288 $(O)load_img.o: ..\win\gem\load_img.c $(INCL)\load_img.h
1289 @$(CC) $(CFLAGS) -Fo$@ ..\win\gem\load_img.c
1290 $(O)gr_rect.o: ..\win\gem\gr_rect.c $(INCL)\gr_rect.h
1291 @$(CC) $(CFLAGS) -Fo$@ ..\win\gem\gr_rect.c
1292 $(O)tile.o: tile.c $(HACK_H)
1293 $(O)qt_win.o: ..\win\Qt\qt_win.cpp $(HACK_H) $(INCL)\func_tab.h \
1294 $(INCL)\dlb.h $(INCL)\patchlevel.h $(INCL)\tile2x11.h \
1295 $(INCL)\qt_win.h $(INCL)\qt_clust.h $(INCL)\qt_kde0.h \
1296 $(INCL)\qt_xpms.h qt_win.moc qt_kde0.moc qttableview.moc
1297 $(CXX) $(CXXFLAGS) -Fo$@ ..\win\Qt\qt_win.cpp
1298 $(O)qt_clust.o: ..\win\Qt\qt_clust.cpp $(INCL)\qt_clust.h
1299 $(CXX) $(CXXFLAGS) -Fo$@ ..\win\Qt\qt_clust.cpp
1300 $(O)qttableview.o: ..\win\Qt\qttableview.cpp $(INCL)\qttableview.h
1301 $(CXX) $(CXXFLAGS) -Fo$@ ..\win\Qt\qttableview.cpp
1302 $(O)monstr.o: monstr.c $(CONFIG_H)
1303 $(O)vis_tab.o: vis_tab.c $(CONFIG_H) $(INCL)\vis_tab.h
1304 $(O)allmain.o: allmain.c $(HACK_H)
1305 $(O)alloc.o: alloc.c $(CONFIG_H)
1306 $(O)apply.o: apply.c $(HACK_H) $(INCL)\edog.h
1307 $(O)artifact.o: artifact.c $(HACK_H) $(INCL)\artifact.h $(INCL)\artilist.h
1308 $(O)attrib.o: attrib.c $(HACK_H)
1309 $(O)ball.o: ball.c $(HACK_H)
1310 $(O)bones.o: bones.c $(HACK_H) $(INCL)\lev.h
1311 $(O)botl.o: botl.c $(HACK_H)
1312 $(O)cmd.o: cmd.c $(HACK_H) $(INCL)\func_tab.h
1313 $(O)dbridge.o: dbridge.c $(HACK_H)
1314 $(O)decl.o: decl.c $(HACK_H)
1315 $(O)detect.o: detect.c $(HACK_H) $(INCL)\artifact.h
1316 $(O)dig.o: dig.c $(HACK_H) $(INCL)\edog.h
1317 $(O)display.o: display.c $(HACK_H)
1318 $(O)dlb.o: dlb.c $(CONFIG_H) $(INCL)\dlb.h
1319 $(O)do.o: do.c $(HACK_H) $(INCL)\lev.h
1320 $(O)do_name.o: do_name.c $(HACK_H)
1321 $(O)do_wear.o: do_wear.c $(HACK_H)
1322 $(O)dog.o: dog.c $(HACK_H) $(INCL)\edog.h
1323 $(O)dogmove.o: dogmove.c $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
1324 $(O)dokick.o: dokick.c $(HACK_H) $(INCL)\eshk.h
1325 $(O)dothrow.o: dothrow.c $(HACK_H) $(INCL)\edog.h
1326 $(O)drawing.o: drawing.c $(HACK_H) $(INCL)\tcap.h
1327 $(O)dungeon.o: dungeon.c $(HACK_H) $(INCL)\dgn_file.h $(INCL)\dlb.h
1328 $(O)eat.o: eat.c $(HACK_H)
1329 $(O)end.o: end.c $(HACK_H) $(INCL)\eshk.h $(INCL)\dlb.h
1330 $(O)engrave.o: engrave.c $(HACK_H) $(INCL)\lev.h
1331 $(O)exper.o: exper.c $(HACK_H)
1332 $(O)explode.o: explode.c $(HACK_H)
1333 $(O)extralev.o: extralev.c $(HACK_H)
1334 $(O)files.o: files.c $(HACK_H) $(INCL)\dlb.h
1335 $(O)fountain.o: fountain.c $(HACK_H)
1336 $(O)hack.o: hack.c $(HACK_H)
1337 $(O)hacklib.o: hacklib.c $(HACK_H)
1338 $(O)invent.o: invent.c $(HACK_H)
1339 $(O)light.o: light.c $(HACK_H) $(INCL)\lev.h
1340 $(O)lock.o: lock.c $(HACK_H)
1341 $(O)mail.o: mail.c $(HACK_H) $(INCL)\mail.h
1342 $(O)makemon.o: makemon.c $(HACK_H) $(INCL)\epri.h $(INCL)\emin.h \
1344 $(O)mapglyph.o: mapglyph.c $(HACK_H)
1345 $(O)mcastu.o: mcastu.c $(HACK_H)
1346 $(O)mhitm.o: mhitm.c $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h
1347 $(O)mhitu.o: mhitu.c $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h
1348 $(O)minion.o: minion.c $(HACK_H) $(INCL)\emin.h $(INCL)\epri.h
1349 $(O)mklev.o: mklev.c $(HACK_H)
1350 $(O)mkmap.o: mkmap.c $(HACK_H) $(INCL)\sp_lev.h
1351 $(O)mkmaze.o: mkmaze.c $(HACK_H) $(INCL)\sp_lev.h $(INCL)\lev.h
1352 $(O)mkobj.o: mkobj.c $(HACK_H)
1353 $(O)mkroom.o: mkroom.c $(HACK_H)
1354 $(O)mon.o: mon.c $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
1355 $(O)mondata.o: mondata.c $(HACK_H) $(INCL)\eshk.h $(INCL)\epri.h
1356 $(O)monmove.o: monmove.c $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h \
1358 $(O)monst.o: monst.c $(CONFIG_H) $(INCL)\permonst.h $(INCL)\align.h \
1359 $(INCL)\monattk.h $(INCL)\monflag.h $(INCL)\monsym.h \
1360 $(INCL)\dungeon.h $(INCL)\eshk.h $(INCL)\vault.h \
1361 $(INCL)\epri.h $(INCL)\color.h
1362 $(O)mplayer.o: mplayer.c $(HACK_H)
1363 $(O)mthrowu.o: mthrowu.c $(HACK_H)
1364 $(O)muse.o: muse.c $(HACK_H) $(INCL)\edog.h
1365 $(O)music.o: music.c $(HACK_H) #interp.c
1366 $(O)o_init.o: o_init.c $(HACK_H) $(INCL)\lev.h
1367 $(O)objects.o: objects.c $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h \
1368 $(INCL)\prop.h $(INCL)\skills.h $(INCL)\color.h
1369 $(O)objnam.o: objnam.c $(HACK_H)
1370 $(O)options.o: options.c $(CONFIG_H) $(INCL)\objclass.h $(INCL)\flag.h \
1371 $(HACK_H) $(INCL)\tcap.h
1372 $(O)pager.o: pager.c $(HACK_H) $(INCL)\dlb.h
1373 $(O)pickup.o: pickup.c $(HACK_H)
1374 $(O)pline.o: pline.c $(HACK_H) $(INCL)\epri.h $(INCL)\edog.h
1375 $(O)polyself.o: polyself.c $(HACK_H)
1376 $(O)potion.o: potion.c $(HACK_H)
1377 $(O)pray.o: pray.c $(HACK_H) $(INCL)\epri.h
1378 $(O)priest.o: priest.c $(HACK_H) $(INCL)\mfndpos.h $(INCL)\eshk.h \
1379 $(INCL)\epri.h $(INCL)\emin.h
1380 $(O)quest.o: quest.c $(HACK_H) $(INCL)\qtext.h
1381 $(O)questpgr.o: questpgr.c $(HACK_H) $(INCL)\dlb.h $(INCL)\qtext.h
1382 $(O)read.o: read.c $(HACK_H)
1383 $(O)rect.o: rect.c $(HACK_H)
1384 $(O)region.o: region.c $(HACK_H) $(INCL)\lev.h
1385 $(O)restore.o: restore.c $(HACK_H) $(INCL)\lev.h $(INCL)\tcap.h
1386 $(O)rip.o: rip.c $(HACK_H)
1387 $(O)rnd.o: rnd.c $(HACK_H)
1388 $(O)role.o: role.c $(HACK_H)
1389 $(O)rumors.o: rumors.c $(HACK_H) $(INCL)\lev.h $(INCL)\dlb.h
1390 $(O)save.o: save.c $(HACK_H) $(INCL)\lev.h
1391 $(O)shk.o: shk.c $(HACK_H) $(INCL)\eshk.h
1392 $(O)shknam.o: shknam.c $(HACK_H) $(INCL)\eshk.h
1393 $(O)sit.o: sit.c $(HACK_H) $(INCL)\artifact.h
1394 $(O)sounds.o: sounds.c $(HACK_H) $(INCL)\edog.h
1395 $(O)sp_lev.o: sp_lev.c $(HACK_H) $(INCL)\dlb.h $(INCL)\sp_lev.h
1396 $(O)spell.o: spell.c $(HACK_H)
1397 $(O)steal.o: steal.c $(HACK_H)
1398 $(O)steed.o: steed.c $(HACK_H)
1399 $(O)teleport.o: teleport.c $(HACK_H)
1400 $(O)timeout.o: timeout.c $(HACK_H) $(INCL)\lev.h
1401 $(O)topten.o: topten.c $(HACK_H) $(INCL)\dlb.h $(INCL)\patchlevel.h
1402 $(O)track.o: track.c $(HACK_H)
1403 $(O)trap.o: trap.c $(HACK_H)
1404 $(O)u_init.o: u_init.c $(HACK_H)
1405 $(O)uhitm.o: uhitm.c $(HACK_H)
1406 $(O)vault.o: vault.c $(HACK_H) $(INCL)\vault.h
1407 $(O)version.o: version.c $(HACK_H) $(INCL)\date.h $(INCL)\patchlevel.h
1408 $(O)vision.o: vision.c $(HACK_H) $(INCL)\vis_tab.h
1409 $(O)weapon.o: weapon.c $(HACK_H)
1410 $(O)were.o: were.c $(HACK_H)
1411 $(O)wield.o: wield.c $(HACK_H)
1412 $(O)windows.o: windows.c $(HACK_H) $(INCL)\wingem.h $(INCL)\winGnome.h
1413 $(O)wizard.o: wizard.c $(HACK_H) $(INCL)\qtext.h $(INCL)\epri.h
1414 $(O)worm.o: worm.c $(HACK_H) $(INCL)\lev.h
1415 $(O)worn.o: worn.c $(HACK_H)
1416 $(O)write.o: write.c $(HACK_H)
1417 $(O)zap.o: zap.c $(HACK_H)