NHDT->ANH, nethack->anethack, nhdat->anhdat
[aNetHack.git] / sys / msdos / Makefile.BC
blob7d45317faa678bca864e03a90eafa1b7872e252c
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.
27 GAME    = aNetHack
28 GAMEDIR = ..\binary
32 # Directories
35 DAT     = ..\dat
36 DOC     = ..\doc
37 INCL    = ..\include
38 SRC     = ..\src
39 OBJ     = o
40 MSYS    = ..\sys\msdos
41 SYS     = ..\sys\share
42 UTIL    = ..\util
43 WTTY    = ..\win\tty
44 WSHR    = ..\win\share
48 # Compiler File Info.
49 # ($(MAKE) macro is often predefined, so we use $(MAKEBIN) instead.)
52 CC       = bcc          # Compiler
53 LINK     = tlink        # Linker
54 ASM      = tasm         # Assembler (not currently needed for BC)
55 MAKEBIN  = make
56 UUDECODE = uudecode     # Unix style uudecoder
58 #BCTOP   = c:\borlandc  # main Borland C++ directory
59 BCTOP    = c:\bc31
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
66 # the lower two.
68 # On Borland C++, the newest versions of flex and bison provide
69 # problems when run from MAKE.
72 DO_YACC = YACC_MSG
73 DO_LEX  = LEX_MSG
74 #DO_YACC  = YACC_ACT
75 #DO_LEX   = LEX_ACT
78 # - Specify your yacc and lex programs (or work-alikes for each) here.
81 YACC    = bison -y
82 #YACC   = yacc
83 #YACC   = byacc
85 LEX     = flex
86 #LEX    = lex
89 # - Specify your flex skeleton file (if needed).
91 FLEXSKEL =
92 #FLEXSKEL = -Sc:\tools16\flex.ske
95 # - Your yacc (or work-alike) output files
97 YTABC   = y_tab.c
98 YTABH   = y_tab.h
99 #YTABC  = ytab.c
100 #YTABH  = ytab.h
103 # - Your lex (or work-alike) output files
105 LEXYYC  = lexyy.c
106 #LEXYYC = lex.yy.c
109 # Optional high-quality BSD random number generation routines
110 # (see pcconf.h). Set to nothing if not used.
113 RANDOM  = $(OBJ)\random.o
114 #RANDOM =
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.
121 TERMLIB =
122 #TERMLIB = $(SYS)\termcap.lib
125 # MEMORY USAGE AND OVERLAYING
127 # Overlay Schema 1
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
134 #      30K  Overlay buffer
135 #     607K  Total memory requirement
137 # Overlay Schema 2
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
146 #      30K  Overlay buffer
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.
153 SCHEMA  = 2
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
162 #       VGA.
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
166 #       "video".
169 TILESUPPORT = Y
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
182 #   it.
184 #CDFLAGS  =
185 LDFLAGSN  =
186 #LDFLAGSU =
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.
197 CW = -w-rch
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).
208 PRECOMPHEAD = N
211 #   C Compiler Flags
214 CFLAGS = -c
216 #  Uncomment the line below if you want to store all the level files,
217 #  help files, etc. in a single library file (recommended).
219 USE_DLB = Y
222 ########################################################################
223 ########################################################################
225 #  Nothing below here should have to be changed.
227 ########################################################################
228 ########################################################################
230 #  Warning:
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
242 default: $(GAME)
245 ########################################################################
246 # Tile preparation
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)
266 ! ENDIF
268 ! IF ("$(USE_DLB)"=="Y")
269 DLB = anhdat
270 ! ELSE
271 DLB =
272 ! ENDIF
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
296 # Model
299 MODEL    = h
302 # - Optional C library specifier for those with non-standard
303 #   libraries or a multiple-target library setup.
306 CLIB    =
309 # Borland C++ libraries
312 BCOVL   = $(BCLIB)\OVERLAY
313 BCMDL   = $(BCLIB)\C$(MODEL)
316 # Compiler Options
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
330 # Linker Options
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
339 # Stack Sizes
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 ########################################################################
351 # DLB preparation
354 ! IF ("$(USE_DLB)"=="Y")
355 DLBFLG = $(CDEFINE)DLB
356 ! ELSE
357 DLBFLG =
358 ! ENDIF
361 ########################################################################
362 # tile preparation
365 ! IF ("$(TILESUPPORT)"=="Y")
366 TILFLG = $(CDEFINE)USE_TILES
367 ! ELSE
368 TILFLG =
369 ! ENDIF
371 #############################################################################
373 # Overlay switches
376 COVL0   = $(CDEFINE)OVL0
377 COVL1   = $(CDEFINE)OVL1
378 COVL2   = $(CDEFINE)OVL2
379 COVL3   = $(CDEFINE)OVL3
380 COVLB   = $(CDEFINE)OVLB
383 # Flags
386 FLAGOPT = $(DLBFLG) $(TILFLG)
389 # Precompiled Header Section
392 #common options (placed in $(BCCFG))
393 CFLGTOT = $(CDFLAGS) $(CFLAGS) $(FLAGOPT) $(CW)
394 #util builds
395 CFLAGSU = $(CUSTACK) +$(VROOMMCFG)
396 #normal build, no PCH
397 CFLAGSN = $(CNSTACK) +$(VROOMMCFG)
398 #no optimizations
399 CFLAGNO = $(CNOOPT) $(CFLAGSN)
401 ! IF ("$(PRECOMPHEAD)"!="Y")
403 CFLAGCO = $(COVLO)
404 CFLAGUO = $(COVLO)
405 CFLAGC0 = $(COVL0)
406 CFLAGU0 = $(COVL0)
407 CFLAGC1 = $(COVL1)
408 CFLAGU1 = $(COVL1)
409 CFLAGC2 = $(COVL2)
410 CFLAGU2 = $(COVL2)
411 CFLAGC3 = $(COVL3)
412 CFLAGU3 = $(COVL3)
413 CFLAGCB = $(COVLB)
414 CFLAGUB = $(COVLB)
415 PCHO =
416 PCH0 =
417 PCH1 =
418 PCH2 =
419 PCH3 =
420 PCHB =
422 precomp.msg:
423         @echo Not using precompiled headers...
425 ! ELSE
427 # .o files
428 CFLAGUO = $(CPCHUSE) $(CPCHNAM)PHO$(CPCHEXT) $(COVLO)
429 CFLAGCO = $(CPCHGEN) $(CPCHNAM)PHO$(CPCHEXT) $(COVLO)
430 PCHO = PHO$(CPCHEXT)
431 # .0 files
432 CFLAGU0 = $(CPCHUSE) $(CPCHNAM)PH0$(CPCHEXT) $(COVL0)
433 CFLAGC0 = $(CPCHGEN) $(CPCHNAM)PH0$(CPCHEXT) $(COVL0)
434 PCH0 = PH0$(CPCHEXT)
435 # .1 files
436 CFLAGU1 = $(CPCHUSE) $(CPCHNAM)PH1$(CPCHEXT) $(COVL1)
437 CFLAGC1 = $(CPCHGEN) $(CPCHNAM)PH1$(CPCHEXT) $(COVL1)
438 PCH1 = PH1$(CPCHEXT)
439 # .2 files
440 CFLAGU2 = $(CPCHUSE) $(CPCHNAM)PH2$(CPCHEXT) $(COVL2)
441 CFLAGC2 = $(CPCHGEN) $(CPCHNAM)PH2$(CPCHEXT) $(COVL2)
442 PCH2 = PH2$(CPCHEXT)
443 # .3 files
444 CFLAGU3 = $(CPCHUSE) $(CPCHNAM)PH3$(CPCHEXT) $(COVL3)
445 CFLAGC3 = $(CPCHGEN) $(CPCHNAM)PH3$(CPCHEXT) $(COVL3)
446 PCH3 = PH3$(CPCHEXT)
447 # .B files
448 CFLAGUB = $(CPCHUSE) $(CPCHNAM)PHB$(CPCHEXT) $(COVLB)
449 CFLAGCB = $(CPCHGEN) $(CPCHNAM)PHB$(CPCHEXT) $(COVLB)
450 PCHB = PHB$(CPCHEXT)
452 precomp.msg:
453         @echo Using precompiled headers...
455 ! ENDIF
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)
489 # Make Roolz dude.
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
502 .c{$(OBJ)}.o:
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:
625         @copy $< $@
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
641 {$(WSHR)}.c.o:
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:
654         @copy $< $@
656 {$(WSHR)}.txt{$(DAT)}.txt:
657         @copy $< $@
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)$@ $<
700 # ANETHACK OBJECTS
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
724 # Utility Objects.
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    \
814         $(O)trap.2      $(O)zap.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)
845 # Header objects
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
854 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 \
858               $(INCL)\mondata.h
859 YOU_H       = $(INCL)\attrib.h $(INCL)\monst.h $(INCL)\mextra.h $(YOUPROP_H) \
860               $(INCL)\align.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) \
865               $(INCL)\config.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 #######################################################################
920 #  TARGETS
923 #  The main target.
926 $(GAME): obj.tag envchk $(U)utility.tag $(GAMEFILE)
927         @echo $(GAME) is up to date.
930 #  Everything
933 all :   install
935 install: $(GAME) install.tag
936         @echo Done.
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)
944 ! ELSE
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
950 ! ENDIF
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)
963         cd $(DAT)
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
988         cd $(SRC)
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.
1002 #  Inline files :
1003 #                       Specifying the "<<" means to start an inline file.
1004 #                       Another "<<" at the start of a line closes the
1005 #                       inline file.
1007 #  DO NOT INDENT THE << below!
1010 $(GAMEFILE) :  $(ALLOBJ)
1011         @echo Linking....
1012         $(LINK) $(LFLAGSN) @<<$(GAME).lnk
1013                 $(ALLOBJ)
1014                 $(GAMEFILE)
1015                 $(GAME)
1016                 $(TERMLIB) $(MOVETR) $(CLIB) $(BCOVL) $(BCMDL)
1018         @if exist $(GAMEDIR)\$(GAME).bak del $(GAMEDIR)\$(GAME).bak
1021 # Makedefs Stuff
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) \
1029                  $(U)makedefs.c
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
1040         $(U)makedefs -v
1041         @echo A new $@ has been created.
1043 $(INCL)\onames.h : $(U)makedefs.exe
1044         $(U)makedefs -o
1046 $(INCL)\pm.h : $(U)makedefs.exe
1047         $(U)makedefs -p
1049 #$(INCL)\trap.h : $(U)makedefs.exe
1050 #       $(U)makedefs -t
1052 $(SRC)\monstr.c: $(U)makedefs.exe
1053         $(U)makedefs -m
1055 $(INCL)\vis_tab.h: $(U)makedefs.exe
1056         $(U)makedefs -z
1058 $(SRC)\vis_tab.c: $(U)makedefs.exe
1059         $(U)makedefs -z
1062 # Level Compiler Stuff
1065 $(U)lev_comp.exe:  $(SPLEVOBJS)
1066         @echo Linking $@...
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 
1071                 $@
1072                 $(@B)
1073                 $(BCMDL);
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) \
1082         $(U)lev_$(LEX).c
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
1097            @del $(YTABC)
1098            @del $(YTABH)
1099 !       ELSE
1100            @echo.
1101            @echo $(U)lev_comp.y has changed.
1102            @echo To update $(U)lev_yacc.c and $(INCL)\lev_comp.h run $(YACC).
1103            @echo.
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.
1108            @echo.
1109            copy $(SYS)\lev_yacc.c $@ >nul
1110            touch $@
1111            copy $(SYS)\lev_comp.h $(INCL)\lev_comp.h >nul
1112            touch $(INCL)\lev_comp.h
1113 !       ENDIF
1115 $(U)lev_$(LEX).c:  $(U)lev_comp.l
1116 !       IF "$(DO_LEX)"=="LEX_ACT"
1117            $(LEX) $(FLEXSKEL) $(U)lev_comp.l
1118            copy $(LEXYYC) $@
1119            @del $(LEXYYC)
1120 !       ELSE
1121            @echo.
1122            @echo $(U)lev_comp.l has changed. To update $@ run $(LEX).
1123            @echo.
1124            @echo For now, we will copy a prebuilt lev_lex.c
1125            @echo from $(SYS) to $@ and use it.
1126            @echo.
1127            copy $(SYS)\lev_lex.c $@ >nul
1128            touch $@
1129 !       ENDIF
1132 # Dungeon Stuff
1135 $(U)dgn_comp.exe: $(DGNCOMPOBJS)
1136     @echo Linking $@...
1137         $(LINK) $(LFLAGSU) @&&!
1138                 $(O)panic.o $(O)alloc.o $(O)dgn_main.o $(O)dgn_$(LEX).o +
1139                 $(O)dgn_yacc.o 
1140                 $@
1141                 $(@B)
1142                 $(BCMDL);
1145 $(O)dgn_yacc.o: $(HACK_H)   $(DGN_FILE_H) $(INCL)\dgn_comp.h \
1146         $(U)dgn_yacc.c
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 \
1152         $(U)dgn_$(LEX).c
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
1167            @del $(YTABC)
1168            @del $(YTABH)
1169 !       ELSE
1170            @echo.
1171            @echo $(U)dgn_comp.y has changed. To update $@ and
1172            @echo $(INCL)\dgn_comp.h run $(YACC).
1173            @echo.
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.
1178            @echo.
1179            copy $(SYS)\dgn_yacc.c $@ >nul
1180            touch $@
1181            copy $(SYS)\dgn_comp.h $(INCL)\dgn_comp.h >nul
1182            touch $(INCL)\dgn_comp.h
1183 !       ENDIF
1185 $(U)dgn_$(LEX).c:  $(U)dgn_comp.l
1186 !       IF "$(DO_LEX)"=="LEX_ACT"
1187            $(LEX) $(FLEXSKEL)  $(U)dgn_comp.l
1188            copy $(LEXYYC) $@
1189            @del $(LEXYYC)
1190 !       ELSE
1191            @echo.
1192            @echo $(U)dgn_comp.l has changed. To update $@ run $(LEX).
1193            @echo.
1194            @echo For now, we will copy a prebuilt dgn_lex.c
1195            @echo from $(SYS) to $@ and use it.
1196            @echo.
1197            copy $(SYS)\dgn_lex.c $@ >nul
1198            touch $@
1199 !       ENDIF
1202 obj.tag:
1203         @if not exist $(O)*.* mkdir $(OBJ)
1204         @echo directory $(OBJ) created
1205         @echo directory $(OBJ) created >$@
1207 envchk: precomp.msg
1208 !       IF "$(TILEGAME)"==""
1209            @echo.
1210            @echo NOTE: This build will NOT include tile support.
1211            @echo.
1212 !       ELSE
1213            @echo.
1214            @echo This build includes tile support.
1215            @echo.
1216 !       ENDIF
1219 # SECONDARY TARGETS
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 $@
1239 #  Recover Utility
1242 $(U)recover.exe: $(RECOVOBJS)
1243         @$(LINK) $(LFLAGSU) $(RECOVOBJS),$@,, $(CLIB) $(BCMDL);
1246 #  Tile Mapping
1249 $(SRC)\tile.c: $(U)tilemap.exe
1250         @echo A new $@ is being created.
1251         @$(U)tilemap
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
1263 # Tile Utilities
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)
1304         @$(U)tile2bin
1306 aNetHackO.tib: thintile.tag $(TILEFILES2) $(U)til2bin2.exe
1307         @echo Creating overview binary tile files (this may take some time)
1308         @$(U)til2bin2
1310 thintile.tag: $(U)thintile.exe $(TILEFILES)
1311         $(U)thintile
1312         @echo thintiles created >thintile.tag
1314 $(U)tile2bin.exe: $(O)tile2bin.o $(TEXT_IO)
1315     @echo Linking $@...
1316         $(LINK) $(LFLAGSU) @&&!
1317                 $(O)tile2bin.o+
1318                 $(O)stubvid.o $(O)objects.o $(O)monst.o $(O)decl.o +
1319                 $(O)drawing.o $(O)tiletxt.o $(O)tiletext.o 
1320                 $@
1321                 $(@B)
1322                 $(BCMDL);
1325 $(U)til2bin2.exe: $(O)til2bin2.o $(TEXT_IO2)
1326     @echo Linking $@...
1327         $(LINK) $(LFLAGSU) @&&!
1328                 $(O)til2bin2.o+
1329                 $(O)stubvid.o $(O)objects.o $(O)monst.o $(O)decl.o +
1330                 $(O)drawing.o $(O)tiletxt2.o $(O)tiletex2.o 
1331                 $@
1332                 $(@B)
1333                 $(BCMDL);
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
1358 # DLB stuff
1361 anhdat: $(U)dlb_main.exe
1362         @copy $(MSYS)\msdoshlp.txt $(DAT)
1363         @cd $(DAT)
1364         @echo data >dlb.lst
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
1370         @echo hh >>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
1380         @cd $(SRC)
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
1391 # Housekeeping
1394 spotless: clean
1395         rmdir $(OBJ)
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
1418 clean:
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
1436 pch.c:  $(HACK_H)
1437         @echo ^#include "hack.h" > $@
1438         @echo main(int argc, char *argv[]) >> $@
1439         @echo { >> $@
1440         @echo } >> $@
1441         @echo. >> $@
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
1488 # extended memory.
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
1499 # dat dependencies
1502 $(DAT)\data: $(U)utility.tag    $(DATABASE)
1503         $(U)makedefs -d
1505 $(DAT)\rumors: $(U)utility.tag    $(DAT)\rumors.tru   $(DAT)\rumors.fal
1506         $(U)makedefs -r
1508 $(DAT)\quest.dat: $(U)utility.tag  $(DAT)\quest.txt
1509         $(U)makedefs -q
1511 $(DAT)\oracles: $(U)utility.tag    $(DAT)\oracles.txt
1512         $(U)makedefs -h
1514 $(DAT)\dungeon: $(U)utility.tag  $(DAT)\dungeon.def
1515         $(U)makedefs -e
1516         cd $(DAT)
1517         $(U)dgn_comp dungeon.pdf
1518         cd $(SRC)
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
1535 #  from win\share
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
1580 #  from win\tty
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
1638 # from sys\share
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
1684 # from sys\msdos
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) \
1729                 $(TILE_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) \
1736                 $(TILE_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) \
1743                 $(TILE_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) \
1762                 $(TILE_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) \
1769                 $(TILE_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) \
1776                 $(TILE_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) \
1783                 $(TILE_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
1790 # from src
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) \
1868                  $(QUEST_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)
1897 # Overlays
1900 # OVL0
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) \
1915                 $(DLB_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)
1951 # OVL1
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)
1990 # OVL2
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)
2011 # OVL3
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)
2023 # OVLB
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)
2079 # end of file