1 # aNetHack 0.0.1 Makefile.BC $ANH-Date: 1432512791 2015/05/25 00:13:11 $ $ANH-Branch: master $:$ANH-Revision: 1.17 $
2 # Copyright (c) Yitzhak Sapir, 1999-2006.
3 # aNetHack may be freely distributed. See license for details.
6 # PC aNetHack 0.0.1 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)
20 # NOTE: This Makefile has not been tested with aNetHack 0.0.1.x
23 # Game Installation Variables.
24 # NOTE: Make sure GAMEDIR exists before nmake is started.
49 # ($(MAKE) macro is often predefined, so we use $(MAKEBIN) instead.)
54 ASM = tasm # Assembler (not currently needed for BC)
56 UUDECODE = uudecode # Unix style uudecoder
58 #BCTOP = c:\borlandc # main Borland C++ directory
62 # Yacc/Lex ... if you got 'em.
64 # If you have yacc and lex programs (or work-alike such as bison
65 # and flex), comment out the upper two lines below, and uncomment
68 # On Borland C++, the newest versions of flex and bison provide
69 # problems when run from MAKE.
78 # - Specify your yacc and lex programs (or work-alikes for each) here.
89 # - Specify your flex skeleton file (if needed).
92 #FLEXSKEL = -Sc:\tools16\flex.ske
95 # - Your yacc (or work-alike) output files
103 # - Your lex (or work-alike) output files
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 # If TERMLIB is #defined in the source (in include\pcconf.h),
118 # comment out the upper line and uncomment the lower. Make sure
119 # that TERMLIB contains the full pathname to the termcap library.
122 #TERMLIB = $(SYS)\termcap.lib
125 # MEMORY USAGE AND OVERLAYING
129 # - Minimal extended memory available, lots of 640K base RAM free
130 # Minimize overlay turns. Requires that a minimum of
131 # 607K RAM be free as follows:
132 # 462K Executable load requirement
133 # 115K for malloc() calls
135 # 607K Total memory requirement
139 # - Favor small load size, requires extended memory for bearable performance.
140 # If you have very little base 640K RAM available, but lots of extended
141 # memory for caching overlays, you might try this. (eg. A machine with
142 # lots of TSR's or network drivers). Do not try to set SCHEMA = 2
143 # without a disk cache and extended memory.
144 # 381K Executable load requirement
145 # 115K for malloc() calls
147 # 526K Total memory requirement
149 # On Borland C++, you have to make a full rebuild of all object modules each
150 # time you change schemas.
156 # OPTIONAL TILE SUPPORT.
158 # This release of aNetHack allows you to build a version of aNetHack
159 # that will draw 16x16 color tiles on the display to represent
160 # aNetHack maps, objects, monsters, etc. on machines with appropriate
161 # display hardware. Currently the only supported video hardware is
164 # Note: You can build aNetHack with tile support and then choose
165 # whether to use it or not at runtime via the defaults.nh file option
172 # C COMPILER AND LINKER SETTINGS
174 # For debugging ability, comment out the upper three
175 # macros and uncomment the lower three. You can also
176 # uncomment only either LDFLAGSU or LDFLAGSN if you
177 # want to include debug information only in the utilities
178 # or only in the game file.
180 # On Borland C++, you cannot include debug information for
181 # all the object modules because the linker cannot handle
188 CDFLAGS = -v -vi # use debug info (compiler)
189 #LDFLAGSN = /v # use debug info (linker - game)
190 LDFLAGSU = /v # use debug info (linker - utilities)
193 # - Don't warn about unreachable code because flex generates a whole bunch
194 # of unreachable code warnings, which stops the compile process.
200 # Select whether to use pre-compiled headers or not.
201 # Set PRECOMPHEAD to Y to use pre-compiled headers, set it to anything
202 # else and pre-compiled headers will not be used.
203 # (Pre-compiled headers speed up compiles, but require a bit more
204 # disk space during the build. The pre-compiled headers can be deleted
205 # afterwards via DEL *.PCH if desired).
216 # Uncomment the line below if you want to store all the level files,
217 # help files, etc. in a single library file (recommended).
222 ########################################################################
223 ########################################################################
225 # Nothing below here should have to be changed.
227 ########################################################################
228 ########################################################################
232 # Changing anything below here means that you should be *very*
233 # familiar with your compiler's workings, *very* knowledgeable
234 # about the overlay structure and mechanics of aNetHack, and *very*
235 # confident in your understanding of Makefiles and Make utilities.
237 ########################################################################
239 # Default Make Procedure
245 ########################################################################
249 ! IF ("$(TILESUPPORT)"=="Y")
251 TILEGAME = $(OBJ)\tile.o $(OBJ)\pctiles.0 $(OBJ)\pctiles.b
254 # - VGA Tile Support, uncomment these three lines.
257 TILEVGA = $(OBJ)\vidvga.0 $(OBJ)\vidvga.1 $(OBJ)\vidvga.2 $(OBJ)\vidvga.b
258 PLANAR_TIB = aNetHack1.tib
259 OVERVIEW_TIB = aNetHacko.tib
262 # Leave this line uncommented and unchanged.
263 TILEUTIL = $(TILEGAME) $(TILEVGA) $(UTIL)\tile2bin.exe $(UTIL)\til2bin2.exe \
264 $(PLANAR_TIB) $(OVERVIEW_TIB)
268 ! IF ("$(USE_DLB)"=="Y")
275 #############################################################################
277 # General Overlay Schema Settings
280 OVLINIT =$(OBJ)\ovlinit.o
284 #############################################################################
286 # C Compiler and Linker Setup Options
287 # (To Maintainer; modify only if absolutely necessary)
290 BCINCL = $(BCTOP)\include # include directory for main BC headers
291 BCLIB = $(BCTOP)\lib # library directory for main BC libraries
292 BCCFG = anethack.cfg # name of the anethack configuration file
293 VROOMMCFG= vroomm.cfg # name of file with code segment information
302 # - Optional C library specifier for those with non-standard
303 # libraries or a multiple-target library setup.
309 # Borland C++ libraries
312 BCOVL = $(BCLIB)\OVERLAY
313 BCMDL = $(BCLIB)\C$(MODEL)
319 CNOLNK = -c # just generate .OBJ
320 CPCHUSE = -Hu # use precompiled headers
321 CPCHGEN = -H # generate precompiled headers
322 CPCHNAM = -H= # set the name of the precompiled header file
323 CPCHEXT = .PCH # precompiled header extension
324 CDEFINE = -D # define a macro
325 CSTKSZ = -DSTKSIZ= # set stack size
326 CCSNAM = -zC # set the code segment name
327 COBJNAM = -o # name the .OBJ file
333 LWCASE = /c # treat case as significant
334 LMAP = /m # create map file
335 LINIT = $(BCLIB)\C0$(MODEL) # initialization object file
336 LOVL = /oOVLY # overlay all needed segments
342 STKSUTL = 4096 # Utilities Stack Size
343 STKSNRM = 5120 # Normal Stack Size
345 CUSTACK = $(CSTKSZ)$(STKSUTL) # Utilities Stack Set for Compiler
346 CNSTACK = $(CSTKSZ)$(STKSNRM) # Normal Stack Set for Compiler
350 ########################################################################
354 ! IF ("$(USE_DLB)"=="Y")
355 DLBFLG = $(CDEFINE)DLB
361 ########################################################################
365 ! IF ("$(TILESUPPORT)"=="Y")
366 TILFLG = $(CDEFINE)USE_TILES
371 #############################################################################
376 COVL0 = $(CDEFINE)OVL0
377 COVL1 = $(CDEFINE)OVL1
378 COVL2 = $(CDEFINE)OVL2
379 COVL3 = $(CDEFINE)OVL3
380 COVLB = $(CDEFINE)OVLB
386 FLAGOPT = $(DLBFLG) $(TILFLG)
389 # Precompiled Header Section
392 #common options (placed in $(BCCFG))
393 CFLGTOT = $(CDFLAGS) $(CFLAGS) $(FLAGOPT) $(CW)
395 CFLAGSU = $(CUSTACK) +$(VROOMMCFG)
396 #normal build, no PCH
397 CFLAGSN = $(CNSTACK) +$(VROOMMCFG)
399 CFLAGNO = $(CNOOPT) $(CFLAGSN)
401 ! IF ("$(PRECOMPHEAD)"!="Y")
423 @echo Not using precompiled headers...
428 CFLAGUO = $(CPCHUSE) $(CPCHNAM)PHO$(CPCHEXT) $(COVLO)
429 CFLAGCO = $(CPCHGEN) $(CPCHNAM)PHO$(CPCHEXT) $(COVLO)
432 CFLAGU0 = $(CPCHUSE) $(CPCHNAM)PH0$(CPCHEXT) $(COVL0)
433 CFLAGC0 = $(CPCHGEN) $(CPCHNAM)PH0$(CPCHEXT) $(COVL0)
436 CFLAGU1 = $(CPCHUSE) $(CPCHNAM)PH1$(CPCHEXT) $(COVL1)
437 CFLAGC1 = $(CPCHGEN) $(CPCHNAM)PH1$(CPCHEXT) $(COVL1)
440 CFLAGU2 = $(CPCHUSE) $(CPCHNAM)PH2$(CPCHEXT) $(COVL2)
441 CFLAGC2 = $(CPCHGEN) $(CPCHNAM)PH2$(CPCHEXT) $(COVL2)
444 CFLAGU3 = $(CPCHUSE) $(CPCHNAM)PH3$(CPCHEXT) $(COVL3)
445 CFLAGC3 = $(CPCHGEN) $(CPCHNAM)PH3$(CPCHEXT) $(COVL3)
448 CFLAGUB = $(CPCHUSE) $(CPCHNAM)PHB$(CPCHEXT) $(COVLB)
449 CFLAGCB = $(CPCHGEN) $(CPCHNAM)PHB$(CPCHEXT) $(COVLB)
453 @echo Using precompiled headers...
458 FLAGCO = $(CNSTACK) +$(VROOMMCFG)
459 FLAGUO = $(CNSTACK) +$(VROOMMCFG)
460 FLAGC0 = $(CNSTACK) +$(VROOMMCFG)
461 FLAGU0 = $(CNSTACK) +$(VROOMMCFG)
462 FLAGC1 = $(CNSTACK) +$(VROOMMCFG)
463 FLAGU1 = $(CNSTACK) +$(VROOMMCFG)
464 FLAGC2 = $(CNSTACK) +$(VROOMMCFG)
465 FLAGU2 = $(CNSTACK) +$(VROOMMCFG)
466 FLAGC3 = $(CNSTACK) +$(VROOMMCFG)
467 FLAGU3 = $(CNSTACK) +$(VROOMMCFG)
468 FLAGCB = $(CNSTACK) +$(VROOMMCFG)
469 FLAGUB = $(CNSTACK) +$(VROOMMCFG)
471 # End of Pre-compiled header section
472 #===========================================================================
475 # Basic Borland C++ option line
477 BCOPTS1 = -Y -O -Z -Oe -Ob -Os -Ff -I$(BCINCL);$(INCL) -m$(MODEL)
478 BCOPTS2 = $(CDEFINE)__IO_H $(CFLGTOT) -DSTRNCMPI
481 # Linker options for building various things.
484 LFLAGSU = $(LDFLAGSU) $(LUSTACK) $(LINIT)
485 LFLAGSN = $(LDFLAGSN) $(LNSTACK) $(LWCASE) $(LMAXSEG) $(INTOVL) $(LMAXALL) \
486 $(LINFO) $(LINIT) $(LOVL)
490 # Due to the inadequacy of some makes these must accord with a
491 # topological sort of the generated-from relation... output on
492 # the left, input on the right. Trust me.
495 .SUFFIXES: .exe .0 .1 .2 .3 .B .o .til .uu .c .y .l
498 # Rules for files in src
503 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
504 @echo $(BCOPTS1) >> $(VROOMMCFG)
505 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
506 $(CC) $(FLAGUO) $(COBJNAM)$@ $<
508 {$(SRC)}.c{$(OBJ)}.o:
509 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
510 @echo $(BCOPTS1) >> $(VROOMMCFG)
511 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
512 $(CC) $(FLAGUO) $(COBJNAM)$@ $<
514 {$(SRC)}.c{$(OBJ)}.0:
515 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
516 @echo $(BCOPTS1) >> $(VROOMMCFG)
517 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG)
518 $(CC) $(FLAGU0) $(COBJNAM)$@ $<
520 {$(SRC)}.c{$(OBJ)}.1:
521 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG)
522 @echo $(BCOPTS1) >> $(VROOMMCFG)
523 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG)
524 $(CC) $(FLAGU1) $(COBJNAM)$@ $<
526 {$(SRC)}.c{$(OBJ)}.2:
527 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG)
528 @echo $(BCOPTS1) >> $(VROOMMCFG)
529 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG)
530 $(CC) $(FLAGU2) $(COBJNAM)$@ $<
532 {$(SRC)}.c{$(OBJ)}.3:
533 @type schema$(SCHEMA).bc | find "$(@B)_3" > $(VROOMMCFG)
534 @echo $(BCOPTS1) >> $(VROOMMCFG)
535 @echo $(BCOPTS2) $(CFLAGU3) >> $(VROOMMCFG)
536 $(CC) $(FLAGU3) $(COBJNAM)$@ $<
538 {$(SRC)}.c{$(OBJ)}.B:
539 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
540 @echo $(BCOPTS1) >> $(VROOMMCFG)
541 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
542 $(CC) $(FLAGUB) $(COBJNAM)$@ $<
545 # Rules for files in sys\share
548 {$(SYS)}.c{$(OBJ)}.o:
549 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
550 @echo $(BCOPTS1) >> $(VROOMMCFG)
551 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
552 $(CC) $(FLAGUO) $(COBJNAM)$@ $<
554 {$(SYS)}.c{$(OBJ)}.0:
555 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
556 @echo $(BCOPTS1) >> $(VROOMMCFG)
557 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG)
558 $(CC) $(FLAGU0) $(COBJNAM)$@ $<
560 {$(SYS)}.c{$(OBJ)}.1:
561 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG)
562 @echo $(BCOPTS1) >> $(VROOMMCFG)
563 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG)
564 $(CC) $(FLAGU1) $(COBJNAM)$@ $<
566 {$(SYS)}.c{$(OBJ)}.2:
567 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG)
568 @echo $(BCOPTS1) >> $(VROOMMCFG)
569 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG)
570 $(CC) $(FLAGU2) $(COBJNAM)$@ $<
572 {$(SYS)}.c{$(OBJ)}.3:
573 @type schema$(SCHEMA).bc | find "$(@B)_3" > $(VROOMMCFG)
574 @echo $(BCOPTS1) >> $(VROOMMCFG)
575 @echo $(BCOPTS2) $(CFLAGU3) >> $(VROOMMCFG)
576 $(CC) $(FLAGU3) $(COBJNAM)$@ $<
578 {$(SYS)}.c{$(OBJ)}.B:
579 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
580 @echo $(BCOPTS1) >> $(VROOMMCFG)
581 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
582 $(CC) $(FLAGUB) $(COBJNAM)$@ $<
585 # Rules for files in sys\msdos
588 {$(MSYS)}.c{$(OBJ)}.o:
589 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
590 @echo $(BCOPTS1) >> $(VROOMMCFG)
591 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
592 $(CC) $(FLAGUO) $(COBJNAM)$@ $<
594 {$(MSYS)}.c{$(OBJ)}.0:
595 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
596 @echo $(BCOPTS1) >> $(VROOMMCFG)
597 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG)
598 $(CC) $(FLAGU0) $(COBJNAM)$@ $<
600 {$(MSYS)}.c{$(OBJ)}.1:
601 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG)
602 @echo $(BCOPTS1) >> $(VROOMMCFG)
603 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG)
604 $(CC) $(FLAGU1) $(COBJNAM)$@ $<
606 {$(MSYS)}.c{$(OBJ)}.2:
607 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG)
608 @echo $(BCOPTS1) >> $(VROOMMCFG)
609 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG)
610 $(CC) $(FLAGU2) $(COBJNAM)$@ $<
612 {$(MSYS)}.c{$(OBJ)}.3:
613 @type schema$(SCHEMA).bc | find "$(@B)_3" > $(VROOMMCFG)
614 @echo $(BCOPTS1) >> $(VROOMMCFG)
615 @echo $(BCOPTS2) $(CFLAGU3) >> $(VROOMMCFG)
616 $(CC) $(FLAGU3) $(COBJNAM)$@ $<
618 {$(MSYS)}.c{$(OBJ)}.B:
619 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
620 @echo $(BCOPTS1) >> $(VROOMMCFG)
621 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
622 $(CC) $(FLAGUB) $(COBJNAM)$@ $<
624 {$(MSYS)}.h{$(INCL)}.h:
628 # Rules for files in util
631 {$(UTIL)}.c{$(OBJ)}.o:
632 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
633 @echo $(BCOPTS1) >> $(VROOMMCFG)
634 @echo $(BCOPTS2) >> $(VROOMMCFG)
635 $(CC) $(CFLAGSU) (COBJNAM)$@ $<
638 # Rules for files in win\share
642 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
643 @echo $(BCOPTS1) >> $(VROOMMCFG)
644 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
645 @$(CC) $(FLAGUO) $(COBJNAM)$@ $<
647 {$(WSHR)}.c{$(OBJ)}.o:
648 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
649 @echo $(BCOPTS1) >> $(VROOMMCFG)
650 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
651 @$(CC) $(FLAGUO) $(COBJNAM)$@ $<
653 {$(WSHR)}.h{$(INCL)}.h:
656 {$(WSHR)}.txt{$(DAT)}.txt:
660 # Rules for files in win\tty
663 {$(WTTY)}.c{$(OBJ)}.o:
664 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
665 @echo $(BCOPTS1) >> $(VROOMMCFG)
666 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
667 $(CC) $(FLAGUO) $(COBJNAM)$@ $<
669 {$(WTTY)}.c{$(OBJ)}.0:
670 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
671 @echo $(BCOPTS1) >> $(VROOMMCFG)
672 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG)
673 $(CC) $(FLAGU0) $(COBJNAM)$@ $<
675 {$(WTTY)}.c{$(OBJ)}.1:
676 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG)
677 @echo $(BCOPTS1) >> $(VROOMMCFG)
678 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG)
679 $(CC) $(FLAGU1) $(COBJNAM)$@ $<
681 {$(WTTY)}.c{$(OBJ)}.2:
682 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG)
683 @echo $(BCOPTS1) >> $(VROOMMCFG)
684 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG)
685 $(CC) $(FLAGU2) $(COBJNAM)$@ $<
687 {$(WTTY)}.c{$(OBJ)}.3:
688 @type schema$(SCHEMA).bc | find "$(@B)_3" > $(VROOMMCFG)
689 @echo $(BCOPTS1) >> $(VROOMMCFG)
690 @echo $(BCOPTS2) $(CFLAGU3) >> $(VROOMMCFG)
691 $(CC) $(FLAGU3) $(COBJNAM)$@ $<
693 {$(WTTY)}.c{$(OBJ)}.B:
694 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
695 @echo $(BCOPTS1) >> $(VROOMMCFG)
696 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
697 $(CC) $(FLAGUB) $(COBJNAM)$@ $<
702 # This section creates shorthand macros for many objects
703 # referenced later on in the Makefile.
707 # Shorten up the location for some files
710 O = $(OBJ)\ # comment so \ isn't last char
712 U = $(UTIL)\ # comment so \ isn't last char
714 SPLEVDES = $(DAT)\Arch.des $(DAT)\Barb.des $(DAT)\bigroom.des \
715 $(DAT)\castle.des $(DAT)\Caveman.des $(DAT)\endgame.des \
716 $(DAT)\gehennom.des $(DAT)\Healer.des $(DAT)\Knight.des \
717 $(DAT)\knox.des $(DAT)\Monk.des $(DAT)\medusa.des \
718 $(DAT)\mines.des $(DAT)\oracle.des $(DAT)\Priest.des \
719 $(DAT)\Ranger.des $(DAT)\Rogue.des $(DAT)\Samurai.des \
720 $(DAT)\Tourist.des $(DAT)\tower.des $(DAT)\Valkyrie.des \
721 $(DAT)\Wizard.des $(DAT)\yendor.des
727 MAKESRC = $(U)makedefs.c
729 SPLEVSRC = $(U)lev_yacc.c $(U)lev_$(LEX).c $(U)lev_main.c $(U)panic.c
731 DGNCOMPSRC = $(U)dgn_yacc.c $(U)dgn_$(LEX).c $(U)dgn_main.c
733 MAKEOBJS = $(O)makedefs.o $(O)monst.o $(O)objects.o
735 SPLEVOBJS =$(O)lev_yacc.o $(O)lev_$(LEX).o $(O)lev_main.o \
736 $(O)alloc.o $(O)decl.o $(O)drawing.o $(O)monst.o \
737 $(O)objects.o $(O)panic.o $(O)stubvid.o
739 DGNCOMPOBJS =$(O)dgn_yacc.o $(O)dgn_$(LEX).o $(O)dgn_main.o \
740 $(O)alloc.o $(O)panic.o
742 RECOVOBJS = $(O)recover.o
744 GIFREADERS =$(O)gifread.o $(O)alloc.o $(O)panic.o
746 TEXT_IO =$(O)tiletext.o $(O)tiletxt.o $(O)drawing.o \
747 $(O)decl.o $(O)monst.o $(O)objects.o $(O)stubvid.o
749 PPMWRITERS = $(O)ppmwrite.o $(O)alloc.o $(O)panic.o
751 GIFREAD2 =$(O)gifread2.o $(O)alloc.o $(O)panic.o
753 TEXT_IO2 =$(O)tiletex2.o $(O)tiletxt2.o $(O)drawing.o \
754 $(O)decl.o $(O)monst.o $(O)objects.o $(O)stubvid.o
756 PPMWRIT2 = $(O)ppmwrit2.o $(O)alloc.o $(O)panic.o
758 TILEFILES = $(WSHR)\monsters.txt $(WSHR)\objects.txt $(WSHR)\other.txt
760 TILEFILES2 = $(WSHR)\monthin.txt $(WSHR)\objthin.txt $(WSHR)\oththin.txt
762 DLBOBJS = $(O)dlb_main.o $(O)dlb.o $(O)alloc.o $(O)panic.o
765 # Object files for the game itself.
768 OBJ01 = $(O)alloc.o $(RANDOM) $(O)decl.o $(O)objects.o \
769 $(O)muse.o $(O)display.o $(O)vision.o $(O)mapglyph.o \
770 $(O)rect.o $(O)vis_tab.o $(O)monst.o $(O)wintty.o \
771 $(O)files.o $(O)sys.o $(O)monstr.o $(O)minion.o \
772 $(O)worm.o $(O)detect.o $(O)exper.o $(O)mplayer.o \
773 $(O)uhitm.o $(O)pager.o $(O)windows.o $(O)quest.o \
774 $(O)questpgr.o $(O)write.o $(O)drawing.o $(O)dokick.o \
775 $(O)dothrow.o $(O)pickup.o $(O)pray.o $(O)spell.o \
776 $(O)ball.o $(O)wield.o $(O)worn.o $(O)fountain.o \
777 $(O)music.o $(O)rumors.o $(O)dlb.o $(O)sit.o \
778 $(O)bones.o $(O)mklev.o $(O)save.o $(O)restore.o \
779 $(O)mkmaze.o $(O)mkmap.o $(O)end.o $(O)o_init.o \
780 $(O)options.o $(O)rip.o $(O)sound.o $(O)teleport.o \
781 $(O)topten.o $(O)tty.o $(O)u_init.o $(O)extralev.o \
782 $(O)sp_lev.o $(O)dig.o $(O)pckeys.o $(O)role.o \
783 $(O)steed.o $(O)region.o
785 OVL0 = $(O)allmain.0 $(O)apply.0 $(O)artifact.0 $(O)attrib.0 \
786 $(O)botl.0 $(O)cmd.0 $(O)dbridge.0 $(O)do.0 \
787 $(O)do_name.0 $(O)do_wear.0 $(O)dogmove.0 $(O)dungeon.0 \
788 $(O)eat.0 $(O)engrave.0 $(O)hacklib.0 $(O)invent.0 \
789 $(O)lock.0 $(O)pcmain.0 $(O)mail.0 $(O)makemon.0 \
790 $(O)mcastu.0 $(O)mhitm.0 $(O)mhitu.0 $(O)mkobj.0 \
791 $(O)mkroom.0 $(O)mon.0 $(O)mondata.0 $(O)monmove.0 \
792 $(O)mthrowu.0 $(O)objnam.0 $(O)polyself.0 $(O)priest.0 \
793 $(O)rnd.0 $(O)shknam.0 $(O)sounds.0 $(O)steal.0 \
794 $(O)timeout.0 $(O)track.0 $(O)trap.0 $(O)vault.0 \
795 $(O)weapon.0 $(O)were.0 $(O)wizard.0 $(O)msdos.0 \
796 $(O)termcap.0 $(O)video.0 $(O)vidtxt.0 $(O)zap.0 \
797 $(O)explode.0 $(O)shk.0
799 OVL1 = $(O)allmain.1 $(O)apply.1 $(O)artifact.1 $(O)attrib.1 \
800 $(O)botl.1 $(O)cmd.1 $(O)dbridge.1 $(O)do.1 \
801 $(O)do_wear.1 $(O)dog.1 $(O)dungeon.1 $(O)eat.1 \
802 $(O)engrave.1 $(O)hack.1 $(O)hacklib.1 $(O)invent.1 \
803 $(O)makemon.1 $(O)mhitu.1 $(O)mkobj.1 $(O)mon.1 \
804 $(O)mondata.1 $(O)monmove.1 $(O)mthrowu.1 $(O)objnam.1 \
805 $(O)pcmain.1 $(O)polyself.1 $(O)rnd.1 $(O)shk.1 \
806 $(O)steal.1 $(O)timeout.1 $(O)track.1 $(O)trap.1 \
807 $(O)weapon.1 $(O)getline.1 $(O)termcap.1 $(O)topl.1 \
808 $(O)video.1 $(O)zap.1 $(O)explode.1
810 OVL2 = $(O)attrib.2 $(O)do.2 $(O)do_name.2 $(O)do_wear.2 \
811 $(O)dog.2 $(O)engrave.2 $(O)hack.2 $(O)hacklib.2 \
812 $(O)invent.2 $(O)makemon.2 $(O)mon.2 $(O)mondata.2 \
813 $(O)monmove.2 $(O)getline.2 $(O)shk.2 $(O)topl.2 \
816 OVL3 = $(O)do.3 $(O)hack.3 $(O)invent.3 $(O)light.3 \
817 $(O)shk.3 $(O)trap.3 $(O)zap.3
820 OVLB = $(O)allmain.B $(O)apply.B $(O)artifact.B $(O)attrib.B \
821 $(O)botl.B $(O)cmd.B $(O)dbridge.B $(O)do.B \
822 $(O)do_name.B $(O)do_wear.B $(O)dog.B $(O)dogmove.B \
823 $(O)eat.B $(O)engrave.B $(O)hack.B $(O)hacklib.B \
824 $(O)invent.B $(O)lock.B $(O)mail.B $(O)makemon.B \
825 $(O)mcastu.B $(O)mhitm.B $(O)mhitu.B $(O)mkobj.B \
826 $(O)mkroom.B $(O)mon.B $(O)mondata.B $(O)monmove.B \
827 $(O)mthrowu.B $(O)objnam.B $(O)pcmain.B $(O)pline.B \
828 $(O)polyself.B $(O)potion.B $(O)priest.B $(O)read.B \
829 $(O)rnd.B $(O)shk.B $(O)shknam.B $(O)sounds.B \
830 $(O)steal.B $(O)timeout.B $(O)track.B $(O)trap.B \
831 $(O)vault.B $(O)weapon.B $(O)were.B $(O)wizard.B \
832 $(O)msdos.B $(O)pcunix.B $(O)termcap.B $(O)topl.B \
833 $(O)video.B $(O)vidtxt.B $(O)zap.B
835 TILOBJ = $(TILEGAME) $(TILEVGA)
837 VVOBJ = $(O)version.o
839 NVOBJ = $(OBJ01) $(OVL0) $(OVL1) $(OVL2) \
840 $(OVL3) $(OVLB) $(TILOBJ)
842 ALLOBJ= $(NVOBJ) $(VVOBJ) $(OVLINIT)
848 # This comment copied from sys/unix/Makefile.src,
849 # extern.h is ignored, even though its declared function types may affect the
850 # compilation of all the .c files, since extern.h changes every time the
851 # type of an external function does, and we would spend all our time recompiling
852 # if we did not ignore it.
853 #EXTERN_H = $(INCL)\extern.h
855 PCCONF_H = $(INCL)\pcconf.h $(INCL)\micro.h $(INCL)\system.h
856 PERMONST_H = $(INCL)\monattk.h $(INCL)\monflag.h $(INCL)\align.h
857 YOUPROP_H = $(INCL)\prop.h $(PERMONST_H) $(INCL)\pm.h $(INCL)\youprop.h \
859 YOU_H = $(INCL)\attrib.h $(INCL)\monst.h $(INCL)\mextra.h $(YOUPROP_H) \
861 DECL_H = $(INCL)\quest.h $(INCL)\spell.h $(INCL)\color.h \
862 $(INCL)\obj.h $(YOU_H) $(INCL)\onames.h $(INCL)\pm.h
864 CONFIG_H = $(INCL)\config1.h $(INCL)\tradstdc.h $(INCL)\coord.h $(PCCONF_H) \
866 HACK_H = $(CONFIG_H) $(INCL)\context.h $(INCL)\dungeon.h $(INCL)\align.h \
867 $(INCL)\monsym.h $(INCL)\mkroom.h $(INCL)\objclass.h $(DECL_H) \
868 $(INCL)\timeout.h $(INCL)\trap.h $(INCL)\flag.h $(INCL)\rm.h \
869 $(INCL)\vision.h $(INCL)\mondata.h $(INCL)\wintype.h \
870 $(INCL)\engrave.h $(INCL)\rect.h $(EXTERN_H) $(INCL)\sys.h \
871 $(INCL)\winprocs.h $(INCL)\trampoli.h $(INCL)\display.h
872 TILE_H = $(INCL)\tile.h $(INCL)\pctiles.h
873 PCVIDEO_H = $(INCL)\portio.h $(INCL)\pcvideo.h
874 ALIGN_H = $(INCL)\align.h
875 ARTIFACT_H = $(INCL)\artifact.h
876 ARTILIST_H = $(INCL)\artilist.h
877 COLOR_H = $(INCL)\color.h
878 DATE_H = $(INCL)\date.h
879 DGN_FILE_H = $(INCL)\dgn_file.h
880 DLB_H = $(INCL)\dlb.h
881 FUNC_TAB_H = $(INCL)\func_tab.h
882 LEV_H = $(INCL)\lev.h
883 LEV_COMP_H = $(INCL)\lev_comp.h
884 MAIL_H = $(INCL)\mail.h
885 MFNDPOS_H = $(INCL)\mfndpos.h
886 MONSYM_H = $(INCL)\monsym.h
887 OBJ_H = $(INCL)\obj.h
888 OBJCLASS_H = $(INCL)\objclass.h
889 OBJECTS_H = $(INCL)\objects.h
890 PROP_H = $(INCL)\prop.h
891 QTEXT_H = $(INCL)\qtext.h
892 QUEST_H = $(INCL)\quest.h
893 SP_LEV_H = $(INCL)\sp_lev.h
894 TERMCAP_H = $(INCL)\tcap.h
895 VIS_TAB_H = $(INCL)\vis_tab.h
896 WINTTY_H = $(INCL)\wintty.h
899 # In the unix distribution this file is patchlevel.h, make it 8.3 here
900 # to avoid an nmake warning under dos.
903 PATCHLEVEL_H = $(INCL)\patchlev.h
907 # The name of the game.
910 GAMEFILE = $(GAMEDIR)\$(GAME).exe
913 # make data.base an 8.3 filename to prevent an nmake warning
916 DATABASE = $(DAT)\data.bas
918 #######################################################################
926 $(GAME): obj.tag envchk $(U)utility.tag $(GAMEFILE)
927 @echo $(GAME) is up to date.
935 install: $(GAME) install.tag
939 install.tag: $(DAT)\data $(DAT)\rumors $(DAT)\dungeon \
940 $(DAT)\oracles $(DAT)\quest.dat $(DAT)\sp_lev.tag $(DLB)
941 ! IF ("$(USE_DLB)"=="Y")
942 copy anhdat $(GAMEDIR)
943 copy $(DAT)\license $(GAMEDIR)
945 copy $(DAT)\*. $(GAMEDIR)
946 copy $(DAT)\*.dat $(GAMEDIR)
947 copy $(DAT)\*.lev $(GAMEDIR)
948 copy $(MSYS)\msdoshlp.txt $(GAMEDIR)
949 if exist $(GAMEDIR)\makefile del $(GAMEDIR)\makefile
951 copy $(SYS)\termcap $(GAMEDIR)
952 if exist $(DAT)\symbols copy $(DAT)\symbols $(GAMEDIR)
953 if exist $(DOC)\guideb*.txt copy $(DOC)\guideb*.txt $(GAMEDIR)
954 if exist $(DOC)\anethack.txt copy $(DOC)\anethack.txt $(GAMEDIR)\aNetHack.txt
955 if exist $(DOC)\recover.txt copy $(DOC)\recover.txt $(GAMEDIR)
956 copy $(SYS)\aNetHack.cnf $(GAMEDIR)\defaults.nh
957 copy $(MSYS)\NHAccess.nh $(GAMEDIR)
958 copy $(U)recover.exe $(GAMEDIR)
959 if exist *.tib copy *.tib $(GAMEDIR)
960 echo install done > $@
962 $(DAT)\sp_lev.tag: $(U)utility.tag $(SPLEVDES)
964 $(U)lev_comp bigroom.des
965 $(U)lev_comp castle.des
966 $(U)lev_comp endgame.des
967 $(U)lev_comp gehennom.des
968 $(U)lev_comp knox.des
969 $(U)lev_comp mines.des
970 $(U)lev_comp medusa.des
971 $(U)lev_comp oracle.des
972 $(U)lev_comp sokoban.des
973 $(U)lev_comp tower.des
974 $(U)lev_comp yendor.des
975 $(U)lev_comp arch.des
976 $(U)lev_comp barb.des
977 $(U)lev_comp caveman.des
978 $(U)lev_comp healer.des
979 $(U)lev_comp knight.des
980 $(U)lev_comp monk.des
981 $(U)lev_comp priest.des
982 $(U)lev_comp ranger.des
983 $(U)lev_comp rogue.des
984 $(U)lev_comp samurai.des
985 $(U)lev_comp tourist.des
986 $(U)lev_comp valkyrie.des
987 $(U)lev_comp wizard.des
989 echo sp_levs done > $(DAT)\sp_lev.tag
991 $(U)utility.tag: envchk $(INCL)\date.h $(INCL)\onames.h \
992 $(INCL)\pm.h $(SRC)\monstr.c $(SRC)\vis_tab.c \
993 $(U)lev_comp.exe $(VIS_TAB_H) $(U)dgn_comp.exe \
994 $(U)recover.exe $(TILEUTIL)
995 @echo utilities made >$@
996 @echo utilities made.
998 tileutil: $(U)gif2txt.exe $(U)txt2ppm.exe
999 @echo Optional tile development utilities are up to date.
1003 # Specifying the "<<" means to start an inline file.
1004 # Another "<<" at the start of a line closes the
1007 # DO NOT INDENT THE << below!
1010 $(GAMEFILE) : $(ALLOBJ)
1012 $(LINK) $(LFLAGSN) @<<$(GAME).lnk
1016 $(TERMLIB) $(MOVETR) $(CLIB) $(BCOVL) $(BCMDL)
1018 @if exist $(GAMEDIR)\$(GAME).bak del $(GAMEDIR)\$(GAME).bak
1024 $(U)makedefs.exe: $(MAKEOBJS)
1025 @$(LINK) $(LFLAGSU) $(MAKEOBJS), $@,, $(CLIB) $(BCMDL);
1027 $(O)makedefs.o: $(CONFIG_H) $(PERMONST_H) $(OBJCLASS_H) \
1028 $(MONSYM_H) $(QTEXT_H) $(PATCHLEVEL_H) \
1030 @echo $(BCOPTS1) > $(VROOMMCFG)
1031 @echo $(BCOPTS2) >> $(VROOMMCFG)
1032 @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)makedefs.c
1035 # date.h should be remade every time any of the source or include
1036 # files is modified.
1039 $(INCL)\date.h : $(U)makedefs.exe
1041 @echo A new $@ has been created.
1043 $(INCL)\onames.h : $(U)makedefs.exe
1046 $(INCL)\pm.h : $(U)makedefs.exe
1049 #$(INCL)\trap.h : $(U)makedefs.exe
1052 $(SRC)\monstr.c: $(U)makedefs.exe
1055 $(INCL)\vis_tab.h: $(U)makedefs.exe
1058 $(SRC)\vis_tab.c: $(U)makedefs.exe
1062 # Level Compiler Stuff
1065 $(U)lev_comp.exe: $(SPLEVOBJS)
1067 $(LINK) $(LFLAGSU) @&&!
1068 $(O)stubvid.o $(O)panic.o $(O)objects.o $(O)monst.o +
1069 $(O)drawing.o $(O)decl.o $(O)alloc.o $(O)lev_main.o +
1070 $(O)lev_$(LEX).o $(O)lev_yacc.o
1076 $(O)lev_yacc.o: $(HACK_H) $(SP_LEV_H) $(INCL)\lev_comp.h $(U)lev_yacc.c
1077 @echo $(BCOPTS1) > $(VROOMMCFG)
1078 @echo $(BCOPTS2) >> $(VROOMMCFG)
1079 @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)lev_yacc.c
1081 $(O)lev_$(LEX).o: $(HACK_H) $(INCL)\lev_comp.h $(SP_LEV_H) \
1083 @echo $(BCOPTS1) > $(VROOMMCFG)
1084 @echo $(BCOPTS2) >> $(VROOMMCFG)
1085 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)lev_$(LEX).c
1087 $(O)lev_main.o: $(U)lev_main.c $(HACK_H) $(SP_LEV_H)
1088 @echo $(BCOPTS1) > $(VROOMMCFG)
1089 @echo $(BCOPTS2) >> $(VROOMMCFG)
1090 @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)lev_main.c
1092 $(U)lev_yacc.c $(INCL)\lev_comp.h : $(U)lev_comp.y
1093 ! IF "$(DO_YACC)"=="YACC_ACT"
1094 $(YACC) -d -l $(U)lev_comp.y
1095 copy $(YTABC) $(U)lev_yacc.c
1096 copy $(YTABH) $(INCL)\lev_comp.h
1101 @echo $(U)lev_comp.y has changed.
1102 @echo To update $(U)lev_yacc.c and $(INCL)\lev_comp.h run $(YACC).
1104 @echo For now, we will copy the prebuilt lev_yacc.c
1105 @echo from $(SYS) to $(U)lev_yacc.c, and copy the prebuilt
1106 @echo lev_comp.h from $(SYS) to $(UTIL)\lev_comp.h
1107 @echo and use those.
1109 copy $(SYS)\lev_yacc.c $@ >nul
1111 copy $(SYS)\lev_comp.h $(INCL)\lev_comp.h >nul
1112 touch $(INCL)\lev_comp.h
1115 $(U)lev_$(LEX).c: $(U)lev_comp.l
1116 ! IF "$(DO_LEX)"=="LEX_ACT"
1117 $(LEX) $(FLEXSKEL) $(U)lev_comp.l
1122 @echo $(U)lev_comp.l has changed. To update $@ run $(LEX).
1124 @echo For now, we will copy a prebuilt lev_lex.c
1125 @echo from $(SYS) to $@ and use it.
1127 copy $(SYS)\lev_lex.c $@ >nul
1135 $(U)dgn_comp.exe: $(DGNCOMPOBJS)
1137 $(LINK) $(LFLAGSU) @&&!
1138 $(O)panic.o $(O)alloc.o $(O)dgn_main.o $(O)dgn_$(LEX).o +
1145 $(O)dgn_yacc.o: $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h \
1147 @echo $(BCOPTS1) > $(VROOMMCFG)
1148 @echo $(BCOPTS2) >> $(VROOMMCFG)
1149 @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)dgn_yacc.c
1151 $(O)dgn_$(LEX).o: $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h \
1153 @echo $(BCOPTS1) > $(VROOMMCFG)
1154 @echo $(BCOPTS2) >> $(VROOMMCFG)
1155 @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)dgn_$(LEX).c
1157 $(O)dgn_main.o: $(HACK_H) $(U)dgn_main.c
1158 @echo $(BCOPTS1) > $(VROOMMCFG)
1159 @echo $(BCOPTS2) >> $(VROOMMCFG)
1160 @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)dgn_main.c
1162 $(U)dgn_yacc.c $(INCL)\dgn_comp.h : $(U)dgn_comp.y
1163 ! IF "$(DO_YACC)"=="YACC_ACT"
1164 $(YACC) -d -l $(U)dgn_comp.y
1165 copy $(YTABC) $(U)dgn_yacc.c
1166 copy $(YTABH) $(INCL)\dgn_comp.h
1171 @echo $(U)dgn_comp.y has changed. To update $@ and
1172 @echo $(INCL)\dgn_comp.h run $(YACC).
1174 @echo For now, we will copy the prebuilt dgn_yacc.c from
1175 @echo $(SYS) to $(U)dgn_yacc.c, and copy the prebuilt
1176 @echo dgn_comp.h from $(SYS) to $(INCL)\dgn_comp.h
1177 @echo and use those.
1179 copy $(SYS)\dgn_yacc.c $@ >nul
1181 copy $(SYS)\dgn_comp.h $(INCL)\dgn_comp.h >nul
1182 touch $(INCL)\dgn_comp.h
1185 $(U)dgn_$(LEX).c: $(U)dgn_comp.l
1186 ! IF "$(DO_LEX)"=="LEX_ACT"
1187 $(LEX) $(FLEXSKEL) $(U)dgn_comp.l
1192 @echo $(U)dgn_comp.l has changed. To update $@ run $(LEX).
1194 @echo For now, we will copy a prebuilt dgn_lex.c
1195 @echo from $(SYS) to $@ and use it.
1197 copy $(SYS)\dgn_lex.c $@ >nul
1203 @if not exist $(O)*.* mkdir $(OBJ)
1204 @echo directory $(OBJ) created
1205 @echo directory $(OBJ) created >$@
1208 ! IF "$(TILEGAME)"==""
1210 @echo NOTE: This build will NOT include tile support.
1214 @echo This build includes tile support.
1223 # Header files NOT distributed in ..\include
1226 $(INCL)\tile.h: $(WSHR)\tile.h
1227 copy $(WSHR)\tile.h $@
1229 $(INCL)\pctiles.h: $(MSYS)\pctiles.h
1230 copy $(MSYS)\pctiles.h $@
1232 $(INCL)\pcvideo.h: $(MSYS)\pcvideo.h
1233 copy $(MSYS)\pcvideo.h $@
1235 $(INCL)\portio.h: $(MSYS)\portio.h
1236 copy $(MSYS)\portio.h $@
1242 $(U)recover.exe: $(RECOVOBJS)
1243 @$(LINK) $(LFLAGSU) $(RECOVOBJS),$@,, $(CLIB) $(BCMDL);
1249 $(SRC)\tile.c: $(U)tilemap.exe
1250 @echo A new $@ is being created.
1253 $(U)tilemap.exe: $(O)tilemap.o
1254 @$(LINK) $(LFLAGSU) $(O)tilemap.o,$@,, $(CLIB) $(BCMDL);
1256 $(O)tilemap.o: $(WSHR)\tilemap.c $(HACK_H)
1257 @echo $(BCOPTS1) > $(VROOMMCFG)
1258 @echo $(BCOPTS2) >> $(VROOMMCFG)
1259 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(WSHR)\tilemap.c
1267 # Optional (for development)
1274 $(U)gif2txt.exe: $(GIFREADERS) $(TEXT_IO)
1275 @$(LINK) $(LFLAGSU) << $(@B).lnk
1276 $(GIFREADERS) $(TEXT_IO)
1277 $@,,$(CLIB) $(BCMDL)
1280 $(U)txt2ppm.exe: $(PPMWRITERS) $(TEXT_IO)
1281 @$(LINK) $(LFLAGSU) << $(@B).lnk
1282 $(PPMWRITERS) $(TEXT_IO)
1283 $@,,$(CLIB) $(BCMDL);
1286 $(U)gif2txt2.exe: $(GIFREAD2) $(TEXT_IO2)
1287 @$(LINK) $(LFLAGSU) << $(@B).lnk
1288 $(GIFREAD2) $(TEXT_IO2)
1289 $@,,$(CLIB) $(BCMDL);
1292 $(U)txt2ppm2.exe: $(PPMWRIT2) $(TEXT_IO2)
1293 @$(LINK) $(LFLAGSU) << $(@B).lnk
1294 $(PPMWRIT2) $(TEXT_IO2)
1295 $@,,$(CLIB) $(BCMDL);
1299 # Required for tile support
1302 aNetHack1.tib: $(TILEFILES) $(U)tile2bin.exe
1303 @echo Creating binary tile files (this may take some time)
1306 aNetHackO.tib: thintile.tag $(TILEFILES2) $(U)til2bin2.exe
1307 @echo Creating overview binary tile files (this may take some time)
1310 thintile.tag: $(U)thintile.exe $(TILEFILES)
1312 @echo thintiles created >thintile.tag
1314 $(U)tile2bin.exe: $(O)tile2bin.o $(TEXT_IO)
1316 $(LINK) $(LFLAGSU) @&&!
1318 $(O)stubvid.o $(O)objects.o $(O)monst.o $(O)decl.o +
1319 $(O)drawing.o $(O)tiletxt.o $(O)tiletext.o
1325 $(U)til2bin2.exe: $(O)til2bin2.o $(TEXT_IO2)
1327 $(LINK) $(LFLAGSU) @&&!
1329 $(O)stubvid.o $(O)objects.o $(O)monst.o $(O)decl.o +
1330 $(O)drawing.o $(O)tiletxt2.o $(O)tiletex2.o
1337 $(U)thintile.exe: $(O)thintile.o
1338 @$(LINK) $(LFLAGSU) $(O)thintile.o,$@,, $(CLIB) $(BCMDL);
1340 $(O)thintile.o: $(HACK_H) $(INCL)\tile.h $(WSHR)\thintile.c
1341 @echo $(BCOPTS1) > $(VROOMMCFG)
1342 @echo $(BCOPTS2) >> $(VROOMMCFG)
1343 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(WSHR)\thintile.c
1345 $(O)tile2bin.o: $(HACK_H) $(TILE_H) $(PCVIDEO_H)
1346 @echo $(BCOPTS1) > $(VROOMMCFG)
1347 @echo $(BCOPTS2) >> $(VROOMMCFG)
1348 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(MSYS)\tile2bin.c
1350 $(O)til2bin2.o: $(HACK_H) $(TILE_H) $(PCVIDEO_H)
1351 @echo $(BCOPTS1) > $(VROOMMCFG)
1352 @echo $(BCOPTS2) >> $(VROOMMCFG)
1353 $(CC) $(CFLAGSU) $(CDEFINE)TILE_X=8 $(CDEFINE)OVERVIEW_FILE \
1354 $(COBJNAM)$@ $(MSYS)\tile2bin.c
1361 anhdat: $(U)dlb_main.exe
1362 @copy $(MSYS)\msdoshlp.txt $(DAT)
1365 @echo oracles >>dlb.lst
1366 @echo options >>dlb.lst
1367 @echo quest.dat >>dlb.lst
1368 @echo rumors >>dlb.lst
1369 @echo help >>dlb.lst
1371 @echo cmdhelp >>dlb.lst
1372 @echo history >>dlb.lst
1373 @echo opthelp >>dlb.lst
1374 @echo wizhelp >>dlb.lst
1375 @echo dungeon >>dlb.lst
1376 @echo license >>dlb.lst
1377 @echo msdoshlp.txt >>dlb.lst
1378 @for %%N in (*.lev) do echo %%N >>dlb.lst
1379 $(U)dlb_main cvIf dlb.lst $(SRC)\anhdat
1382 $(U)dlb_main.exe: $(DLBOBJS)
1383 @$(LINK) $(LFLAGSU) $(DLBOBJS),$@,, $(CLIB) $(BCMDL);
1385 $(O)dlb_main.o: $(U)dlb_main.c $(INCL)\config.h $(DLB_H)
1386 @echo $(BCOPTS1) > $(VROOMMCFG)
1387 @echo $(BCOPTS2) >> $(VROOMMCFG)
1388 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)dlb_main.c
1396 if exist $(DATE_H) del $(DATE_H)
1397 if exist $(INCL)\onames.h del $(INCL)\onames.h
1398 if exist $(INCL)\pm.h del $(INCL)\pm.h
1399 if exist $(VIS_TAB_H) del $(VIS_TAB_H)
1400 if exist $(SRC)\vis_tab.c del $(SRC)\vis_tab.c
1401 if exist $(SRC)\tile.c del $(SRC)\tile.c
1402 if exist $(DAT)\rumors del $(DAT)\rumors
1403 if exist $(DAT)\data del $(DAT)\data
1404 if exist $(DAT)\dungeon del $(DAT)\dungeon
1405 if exist $(DAT)\dungeon.pdf del $(DAT)\dungeon.pdf
1406 if exist $(DAT)\options del $(DAT)\options
1407 if exist $(DAT)\oracles del $(DAT)\oracles
1408 if exist $(DAT)\rumors del $(DAT)\rumors
1409 if exist $(DAT)\quest.dat del $(DAT)\quest.dat
1410 if exist $(DAT)\*.lev del $(DAT)\*.lev
1411 if exist $(DAT)\sp_lev.tag del $(DAT)\sp_lev.tag
1412 if exist $(SRC)\monstr.c del $(SRC)\monstr.c
1413 if exist $(SRC)\vis_tab.c del $(SRC)\vis_tab.c
1414 if exist $(SRC)\$(PLANAR_TIB) del $(SRC)\$(PLANAR_TIB)
1415 if exist $(SRC)\$(OVERVIEW_TIB) del $(SRC)\$(OVERVIEW_TIB)
1416 if exist $(U)recover.exe del $(U)recover.exe
1419 if exist $(O)*.o del $(O)*.o
1420 if exist $(O)*.0 del $(O)*.0
1421 if exist $(O)*.1 del $(O)*.1
1422 if exist $(O)*.2 del $(O)*.2
1423 if exist $(O)*.3 del $(O)*.3
1424 if exist $(O)*.b del $(O)*.b
1425 if exist $(U)utility.tag del $(U)utility.tag
1426 if exist $(U)makedefs.exe del $(U)makedefs.exe
1427 if exist $(U)lev_comp.exe del $(U)lev_comp.exe
1428 if exist $(U)dgn_comp.exe del $(U)dgn_comp.exe
1429 if exist $(U)dlb_main.exe del $(U)dlb_main.exe
1430 if exist $(SRC)\*.lnk del $(SRC)\*.lnk
1431 if exist $(SRC)\*.map del $(SRC)\*.map
1432 if exist $(SRC)\*$(CPCHEXT) del $(SRC)\*$(CPCHEXT)
1433 if exist $(SRC)\*.cfg del $(SRC)\*.cfg
1434 if exist $(DAT)\dlb.lst del $(DAT)\dlb.lst
1437 @echo ^#include "hack.h" > $@
1438 @echo main(int argc, char *argv[]) >> $@
1444 # OTHER DEPENDENCIES
1448 # Precompiled Header dependencies
1449 # (We need to force the generation of these at the beginning)
1452 PHO$(CPCHEXT): $(HACK_H) pch.c
1453 @echo Generating new precompiled header for .O files
1454 @echo $(BCOPTS1) > $(VROOMMCFG)
1455 @echo $(BCOPTS2) $(CFLAGCO) >> $(VROOMMCFG)
1456 @$(CC) $(FLAGCO) pch.c
1457 PH0$(CPCHEXT): $(HACK_H) pch.c
1458 @echo Generating new precompiled header for .0 files
1459 @echo $(BCOPTS1) > $(VROOMMCFG)
1460 @echo $(BCOPTS2) $(CFLAGC0) >> $(VROOMMCFG)
1461 @$(CC) $(FLAGC0) pch.c
1462 PH1$(CPCHEXT): $(HACK_H) pch.c
1463 @echo Generating new precompiled header for .1 files
1464 @echo $(BCOPTS1) > $(VROOMMCFG)
1465 @echo $(BCOPTS2) $(CFLAGC1) >> $(VROOMMCFG)
1466 @$(CC) $(FLAGC1) pch.c
1467 PH2$(CPCHEXT): $(HACK_H) pch.c
1468 @echo Generating new precompiled header for .2 files
1469 @echo $(BCOPTS1) > $(VROOMMCFG)
1470 @echo $(BCOPTS2) $(CFLAGC2) >> $(VROOMMCFG)
1471 @$(CC) $(FLAGC2) pch.c
1472 PH3$(CPCHEXT): $(HACK_H) pch.c
1473 @echo Generating new precompiled header for .3 files
1474 @echo $(BCOPTS1) > $(VROOMMCFG)
1475 @echo $(BCOPTS2) $(CFLAGC3) >> $(VROOMMCFG)
1476 @$(CC) $(FLAGC3) pch.c
1477 PHB$(CPCHEXT): $(HACK_H) pch.c
1478 @echo Generating new precompiled header for .B files
1479 @echo $(BCOPTS1) > $(VROOMMCFG)
1480 @echo $(BCOPTS2) $(CFLAGCB) >> $(VROOMMCFG)
1481 @$(CC) $(FLAGCB) pch.c
1484 # Overlay initialization routines used by pcmain() at startup to
1485 # determine EMS/XMS memory usage.
1487 # Comment out the following line if you don't want Borland C++ to check for
1489 RECOGNIZE_XMS = $(CDEFINE)RECOGNIZE_XMS
1492 $(O)ovlinit.o: $(MSYS)\ovlinit.c $(HACK_H)
1493 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1494 @echo $(BCOPTS1) >> $(VROOMMCFG)
1495 @echo $(BCOPTS2) >> $(VROOMMCFG)
1496 $(CC) $(CFLAGSN) $(RECOGNIZE_XMS) $(COBJNAM)$@ $(MSYS)\ovlinit.c
1502 $(DAT)\data: $(U)utility.tag $(DATABASE)
1505 $(DAT)\rumors: $(U)utility.tag $(DAT)\rumors.tru $(DAT)\rumors.fal
1508 $(DAT)\quest.dat: $(U)utility.tag $(DAT)\quest.txt
1511 $(DAT)\oracles: $(U)utility.tag $(DAT)\oracles.txt
1514 $(DAT)\dungeon: $(U)utility.tag $(DAT)\dungeon.def
1517 $(U)dgn_comp dungeon.pdf
1521 # Util Dependencies.
1524 $(O)panic.o: $(U)panic.c $(CONFIG_H)
1525 @echo $(BCOPTS1) > $(VROOMMCFG)
1526 @echo $(BCOPTS2) >> $(VROOMMCFG)
1527 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)panic.c
1529 $(O)recover.o: $(CONFIG_H) $(U)recover.c
1530 @echo $(BCOPTS1) > $(VROOMMCFG)
1531 @echo $(BCOPTS2) >> $(VROOMMCFG)
1532 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)recover.c
1538 $(O)tiletxt.o: $(WSHR)\tilemap.c $(HACK_H)
1539 @echo $(BCOPTS1) > $(VROOMMCFG)
1540 @echo $(BCOPTS2) >> $(VROOMMCFG)
1541 $(CC) $(CFLAGSU) $(CDEFINE)TILETEXT $(COBJNAM)$@ $(WSHR)\tilemap.c
1543 $(O)tiletxt2.o: $(WSHR)\tilemap.c $(HACK_H)
1544 @echo $(BCOPTS1) > $(VROOMMCFG)
1545 @echo $(BCOPTS2) >> $(VROOMMCFG)
1546 $(CC) $(CFLAGSU) $(CDEFINE)TILETEXT \
1547 $(CDEFINE)TILE_X=8 $(COBJNAM)$@ $(WSHR)\tilemap.c
1549 $(O)gifread.o: $(WSHR)\gifread.c $(CONFIG_H) $(INCL)\tile.h
1550 @echo $(BCOPTS1) > $(VROOMMCFG)
1551 @echo $(BCOPTS2) >> $(VROOMMCFG)
1552 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(WSHR)\gifread.c
1554 $(O)gifread2.o: $(WSHR)\gifread.c $(CONFIG_H) $(INCL)\tile.h
1555 @echo $(BCOPTS1) > $(VROOMMCFG)
1556 @echo $(BCOPTS2) >> $(VROOMMCFG)
1557 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(CDEFINE)TILE_X=8 $(WSHR)\gifread.c
1559 $(O)ppmwrite.o: $(WSHR)\ppmwrite.c $(CONFIG_H) $(INCL)\tile.h
1560 @echo $(BCOPTS1) > $(VROOMMCFG)
1561 @echo $(BCOPTS2) >> $(VROOMMCFG)
1562 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(WSHR)\ppmwrite.c
1564 $(O)ppmwrit2.o: $(WSHR)\ppmwrite.c $(CONFIG_H) $(INCL)\tile.h
1565 @echo $(BCOPTS1) > $(VROOMMCFG)
1566 @echo $(BCOPTS2) >> $(VROOMMCFG)
1567 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(CDEFINE)TILE_X=8 $(WSHR)\ppmwrite.c
1569 $(O)tiletext.o: $(WSHR)\tiletext.c $(CONFIG_H) $(INCL)\tile.h
1570 @echo $(BCOPTS1) > $(VROOMMCFG)
1571 @echo $(BCOPTS2) >> $(VROOMMCFG)
1572 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(WSHR)\tiletext.c
1574 $(O)tiletex2.o: $(WSHR)\tiletext.c $(CONFIG_H) $(INCL)\tile.h
1575 @echo $(BCOPTS1) > $(VROOMMCFG)
1576 @echo $(BCOPTS2) >> $(VROOMMCFG)
1577 $(CC) $(CFLAGSU) $(CDEFINE)TILE_X=8 $(COBJNAM)$@ $(WSHR)\tiletext.c
1583 $(O)getline.1: $(PCH1) $(WTTY)\getline.c $(HACK_H) $(WINTTY_H) $(FUNC_TAB_H)
1584 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG)
1585 @echo $(BCOPTS1) >> $(VROOMMCFG)
1586 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG)
1587 $(CC) $(FLAGU1) $(COBJNAM)$@ $(WTTY)\getline.c
1589 $(O)getline.2: $(PCH2) $(WTTY)\getline.c $(HACK_H) $(WINTTY_H) $(FUNC_TAB_H)
1590 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG)
1591 @echo $(BCOPTS1) >> $(VROOMMCFG)
1592 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG)
1593 $(CC) $(FLAGU2) $(COBJNAM)$@ $(WTTY)\getline.c
1595 $(O)termcap.0: $(PCH0) $(WTTY)\termcap.c $(HACK_H) $(WINTTY_H) $(TERMCAP_H)
1596 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
1597 @echo $(BCOPTS1) >> $(VROOMMCFG)
1598 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG)
1599 $(CC) $(FLAGU0) $(COBJNAM)$@ $(WTTY)\termcap.c
1601 $(O)termcap.1: $(PCH1) $(WTTY)\termcap.c $(HACK_H) $(WINTTY_H) $(TERMCAP_H)
1602 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG)
1603 @echo $(BCOPTS1) >> $(VROOMMCFG)
1604 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG)
1605 $(CC) $(FLAGU1) $(COBJNAM)$@ $(WTTY)\termcap.c
1607 $(O)termcap.B: $(PCHB) $(WTTY)\termcap.c $(HACK_H) $(WINTTY_H) $(TERMCAP_H)
1608 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
1609 @echo $(BCOPTS1) >> $(VROOMMCFG)
1610 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
1611 $(CC) $(FLAGUB) $(COBJNAM)$@ $(WTTY)\termcap.c
1613 $(O)topl.1: $(PCH1) $(WTTY)\topl.c $(HACK_H) $(TERMCAP_H) $(WINTTY_H)
1614 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG)
1615 @echo $(BCOPTS1) >> $(VROOMMCFG)
1616 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG)
1617 $(CC) $(FLAGU1) $(COBJNAM)$@ $(WTTY)\topl.c
1619 $(O)topl.2: $(PCH2) $(WTTY)\topl.c $(HACK_H) $(TERMCAP_H) $(WINTTY_H)
1620 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG)
1621 @echo $(BCOPTS1) >> $(VROOMMCFG)
1622 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG)
1623 $(CC) $(FLAGU2) $(COBJNAM)$@ $(WTTY)\topl.c
1625 $(O)topl.B: $(PCHB) $(WTTY)\topl.c $(HACK_H) $(TERMCAP_H) $(WINTTY_H)
1626 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
1627 @echo $(BCOPTS1) >> $(VROOMMCFG)
1628 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
1629 $(CC) $(FLAGUB) $(COBJNAM)$@ $(WTTY)\topl.c
1631 $(O)wintty.o: $(PCHO) $(CONFIG_H) $(WTTY)\wintty.c $(PATCHLEVEL_H) $(DATE_H)
1632 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1633 @echo $(BCOPTS1) >> $(VROOMMCFG)
1634 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
1635 $(CC) $(FLAGUO) $(COBJNAM)$@ $(WTTY)\wintty.c
1641 $(O)pcmain.0: $(PCH0) $(HACK_H) $(SYS)\pcmain.c
1642 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
1643 @echo $(BCOPTS1) >> $(VROOMMCFG)
1644 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG)
1645 $(CC) $(FLAGU0) $(COBJNAM)$@ $(SYS)\pcmain.c
1647 $(O)pcmain.1: $(PCH1) $(HACK_H) $(SYS)\pcmain.c
1648 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG)
1649 @echo $(BCOPTS1) >> $(VROOMMCFG)
1650 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG)
1651 $(CC) $(FLAGU1) $(COBJNAM)$@ $(SYS)\pcmain.c
1653 $(O)pcmain.B: $(PCHB) $(HACK_H) $(SYS)\pcmain.c
1654 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
1655 @echo $(BCOPTS1) >> $(VROOMMCFG)
1656 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
1657 $(CC) $(FLAGUB) $(COBJNAM)$@ $(SYS)\pcmain.c
1659 $(O)pcunix.B: $(PCHB) $(SYS)\pcunix.c $(HACK_H)
1660 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
1661 @echo $(BCOPTS1) >> $(VROOMMCFG)
1662 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
1663 $(CC) $(FLAGUB) $(COBJNAM)$@ $(SYS)\pcunix.c
1665 $(O)tty.o: $(HACK_H) $(WINTTY_H) $(SYS)\pctty.c
1666 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1667 @echo $(BCOPTS1) >> $(VROOMMCFG)
1668 @echo $(BCOPTS2) >> $(VROOMMCFG)
1669 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SYS)\pctty.c
1671 $(O)pcsys.o: $(HACK_H) $(SYS)\pcsys.c
1672 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1673 @echo $(BCOPTS1) >> $(VROOMMCFG)
1674 @echo $(BCOPTS2) >> $(VROOMMCFG)
1675 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SYS)\pcsys.c
1677 $(O)random.o: $(PCHO) $(HACK_H) $(SYS)\random.c
1678 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1679 @echo $(BCOPTS1) >> $(VROOMMCFG)
1680 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
1681 $(CC) $(FLAGUO) $(COBJNAM)$@ $(SYS)\random.c
1687 $(O)msdos.0: $(MSYS)\msdos.c $(HACK_H) $(PCVIDEO_H)
1688 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
1689 @echo $(BCOPTS1) >> $(VROOMMCFG)
1690 @echo $(BCOPTS2) >> $(VROOMMCFG)
1691 $(CC) $(CFLAGSN) $(COVL0) $(COBJNAM)$@ $(MSYS)\msdos.c
1693 $(O)msdos.B: $(MSYS)\msdos.c $(HACK_H) $(PCVIDEO_H)
1694 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
1695 @echo $(BCOPTS1) >> $(VROOMMCFG)
1696 @echo $(BCOPTS2) >> $(VROOMMCFG)
1697 $(CC) $(CFLAGSN) $(COVLB) $(COBJNAM)$@ $(MSYS)\msdos.c
1699 $(O)pctiles.0: $(PCH0) $(MSYS)\pctiles.c $(HACK_H) $(TILE_H) $(PCVIDEO_H)
1700 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
1701 @echo $(BCOPTS1) >> $(VROOMMCFG)
1702 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG)
1703 $(CC) $(FLAGU0) $(COBJNAM)$@ $(MSYS)\pctiles.c
1705 $(O)pctiles.B: $(PCHB) $(MSYS)\pctiles.c $(HACK_H) $(TILE_H) $(PCVIDEO_H)
1706 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
1707 @echo $(BCOPTS1) >> $(VROOMMCFG)
1708 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
1709 $(CC) $(FLAGUB) $(COBJNAM)$@ $(MSYS)\pctiles.c
1711 $(O)sound.o: $(PCH0) $(MSYS)\sound.c $(HACK_H) $(INCL)\portio.h
1712 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1713 @echo $(BCOPTS1) >> $(VROOMMCFG)
1714 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
1715 $(CC) $(FLAGUO) $(COBJNAM)$@ $(MSYS)\sound.c
1717 $(O)pckeys.o: $(PCHO) $(MSYS)\pckeys.c $(HACK_H) $(PCVIDEO_H)
1718 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1719 @echo $(BCOPTS1) >> $(VROOMMCFG)
1720 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
1721 $(CC) $(FLAGUO) $(COBJNAM)$@ $(MSYS)\pckeys.c
1723 $(O)stubvid.o : $(MSYS)\video.c $(HACK_H)
1724 @echo $(BCOPTS1) >> $(VROOMMCFG)
1725 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG)
1726 $(CC) $(FLAGUO) $(CDEFINE)STUBVIDEO $(COBJNAM)$@ $(MSYS)\video.c
1728 $(O)video.0: $(PCH0) $(MSYS)\video.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \
1730 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
1731 @echo $(BCOPTS1) >> $(VROOMMCFG)
1732 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG)
1733 $(CC) $(FLAGU0) $(COBJNAM)$@ $(MSYS)\video.c
1735 $(O)video.1: $(PCH1) $(MSYS)\video.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \
1737 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG)
1738 @echo $(BCOPTS1) >> $(VROOMMCFG)
1739 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG)
1740 $(CC) $(FLAGU1) $(COBJNAM)$@ $(MSYS)\video.c
1742 $(O)video.B: $(PCHB) $(MSYS)\video.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \
1744 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
1745 @echo $(BCOPTS1) >> $(VROOMMCFG)
1746 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
1747 $(CC) $(FLAGUB) $(COBJNAM)$@ $(MSYS)\video.c
1749 $(O)vidtxt.0: $(MSYS)\vidtxt.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H)
1750 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
1751 @echo $(BCOPTS1) >> $(VROOMMCFG)
1752 @echo $(BCOPTS2) >> $(VROOMMCFG)
1753 $(CC) $(CFLAGSN) $(COVL0) $(COBJNAM)$@ $(MSYS)\vidtxt.c
1755 $(O)vidtxt.B: $(MSYS)\vidtxt.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H)
1756 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
1757 @echo $(BCOPTS1) >> $(VROOMMCFG)
1758 @echo $(BCOPTS2) >> $(VROOMMCFG)
1759 $(CC) $(CFLAGSN) $(COVLB) $(COBJNAM)$@ $(MSYS)\vidtxt.c
1761 $(O)vidvga.0: $(PCH0) $(MSYS)\vidvga.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \
1763 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG)
1764 @echo $(BCOPTS1) >> $(VROOMMCFG)
1765 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG)
1766 $(CC) $(FLAGU0) $(COBJNAM)$@ $(MSYS)\vidvga.c
1768 $(O)vidvga.1: $(PCH1) $(MSYS)\vidvga.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \
1770 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG)
1771 @echo $(BCOPTS1) >> $(VROOMMCFG)
1772 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG)
1773 $(CC) $(FLAGU1) $(COBJNAM)$@ $(MSYS)\vidvga.c
1775 $(O)vidvga.2: $(PCH2) $(MSYS)\vidvga.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \
1777 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG)
1778 @echo $(BCOPTS1) >> $(VROOMMCFG)
1779 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG)
1780 $(CC) $(FLAGU2) $(COBJNAM)$@ $(MSYS)\vidvga.c
1782 $(O)vidvga.B: $(PCHB) $(MSYS)\vidvga.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \
1784 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
1785 @echo $(BCOPTS1) >> $(VROOMMCFG)
1786 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG)
1787 $(CC) $(FLAGUB) $(COBJNAM)$@ $(MSYS)\vidvga.c
1793 $(O)alloc.o: $(SRC)\alloc.c $(CONFIG_H)
1794 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1795 @echo $(BCOPTS1) >> $(VROOMMCFG)
1796 @echo $(BCOPTS2) >> $(VROOMMCFG)
1797 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\alloc.c
1798 $(O)ball.o: $(PCHO) $(SRC)\ball.c $(HACK_H)
1799 $(O)bones.o: $(PCHO) $(SRC)\bones.c $(HACK_H) $(LEV_H)
1800 $(O)decl.o: $(PCHO) $(SRC)\decl.c $(HACK_H) $(QUEST_H)
1801 $(O)detect.o: $(PCHO) $(SRC)\detect.c $(HACK_H) $(ARTIFACT_H)
1802 $(O)dig.o: $(PCHO) $(SRC)\dig.c $(HACK_H) # check dep
1803 $(O)display.o: $(PCHO) $(SRC)\display.c $(HACK_H)
1804 $(O)dlb.o: $(SRC)\dlb.c $(DLB_H) $(HACK_H)
1805 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1806 @echo $(BCOPTS1) >> $(VROOMMCFG)
1807 @echo $(BCOPTS2) >> $(VROOMMCFG)
1808 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\dlb.c
1809 $(O)dokick.o: $(PCHO) $(SRC)\dokick.c $(HACK_H)
1810 $(O)dothrow.o: $(PCHO) $(SRC)\dothrow.c $(HACK_H)
1811 $(O)drawing.o: $(SRC)\drawing.c $(HACK_H) $(TERMCAP_H)
1812 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1813 @echo $(BCOPTS1) >> $(VROOMMCFG)
1814 @echo $(BCOPTS2) >> $(VROOMMCFG)
1815 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\drawing.c
1816 $(O)end.o: $(SRC)\end.c $(HACK_H) $(LEV_H) $(DLB_H)
1817 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1818 @echo $(BCOPTS1) >> $(VROOMMCFG)
1819 @echo $(BCOPTS2) >> $(VROOMMCFG)
1820 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\end.c
1821 $(O)exper.o: $(PCHO) $(SRC)\exper.c $(HACK_H)
1822 $(O)extralev.o: $(PCHO) $(SRC)\extralev.c $(HACK_H)
1823 $(O)files.o: $(PCHO) $(SRC)\files.c $(HACK_H) $(DLB_H)
1824 $(O)fountain.o: $(PCHO) $(SRC)\fountain.c $(HACK_H)
1825 $(O)mapglyph.o: $(PCHO) $(SRC)\mapglyph.c $(HACK_H)
1826 $(O)minion.o: $(PCHO) $(SRC)\minion.c $(HACK_H)
1827 $(O)mklev.o: $(PCHO) $(SRC)\mklev.c $(HACK_H)
1828 $(O)mkmap.o: $(PCHO) $(SRC)\mkmap.c $(HACK_H) $(SP_LEV_H)
1829 $(O)mkmaze.o: $(PCHO) $(SRC)\mkmaze.c $(HACK_H) $(SP_LEV_H) $(LEV_H)
1830 $(O)monst.o: $(SRC)\monst.c $(CONFIG_H) $(PERMONST_H) $(MONSYM_H) \
1831 $(COLOR_H) $(ALIGN_H)
1832 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1833 @echo $(BCOPTS1) >> $(VROOMMCFG)
1834 @echo $(BCOPTS2) >> $(VROOMMCFG)
1835 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\monst.c
1836 $(O)monstr.o: $(SRC)\monstr.c $(CONFIG_H)
1837 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1838 @echo $(BCOPTS1) >> $(VROOMMCFG)
1839 @echo $(BCOPTS2) >> $(VROOMMCFG)
1840 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\monstr.c
1841 $(O)mplayer.o: $(PCHO) $(SRC)\mplayer.c $(HACK_H)
1842 $(O)muse.o: $(PCHO) $(SRC)\muse.c $(HACK_H)
1843 $(O)music.o: $(PCHO) $(SRC)\music.c $(HACK_H)
1844 $(O)o_init.o: $(PCHO) $(SRC)\o_init.c $(HACK_H) $(LEV_H)
1845 $(O)objects.o: $(SRC)\objects.c $(CONFIG_H) $(OBJ_H) $(OBJCLASS_H) \
1846 $(PROP_H) $(COLOR_H)
1847 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1848 @echo $(BCOPTS1) >> $(VROOMMCFG)
1849 @echo $(BCOPTS2) >> $(VROOMMCFG)
1850 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\objects.c
1851 $(O)options.o: $(SRC)\options.c $(HACK_H) $(TERMCAP_H) $(OBJCLASS_H)
1852 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1853 @echo $(BCOPTS1) >> $(VROOMMCFG)
1854 @echo $(BCOPTS2) >> $(VROOMMCFG)
1855 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\options.c
1856 $(O)pager.o: $(SRC)\pager.c $(HACK_H) $(DLB_H)
1857 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG)
1858 @echo $(BCOPTS1) >> $(VROOMMCFG)
1859 @echo $(BCOPTS2) >> $(VROOMMCFG)
1860 $(CC) $(CFLAGNO) $(COBJNAM)$@ $(SRC)\pager.c
1861 $(O)pickup.o: $(PCHO) $(SRC)\pickup.c $(HACK_H)
1862 $(O)pray.o: $(PCHO) $(SRC)\pray.c $(HACK_H)
1863 $(O)quest.o: $(PCHO) $(SRC)\quest.c $(HACK_H) $(QUEST_H) $(QTEXT_H)
1864 $(O)questpgr.o: $(PCHO) $(SRC)\questpgr.c $(HACK_H) $(QTEXT_H) $(DLB_H)
1865 $(O)rect.o: $(PCHO) $(SRC)\rect.c $(HACK_H)
1866 $(O)region.o: $(PCHO) $(SRC)\region.c $(HACK_H)
1867 $(O)restore.o: $(PCHO) $(SRC)\restore.c $(HACK_H) $(LEV_H) $(TERMCAP_H) \
1869 $(O)rip.o: $(PCHO) $(SRC)\rip.c $(HACK_H)
1870 $(O)role.o: $(PCHO) $(SRC)\role.c $(HACK_H)
1871 $(O)rumors.o: $(PCHO) $(SRC)\rumors.c $(HACK_H) $(DLB_H)
1872 $(O)save.o: $(PCHO) $(SRC)\save.c $(HACK_H) $(LEV_H) $(QUEST_H)
1873 $(O)sit.o: $(PCHO) $(SRC)\sit.c $(HACK_H) $(ARTIFACT_H)
1874 $(O)steed.o: $(PCHO) $(SRC)\steed.c $(HACK_H)
1875 $(O)sys.o: $(PCHO) $(SRC)\sys.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)
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)
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)
1924 $(O)mcastu.0: $(PCH0) $(SRC)\mcastu.c $(HACK_H)
1925 $(O)mhitm.0: $(PCH0) $(SRC)\mhitm.c $(HACK_H) $(ARTIFACT_H)
1926 $(O)mhitu.0: $(PCH0) $(SRC)\mhitu.c $(HACK_H) $(ARTIFACT_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)
1930 $(O)mondata.0: $(PCH0) $(SRC)\mondata.c $(HACK_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)
1936 $(O)rnd.0: $(PCH0) $(SRC)\rnd.c $(HACK_H)
1937 $(O)shk.0: $(PCH0) $(SRC)\shk.c $(HACK_H)
1938 $(O)shknam.0: $(PCH0) $(SRC)\shknam.c $(HACK_H)
1939 $(O)sounds.0: $(PCH0) $(SRC)\sounds.c $(HACK_H)
1940 $(O)steal.0: $(PCH0) $(SRC)\steal.c $(HACK_H)
1941 $(O)timeout.0: $(PCH0) $(SRC)\timeout.c $(HACK_H) $(LEV_H)
1942 $(O)track.0: $(PCH0) $(SRC)\track.c $(HACK_H)
1943 $(O)trap.0: $(PCH0) $(SRC)\trap.c $(HACK_H)
1944 $(O)vault.0: $(PCH0) $(SRC)\vault.c $(HACK_H)
1945 $(O)weapon.0: $(PCH0) $(SRC)\weapon.c $(HACK_H)
1946 $(O)were.0: $(PCH0) $(SRC)\were.c $(HACK_H)
1947 $(O)wizard.0: $(PCH0) $(SRC)\wizard.c $(HACK_H) $(QTEXT_H)
1948 $(O)zap.0: $(PCH0) $(SRC)\zap.c $(HACK_H)
1954 $(O)allmain.1: $(PCH1) $(SRC)\allmain.c $(HACK_H)
1955 $(O)apply.1: $(PCH1) $(SRC)\apply.c $(HACK_H)
1956 $(O)artifact.1: $(PCH1) $(SRC)\artifact.c $(HACK_H) $(ARTIFACT_H) $(ARTILIST_H)
1957 $(O)attrib.1: $(PCH1) $(SRC)\attrib.c $(HACK_H)
1958 $(O)botl.1: $(PCH1) $(SRC)\botl.c $(HACK_H)
1959 $(O)cmd.1: $(PCH1) $(SRC)\cmd.c $(HACK_H) $(FUNC_TAB_H)
1960 $(O)dbridge.1: $(PCH1) $(SRC)\dbridge.c $(HACK_H)
1961 $(O)do.1: $(PCH1) $(SRC)\do.c $(HACK_H) $(LEV_H)
1962 $(O)do_wear.1: $(PCH1) $(SRC)\do_wear.c $(HACK_H)
1963 $(O)dog.1: $(PCH1) $(SRC)\dog.c $(HACK_H)
1964 $(O)dungeon.1: $(PCH1) $(SRC)\dungeon.c $(HACK_H) $(ALIGN_H) $(DGN_FILE_H) $(DLB_H)
1965 $(O)eat.1: $(PCH1) $(SRC)\eat.c $(HACK_H)
1966 $(O)engrave.1: $(PCH1) $(SRC)\engrave.c $(HACK_H) $(LEV_H)
1967 $(O)explode.1: $(PCH1) $(SRC)\explode.c $(HACK_H)
1968 $(O)hack.1: $(PCH1) $(SRC)\hack.c $(HACK_H)
1969 $(O)hacklib.1: $(PCH1) $(SRC)\hacklib.c $(HACK_H)
1970 $(O)invent.1: $(PCH1) $(SRC)\invent.c $(HACK_H) $(ARTIFACT_H)
1971 $(O)makemon.1: $(PCH1) $(SRC)\makemon.c $(HACK_H)
1972 $(O)mhitu.1: $(PCH1) $(SRC)\mhitu.c $(HACK_H) $(ARTIFACT_H)
1973 $(O)mkobj.1: $(PCH1) $(SRC)\mkobj.c $(HACK_H) $(ARTIFACT_H) $(PROP_H)
1974 $(O)mon.1: $(PCH1) $(SRC)\mon.c $(HACK_H) $(MFNDPOS_H)
1975 $(O)mondata.1: $(PCH1) $(SRC)\mondata.c $(HACK_H)
1976 $(O)monmove.1: $(PCH1) $(SRC)\monmove.c $(HACK_H) $(MFNDPOS_H) $(ARTIFACT_H)
1977 $(O)mthrowu.1: $(PCH1) $(SRC)\mthrowu.c $(HACK_H)
1978 $(O)objnam.1: $(PCH1) $(SRC)\objnam.c $(HACK_H)
1979 $(O)polyself.1: $(PCH1) $(SRC)\polyself.c $(HACK_H)
1980 $(O)rnd.1: $(PCH1) $(SRC)\rnd.c $(HACK_H)
1981 $(O)shk.1: $(PCH1) $(SRC)\shk.c $(HACK_H)
1982 $(O)steal.1: $(PCH1) $(SRC)\steal.c $(HACK_H)
1983 $(O)timeout.1: $(PCH1) $(SRC)\timeout.c $(HACK_H) $(LEV_H)
1984 $(O)track.1: $(PCH1) $(SRC)\track.c $(HACK_H)
1985 $(O)trap.1: $(PCH1) $(SRC)\trap.c $(HACK_H)
1986 $(O)weapon.1: $(PCH1) $(SRC)\weapon.c $(HACK_H)
1987 $(O)zap.1: $(PCH1) $(SRC)\zap.c $(HACK_H)
1993 $(O)attrib.2: $(PCH2) $(SRC)\attrib.c $(HACK_H)
1994 $(O)do.2: $(PCH2) $(SRC)\do.c $(HACK_H) $(LEV_H)
1995 $(O)do_name.2: $(PCH2) $(SRC)\do_name.c $(HACK_H)
1996 $(O)do_wear.2: $(PCH2) $(SRC)\do_wear.c $(HACK_H)
1997 $(O)dog.2: $(PCH2) $(SRC)\dog.c $(HACK_H)
1998 $(O)engrave.2: $(PCH2) $(SRC)\engrave.c $(HACK_H) $(LEV_H)
1999 $(O)hack.2: $(PCH2) $(SRC)\hack.c $(HACK_H)
2000 $(O)hacklib.2: $(PCH2) $(SRC)\hacklib.c $(HACK_H)
2001 $(O)invent.2: $(PCH2) $(SRC)\invent.c $(HACK_H) $(ARTIFACT_H)
2002 $(O)makemon.2: $(PCH2) $(SRC)\makemon.c $(HACK_H)
2003 $(O)mon.2: $(PCH2) $(SRC)\mon.c $(HACK_H) $(MFNDPOS_H)
2004 $(O)mondata.2: $(PCH2) $(SRC)\mondata.c $(HACK_H)
2005 $(O)monmove.2: $(PCH2) $(SRC)\monmove.c $(HACK_H) $(MFNDPOS_H) $(ARTIFACT_H)
2006 $(O)shk.2: $(PCH2) $(SRC)\shk.c $(HACK_H)
2007 $(O)trap.2: $(PCH2) $(SRC)\trap.c $(HACK_H)
2008 $(O)zap.2: $(PCH2) $(SRC)\zap.c $(HACK_H)
2014 $(O)do.3: $(PCH3) $(SRC)\do.c $(HACK_H) $(LEV_H)
2015 $(O)hack.3: $(PCH3) $(SRC)\hack.c $(HACK_H)
2016 $(O)invent.3: $(PCH3) $(SRC)\invent.c $(HACK_H) $(ARTIFACT_H)
2017 $(O)light.3: $(PCH3) $(SRC)\light.c $(HACK_H)
2018 $(O)shk.3: $(PCH3) $(SRC)\shk.c $(HACK_H)
2019 $(O)trap.3: $(PCH3) $(SRC)\trap.c $(HACK_H)
2020 $(O)zap.3: $(PCH3) $(SRC)\zap.c $(HACK_H)
2026 $(O)allmain.B: $(PCHB) $(SRC)\allmain.c $(HACK_H)
2027 $(O)apply.B: $(PCHB) $(SRC)\apply.c $(HACK_H)
2028 $(O)artifact.B: $(PCHB) $(SRC)\artifact.c $(HACK_H) $(ARTIFACT_H) $(ARTILIST_H)
2029 $(O)attrib.B: $(PCHB) $(SRC)\attrib.c $(HACK_H)
2030 $(O)botl.B: $(PCHB) $(SRC)\botl.c $(HACK_H)
2031 $(O)cmd.B: $(PCHB) $(SRC)\cmd.c $(HACK_H) $(FUNC_TAB_H)
2032 $(O)dbridge.B: $(PCHB) $(SRC)\dbridge.c $(HACK_H)
2033 $(O)do.B: $(PCHB) $(SRC)\do.c $(HACK_H) $(LEV_H)
2034 $(O)do_name.B: $(PCHB) $(SRC)\do_name.c $(HACK_H)
2035 $(O)do_wear.B: $(PCHB) $(SRC)\do_wear.c $(HACK_H)
2036 $(O)dog.B: $(PCHB) $(SRC)\dog.c $(HACK_H)
2037 $(O)dogmove.B: $(PCHB) $(SRC)\dogmove.c $(HACK_H) $(MFNDPOS_H)
2038 $(O)eat.B: $(PCHB) $(SRC)\eat.c $(HACK_H)
2039 $(O)engrave.B: $(PCHB) $(SRC)\engrave.c $(HACK_H) $(LEV_H)
2040 $(O)hack.B: $(PCHB) $(SRC)\hack.c $(HACK_H)
2041 $(O)hacklib.B: $(PCHB) $(SRC)\hacklib.c $(HACK_H)
2042 $(O)invent.B: $(PCHB) $(SRC)\invent.c $(HACK_H) $(ARTIFACT_H)
2043 $(O)lock.B: $(PCHB) $(SRC)\lock.c $(HACK_H)
2044 $(O)mail.B: $(PCHB) $(SRC)\mail.c $(HACK_H) $(MAIL_H) $(DATE_H)
2045 $(O)makemon.B: $(PCHB) $(SRC)\makemon.c $(HACK_H)
2046 $(O)mcastu.B: $(PCHB) $(SRC)\mcastu.c $(HACK_H)
2047 $(O)mhitm.B: $(PCHB) $(SRC)\mhitm.c $(HACK_H) $(ARTIFACT_H)
2048 $(O)mhitu.B: $(PCHB) $(SRC)\mhitu.c $(HACK_H) $(ARTIFACT_H)
2049 $(O)mkobj.B: $(PCHB) $(SRC)\mkobj.c $(HACK_H) $(ARTIFACT_H) $(PROP_H)
2050 $(O)mkroom.B: $(PCHB) $(SRC)\mkroom.c $(HACK_H)
2051 $(O)mon.B: $(PCHB) $(SRC)\mon.c $(HACK_H) $(MFNDPOS_H)
2052 $(O)mondata.B: $(PCHB) $(SRC)\mondata.c $(HACK_H)
2053 $(O)monmove.B: $(PCHB) $(SRC)\monmove.c $(HACK_H) $(MFNDPOS_H) $(ARTIFACT_H)
2054 $(O)mthrowu.B: $(PCHB) $(SRC)\mthrowu.c $(HACK_H)
2055 $(O)objnam.B: $(PCHB) $(SRC)\objnam.c $(HACK_H)
2056 $(O)pline.B: $(SRC)\pline.c $(HACK_H)
2057 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG)
2058 @echo $(BCOPTS1) >> $(VROOMMCFG)
2059 @echo $(BCOPTS2) >> $(VROOMMCFG)
2060 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\pline.c
2061 $(O)polyself.B: $(PCHB) $(SRC)\polyself.c $(HACK_H)
2062 $(O)potion.B: $(PCHB) $(SRC)\potion.c $(HACK_H)
2063 $(O)priest.B: $(PCHB) $(SRC)\priest.c $(HACK_H) $(MFNDPOS_H)
2064 $(O)read.B: $(PCHB) $(SRC)\read.c $(HACK_H)
2065 $(O)rnd.B: $(PCHB) $(SRC)\rnd.c $(HACK_H)
2066 $(O)shk.B: $(PCHB) $(SRC)\shk.c $(HACK_H)
2067 $(O)shknam.B: $(PCHB) $(SRC)\shknam.c $(HACK_H)
2068 $(O)sounds.B: $(PCHB) $(SRC)\sounds.c $(HACK_H)
2069 $(O)steal.B: $(PCHB) $(SRC)\steal.c $(HACK_H)
2070 $(O)timeout.B: $(PCHB) $(SRC)\timeout.c $(HACK_H) $(LEV_H)
2071 $(O)track.B: $(PCHB) $(SRC)\track.c $(HACK_H)
2072 $(O)trap.B: $(PCHB) $(SRC)\trap.c $(HACK_H)
2073 $(O)vault.B: $(PCHB) $(SRC)\vault.c $(HACK_H)
2074 $(O)weapon.B: $(PCHB) $(SRC)\weapon.c $(HACK_H)
2075 $(O)were.B: $(PCHB) $(SRC)\were.c $(HACK_H)
2076 $(O)wizard.B: $(PCHB) $(SRC)\wizard.c $(HACK_H) $(QTEXT_H)
2077 $(O)zap.B: $(PCHB) $(SRC)\zap.c $(HACK_H)