1 # SCCS Id: @(#)Makefile.BC 3.4 2002/03/17
2 # Copyright (c) Yitzhak Sapir, 1999-2002.
3 # NetHack may be freely distributed. See license for details.
6 # PC NetHack 3.4 Makefile for Borland C++ 3.1 and 4.5.
8 # Nota Bene: Before you get to here you should have already read
9 # the Install.dos file located in the sys/msdos directory.
10 # Additionally, you should run this makefile with the -N
11 # Microsoft Compatibility option.
13 # This Makefile is for use with Borland C++ version 3.1 and 4.5, but might
14 # also work with more up to date versions.
16 # This Makefile is specific to Borland's MAKE which is supplied with the
17 # compiler. It supports only one overlay management facility - VROOMM.
18 # (This Makefile won't work with make45l or NDMAKE)
21 # Game Installation Variables.
22 # NOTE: Make sure GAMEDIR exists before nmake is started.
47 # ($(MAKE) macro is often predefined, so we use $(MAKEBIN) instead.)
52 ASM = tasm # Assembler (not currently needed for BC)
54 UUDECODE = uudecode # Unix style uudecoder
56 #BCTOP = c:\borlandc # main Borland C++ directory
60 # Yacc/Lex ... if you got 'em.
62 # If you have yacc and lex programs (or work-alike such as bison
63 # and flex), comment out the upper two lines below, and uncomment
66 # On Borland C++, the newest versions of flex and bison provide
67 # problems when run from MAKE.
76 # - Specify your yacc and lex programs (or work-alikes for each) here.
87 # - Specify your flex skeleton file (if needed).
90 #FLEXSKEL = -Sc:\tools16\flex.ske
93 # - Your yacc (or work-alike) output files
101 # - Your lex (or work-alike) output files
107 # Optional high-quality BSD random number generation routines
108 # (see pcconf.h). Set to nothing if not used.
111 RANDOM = $(OBJ)\random.o
115 # If TERMLIB is #defined in the source (in include\pcconf.h),
116 # comment out the upper line and uncomment the lower. Make sure
117 # that TERMLIB contains the full pathname to the termcap library.
120 #TERMLIB = $(SYS)\termcap.lib
123 # MEMORY USAGE AND OVERLAYING
127 # - Minimal extended memory available, lots of 640K base RAM free
128 # Minimize overlay turns. Requires that a minimum of
129 # 607K RAM be free as follows:
130 # 462K Executable load requirement
131 # 115K for malloc() calls
133 # 607K Total memory requirement
137 # - Favor small load size, requires extended memory for bearable performance.
138 # If you have very little base 640K RAM available, but lots of extended
139 # memory for caching overlays, you might try this. (eg. A machine with
140 # lots of TSR's or network drivers). Do not try to set SCHEMA = 2
141 # without a disk cache and extended memory.
142 # 381K Executable load requirement
143 # 115K for malloc() calls
145 # 526K Total memory requirement
147 # On Borland C++, you have to make a full rebuild of all object modules each
148 # time you change schemas.
154 # OPTIONAL TILE SUPPORT.
156 # This release of NetHack allows you to build a version of NetHack
157 # that will draw 16x16 color tiles on the display to represent
158 # NetHack maps, objects, monsters, etc. on machines with appropriate
159 # display hardware. Currently the only supported video hardware is
162 # Note: You can build NetHack with tile support and then choose
163 # whether to use it or not at runtime via the defaults.nh file option
170 # C COMPILER AND LINKER SETTINGS
172 # For debugging ability, comment out the upper three
173 # macros and uncomment the lower three. You can also
174 # uncomment only either LDFLAGSU or LDFLAGSN if you
175 # want to include debug information only in the utilities
176 # or only in the game file.
178 # On Borland C++, you cannot include debug information for
179 # all the object modules because the linker cannot handle
186 CDFLAGS = -v -vi # use debug info (compiler)
187 #LDFLAGSN = /v # use debug info (linker - game)
188 LDFLAGSU = /v # use debug info (linker - utilities)
191 # - Don't warn about unreachable code because flex generates a whole bunch
192 # of unreachable code warnings, which stops the compile process.
198 # Select whether to use pre-compiled headers or not.
199 # Set PRECOMPHEAD to Y to use pre-compiled headers, set it to anything
200 # else and pre-compiled headers will not be used.
201 # (Pre-compiled headers speed up compiles, but require a bit more
202 # disk space during the build. The pre-compiled headers can be deleted
203 # afterwards via DEL *.PCH if desired).
214 # Uncomment the line below if you want to store all the level files,
215 # help files, etc. in a single library file (recommended).
220 ########################################################################
221 ########################################################################
223 # Nothing below here should have to be changed.
225 ########################################################################
226 ########################################################################
230 # Changing anything below here means that you should be *very*
231 # familiar with your compiler's workings, *very* knowledgeable
232 # about the overlay structure and mechanics of NetHack, and *very*
233 # confident in your understanding of Makefiles and Make utilities.
235 ########################################################################
237 # Default Make Procedure
243 ########################################################################
247 ! IF ("$(TILESUPPORT)"=="Y")
249 TILEGAME = $(OBJ)\tile.o $(OBJ)\pctiles.0 $(OBJ)\pctiles.b
252 # - VGA Tile Support, uncomment these three lines.
255 TILEVGA = $(OBJ)\vidvga.0 $(OBJ)\vidvga.1 $(OBJ)\vidvga.2 $(OBJ)\vidvga.b
256 PLANAR_TIB = NetHack1.tib
257 OVERVIEW_TIB = NetHacko.tib
260 # Leave this line uncommented and unchanged.
261 TILEUTIL = $(TILEGAME) $(TILEVGA) $(UTIL)\tile2bin.exe $(UTIL)\til2bin2.exe \
262 $(PLANAR_TIB) $(OVERVIEW_TIB)
266 ! IF ("$(USE_DLB)"=="Y")
273 #############################################################################
275 # General Overlay Schema Settings
278 OVLINIT =$(OBJ)\ovlinit.o
282 #############################################################################
284 # C Compiler and Linker Setup Options
285 # (To Maintainer; modify only if absolutely necessary)
288 BCINCL = $(BCTOP)\include # include directory for main BC headers
289 BCLIB = $(BCTOP)\lib # library directory for main BC libraries
290 BCCFG = nethack.cfg # name of the nethack configuration file
291 VROOMMCFG= vroomm.cfg # name of file with code segment information
300 # - Optional C library specifier for those with non-standard
301 # libraries or a multiple-target library setup.
307 # Borland C++ libraries
310 BCOVL = $(BCLIB)\OVERLAY
311 BCMDL = $(BCLIB)\C$(MODEL)
317 CNOLNK = -c # just generate .OBJ
318 CPCHUSE = -Hu # use precompiled headers
319 CPCHGEN = -H # generate precompiled headers
320 CPCHNAM = -H= # set the name of the precompiled header file
321 CPCHEXT = .PCH # precompiled header extension
322 CDEFINE = -D # define a macro
323 CSTKSZ = -DSTKSIZ= # set stack size
324 CCSNAM = -zC # set the code segment name
325 COBJNAM = -o # name the .OBJ file
331 LWCASE = /c # treat case as significant
332 LMAP = /m # create map file
333 LINIT = $(BCLIB)\C0$(MODEL) # initialization object file
334 LOVL = /oOVLY # overlay all needed segments
340 STKSUTL = 4096 # Utilities Stack Size
341 STKSNRM = 5120 # Normal Stack Size
343 CUSTACK = $(CSTKSZ)$(STKSUTL) # Utilities Stack Set for Compiler
344 CNSTACK = $(CSTKSZ)$(STKSNRM) # Normal Stack Set for Compiler
348 ########################################################################
352 ! IF ("$(USE_DLB)"=="Y")
353 DLBFLG = $(CDEFINE)DLB
359 ########################################################################
363 ! IF ("$(TILESUPPORT)"=="Y")
364 TILFLG = $(CDEFINE)USE_TILES
369 #############################################################################
374 COVL0 = $(CDEFINE)OVL0
375 COVL1 = $(CDEFINE)OVL1
376 COVL2 = $(CDEFINE)OVL2
377 COVL3 = $(CDEFINE)OVL3
378 COVLB = $(CDEFINE)OVLB
384 FLAGOPT = $(DLBFLG) $(TILFLG)
387 # Precompiled Header Section
390 #common options (placed in $(BCCFG))
391 CFLGTOT = $(CDFLAGS) $(CFLAGS) $(FLAGOPT) $(CW)
393 CFLAGSU = $(CUSTACK) +$(VROOMMCFG)
394 #normal build, no PCH
395 CFLAGSN = $(CNSTACK) +$(VROOMMCFG)
397 CFLAGNO = $(CNOOPT) $(CFLAGSN)
399 ! IF ("$(PRECOMPHEAD)"!="Y")
421 @echo Not using precompiled headers...
426 CFLAGUO = $(CPCHUSE) $(CPCHNAM)PHO$(CPCHEXT) $(COVLO)
427 CFLAGCO = $(CPCHGEN) $(CPCHNAM)PHO$(CPCHEXT) $(COVLO)
430 CFLAGU0 = $(CPCHUSE) $(CPCHNAM)PH0$(CPCHEXT) $(COVL0)
431 CFLAGC0 = $(CPCHGEN) $(CPCHNAM)PH0$(CPCHEXT) $(COVL0)
434 CFLAGU1 = $(CPCHUSE) $(CPCHNAM)PH1$(CPCHEXT) $(COVL1)
435 CFLAGC1 = $(CPCHGEN) $(CPCHNAM)PH1$(CPCHEXT) $(COVL1)
438 CFLAGU2 = $(CPCHUSE) $(CPCHNAM)PH2$(CPCHEXT) $(COVL2)
439 CFLAGC2 = $(CPCHGEN) $(CPCHNAM)PH2$(CPCHEXT) $(COVL2)
442 CFLAGU3 = $(CPCHUSE) $(CPCHNAM)PH3$(CPCHEXT) $(COVL3)
443 CFLAGC3 = $(CPCHGEN) $(CPCHNAM)PH3$(CPCHEXT) $(COVL3)
446 CFLAGUB = $(CPCHUSE) $(CPCHNAM)PHB$(CPCHEXT) $(COVLB)
447 CFLAGCB = $(CPCHGEN) $(CPCHNAM)PHB$(CPCHEXT) $(COVLB)
451 @echo Using precompiled headers...
456 FLAGCO = $(CNSTACK) +$(VROOMMCFG)
457 FLAGUO = $(CNSTACK) +$(VROOMMCFG)
458 FLAGC0 = $(CNSTACK) +$(VROOMMCFG)
459 FLAGU0 = $(CNSTACK) +$(VROOMMCFG)
460 FLAGC1 = $(CNSTACK) +$(VROOMMCFG)
461 FLAGU1 = $(CNSTACK) +$(VROOMMCFG)
462 FLAGC2 = $(CNSTACK) +$(VROOMMCFG)
463 FLAGU2 = $(CNSTACK) +$(VROOMMCFG)
464 FLAGC3 = $(CNSTACK) +$(VROOMMCFG)
465 FLAGU3 = $(CNSTACK) +$(VROOMMCFG)
466 FLAGCB = $(CNSTACK) +$(VROOMMCFG)
467 FLAGUB = $(CNSTACK) +$(VROOMMCFG)
469 # End of Pre-compiled header section
470 #===========================================================================
473 # Basic Borland C++ option line
475 BCOPTS1 = -Y -O -Z -Oe -Ob -Os -Ff -I$(BCINCL);$(INCL) -m$(MODEL)
476 BCOPTS2 = $(CDEFINE)__IO_H $(CFLGTOT) -DSTRNCMPI
479 # Linker options for building various things.
482 LFLAGSU = $(LDFLAGSU) $(LUSTACK) $(LINIT)
483 LFLAGSN = $(LDFLAGSN) $(LNSTACK) $(LWCASE) $(LMAXSEG) $(INTOVL) $(LMAXALL) \
484 $(LINFO) $(LINIT) $(LOVL)
488 # Due to the inadequacy of some makes these must accord with a
489 # topological sort of the generated-from relation... output on
490 # the left, input on the right. Trust me.
493 .SUFFIXES: .exe .0 .1 .2 .3 .B .o .til .uu .c .y .l
496 # Rules for files in src
501 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
502 @echo $(BCOPTS1) >> $(VROOMMCFG)
503 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
504 $(CC) $(FLAGUO) $(COBJNAM)$@ $<
506 {$(SRC)}.c{$(OBJ)}.o:
507 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
508 @echo $(BCOPTS1) >> $(VROOMMCFG)
509 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
510 $(CC) $(FLAGUO) $(COBJNAM)$@ $<
512 {$(SRC)}.c{$(OBJ)}.0:
513 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
514 @echo $(BCOPTS1) >> $(VROOMMCFG)
515 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG)
516 $(CC) $(FLAGU0) $(COBJNAM)$@ $<
518 {$(SRC)}.c{$(OBJ)}.1:
519 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG)
520 @echo $(BCOPTS1) >> $(VROOMMCFG)
521 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG)
522 $(CC) $(FLAGU1) $(COBJNAM)$@ $<
524 {$(SRC)}.c{$(OBJ)}.2:
525 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG)
526 @echo $(BCOPTS1) >> $(VROOMMCFG)
527 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG)
528 $(CC) $(FLAGU2) $(COBJNAM)$@ $<
530 {$(SRC)}.c{$(OBJ)}.3:
531 @type schema$(SCHEMA).bc | find "$(@B)_3" > $(VROOMMCFG)
532 @echo $(BCOPTS1) >> $(VROOMMCFG)
533 @echo $(BCOPTS2) $(CFLAGU3) >> $(VROOMMCFG)
534 $(CC) $(FLAGU3) $(COBJNAM)$@ $<
536 {$(SRC)}.c{$(OBJ)}.B:
537 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
538 @echo $(BCOPTS1) >> $(VROOMMCFG)
539 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
540 $(CC) $(FLAGUB) $(COBJNAM)$@ $<
543 # Rules for files in sys\share
546 {$(SYS)}.c{$(OBJ)}.o:
547 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
548 @echo $(BCOPTS1) >> $(VROOMMCFG)
549 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
550 $(CC) $(FLAGUO) $(COBJNAM)$@ $<
552 {$(SYS)}.c{$(OBJ)}.0:
553 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
554 @echo $(BCOPTS1) >> $(VROOMMCFG)
555 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG)
556 $(CC) $(FLAGU0) $(COBJNAM)$@ $<
558 {$(SYS)}.c{$(OBJ)}.1:
559 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG)
560 @echo $(BCOPTS1) >> $(VROOMMCFG)
561 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG)
562 $(CC) $(FLAGU1) $(COBJNAM)$@ $<
564 {$(SYS)}.c{$(OBJ)}.2:
565 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG)
566 @echo $(BCOPTS1) >> $(VROOMMCFG)
567 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG)
568 $(CC) $(FLAGU2) $(COBJNAM)$@ $<
570 {$(SYS)}.c{$(OBJ)}.3:
571 @type schema$(SCHEMA).bc | find "$(@B)_3" > $(VROOMMCFG)
572 @echo $(BCOPTS1) >> $(VROOMMCFG)
573 @echo $(BCOPTS2) $(CFLAGU3) >> $(VROOMMCFG)
574 $(CC) $(FLAGU3) $(COBJNAM)$@ $<
576 {$(SYS)}.c{$(OBJ)}.B:
577 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
578 @echo $(BCOPTS1) >> $(VROOMMCFG)
579 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
580 $(CC) $(FLAGUB) $(COBJNAM)$@ $<
583 # Rules for files in sys\msdos
586 {$(MSYS)}.c{$(OBJ)}.o:
587 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
588 @echo $(BCOPTS1) >> $(VROOMMCFG)
589 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
590 $(CC) $(FLAGUO) $(COBJNAM)$@ $<
592 {$(MSYS)}.c{$(OBJ)}.0:
593 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
594 @echo $(BCOPTS1) >> $(VROOMMCFG)
595 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG)
596 $(CC) $(FLAGU0) $(COBJNAM)$@ $<
598 {$(MSYS)}.c{$(OBJ)}.1:
599 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG)
600 @echo $(BCOPTS1) >> $(VROOMMCFG)
601 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG)
602 $(CC) $(FLAGU1) $(COBJNAM)$@ $<
604 {$(MSYS)}.c{$(OBJ)}.2:
605 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG)
606 @echo $(BCOPTS1) >> $(VROOMMCFG)
607 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG)
608 $(CC) $(FLAGU2) $(COBJNAM)$@ $<
610 {$(MSYS)}.c{$(OBJ)}.3:
611 @type schema$(SCHEMA).bc | find "$(@B)_3" > $(VROOMMCFG)
612 @echo $(BCOPTS1) >> $(VROOMMCFG)
613 @echo $(BCOPTS2) $(CFLAGU3) >> $(VROOMMCFG)
614 $(CC) $(FLAGU3) $(COBJNAM)$@ $<
616 {$(MSYS)}.c{$(OBJ)}.B:
617 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
618 @echo $(BCOPTS1) >> $(VROOMMCFG)
619 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
620 $(CC) $(FLAGUB) $(COBJNAM)$@ $<
622 {$(MSYS)}.h{$(INCL)}.h:
626 # Rules for files in util
629 {$(UTIL)}.c{$(OBJ)}.o:
630 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
631 @echo $(BCOPTS1) >> $(VROOMMCFG)
632 @echo $(BCOPTS2) >> $(VROOMMCFG)
633 $(CC) $(CFLAGSU) (COBJNAM)$@ $<
636 # Rules for files in win\share
640 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
641 @echo $(BCOPTS1) >> $(VROOMMCFG)
642 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
643 @$(CC) $(FLAGUO) $(COBJNAM)$@ $<
645 {$(WSHR)}.c{$(OBJ)}.o:
646 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
647 @echo $(BCOPTS1) >> $(VROOMMCFG)
648 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
649 @$(CC) $(FLAGUO) $(COBJNAM)$@ $<
651 {$(WSHR)}.h{$(INCL)}.h:
654 {$(WSHR)}.txt{$(DAT)}.txt:
658 # Rules for files in win\tty
661 {$(WTTY)}.c{$(OBJ)}.o:
662 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
663 @echo $(BCOPTS1) >> $(VROOMMCFG)
664 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
665 $(CC) $(FLAGUO) $(COBJNAM)$@ $<
667 {$(WTTY)}.c{$(OBJ)}.0:
668 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
669 @echo $(BCOPTS1) >> $(VROOMMCFG)
670 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG)
671 $(CC) $(FLAGU0) $(COBJNAM)$@ $<
673 {$(WTTY)}.c{$(OBJ)}.1:
674 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG)
675 @echo $(BCOPTS1) >> $(VROOMMCFG)
676 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG)
677 $(CC) $(FLAGU1) $(COBJNAM)$@ $<
679 {$(WTTY)}.c{$(OBJ)}.2:
680 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG)
681 @echo $(BCOPTS1) >> $(VROOMMCFG)
682 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG)
683 $(CC) $(FLAGU2) $(COBJNAM)$@ $<
685 {$(WTTY)}.c{$(OBJ)}.3:
686 @type schema$(SCHEMA).bc | find "$(@B)_3" > $(VROOMMCFG)
687 @echo $(BCOPTS1) >> $(VROOMMCFG)
688 @echo $(BCOPTS2) $(CFLAGU3) >> $(VROOMMCFG)
689 $(CC) $(FLAGU3) $(COBJNAM)$@ $<
691 {$(WTTY)}.c{$(OBJ)}.B:
692 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
693 @echo $(BCOPTS1) >> $(VROOMMCFG)
694 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
695 $(CC) $(FLAGUB) $(COBJNAM)$@ $<
700 # This section creates shorthand macros for many objects
701 # referenced later on in the Makefile.
705 # Shorten up the location for some files
708 O = $(OBJ)\ # comment so \ isn't last char
710 U = $(UTIL)\ # comment so \ isn't last char
712 SPLEVDES = $(DAT)\Arch.des $(DAT)\Barb.des $(DAT)\bigroom.des \
713 $(DAT)\castle.des $(DAT)\Caveman.des $(DAT)\endgame.des \
714 $(DAT)\gehennom.des $(DAT)\Healer.des $(DAT)\Knight.des \
715 $(DAT)\knox.des $(DAT)\Monk.des $(DAT)\medusa.des \
716 $(DAT)\mines.des $(DAT)\oracle.des $(DAT)\Priest.des \
717 $(DAT)\Ranger.des $(DAT)\Rogue.des $(DAT)\Samurai.des \
718 $(DAT)\Tourist.des $(DAT)\tower.des $(DAT)\Valkyrie.des \
719 $(DAT)\Wizard.des $(DAT)\yendor.des
725 MAKESRC = $(U)makedefs.c
727 SPLEVSRC = $(U)lev_yacc.c $(U)lev_$(LEX).c $(U)lev_main.c $(U)panic.c
729 DGNCOMPSRC = $(U)dgn_yacc.c $(U)dgn_$(LEX).c $(U)dgn_main.c
731 MAKEOBJS = $(O)makedefs.o $(O)monst.o $(O)objects.o
733 SPLEVOBJS =$(O)lev_yacc.o $(O)lev_$(LEX).o $(O)lev_main.o \
734 $(O)alloc.o $(O)decl.o $(O)drawing.o $(O)monst.o \
735 $(O)objects.o $(O)panic.o $(O)stubvid.o
737 DGNCOMPOBJS =$(O)dgn_yacc.o $(O)dgn_$(LEX).o $(O)dgn_main.o \
738 $(O)alloc.o $(O)panic.o
740 RECOVOBJS = $(O)recover.o
742 GIFREADERS =$(O)gifread.o $(O)alloc.o $(O)panic.o
744 TEXT_IO =$(O)tiletext.o $(O)tiletxt.o $(O)drawing.o \
745 $(O)decl.o $(O)monst.o $(O)objects.o $(O)stubvid.o
747 PPMWRITERS = $(O)ppmwrite.o $(O)alloc.o $(O)panic.o
749 GIFREAD2 =$(O)gifread2.o $(O)alloc.o $(O)panic.o
751 TEXT_IO2 =$(O)tiletex2.o $(O)tiletxt2.o $(O)drawing.o \
752 $(O)decl.o $(O)monst.o $(O)objects.o $(O)stubvid.o
754 PPMWRIT2 = $(O)ppmwrit2.o $(O)alloc.o $(O)panic.o
756 TILEFILES = $(WSHR)\monsters.txt $(WSHR)\objects.txt $(WSHR)\other.txt
758 TILEFILES2 = $(WSHR)\monthin.txt $(WSHR)\objthin.txt $(WSHR)\oththin.txt
760 DLBOBJS = $(O)dlb_main.o $(O)dlb.o $(O)alloc.o $(O)panic.o
763 # Object files for the game itself.
766 OBJ01 = $(O)alloc.o $(RANDOM) $(O)decl.o $(O)objects.o \
767 $(O)muse.o $(O)display.o $(O)vision.o $(O)mapglyph.o \
768 $(O)rect.o $(O)vis_tab.o $(O)monst.o $(O)wintty.o \
769 $(O)files.o $(O)sys.o $(O)monstr.o $(O)minion.o \
770 $(O)worm.o $(O)detect.o $(O)exper.o $(O)mplayer.o \
771 $(O)uhitm.o $(O)pager.o $(O)windows.o $(O)quest.o \
772 $(O)questpgr.o $(O)write.o $(O)drawing.o $(O)dokick.o \
773 $(O)dothrow.o $(O)pickup.o $(O)pray.o $(O)spell.o \
774 $(O)ball.o $(O)wield.o $(O)worn.o $(O)fountain.o \
775 $(O)music.o $(O)rumors.o $(O)dlb.o $(O)sit.o \
776 $(O)bones.o $(O)mklev.o $(O)save.o $(O)restore.o \
777 $(O)mkmaze.o $(O)mkmap.o $(O)end.o $(O)o_init.o \
778 $(O)options.o $(O)rip.o $(O)sound.o $(O)teleport.o \
779 $(O)topten.o $(O)tty.o $(O)u_init.o $(O)extralev.o \
780 $(O)sp_lev.o $(O)dig.o $(O)pckeys.o $(O)role.o \
781 $(O)steed.o $(O)region.o
783 OVL0 = $(O)allmain.0 $(O)apply.0 $(O)artifact.0 $(O)attrib.0 \
784 $(O)botl.0 $(O)cmd.0 $(O)dbridge.0 $(O)do.0 \
785 $(O)do_name.0 $(O)do_wear.0 $(O)dogmove.0 $(O)dungeon.0 \
786 $(O)eat.0 $(O)engrave.0 $(O)hacklib.0 $(O)invent.0 \
787 $(O)lock.0 $(O)pcmain.0 $(O)mail.0 $(O)makemon.0 \
788 $(O)mcastu.0 $(O)mhitm.0 $(O)mhitu.0 $(O)mkobj.0 \
789 $(O)mkroom.0 $(O)mon.0 $(O)mondata.0 $(O)monmove.0 \
790 $(O)mthrowu.0 $(O)objnam.0 $(O)polyself.0 $(O)priest.0 \
791 $(O)rnd.0 $(O)shknam.0 $(O)sounds.0 $(O)steal.0 \
792 $(O)timeout.0 $(O)track.0 $(O)trap.0 $(O)vault.0 \
793 $(O)weapon.0 $(O)were.0 $(O)wizard.0 $(O)msdos.0 \
794 $(O)termcap.0 $(O)video.0 $(O)vidtxt.0 $(O)zap.0 \
795 $(O)explode.0 $(O)shk.0
797 OVL1 = $(O)allmain.1 $(O)apply.1 $(O)artifact.1 $(O)attrib.1 \
798 $(O)botl.1 $(O)cmd.1 $(O)dbridge.1 $(O)do.1 \
799 $(O)do_wear.1 $(O)dog.1 $(O)dungeon.1 $(O)eat.1 \
800 $(O)engrave.1 $(O)hack.1 $(O)hacklib.1 $(O)invent.1 \
801 $(O)makemon.1 $(O)mhitu.1 $(O)mkobj.1 $(O)mon.1 \
802 $(O)mondata.1 $(O)monmove.1 $(O)mthrowu.1 $(O)objnam.1 \
803 $(O)pcmain.1 $(O)polyself.1 $(O)rnd.1 $(O)shk.1 \
804 $(O)steal.1 $(O)timeout.1 $(O)track.1 $(O)trap.1 \
805 $(O)weapon.1 $(O)getline.1 $(O)termcap.1 $(O)topl.1 \
806 $(O)video.1 $(O)zap.1 $(O)explode.1
808 OVL2 = $(O)attrib.2 $(O)do.2 $(O)do_name.2 $(O)do_wear.2 \
809 $(O)dog.2 $(O)engrave.2 $(O)hack.2 $(O)hacklib.2 \
810 $(O)invent.2 $(O)makemon.2 $(O)mon.2 $(O)mondata.2 \
811 $(O)monmove.2 $(O)getline.2 $(O)shk.2 $(O)topl.2 \
814 OVL3 = $(O)do.3 $(O)hack.3 $(O)invent.3 $(O)light.3 \
815 $(O)shk.3 $(O)trap.3 $(O)zap.3
818 OVLB = $(O)allmain.B $(O)apply.B $(O)artifact.B $(O)attrib.B \
819 $(O)botl.B $(O)cmd.B $(O)dbridge.B $(O)do.B \
820 $(O)do_name.B $(O)do_wear.B $(O)dog.B $(O)dogmove.B \
821 $(O)eat.B $(O)engrave.B $(O)hack.B $(O)hacklib.B \
822 $(O)invent.B $(O)lock.B $(O)mail.B $(O)makemon.B \
823 $(O)mcastu.B $(O)mhitm.B $(O)mhitu.B $(O)mkobj.B \
824 $(O)mkroom.B $(O)mon.B $(O)mondata.B $(O)monmove.B \
825 $(O)mthrowu.B $(O)objnam.B $(O)pcmain.B $(O)pline.B \
826 $(O)polyself.B $(O)potion.B $(O)priest.B $(O)read.B \
827 $(O)rnd.B $(O)shk.B $(O)shknam.B $(O)sounds.B \
828 $(O)steal.B $(O)timeout.B $(O)track.B $(O)trap.B \
829 $(O)vault.B $(O)weapon.B $(O)were.B $(O)wizard.B \
830 $(O)msdos.B $(O)pcunix.B $(O)termcap.B $(O)topl.B \
831 $(O)video.B $(O)vidtxt.B $(O)zap.B
833 TILOBJ = $(TILEGAME) $(TILEVGA)
835 VVOBJ = $(O)version.o
837 NVOBJ = $(OBJ01) $(OVL0) $(OVL1) $(OVL2) \
838 $(OVL3) $(OVLB) $(TILOBJ)
840 ALLOBJ= $(NVOBJ) $(VVOBJ) $(OVLINIT)
846 # This comment copied from sys/unix/Makefile.src,
847 # extern.h is ignored, even though its declared function types may affect the
848 # compilation of all the .c files, since extern.h changes every time the
849 # type of an external function does, and we would spend all our time recompiling
850 # if we did not ignore it.
851 #EXTERN_H = $(INCL)\extern.h
853 PCCONF_H = $(INCL)\pcconf.h $(INCL)\micro.h $(INCL)\system.h
854 PERMONST_H = $(INCL)\monattk.h $(INCL)\monflag.h $(INCL)\align.h
855 YOUPROP_H = $(INCL)\prop.h $(PERMONST_H) $(INCL)\pm.h $(INCL)\youprop.h \
857 YOU_H = $(INCL)\attrib.h $(INCL)\monst.h $(YOUPROP_H) $(INCL)\align.h
858 DECL_H = $(INCL)\quest.h $(INCL)\spell.h $(INCL)\color.h \
859 $(INCL)\obj.h $(YOU_H) $(INCL)\onames.h $(INCL)\pm.h
861 CONFIG_H = $(INCL)\config1.h $(INCL)\tradstdc.h $(INCL)\coord.h $(PCCONF_H) \
863 HACK_H = $(CONFIG_H) $(INCL)\dungeon.h $(INCL)\align.h $(INCL)\monsym.h \
864 $(INCL)\mkroom.h $(INCL)\objclass.h $(DECL_H) \
865 $(INCL)\timeout.h $(INCL)\trap.h $(INCL)\flag.h $(INCL)\rm.h \
866 $(INCL)\vision.h $(INCL)\mondata.h $(INCL)\wintype.h \
867 $(INCL)\engrave.h $(INCL)\rect.h $(EXTERN_H) \
868 $(INCL)\winprocs.h $(INCL)\trampoli.h $(INCL)\display.h
869 TILE_H = $(INCL)\tile.h $(INCL)\pctiles.h
870 PCVIDEO_H = $(INCL)\portio.h $(INCL)\pcvideo.h
871 ALIGN_H = $(INCL)\align.h
872 ARTIFACT_H = $(INCL)\artifact.h
873 ARTILIST_H = $(INCL)\artilist.h
874 COLOR_H = $(INCL)\color.h
875 DATE_H = $(INCL)\date.h
876 DGN_FILE_H = $(INCL)\dgn_file.h
877 DLB_H = $(INCL)\dlb.h
878 EMIN_H = $(INCL)\emin.h
879 EPRI_H = $(INCL)\epri.h
880 ESHK_H = $(INCL)\eshk.h
881 EDOG_H = $(INCL)\edog.h
882 FUNC_TAB_H = $(INCL)\func_tab.h
883 LEV_H = $(INCL)\lev.h
884 LEV_COMP_H = $(INCL)\lev_comp.h
885 MAIL_H = $(INCL)\mail.h
886 MFNDPOS_H = $(INCL)\mfndpos.h
887 MONSYM_H = $(INCL)\monsym.h
888 OBJ_H = $(INCL)\obj.h
889 OBJCLASS_H = $(INCL)\objclass.h
890 OBJECTS_H = $(INCL)\objects.h
891 PROP_H = $(INCL)\prop.h
892 QTEXT_H = $(INCL)\qtext.h
893 QUEST_H = $(INCL)\quest.h
894 SP_LEV_H = $(INCL)\sp_lev.h
895 TERMCAP_H = $(INCL)\tcap.h
896 VAULT_H = $(INCL)\vault.h
897 VIS_TAB_H = $(INCL)\vis_tab.h
898 WINTTY_H = $(INCL)\wintty.h
901 # In the unix distribution this file is patchlevel.h, make it 8.3 here
902 # to avoid an nmake warning under dos.
905 PATCHLEVEL_H = $(INCL)\patchlev.h
909 # The name of the game.
912 GAMEFILE = $(GAMEDIR)\$(GAME).exe
915 # make data.base an 8.3 filename to prevent an nmake warning
918 DATABASE = $(DAT)\data.bas
920 #######################################################################
928 $(GAME): obj.tag envchk $(U)utility.tag $(GAMEFILE)
929 @echo $(GAME) is up to date.
937 install: $(GAME) install.tag
941 install.tag: $(DAT)\data $(DAT)\rumors $(DAT)\dungeon \
942 $(DAT)\oracles $(DAT)\quest.dat $(DAT)\sp_lev.tag $(DLB)
943 ! IF ("$(USE_DLB)"=="Y")
944 copy nhdat $(GAMEDIR)
945 copy $(DAT)\license $(GAMEDIR)
947 copy $(DAT)\*. $(GAMEDIR)
948 copy $(DAT)\*.dat $(GAMEDIR)
949 copy $(DAT)\*.lev $(GAMEDIR)
950 copy $(MSYS)\msdoshlp.txt $(GAMEDIR)
951 if exist $(GAMEDIR)\makefile del $(GAMEDIR)\makefile
953 copy $(SYS)\termcap $(GAMEDIR)
954 if exist $(DOC)\guideb*.txt copy $(DOC)\guideb*.txt $(GAMEDIR)
955 if exist $(DOC)\nethack.txt copy $(DOC)\nethack.txt $(GAMEDIR)\NetHack.txt
956 if exist $(DOC)\recover.txt copy $(DOC)\recover.txt $(GAMEDIR)
957 copy $(SYS)\NetHack.cnf $(GAMEDIR)\defaults.nh
958 copy $(MSYS)\NHAccess.nh $(GAMEDIR)
959 copy $(U)recover.exe $(GAMEDIR)
960 if exist *.tib copy *.tib $(GAMEDIR)
961 echo install done > $@
963 $(DAT)\sp_lev.tag: $(U)utility.tag $(SPLEVDES)
965 $(U)lev_comp bigroom.des
966 $(U)lev_comp castle.des
967 $(U)lev_comp endgame.des
968 $(U)lev_comp gehennom.des
969 $(U)lev_comp knox.des
970 $(U)lev_comp mines.des
971 $(U)lev_comp medusa.des
972 $(U)lev_comp oracle.des
973 $(U)lev_comp sokoban.des
974 $(U)lev_comp tower.des
975 $(U)lev_comp yendor.des
976 $(U)lev_comp arch.des
977 $(U)lev_comp barb.des
978 $(U)lev_comp caveman.des
979 $(U)lev_comp healer.des
980 $(U)lev_comp knight.des
981 $(U)lev_comp monk.des
982 $(U)lev_comp priest.des
983 $(U)lev_comp ranger.des
984 $(U)lev_comp rogue.des
985 $(U)lev_comp samurai.des
986 $(U)lev_comp tourist.des
987 $(U)lev_comp valkyrie.des
988 $(U)lev_comp wizard.des
990 echo sp_levs done > $(DAT)\sp_lev.tag
992 $(U)utility.tag: envchk $(INCL)\date.h $(INCL)\onames.h \
993 $(INCL)\pm.h $(SRC)\monstr.c $(SRC)\vis_tab.c \
994 $(U)lev_comp.exe $(VIS_TAB_H) $(U)dgn_comp.exe \
995 $(U)recover.exe $(TILEUTIL)
996 @echo utilities made >$@
997 @echo utilities made.
999 tileutil: $(U)gif2txt.exe $(U)txt2ppm.exe
1000 @echo Optional tile development utilities are up to date.
1004 # Specifying the "<<" means to start an inline file.
1005 # Another "<<" at the start of a line closes the
1008 # DO NOT INDENT THE << below!
1011 $(GAMEFILE) : $(ALLOBJ)
1013 $(LINK) $(LFLAGSN) @<<$(GAME).lnk
1017 $(TERMLIB) $(MOVETR) $(CLIB) $(BCOVL) $(BCMDL)
1019 @if exist $(GAMEDIR)\$(GAME).bak del $(GAMEDIR)\$(GAME).bak
1025 $(U)makedefs.exe: $(MAKEOBJS)
1026 @$(LINK) $(LFLAGSU) $(MAKEOBJS), $@,, $(CLIB) $(BCMDL);
1028 $(O)makedefs.o: $(CONFIG_H) $(PERMONST_H) $(OBJCLASS_H) \
1029 $(MONSYM_H) $(QTEXT_H) $(PATCHLEVEL_H) \
1031 @echo $(BCOPTS1) > $(VROOMMCFG)
1032 @echo $(BCOPTS2) >> $(VROOMMCFG)
1033 @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)makedefs.c
1036 # date.h should be remade every time any of the source or include
1037 # files is modified.
1040 $(INCL)\date.h : $(U)makedefs.exe
1042 @echo A new $@ has been created.
1044 $(INCL)\onames.h : $(U)makedefs.exe
1047 $(INCL)\pm.h : $(U)makedefs.exe
1050 #$(INCL)\trap.h : $(U)makedefs.exe
1053 $(SRC)\monstr.c: $(U)makedefs.exe
1056 $(INCL)\vis_tab.h: $(U)makedefs.exe
1059 $(SRC)\vis_tab.c: $(U)makedefs.exe
1063 # Level Compiler Stuff
1066 $(U)lev_comp.exe: $(SPLEVOBJS)
1068 $(LINK) $(LFLAGSU) @&&!
1069 $(O)stubvid.o $(O)panic.o $(O)objects.o $(O)monst.o +
1070 $(O)drawing.o $(O)decl.o $(O)alloc.o $(O)lev_main.o +
1071 $(O)lev_$(LEX).o $(O)lev_yacc.o
1077 $(O)lev_yacc.o: $(HACK_H) $(SP_LEV_H) $(INCL)\lev_comp.h $(U)lev_yacc.c
1078 @echo $(BCOPTS1) > $(VROOMMCFG)
1079 @echo $(BCOPTS2) >> $(VROOMMCFG)
1080 @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)lev_yacc.c
1082 $(O)lev_$(LEX).o: $(HACK_H) $(INCL)\lev_comp.h $(SP_LEV_H) \
1084 @echo $(BCOPTS1) > $(VROOMMCFG)
1085 @echo $(BCOPTS2) >> $(VROOMMCFG)
1086 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)lev_$(LEX).c
1088 $(O)lev_main.o: $(U)lev_main.c $(HACK_H) $(SP_LEV_H)
1089 @echo $(BCOPTS1) > $(VROOMMCFG)
1090 @echo $(BCOPTS2) >> $(VROOMMCFG)
1091 @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)lev_main.c
1093 $(U)lev_yacc.c $(INCL)\lev_comp.h : $(U)lev_comp.y
1094 ! IF "$(DO_YACC)"=="YACC_ACT"
1095 $(YACC) -d -l $(U)lev_comp.y
1096 copy $(YTABC) $(U)lev_yacc.c
1097 copy $(YTABH) $(INCL)\lev_comp.h
1102 @echo $(U)lev_comp.y has changed.
1103 @echo To update $(U)lev_yacc.c and $(INCL)\lev_comp.h run $(YACC).
1105 @echo For now, we will copy the prebuilt lev_yacc.c
1106 @echo from $(SYS) to $(U)lev_yacc.c, and copy the prebuilt
1107 @echo lev_comp.h from $(SYS) to $(UTIL)\lev_comp.h
1108 @echo and use those.
1110 copy $(SYS)\lev_yacc.c $@ >nul
1112 copy $(SYS)\lev_comp.h $(INCL)\lev_comp.h >nul
1113 touch $(INCL)\lev_comp.h
1116 $(U)lev_$(LEX).c: $(U)lev_comp.l
1117 ! IF "$(DO_LEX)"=="LEX_ACT"
1118 $(LEX) $(FLEXSKEL) $(U)lev_comp.l
1123 @echo $(U)lev_comp.l has changed. To update $@ run $(LEX).
1125 @echo For now, we will copy a prebuilt lev_lex.c
1126 @echo from $(SYS) to $@ and use it.
1128 copy $(SYS)\lev_lex.c $@ >nul
1136 $(U)dgn_comp.exe: $(DGNCOMPOBJS)
1138 $(LINK) $(LFLAGSU) @&&!
1139 $(O)panic.o $(O)alloc.o $(O)dgn_main.o $(O)dgn_$(LEX).o +
1146 $(O)dgn_yacc.o: $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h \
1148 @echo $(BCOPTS1) > $(VROOMMCFG)
1149 @echo $(BCOPTS2) >> $(VROOMMCFG)
1150 @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)dgn_yacc.c
1152 $(O)dgn_$(LEX).o: $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h \
1154 @echo $(BCOPTS1) > $(VROOMMCFG)
1155 @echo $(BCOPTS2) >> $(VROOMMCFG)
1156 @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)dgn_$(LEX).c
1158 $(O)dgn_main.o: $(HACK_H) $(U)dgn_main.c
1159 @echo $(BCOPTS1) > $(VROOMMCFG)
1160 @echo $(BCOPTS2) >> $(VROOMMCFG)
1161 @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)dgn_main.c
1163 $(U)dgn_yacc.c $(INCL)\dgn_comp.h : $(U)dgn_comp.y
1164 ! IF "$(DO_YACC)"=="YACC_ACT"
1165 $(YACC) -d -l $(U)dgn_comp.y
1166 copy $(YTABC) $(U)dgn_yacc.c
1167 copy $(YTABH) $(INCL)\dgn_comp.h
1172 @echo $(U)dgn_comp.y has changed. To update $@ and
1173 @echo $(INCL)\dgn_comp.h run $(YACC).
1175 @echo For now, we will copy the prebuilt dgn_yacc.c from
1176 @echo $(SYS) to $(U)dgn_yacc.c, and copy the prebuilt
1177 @echo dgn_comp.h from $(SYS) to $(INCL)\dgn_comp.h
1178 @echo and use those.
1180 copy $(SYS)\dgn_yacc.c $@ >nul
1182 copy $(SYS)\dgn_comp.h $(INCL)\dgn_comp.h >nul
1183 touch $(INCL)\dgn_comp.h
1186 $(U)dgn_$(LEX).c: $(U)dgn_comp.l
1187 ! IF "$(DO_LEX)"=="LEX_ACT"
1188 $(LEX) $(FLEXSKEL) $(U)dgn_comp.l
1193 @echo $(U)dgn_comp.l has changed. To update $@ run $(LEX).
1195 @echo For now, we will copy a prebuilt dgn_lex.c
1196 @echo from $(SYS) to $@ and use it.
1198 copy $(SYS)\dgn_lex.c $@ >nul
1204 @if not exist $(O)*.* mkdir $(OBJ)
1205 @echo directory $(OBJ) created
1206 @echo directory $(OBJ) created >$@
1209 ! IF "$(TILEGAME)"==""
1211 @echo NOTE: This build will NOT include tile support.
1215 @echo This build includes tile support.
1224 # Header files NOT distributed in ..\include
1227 $(INCL)\tile.h: $(WSHR)\tile.h
1228 copy $(WSHR)\tile.h $@
1230 $(INCL)\pctiles.h: $(MSYS)\pctiles.h
1231 copy $(MSYS)\pctiles.h $@
1233 $(INCL)\pcvideo.h: $(MSYS)\pcvideo.h
1234 copy $(MSYS)\pcvideo.h $@
1236 $(INCL)\portio.h: $(MSYS)\portio.h
1237 copy $(MSYS)\portio.h $@
1243 $(U)recover.exe: $(RECOVOBJS)
1244 @$(LINK) $(LFLAGSU) $(RECOVOBJS),$@,, $(CLIB) $(BCMDL);
1250 $(SRC)\tile.c: $(U)tilemap.exe
1251 @echo A new $@ is being created.
1254 $(U)tilemap.exe: $(O)tilemap.o
1255 @$(LINK) $(LFLAGSU) $(O)tilemap.o,$@,, $(CLIB) $(BCMDL);
1257 $(O)tilemap.o: $(WSHR)\tilemap.c $(HACK_H)
1258 @echo $(BCOPTS1) > $(VROOMMCFG)
1259 @echo $(BCOPTS2) >> $(VROOMMCFG)
1260 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(WSHR)\tilemap.c
1268 # Optional (for development)
1275 $(U)gif2txt.exe: $(GIFREADERS) $(TEXT_IO)
1276 @$(LINK) $(LFLAGSU) << $(@B).lnk
1277 $(GIFREADERS) $(TEXT_IO)
1278 $@,,$(CLIB) $(BCMDL)
1281 $(U)txt2ppm.exe: $(PPMWRITERS) $(TEXT_IO)
1282 @$(LINK) $(LFLAGSU) << $(@B).lnk
1283 $(PPMWRITERS) $(TEXT_IO)
1284 $@,,$(CLIB) $(BCMDL);
1287 $(U)gif2txt2.exe: $(GIFREAD2) $(TEXT_IO2)
1288 @$(LINK) $(LFLAGSU) << $(@B).lnk
1289 $(GIFREAD2) $(TEXT_IO2)
1290 $@,,$(CLIB) $(BCMDL);
1293 $(U)txt2ppm2.exe: $(PPMWRIT2) $(TEXT_IO2)
1294 @$(LINK) $(LFLAGSU) << $(@B).lnk
1295 $(PPMWRIT2) $(TEXT_IO2)
1296 $@,,$(CLIB) $(BCMDL);
1300 # Required for tile support
1303 NetHack1.tib: $(TILEFILES) $(U)tile2bin.exe
1304 @echo Creating binary tile files (this may take some time)
1307 NetHackO.tib: thintile.tag $(TILEFILES2) $(U)til2bin2.exe
1308 @echo Creating overview binary tile files (this may take some time)
1311 thintile.tag: $(U)thintile.exe $(TILEFILES)
1313 @echo thintiles created >thintile.tag
1315 $(U)tile2bin.exe: $(O)tile2bin.o $(TEXT_IO)
1317 $(LINK) $(LFLAGSU) @&&!
1319 $(O)stubvid.o $(O)objects.o $(O)monst.o $(O)decl.o +
1320 $(O)drawing.o $(O)tiletxt.o $(O)tiletext.o
1326 $(U)til2bin2.exe: $(O)til2bin2.o $(TEXT_IO2)
1328 $(LINK) $(LFLAGSU) @&&!
1330 $(O)stubvid.o $(O)objects.o $(O)monst.o $(O)decl.o +
1331 $(O)drawing.o $(O)tiletxt2.o $(O)tiletex2.o
1338 $(U)thintile.exe: $(O)thintile.o
1339 @$(LINK) $(LFLAGSU) $(O)thintile.o,$@,, $(CLIB) $(BCMDL);
1341 $(O)thintile.o: $(HACK_H) $(INCL)\tile.h $(WSHR)\thintile.c
1342 @echo $(BCOPTS1) > $(VROOMMCFG)
1343 @echo $(BCOPTS2) >> $(VROOMMCFG)
1344 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(WSHR)\thintile.c
1346 $(O)tile2bin.o: $(HACK_H) $(TILE_H) $(PCVIDEO_H)
1347 @echo $(BCOPTS1) > $(VROOMMCFG)
1348 @echo $(BCOPTS2) >> $(VROOMMCFG)
1349 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(MSYS)\tile2bin.c
1351 $(O)til2bin2.o: $(HACK_H) $(TILE_H) $(PCVIDEO_H)
1352 @echo $(BCOPTS1) > $(VROOMMCFG)
1353 @echo $(BCOPTS2) >> $(VROOMMCFG)
1354 $(CC) $(CFLAGSU) $(CDEFINE)TILE_X=8 $(CDEFINE)OVERVIEW_FILE \
1355 $(COBJNAM)$@ $(MSYS)\tile2bin.c
1362 nhdat: $(U)dlb_main.exe
1363 @copy $(MSYS)\msdoshlp.txt $(DAT)
1366 @echo oracles >>dlb.lst
1367 @echo options >>dlb.lst
1368 @echo quest.dat >>dlb.lst
1369 @echo rumors >>dlb.lst
1370 @echo help >>dlb.lst
1372 @echo cmdhelp >>dlb.lst
1373 @echo history >>dlb.lst
1374 @echo opthelp >>dlb.lst
1375 @echo wizhelp >>dlb.lst
1376 @echo dungeon >>dlb.lst
1377 @echo license >>dlb.lst
1378 @echo msdoshlp.txt >>dlb.lst
1379 @for %%N in (*.lev) do echo %%N >>dlb.lst
1380 $(U)dlb_main cvIf dlb.lst $(SRC)\nhdat
1383 $(U)dlb_main.exe: $(DLBOBJS)
1384 @$(LINK) $(LFLAGSU) $(DLBOBJS),$@,, $(CLIB) $(BCMDL);
1386 $(O)dlb_main.o: $(U)dlb_main.c $(INCL)\config.h $(DLB_H)
1387 @echo $(BCOPTS1) > $(VROOMMCFG)
1388 @echo $(BCOPTS2) >> $(VROOMMCFG)
1389 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)dlb_main.c
1397 if exist $(DATE_H) del $(DATE_H)
1398 if exist $(INCL)\onames.h del $(INCL)\onames.h
1399 if exist $(INCL)\pm.h del $(INCL)\pm.h
1400 if exist $(VIS_TAB_H) del $(VIS_TAB_H)
1401 if exist $(SRC)\vis_tab.c del $(SRC)\vis_tab.c
1402 if exist $(SRC)\tile.c del $(SRC)\tile.c
1403 if exist $(DAT)\rumors del $(DAT)\rumors
1404 if exist $(DAT)\data del $(DAT)\data
1405 if exist $(DAT)\dungeon del $(DAT)\dungeon
1406 if exist $(DAT)\dungeon.pdf del $(DAT)\dungeon.pdf
1407 if exist $(DAT)\options del $(DAT)\options
1408 if exist $(DAT)\oracles del $(DAT)\oracles
1409 if exist $(DAT)\rumors del $(DAT)\rumors
1410 if exist $(DAT)\quest.dat del $(DAT)\quest.dat
1411 if exist $(DAT)\*.lev del $(DAT)\*.lev
1412 if exist $(DAT)\sp_lev.tag del $(DAT)\sp_lev.tag
1413 if exist $(SRC)\monstr.c del $(SRC)\monstr.c
1414 if exist $(SRC)\vis_tab.c del $(SRC)\vis_tab.c
1415 if exist $(SRC)\$(PLANAR_TIB) del $(SRC)\$(PLANAR_TIB)
1416 if exist $(SRC)\$(OVERVIEW_TIB) del $(SRC)\$(OVERVIEW_TIB)
1417 if exist $(U)recover.exe del $(U)recover.exe
1420 if exist $(O)*.o del $(O)*.o
1421 if exist $(O)*.0 del $(O)*.0
1422 if exist $(O)*.1 del $(O)*.1
1423 if exist $(O)*.2 del $(O)*.2
1424 if exist $(O)*.3 del $(O)*.3
1425 if exist $(O)*.b del $(O)*.b
1426 if exist $(U)utility.tag del $(U)utility.tag
1427 if exist $(U)makedefs.exe del $(U)makedefs.exe
1428 if exist $(U)lev_comp.exe del $(U)lev_comp.exe
1429 if exist $(U)dgn_comp.exe del $(U)dgn_comp.exe
1430 if exist $(U)dlb_main.exe del $(U)dlb_main.exe
1431 if exist $(SRC)\*.lnk del $(SRC)\*.lnk
1432 if exist $(SRC)\*.map del $(SRC)\*.map
1433 if exist $(SRC)\*$(CPCHEXT) del $(SRC)\*$(CPCHEXT)
1434 if exist $(SRC)\*.cfg del $(SRC)\*.cfg
1435 if exist $(DAT)\dlb.lst del $(DAT)\dlb.lst
1438 @echo ^#include "hack.h" > $@
1439 @echo main(int argc, char *argv[]) >> $@
1445 # OTHER DEPENDENCIES
1449 # Precompiled Header dependencies
1450 # (We need to force the generation of these at the beginning)
1453 PHO$(CPCHEXT): $(HACK_H) pch.c
1454 @echo Generating new precompiled header for .O files
1455 @echo $(BCOPTS1) > $(VROOMMCFG)
1456 @echo $(BCOPTS2) $(CFLAGCO) >> $(VROOMMCFG)
1457 @$(CC) $(FLAGCO) pch.c
1458 PH0$(CPCHEXT): $(HACK_H) pch.c
1459 @echo Generating new precompiled header for .0 files
1460 @echo $(BCOPTS1) > $(VROOMMCFG)
1461 @echo $(BCOPTS2) $(CFLAGC0) >> $(VROOMMCFG)
1462 @$(CC) $(FLAGC0) pch.c
1463 PH1$(CPCHEXT): $(HACK_H) pch.c
1464 @echo Generating new precompiled header for .1 files
1465 @echo $(BCOPTS1) > $(VROOMMCFG)
1466 @echo $(BCOPTS2) $(CFLAGC1) >> $(VROOMMCFG)
1467 @$(CC) $(FLAGC1) pch.c
1468 PH2$(CPCHEXT): $(HACK_H) pch.c
1469 @echo Generating new precompiled header for .2 files
1470 @echo $(BCOPTS1) > $(VROOMMCFG)
1471 @echo $(BCOPTS2) $(CFLAGC2) >> $(VROOMMCFG)
1472 @$(CC) $(FLAGC2) pch.c
1473 PH3$(CPCHEXT): $(HACK_H) pch.c
1474 @echo Generating new precompiled header for .3 files
1475 @echo $(BCOPTS1) > $(VROOMMCFG)
1476 @echo $(BCOPTS2) $(CFLAGC3) >> $(VROOMMCFG)
1477 @$(CC) $(FLAGC3) pch.c
1478 PHB$(CPCHEXT): $(HACK_H) pch.c
1479 @echo Generating new precompiled header for .B files
1480 @echo $(BCOPTS1) > $(VROOMMCFG)
1481 @echo $(BCOPTS2) $(CFLAGCB) >> $(VROOMMCFG)
1482 @$(CC) $(FLAGCB) pch.c
1485 # Overlay initialization routines used by pcmain() at startup to
1486 # determine EMS/XMS memory usage.
1488 # Comment out the following line if you don't want Borland C++ to check for
1490 RECOGNIZE_XMS = $(CDEFINE)RECOGNIZE_XMS
1493 $(O)ovlinit.o: $(MSYS)\ovlinit.c $(HACK_H)
1494 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1495 @echo $(BCOPTS1) >> $(VROOMMCFG)
1496 @echo $(BCOPTS2) >> $(VROOMMCFG)
1497 $(CC) $(CFLAGSN) $(RECOGNIZE_XMS) $(COBJNAM)$@ $(MSYS)\ovlinit.c
1503 $(DAT)\data: $(U)utility.tag $(DATABASE)
1506 $(DAT)\rumors: $(U)utility.tag $(DAT)\rumors.tru $(DAT)\rumors.fal
1509 $(DAT)\quest.dat: $(U)utility.tag $(DAT)\quest.txt
1512 $(DAT)\oracles: $(U)utility.tag $(DAT)\oracles.txt
1515 $(DAT)\dungeon: $(U)utility.tag $(DAT)\dungeon.def
1518 $(U)dgn_comp dungeon.pdf
1522 # Util Dependencies.
1525 $(O)panic.o: $(U)panic.c $(CONFIG_H)
1526 @echo $(BCOPTS1) > $(VROOMMCFG)
1527 @echo $(BCOPTS2) >> $(VROOMMCFG)
1528 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)panic.c
1530 $(O)recover.o: $(CONFIG_H) $(U)recover.c
1531 @echo $(BCOPTS1) > $(VROOMMCFG)
1532 @echo $(BCOPTS2) >> $(VROOMMCFG)
1533 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)recover.c
1539 $(O)tiletxt.o: $(WSHR)\tilemap.c $(HACK_H)
1540 @echo $(BCOPTS1) > $(VROOMMCFG)
1541 @echo $(BCOPTS2) >> $(VROOMMCFG)
1542 $(CC) $(CFLAGSU) $(CDEFINE)TILETEXT $(COBJNAM)$@ $(WSHR)\tilemap.c
1544 $(O)tiletxt2.o: $(WSHR)\tilemap.c $(HACK_H)
1545 @echo $(BCOPTS1) > $(VROOMMCFG)
1546 @echo $(BCOPTS2) >> $(VROOMMCFG)
1547 $(CC) $(CFLAGSU) $(CDEFINE)TILETEXT \
1548 $(CDEFINE)TILE_X=8 $(COBJNAM)$@ $(WSHR)\tilemap.c
1550 $(O)gifread.o: $(WSHR)\gifread.c $(CONFIG_H) $(INCL)\tile.h
1551 @echo $(BCOPTS1) > $(VROOMMCFG)
1552 @echo $(BCOPTS2) >> $(VROOMMCFG)
1553 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(WSHR)\gifread.c
1555 $(O)gifread2.o: $(WSHR)\gifread.c $(CONFIG_H) $(INCL)\tile.h
1556 @echo $(BCOPTS1) > $(VROOMMCFG)
1557 @echo $(BCOPTS2) >> $(VROOMMCFG)
1558 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(CDEFINE)TILE_X=8 $(WSHR)\gifread.c
1560 $(O)ppmwrite.o: $(WSHR)\ppmwrite.c $(CONFIG_H) $(INCL)\tile.h
1561 @echo $(BCOPTS1) > $(VROOMMCFG)
1562 @echo $(BCOPTS2) >> $(VROOMMCFG)
1563 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(WSHR)\ppmwrite.c
1565 $(O)ppmwrit2.o: $(WSHR)\ppmwrite.c $(CONFIG_H) $(INCL)\tile.h
1566 @echo $(BCOPTS1) > $(VROOMMCFG)
1567 @echo $(BCOPTS2) >> $(VROOMMCFG)
1568 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(CDEFINE)TILE_X=8 $(WSHR)\ppmwrite.c
1570 $(O)tiletext.o: $(WSHR)\tiletext.c $(CONFIG_H) $(INCL)\tile.h
1571 @echo $(BCOPTS1) > $(VROOMMCFG)
1572 @echo $(BCOPTS2) >> $(VROOMMCFG)
1573 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(WSHR)\tiletext.c
1575 $(O)tiletex2.o: $(WSHR)\tiletext.c $(CONFIG_H) $(INCL)\tile.h
1576 @echo $(BCOPTS1) > $(VROOMMCFG)
1577 @echo $(BCOPTS2) >> $(VROOMMCFG)
1578 $(CC) $(CFLAGSU) $(CDEFINE)TILE_X=8 $(COBJNAM)$@ $(WSHR)\tiletext.c
1584 $(O)getline.1: $(PCH1) $(WTTY)\getline.c $(HACK_H) $(WINTTY_H) $(FUNC_TAB_H)
1585 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG)
1586 @echo $(BCOPTS1) >> $(VROOMMCFG)
1587 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG)
1588 $(CC) $(FLAGU1) $(COBJNAM)$@ $(WTTY)\getline.c
1590 $(O)getline.2: $(PCH2) $(WTTY)\getline.c $(HACK_H) $(WINTTY_H) $(FUNC_TAB_H)
1591 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG)
1592 @echo $(BCOPTS1) >> $(VROOMMCFG)
1593 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG)
1594 $(CC) $(FLAGU2) $(COBJNAM)$@ $(WTTY)\getline.c
1596 $(O)termcap.0: $(PCH0) $(WTTY)\termcap.c $(HACK_H) $(WINTTY_H) $(TERMCAP_H)
1597 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
1598 @echo $(BCOPTS1) >> $(VROOMMCFG)
1599 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG)
1600 $(CC) $(FLAGU0) $(COBJNAM)$@ $(WTTY)\termcap.c
1602 $(O)termcap.1: $(PCH1) $(WTTY)\termcap.c $(HACK_H) $(WINTTY_H) $(TERMCAP_H)
1603 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG)
1604 @echo $(BCOPTS1) >> $(VROOMMCFG)
1605 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG)
1606 $(CC) $(FLAGU1) $(COBJNAM)$@ $(WTTY)\termcap.c
1608 $(O)termcap.B: $(PCHB) $(WTTY)\termcap.c $(HACK_H) $(WINTTY_H) $(TERMCAP_H)
1609 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
1610 @echo $(BCOPTS1) >> $(VROOMMCFG)
1611 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
1612 $(CC) $(FLAGUB) $(COBJNAM)$@ $(WTTY)\termcap.c
1614 $(O)topl.1: $(PCH1) $(WTTY)\topl.c $(HACK_H) $(TERMCAP_H) $(WINTTY_H)
1615 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG)
1616 @echo $(BCOPTS1) >> $(VROOMMCFG)
1617 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG)
1618 $(CC) $(FLAGU1) $(COBJNAM)$@ $(WTTY)\topl.c
1620 $(O)topl.2: $(PCH2) $(WTTY)\topl.c $(HACK_H) $(TERMCAP_H) $(WINTTY_H)
1621 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG)
1622 @echo $(BCOPTS1) >> $(VROOMMCFG)
1623 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG)
1624 $(CC) $(FLAGU2) $(COBJNAM)$@ $(WTTY)\topl.c
1626 $(O)topl.B: $(PCHB) $(WTTY)\topl.c $(HACK_H) $(TERMCAP_H) $(WINTTY_H)
1627 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
1628 @echo $(BCOPTS1) >> $(VROOMMCFG)
1629 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
1630 $(CC) $(FLAGUB) $(COBJNAM)$@ $(WTTY)\topl.c
1632 $(O)wintty.o: $(PCHO) $(CONFIG_H) $(WTTY)\wintty.c $(PATCHLEVEL_H)
1633 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1634 @echo $(BCOPTS1) >> $(VROOMMCFG)
1635 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
1636 $(CC) $(FLAGUO) $(COBJNAM)$@ $(WTTY)\wintty.c
1642 $(O)pcmain.0: $(PCH0) $(HACK_H) $(SYS)\pcmain.c
1643 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
1644 @echo $(BCOPTS1) >> $(VROOMMCFG)
1645 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG)
1646 $(CC) $(FLAGU0) $(COBJNAM)$@ $(SYS)\pcmain.c
1648 $(O)pcmain.1: $(PCH1) $(HACK_H) $(SYS)\pcmain.c
1649 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG)
1650 @echo $(BCOPTS1) >> $(VROOMMCFG)
1651 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG)
1652 $(CC) $(FLAGU1) $(COBJNAM)$@ $(SYS)\pcmain.c
1654 $(O)pcmain.B: $(PCHB) $(HACK_H) $(SYS)\pcmain.c
1655 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
1656 @echo $(BCOPTS1) >> $(VROOMMCFG)
1657 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
1658 $(CC) $(FLAGUB) $(COBJNAM)$@ $(SYS)\pcmain.c
1660 $(O)pcunix.B: $(PCHB) $(SYS)\pcunix.c $(HACK_H)
1661 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
1662 @echo $(BCOPTS1) >> $(VROOMMCFG)
1663 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
1664 $(CC) $(FLAGUB) $(COBJNAM)$@ $(SYS)\pcunix.c
1666 $(O)tty.o: $(HACK_H) $(WINTTY_H) $(SYS)\pctty.c
1667 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1668 @echo $(BCOPTS1) >> $(VROOMMCFG)
1669 @echo $(BCOPTS2) >> $(VROOMMCFG)
1670 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SYS)\pctty.c
1672 $(O)sys.o: $(HACK_H) $(SYS)\pcsys.c
1673 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1674 @echo $(BCOPTS1) >> $(VROOMMCFG)
1675 @echo $(BCOPTS2) >> $(VROOMMCFG)
1676 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SYS)\pcsys.c
1678 $(O)random.o: $(PCHO) $(HACK_H) $(SYS)\random.c
1679 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1680 @echo $(BCOPTS1) >> $(VROOMMCFG)
1681 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
1682 $(CC) $(FLAGUO) $(COBJNAM)$@ $(SYS)\random.c
1688 $(O)msdos.0: $(MSYS)\msdos.c $(HACK_H) $(PCVIDEO_H)
1689 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
1690 @echo $(BCOPTS1) >> $(VROOMMCFG)
1691 @echo $(BCOPTS2) >> $(VROOMMCFG)
1692 $(CC) $(CFLAGSN) $(COVL0) $(COBJNAM)$@ $(MSYS)\msdos.c
1694 $(O)msdos.B: $(MSYS)\msdos.c $(HACK_H) $(PCVIDEO_H)
1695 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
1696 @echo $(BCOPTS1) >> $(VROOMMCFG)
1697 @echo $(BCOPTS2) >> $(VROOMMCFG)
1698 $(CC) $(CFLAGSN) $(COVLB) $(COBJNAM)$@ $(MSYS)\msdos.c
1700 $(O)pctiles.0: $(PCH0) $(MSYS)\pctiles.c $(HACK_H) $(TILE_H) $(PCVIDEO_H)
1701 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
1702 @echo $(BCOPTS1) >> $(VROOMMCFG)
1703 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG)
1704 $(CC) $(FLAGU0) $(COBJNAM)$@ $(MSYS)\pctiles.c
1706 $(O)pctiles.B: $(PCHB) $(MSYS)\pctiles.c $(HACK_H) $(TILE_H) $(PCVIDEO_H)
1707 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
1708 @echo $(BCOPTS1) >> $(VROOMMCFG)
1709 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
1710 $(CC) $(FLAGUB) $(COBJNAM)$@ $(MSYS)\pctiles.c
1712 $(O)sound.o: $(PCH0) $(MSYS)\sound.c $(HACK_H) $(INCL)\portio.h
1713 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1714 @echo $(BCOPTS1) >> $(VROOMMCFG)
1715 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
1716 $(CC) $(FLAGUO) $(COBJNAM)$@ $(MSYS)\sound.c
1718 $(O)pckeys.o: $(PCHO) $(MSYS)\pckeys.c $(HACK_H) $(PCVIDEO_H)
1719 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1720 @echo $(BCOPTS1) >> $(VROOMMCFG)
1721 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
1722 $(CC) $(FLAGUO) $(COBJNAM)$@ $(MSYS)\pckeys.c
1724 $(O)stubvid.o : $(MSYS)\video.c $(HACK_H)
1725 @echo $(BCOPTS1) >> $(VROOMMCFG)
1726 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
1727 $(CC) $(FLAGUO) $(CDEFINE)STUBVIDEO $(COBJNAM)$@ $(MSYS)\video.c
1729 $(O)video.0: $(PCH0) $(MSYS)\video.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \
1731 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
1732 @echo $(BCOPTS1) >> $(VROOMMCFG)
1733 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG)
1734 $(CC) $(FLAGU0) $(COBJNAM)$@ $(MSYS)\video.c
1736 $(O)video.1: $(PCH1) $(MSYS)\video.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \
1738 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG)
1739 @echo $(BCOPTS1) >> $(VROOMMCFG)
1740 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG)
1741 $(CC) $(FLAGU1) $(COBJNAM)$@ $(MSYS)\video.c
1743 $(O)video.B: $(PCHB) $(MSYS)\video.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \
1745 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
1746 @echo $(BCOPTS1) >> $(VROOMMCFG)
1747 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
1748 $(CC) $(FLAGUB) $(COBJNAM)$@ $(MSYS)\video.c
1750 $(O)vidtxt.0: $(MSYS)\vidtxt.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H)
1751 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
1752 @echo $(BCOPTS1) >> $(VROOMMCFG)
1753 @echo $(BCOPTS2) >> $(VROOMMCFG)
1754 $(CC) $(CFLAGSN) $(COVL0) $(COBJNAM)$@ $(MSYS)\vidtxt.c
1756 $(O)vidtxt.B: $(MSYS)\vidtxt.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H)
1757 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
1758 @echo $(BCOPTS1) >> $(VROOMMCFG)
1759 @echo $(BCOPTS2) >> $(VROOMMCFG)
1760 $(CC) $(CFLAGSN) $(COVLB) $(COBJNAM)$@ $(MSYS)\vidtxt.c
1762 $(O)vidvga.0: $(PCH0) $(MSYS)\vidvga.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \
1764 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
1765 @echo $(BCOPTS1) >> $(VROOMMCFG)
1766 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG)
1767 $(CC) $(FLAGU0) $(COBJNAM)$@ $(MSYS)\vidvga.c
1769 $(O)vidvga.1: $(PCH1) $(MSYS)\vidvga.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \
1771 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG)
1772 @echo $(BCOPTS1) >> $(VROOMMCFG)
1773 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG)
1774 $(CC) $(FLAGU1) $(COBJNAM)$@ $(MSYS)\vidvga.c
1776 $(O)vidvga.2: $(PCH2) $(MSYS)\vidvga.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \
1778 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG)
1779 @echo $(BCOPTS1) >> $(VROOMMCFG)
1780 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG)
1781 $(CC) $(FLAGU2) $(COBJNAM)$@ $(MSYS)\vidvga.c
1783 $(O)vidvga.B: $(PCHB) $(MSYS)\vidvga.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \
1785 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
1786 @echo $(BCOPTS1) >> $(VROOMMCFG)
1787 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
1788 $(CC) $(FLAGUB) $(COBJNAM)$@ $(MSYS)\vidvga.c
1794 $(O)alloc.o: $(SRC)\alloc.c $(CONFIG_H)
1795 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1796 @echo $(BCOPTS1) >> $(VROOMMCFG)
1797 @echo $(BCOPTS2) >> $(VROOMMCFG)
1798 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\alloc.c
1799 $(O)ball.o: $(PCHO) $(SRC)\ball.c $(HACK_H)
1800 $(O)bones.o: $(PCHO) $(SRC)\bones.c $(HACK_H) $(LEV_H)
1801 $(O)decl.o: $(PCHO) $(SRC)\decl.c $(HACK_H) $(QUEST_H)
1802 $(O)detect.o: $(PCHO) $(SRC)\detect.c $(HACK_H) $(ARTIFACT_H)
1803 $(O)dig.o: $(PCHO) $(SRC)\dig.c $(HACK_H) $(EDOG_H) # check dep
1804 $(O)display.o: $(PCHO) $(SRC)\display.c $(HACK_H)
1805 $(O)dlb.o: $(SRC)\dlb.c $(DLB_H) $(HACK_H)
1806 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1807 @echo $(BCOPTS1) >> $(VROOMMCFG)
1808 @echo $(BCOPTS2) >> $(VROOMMCFG)
1809 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\dlb.c
1810 $(O)dokick.o: $(PCHO) $(SRC)\dokick.c $(HACK_H) $(ESHK_H)
1811 $(O)dothrow.o: $(PCHO) $(SRC)\dothrow.c $(HACK_H)
1812 $(O)drawing.o: $(SRC)\drawing.c $(HACK_H) $(TERMCAP_H)
1813 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1814 @echo $(BCOPTS1) >> $(VROOMMCFG)
1815 @echo $(BCOPTS2) >> $(VROOMMCFG)
1816 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\drawing.c
1817 $(O)end.o: $(SRC)\end.c $(HACK_H) $(ESHK_H) $(DLB_H)
1818 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1819 @echo $(BCOPTS1) >> $(VROOMMCFG)
1820 @echo $(BCOPTS2) >> $(VROOMMCFG)
1821 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\end.c
1822 $(O)exper.o: $(PCHO) $(SRC)\exper.c $(HACK_H)
1823 $(O)extralev.o: $(PCHO) $(SRC)\extralev.c $(HACK_H)
1824 $(O)files.o: $(PCHO) $(SRC)\files.c $(HACK_H) $(DLB_H)
1825 $(O)fountain.o: $(PCHO) $(SRC)\fountain.c $(HACK_H)
1826 $(O)mapglyph.o: $(PCHO) $(SRC)\mapglyph.c $(HACK_H)
1827 $(O)minion.o: $(PCHO) $(SRC)\minion.c $(HACK_H) $(EMIN_H) $(EPRI_H)
1828 $(O)mklev.o: $(PCHO) $(SRC)\mklev.c $(HACK_H)
1829 $(O)mkmap.o: $(PCHO) $(SRC)\mkmap.c $(HACK_H) $(SP_LEV_H)
1830 $(O)mkmaze.o: $(PCHO) $(SRC)\mkmaze.c $(HACK_H) $(SP_LEV_H) $(LEV_H)
1831 $(O)monst.o: $(SRC)\monst.c $(CONFIG_H) $(PERMONST_H) $(MONSYM_H) \
1832 $(ESHK_H) $(EPRI_H) $(COLOR_H) $(ALIGN_H)
1833 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1834 @echo $(BCOPTS1) >> $(VROOMMCFG)
1835 @echo $(BCOPTS2) >> $(VROOMMCFG)
1836 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\monst.c
1837 $(O)monstr.o: $(SRC)\monstr.c $(CONFIG_H)
1838 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1839 @echo $(BCOPTS1) >> $(VROOMMCFG)
1840 @echo $(BCOPTS2) >> $(VROOMMCFG)
1841 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\monstr.c
1842 $(O)mplayer.o: $(PCHO) $(SRC)\mplayer.c $(HACK_H)
1843 $(O)muse.o: $(PCHO) $(SRC)\muse.c $(HACK_H)
1844 $(O)music.o: $(PCHO) $(SRC)\music.c $(HACK_H)
1845 $(O)o_init.o: $(PCHO) $(SRC)\o_init.c $(HACK_H) $(LEV_H)
1846 $(O)objects.o: $(SRC)\objects.c $(CONFIG_H) $(OBJ_H) $(OBJCLASS_H) \
1847 $(PROP_H) $(COLOR_H)
1848 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1849 @echo $(BCOPTS1) >> $(VROOMMCFG)
1850 @echo $(BCOPTS2) >> $(VROOMMCFG)
1851 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\objects.c
1852 $(O)options.o: $(SRC)\options.c $(HACK_H) $(TERMCAP_H) $(OBJCLASS_H)
1853 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1854 @echo $(BCOPTS1) >> $(VROOMMCFG)
1855 @echo $(BCOPTS2) >> $(VROOMMCFG)
1856 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\options.c
1857 $(O)pager.o: $(SRC)\pager.c $(HACK_H) $(DLB_H)
1858 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1859 @echo $(BCOPTS1) >> $(VROOMMCFG)
1860 @echo $(BCOPTS2) >> $(VROOMMCFG)
1861 $(CC) $(CFLAGNO) $(COBJNAM)$@ $(SRC)\pager.c
1862 $(O)pickup.o: $(PCHO) $(SRC)\pickup.c $(HACK_H)
1863 $(O)pray.o: $(PCHO) $(SRC)\pray.c $(HACK_H) $(EPRI_H)
1864 $(O)quest.o: $(PCHO) $(SRC)\quest.c $(HACK_H) $(QUEST_H) $(QTEXT_H)
1865 $(O)questpgr.o: $(PCHO) $(SRC)\questpgr.c $(HACK_H) $(QTEXT_H) $(DLB_H)
1866 $(O)rect.o: $(PCHO) $(SRC)\rect.c $(HACK_H)
1867 $(O)region.o: $(PCHO) $(SRC)\region.c $(HACK_H)
1868 $(O)restore.o: $(PCHO) $(SRC)\restore.c $(HACK_H) $(LEV_H) $(TERMCAP_H) \
1870 $(O)rip.o: $(PCHO) $(SRC)\rip.c $(HACK_H)
1871 $(O)role.o: $(PCHO) $(SRC)\role.c $(HACK_H)
1872 $(O)rumors.o: $(PCHO) $(SRC)\rumors.c $(HACK_H) $(DLB_H)
1873 $(O)save.o: $(PCHO) $(SRC)\save.c $(HACK_H) $(LEV_H) $(QUEST_H)
1874 $(O)sit.o: $(PCHO) $(SRC)\sit.c $(HACK_H) $(ARTIFACT_H)
1875 $(O)steed.o: $(PCHO) $(SRC)\steed.c $(HACK_H)
1876 $(O)sp_lev.o: $(PCHO) $(SRC)\sp_lev.c $(HACK_H) $(SP_LEV_H) $(DLB_H)
1877 $(O)spell.o: $(PCHO) $(SRC)\spell.c $(HACK_H)
1878 $(O)teleport.o: $(PCHO) $(SRC)\teleport.c $(HACK_H) # check dep
1879 $(O)tile.o: $(PCHO) $(SRC)\tile.c $(HACK_H)
1880 $(O)topten.o: $(PCHO) $(SRC)\topten.c $(HACK_H) $(DLB_H) $(PATCHLEVEL_H)
1881 $(O)u_init.o: $(PCHO) $(SRC)\u_init.c $(HACK_H)
1882 $(O)uhitm.o: $(PCHO) $(SRC)\uhitm.c $(HACK_H)
1883 $(O)version.o: $(PCHO) $(SRC)\version.c $(HACK_H) $(PATCHLEVEL_H)
1884 $(O)vision.o: $(PCHO) $(SRC)\vision.c $(HACK_H) $(VIS_TAB_H)
1885 $(O)vis_tab.o: $(SRC)\vis_tab.c $(HACK_H) $(VIS_TAB_H)
1886 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1887 @echo $(BCOPTS1) >> $(VROOMMCFG)
1888 @echo $(BCOPTS2) >> $(VROOMMCFG)
1889 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\vis_tab.c
1890 $(O)wield.o: $(PCHO) $(SRC)\wield.c $(HACK_H)
1891 $(O)windows.o: $(PCHO) $(SRC)\windows.c $(HACK_H) $(WINTTY_H)
1892 $(O)worm.o: $(PCHO) $(SRC)\worm.c $(HACK_H) $(LEV_H)
1893 $(O)worn.o: $(PCHO) $(SRC)\worn.c $(HACK_H)
1894 $(O)write.o: $(PCHO) $(SRC)\write.c $(HACK_H)
1903 $(O)allmain.0: $(PCH0) $(SRC)\allmain.c $(HACK_H)
1904 $(O)apply.0: $(PCH0) $(SRC)\apply.c $(HACK_H) $(EDOG_H)
1905 $(O)artifact.0: $(PCH0) $(SRC)\artifact.c $(HACK_H) $(ARTIFACT_H) $(ARTILIST_H)
1906 $(O)attrib.0: $(PCH0) $(SRC)\attrib.c $(HACK_H)
1907 $(O)botl.0: $(PCH0) $(SRC)\botl.c $(HACK_H)
1908 $(O)cmd.0: $(PCH0) $(SRC)\cmd.c $(HACK_H) $(FUNC_TAB_H)
1909 $(O)dbridge.0: $(PCH0) $(SRC)\dbridge.c $(HACK_H)
1910 $(O)do.0: $(PCH0) $(SRC)\do.c $(HACK_H) $(LEV_H)
1911 $(O)do_name.0: $(PCH0) $(SRC)\do_name.c $(HACK_H)
1912 $(O)do_wear.0: $(PCH0) $(SRC)\do_wear.c $(HACK_H)
1913 $(O)dogmove.0: $(PCH0) $(SRC)\dogmove.c $(HACK_H) $(MFNDPOS_H) $(EDOG_H)
1914 $(O)dungeon.0: $(PCH0) $(SRC)\dungeon.c $(HACK_H) $(ALIGN_H) $(DGN_FILE_H) \
1916 $(O)eat.0: $(PCH0) $(SRC)\eat.c $(HACK_H)
1917 $(O)engrave.0: $(PCH0) $(SRC)\engrave.c $(HACK_H) $(LEV_H)
1918 $(O)explode.0: $(PCH0) $(SRC)\explode.c $(HACK_H)
1919 $(O)hacklib.0: $(PCH0) $(SRC)\hacklib.c $(HACK_H)
1920 $(O)invent.0: $(PCH0) $(SRC)\invent.c $(HACK_H) $(ARTIFACT_H)
1921 $(O)lock.0: $(PCH0) $(SRC)\lock.c $(HACK_H)
1922 $(O)mail.0: $(PCH0) $(SRC)\mail.c $(HACK_H) $(MAIL_H) $(DATE_H)
1923 $(O)makemon.0: $(PCH0) $(SRC)\makemon.c $(HACK_H) $(EPRI_H) $(EMIN_H)
1924 $(O)mcastu.0: $(PCH0) $(SRC)\mcastu.c $(HACK_H)
1925 $(O)mhitm.0: $(PCH0) $(SRC)\mhitm.c $(HACK_H) $(ARTIFACT_H) $(EDOG_H)
1926 $(O)mhitu.0: $(PCH0) $(SRC)\mhitu.c $(HACK_H) $(ARTIFACT_H) $(EDOG_H)
1927 $(O)mkobj.0: $(PCH0) $(SRC)\mkobj.c $(HACK_H) $(ARTIFACT_H) $(PROP_H)
1928 $(O)mkroom.0: $(PCH0) $(SRC)\mkroom.c $(HACK_H)
1929 $(O)mon.0: $(PCH0) $(SRC)\mon.c $(HACK_H) $(MFNDPOS_H) $(EDOG_H)
1930 $(O)mondata.0: $(PCH0) $(SRC)\mondata.c $(HACK_H) $(ESHK_H) $(EPRI_H)
1931 $(O)monmove.0: $(PCH0) $(SRC)\monmove.c $(HACK_H) $(MFNDPOS_H) $(ARTIFACT_H)
1932 $(O)mthrowu.0: $(PCH0) $(SRC)\mthrowu.c $(HACK_H)
1933 $(O)objnam.0: $(PCH0) $(SRC)\objnam.c $(HACK_H)
1934 $(O)polyself.0: $(PCH0) $(SRC)\polyself.c $(HACK_H)
1935 $(O)priest.0: $(PCH0) $(SRC)\priest.c $(HACK_H) $(MFNDPOS_H) $(ESHK_H) \
1937 $(O)rnd.0: $(PCH0) $(SRC)\rnd.c $(HACK_H)
1938 $(O)shk.0: $(PCH0) $(SRC)\shk.c $(HACK_H) $(ESHK_H)
1939 $(O)shknam.0: $(PCH0) $(SRC)\shknam.c $(HACK_H) $(ESHK_H)
1940 $(O)sounds.0: $(PCH0) $(SRC)\sounds.c $(HACK_H) $(EDOG_H)
1941 $(O)steal.0: $(PCH0) $(SRC)\steal.c $(HACK_H)
1942 $(O)timeout.0: $(PCH0) $(SRC)\timeout.c $(HACK_H) $(LEV_H)
1943 $(O)track.0: $(PCH0) $(SRC)\track.c $(HACK_H)
1944 $(O)trap.0: $(PCH0) $(SRC)\trap.c $(HACK_H)
1945 $(O)vault.0: $(PCH0) $(SRC)\vault.c $(HACK_H) $(VAULT_H)
1946 $(O)weapon.0: $(PCH0) $(SRC)\weapon.c $(HACK_H)
1947 $(O)were.0: $(PCH0) $(SRC)\were.c $(HACK_H)
1948 $(O)wizard.0: $(PCH0) $(SRC)\wizard.c $(HACK_H) $(QTEXT_H)
1949 $(O)zap.0: $(PCH0) $(SRC)\zap.c $(HACK_H)
1955 $(O)allmain.1: $(PCH1) $(SRC)\allmain.c $(HACK_H)
1956 $(O)apply.1: $(PCH1) $(SRC)\apply.c $(HACK_H) $(EDOG_H)
1957 $(O)artifact.1: $(PCH1) $(SRC)\artifact.c $(HACK_H) $(ARTIFACT_H) $(ARTILIST_H)
1958 $(O)attrib.1: $(PCH1) $(SRC)\attrib.c $(HACK_H)
1959 $(O)botl.1: $(PCH1) $(SRC)\botl.c $(HACK_H)
1960 $(O)cmd.1: $(PCH1) $(SRC)\cmd.c $(HACK_H) $(FUNC_TAB_H)
1961 $(O)dbridge.1: $(PCH1) $(SRC)\dbridge.c $(HACK_H)
1962 $(O)do.1: $(PCH1) $(SRC)\do.c $(HACK_H) $(LEV_H)
1963 $(O)do_wear.1: $(PCH1) $(SRC)\do_wear.c $(HACK_H)
1964 $(O)dog.1: $(PCH1) $(SRC)\dog.c $(HACK_H) $(EDOG_H)
1965 $(O)dungeon.1: $(PCH1) $(SRC)\dungeon.c $(HACK_H) $(ALIGN_H) $(DGN_FILE_H) $(DLB_H)
1966 $(O)eat.1: $(PCH1) $(SRC)\eat.c $(HACK_H)
1967 $(O)engrave.1: $(PCH1) $(SRC)\engrave.c $(HACK_H) $(LEV_H)
1968 $(O)explode.1: $(PCH1) $(SRC)\explode.c $(HACK_H)
1969 $(O)hack.1: $(PCH1) $(SRC)\hack.c $(HACK_H)
1970 $(O)hacklib.1: $(PCH1) $(SRC)\hacklib.c $(HACK_H)
1971 $(O)invent.1: $(PCH1) $(SRC)\invent.c $(HACK_H) $(ARTIFACT_H)
1972 $(O)makemon.1: $(PCH1) $(SRC)\makemon.c $(HACK_H) $(EPRI_H) $(EMIN_H)
1973 $(O)mhitu.1: $(PCH1) $(SRC)\mhitu.c $(HACK_H) $(ARTIFACT_H) $(EDOG_H)
1974 $(O)mkobj.1: $(PCH1) $(SRC)\mkobj.c $(HACK_H) $(ARTIFACT_H) $(PROP_H)
1975 $(O)mon.1: $(PCH1) $(SRC)\mon.c $(HACK_H) $(MFNDPOS_H) $(EDOG_H)
1976 $(O)mondata.1: $(PCH1) $(SRC)\mondata.c $(HACK_H) $(ESHK_H) $(EPRI_H)
1977 $(O)monmove.1: $(PCH1) $(SRC)\monmove.c $(HACK_H) $(MFNDPOS_H) $(ARTIFACT_H)
1978 $(O)mthrowu.1: $(PCH1) $(SRC)\mthrowu.c $(HACK_H)
1979 $(O)objnam.1: $(PCH1) $(SRC)\objnam.c $(HACK_H)
1980 $(O)polyself.1: $(PCH1) $(SRC)\polyself.c $(HACK_H)
1981 $(O)rnd.1: $(PCH1) $(SRC)\rnd.c $(HACK_H)
1982 $(O)shk.1: $(PCH1) $(SRC)\shk.c $(HACK_H) $(ESHK_H)
1983 $(O)steal.1: $(PCH1) $(SRC)\steal.c $(HACK_H)
1984 $(O)timeout.1: $(PCH1) $(SRC)\timeout.c $(HACK_H) $(LEV_H)
1985 $(O)track.1: $(PCH1) $(SRC)\track.c $(HACK_H)
1986 $(O)trap.1: $(PCH1) $(SRC)\trap.c $(HACK_H)
1987 $(O)weapon.1: $(PCH1) $(SRC)\weapon.c $(HACK_H)
1988 $(O)zap.1: $(PCH1) $(SRC)\zap.c $(HACK_H)
1994 $(O)attrib.2: $(PCH2) $(SRC)\attrib.c $(HACK_H)
1995 $(O)do.2: $(PCH2) $(SRC)\do.c $(HACK_H) $(LEV_H)
1996 $(O)do_name.2: $(PCH2) $(SRC)\do_name.c $(HACK_H)
1997 $(O)do_wear.2: $(PCH2) $(SRC)\do_wear.c $(HACK_H)
1998 $(O)dog.2: $(PCH2) $(SRC)\dog.c $(HACK_H) $(EDOG_H)
1999 $(O)engrave.2: $(PCH2) $(SRC)\engrave.c $(HACK_H) $(LEV_H)
2000 $(O)hack.2: $(PCH2) $(SRC)\hack.c $(HACK_H)
2001 $(O)hacklib.2: $(PCH2) $(SRC)\hacklib.c $(HACK_H)
2002 $(O)invent.2: $(PCH2) $(SRC)\invent.c $(HACK_H) $(ARTIFACT_H)
2003 $(O)makemon.2: $(PCH2) $(SRC)\makemon.c $(HACK_H) $(EPRI_H) $(EMIN_H)
2004 $(O)mon.2: $(PCH2) $(SRC)\mon.c $(HACK_H) $(MFNDPOS_H) $(EDOG_H)
2005 $(O)mondata.2: $(PCH2) $(SRC)\mondata.c $(HACK_H) $(ESHK_H) $(EPRI_H)
2006 $(O)monmove.2: $(PCH2) $(SRC)\monmove.c $(HACK_H) $(MFNDPOS_H) $(ARTIFACT_H)
2007 $(O)shk.2: $(PCH2) $(SRC)\shk.c $(HACK_H) $(ESHK_H)
2008 $(O)trap.2: $(PCH2) $(SRC)\trap.c $(HACK_H)
2009 $(O)zap.2: $(PCH2) $(SRC)\zap.c $(HACK_H)
2015 $(O)do.3: $(PCH3) $(SRC)\do.c $(HACK_H) $(LEV_H)
2016 $(O)hack.3: $(PCH3) $(SRC)\hack.c $(HACK_H)
2017 $(O)invent.3: $(PCH3) $(SRC)\invent.c $(HACK_H) $(ARTIFACT_H)
2018 $(O)light.3: $(PCH3) $(SRC)\light.c $(HACK_H)
2019 $(O)shk.3: $(PCH3) $(SRC)\shk.c $(HACK_H) $(ESHK_H)
2020 $(O)trap.3: $(PCH3) $(SRC)\trap.c $(HACK_H)
2021 $(O)zap.3: $(PCH3) $(SRC)\zap.c $(HACK_H)
2027 $(O)allmain.B: $(PCHB) $(SRC)\allmain.c $(HACK_H)
2028 $(O)apply.B: $(PCHB) $(SRC)\apply.c $(HACK_H) $(EDOG_H)
2029 $(O)artifact.B: $(PCHB) $(SRC)\artifact.c $(HACK_H) $(ARTIFACT_H) $(ARTILIST_H)
2030 $(O)attrib.B: $(PCHB) $(SRC)\attrib.c $(HACK_H)
2031 $(O)botl.B: $(PCHB) $(SRC)\botl.c $(HACK_H)
2032 $(O)cmd.B: $(PCHB) $(SRC)\cmd.c $(HACK_H) $(FUNC_TAB_H)
2033 $(O)dbridge.B: $(PCHB) $(SRC)\dbridge.c $(HACK_H)
2034 $(O)do.B: $(PCHB) $(SRC)\do.c $(HACK_H) $(LEV_H)
2035 $(O)do_name.B: $(PCHB) $(SRC)\do_name.c $(HACK_H)
2036 $(O)do_wear.B: $(PCHB) $(SRC)\do_wear.c $(HACK_H)
2037 $(O)dog.B: $(PCHB) $(SRC)\dog.c $(HACK_H) $(EDOG_H)
2038 $(O)dogmove.B: $(PCHB) $(SRC)\dogmove.c $(HACK_H) $(MFNDPOS_H) $(EDOG_H)
2039 $(O)eat.B: $(PCHB) $(SRC)\eat.c $(HACK_H)
2040 $(O)engrave.B: $(PCHB) $(SRC)\engrave.c $(HACK_H) $(LEV_H)
2041 $(O)hack.B: $(PCHB) $(SRC)\hack.c $(HACK_H)
2042 $(O)hacklib.B: $(PCHB) $(SRC)\hacklib.c $(HACK_H)
2043 $(O)invent.B: $(PCHB) $(SRC)\invent.c $(HACK_H) $(ARTIFACT_H)
2044 $(O)lock.B: $(PCHB) $(SRC)\lock.c $(HACK_H)
2045 $(O)mail.B: $(PCHB) $(SRC)\mail.c $(HACK_H) $(MAIL_H) $(DATE_H)
2046 $(O)makemon.B: $(PCHB) $(SRC)\makemon.c $(HACK_H) $(EPRI_H) $(EMIN_H)
2047 $(O)mcastu.B: $(PCHB) $(SRC)\mcastu.c $(HACK_H)
2048 $(O)mhitm.B: $(PCHB) $(SRC)\mhitm.c $(HACK_H) $(ARTIFACT_H) $(EDOG_H)
2049 $(O)mhitu.B: $(PCHB) $(SRC)\mhitu.c $(HACK_H) $(ARTIFACT_H) $(EDOG_H)
2050 $(O)mkobj.B: $(PCHB) $(SRC)\mkobj.c $(HACK_H) $(ARTIFACT_H) $(PROP_H)
2051 $(O)mkroom.B: $(PCHB) $(SRC)\mkroom.c $(HACK_H)
2052 $(O)mon.B: $(PCHB) $(SRC)\mon.c $(HACK_H) $(MFNDPOS_H) $(EDOG_H)
2053 $(O)mondata.B: $(PCHB) $(SRC)\mondata.c $(HACK_H) $(ESHK_H) $(EPRI_H)
2054 $(O)monmove.B: $(PCHB) $(SRC)\monmove.c $(HACK_H) $(MFNDPOS_H) $(ARTIFACT_H)
2055 $(O)mthrowu.B: $(PCHB) $(SRC)\mthrowu.c $(HACK_H)
2056 $(O)objnam.B: $(PCHB) $(SRC)\objnam.c $(HACK_H)
2057 $(O)pline.B: $(SRC)\pline.c $(HACK_H) $(EPRI_H)
2058 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
2059 @echo $(BCOPTS1) >> $(VROOMMCFG)
2060 @echo $(BCOPTS2) >> $(VROOMMCFG)
2061 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\pline.c
2062 $(O)polyself.B: $(PCHB) $(SRC)\polyself.c $(HACK_H)
2063 $(O)potion.B: $(PCHB) $(SRC)\potion.c $(HACK_H)
2064 $(O)priest.B: $(PCHB) $(SRC)\priest.c $(HACK_H) $(MFNDPOS_H) $(ESHK_H) \
2066 $(O)read.B: $(PCHB) $(SRC)\read.c $(HACK_H)
2067 $(O)rnd.B: $(PCHB) $(SRC)\rnd.c $(HACK_H)
2068 $(O)shk.B: $(PCHB) $(SRC)\shk.c $(HACK_H) $(ESHK_H)
2069 $(O)shknam.B: $(PCHB) $(SRC)\shknam.c $(HACK_H) $(ESHK_H)
2070 $(O)sounds.B: $(PCHB) $(SRC)\sounds.c $(HACK_H) $(EDOG_H)
2071 $(O)steal.B: $(PCHB) $(SRC)\steal.c $(HACK_H)
2072 $(O)timeout.B: $(PCHB) $(SRC)\timeout.c $(HACK_H) $(LEV_H)
2073 $(O)track.B: $(PCHB) $(SRC)\track.c $(HACK_H)
2074 $(O)trap.B: $(PCHB) $(SRC)\trap.c $(HACK_H)
2075 $(O)vault.B: $(PCHB) $(SRC)\vault.c $(HACK_H) $(VAULT_H)
2076 $(O)weapon.B: $(PCHB) $(SRC)\weapon.c $(HACK_H)
2077 $(O)were.B: $(PCHB) $(SRC)\were.c $(HACK_H)
2078 $(O)wizard.B: $(PCHB) $(SRC)\wizard.c $(HACK_H) $(QTEXT_H)
2079 $(O)zap.B: $(PCHB) $(SRC)\zap.c $(HACK_H)