1# SCCS Id: @(#)Makefile.BC 3.3 1999/11/06 2# Copyright (c) Yitzhak Sapir, 1999. 3# NetHack may be freely distributed. See license for details. 4# 5 6# PC NetHack 3.3 Makefile for Borland C++ 3.1 and 4.5. 7# 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. 12# 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. 15# 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) 19 20# 21# Game Installation Variables. 22# NOTE: Make sure GAMEDIR exists before nmake is started. 23# 24 25GAME = NetHack 26GAMEDIR = c:\games\nethack 27 28# 29# 30# Directories 31# 32 33DAT = ..\dat 34DOC = ..\doc 35INCL = ..\include 36SRC = ..\src 37OBJ = o 38MSYS = ..\sys\msdos 39SYS = ..\sys\share 40UTIL = ..\util 41WTTY = ..\win\tty 42WSHR = ..\win\share 43 44 45# 46# Compiler File Info. 47# ($(MAKE) macro is often predefined, so we use $(MAKEBIN) instead.) 48# 49 50CC = bcc # Compiler 51LINK = tlink # Linker 52ASM = tasm # Assembler (not currently needed for BC) 53MAKEBIN = make 54UUDECODE = uudecode # Unix style uudecoder 55 56#BCTOP = c:\borlandc # main Borland C++ directory 57BCTOP = c:\bc31 58 59# 60# Yacc/Lex ... if you got 'em. 61# 62# If you have yacc and lex programs (or work-alike such as bison 63# and flex), comment out the upper two lines below, and uncomment 64# the lower two. 65# 66# On Borland C++, the newest versions of flex and bison provide 67# problems when run from MAKE. 68# 69 70DO_YACC = YACC_MSG 71DO_LEX = LEX_MSG 72#DO_YACC = YACC_ACT 73#DO_LEX = LEX_ACT 74 75# 76# - Specify your yacc and lex programs (or work-alikes for each) here. 77# 78 79YACC = bison -y 80#YACC = yacc 81#YACC = byacc 82 83LEX = flex 84#LEX = lex 85 86# 87# - Specify your flex skeleton file (if needed). 88# 89FLEXSKEL = 90#FLEXSKEL = -Sc:\tools16\flex.ske 91 92# 93# - Your yacc (or work-alike) output files 94# 95YTABC = y_tab.c 96YTABH = y_tab.h 97#YTABC = ytab.c 98#YTABH = ytab.h 99 100# 101# - Your lex (or work-alike) output files 102# 103LEXYYC = lexyy.c 104#LEXYYC = lex.yy.c 105 106# 107# Optional high-quality BSD random number generation routines 108# (see pcconf.h). Set to nothing if not used. 109# 110 111RANDOM = $(OBJ)\random.o 112#RANDOM = 113 114# 115# If TERMLIB is #defined in the source (in include\pcconf.h), 116# comment out the upper line and uncomment the lower. Make sure 117# that TERMLIB contains the full pathname to the termcap library. 118 119TERMLIB = 120#TERMLIB = $(SYS)\termcap.lib 121 122# 123# MEMORY USAGE AND OVERLAYING 124# 125# Overlay Schema 1 126# 127# - Minimal extended memory available, lots of 640K base RAM free 128# Minimize overlay turns. Requires that a minimum of 129# 607K RAM be free as follows: 130# 462K Executable load requirement 131# 115K for malloc() calls 132# 30K Overlay buffer 133# 607K Total memory requirement 134# 135# Overlay Schema 2 136# 137# - Favor small load size, requires extended memory for bearable performance. 138# If you have very little base 640K RAM available, but lots of extended 139# memory for caching overlays, you might try this. (eg. A machine with 140# lots of TSR's or network drivers). Do not try to set SCHEMA = 2 141# without a disk cache and extended memory. 142# 381K Executable load requirement 143# 115K for malloc() calls 144# 30K Overlay buffer 145# 526K Total memory requirement 146# 147# On Borland C++, you have to make a full rebuild of all object modules each 148# time you change schemas. 149# 150 151SCHEMA = 2 152 153# 154# OPTIONAL TILE SUPPORT. 155# 156# This release of NetHack allows you to build a version of NetHack 157# that will draw 16x16 color tiles on the display to represent 158# NetHack maps, objects, monsters, etc. on machines with appropriate 159# display hardware. Currently the only supported video hardware is 160# VGA. 161# 162# Note: You can build NetHack with tile support and then choose 163# whether to use it or not at runtime via the defaults.nh file option 164# "video". 165# 166 167TILESUPPORT = Y 168 169# 170# C COMPILER AND LINKER SETTINGS 171# 172# For debugging ability, comment out the upper three 173# macros and uncomment the lower three. You can also 174# uncomment only either LDFLAGSU or LDFLAGSN if you 175# want to include debug information only in the utilities 176# or only in the game file. 177 178# On Borland C++, you cannot include debug information for 179# all the object modules because the linker cannot handle 180# it. 181 182#CDFLAGS = 183LDFLAGSN = 184#LDFLAGSU = 185 186CDFLAGS = -v -vi # use debug info (compiler) 187#LDFLAGSN = /v # use debug info (linker - game) 188LDFLAGSU = /v # use debug info (linker - utilities) 189 190# 191# - Don't warn about unreachable code because flex generates a whole bunch 192# of unreachable code warnings, which stops the compile process. 193# 194 195CW = -w-rch 196 197# 198# Select whether to use pre-compiled headers or not. 199# Set PRECOMPHEAD to Y to use pre-compiled headers, set it to anything 200# else and pre-compiled headers will not be used. 201# (Pre-compiled headers speed up compiles, but require a bit more 202# disk space during the build. The pre-compiled headers can be deleted 203# afterwards via DEL *.PCH if desired). 204# 205 206PRECOMPHEAD = N 207 208# 209# C Compiler Flags 210# 211 212CFLAGS = -c 213 214# Uncomment the line below if you want to store all the level files, 215# help files, etc. in a single library file (recommended). 216 217USE_DLB = Y 218 219# 220######################################################################## 221######################################################################## 222# 223# Nothing below here should have to be changed. 224# 225######################################################################## 226######################################################################## 227# 228# Warning: 229# 230# Changing anything below here means that you should be *very* 231# familiar with your compiler's workings, *very* knowledgeable 232# about the overlay structure and mechanics of NetHack, and *very* 233# confident in your understanding of Makefiles and Make utilities. 234# 235######################################################################## 236# 237# Default Make Procedure 238# 239 240default: $(GAME) 241 242# 243######################################################################## 244# Tile preparation 245# 246 247! IF ("$(TILESUPPORT)"=="Y") 248 249TILEGAME = $(OBJ)\tile.o $(OBJ)\pctiles.0 $(OBJ)\pctiles.b 250 251# 252# - VGA Tile Support, uncomment these three lines. 253# 254 255TILEVGA = $(OBJ)\vidvga.0 $(OBJ)\vidvga.1 $(OBJ)\vidvga.2 $(OBJ)\vidvga.b 256PLANAR_TIB = NetHack1.tib 257OVERVIEW_TIB = NetHacko.tib 258 259# 260# Leave this line uncommented and unchanged. 261TILEUTIL = $(TILEGAME) $(TILEVGA) $(UTIL)\tile2bin.exe $(UTIL)\til2bin2.exe \ 262 $(PLANAR_TIB) $(OVERVIEW_TIB) 263 264! ENDIF 265 266! IF ("$(USE_DLB)"=="Y") 267DLB = nhdat 268! ELSE 269DLB = 270! ENDIF 271 272# 273############################################################################# 274# 275# General Overlay Schema Settings 276# 277 278OVLINIT =$(OBJ)\ovlinit.o 279 280 281# 282############################################################################# 283# 284# C Compiler and Linker Setup Options 285# (To Maintainer; modify only if absolutely necessary) 286# 287 288BCINCL = $(BCTOP)\include # include directory for main BC headers 289BCLIB = $(BCTOP)\lib # library directory for main BC libraries 290BCCFG = nethack.cfg # name of the nethack configuration file 291VROOMMCFG= vroomm.cfg # name of file with code segment information 292 293# 294# Model 295# 296 297MODEL = h 298 299# 300# - Optional C library specifier for those with non-standard 301# libraries or a multiple-target library setup. 302# 303 304CLIB = 305 306# 307# Borland C++ libraries 308# 309 310BCOVL = $(BCLIB)\OVERLAY 311BCMDL = $(BCLIB)\C$(MODEL) 312 313# 314# Compiler Options 315# 316 317CNOLNK = -c # just generate .OBJ 318CPCHUSE = -Hu # use precompiled headers 319CPCHGEN = -H # generate precompiled headers 320CPCHNAM = -H= # set the name of the precompiled header file 321CPCHEXT = .PCH # precompiled header extension 322CDEFINE = -D # define a macro 323CSTKSZ = -DSTKSIZ= # set stack size 324CCSNAM = -zC # set the code segment name 325COBJNAM = -o # name the .OBJ file 326 327# 328# Linker Options 329# 330 331LWCASE = /c # treat case as significant 332LMAP = /m # create map file 333LINIT = $(BCLIB)\C0$(MODEL) # initialization object file 334LOVL = /oOVLY # overlay all needed segments 335 336# 337# Stack Sizes 338# 339 340STKSUTL = 4096 # Utilities Stack Size 341STKSNRM = 5120 # Normal Stack Size 342 343CUSTACK = $(CSTKSZ)$(STKSUTL) # Utilities Stack Set for Compiler 344CNSTACK = $(CSTKSZ)$(STKSNRM) # Normal Stack Set for Compiler 345 346 347# 348######################################################################## 349# DLB preparation 350# 351 352! IF ("$(USE_DLB)"=="Y") 353DLBFLG = $(CDEFINE)DLB 354! ELSE 355DLBFLG = 356! ENDIF 357 358# 359######################################################################## 360# tile preparation 361# 362 363! IF ("$(TILESUPPORT)"=="Y") 364TILFLG = $(CDEFINE)USE_TILES 365! ELSE 366TILFLG = 367! ENDIF 368 369############################################################################# 370# 371# Overlay switches 372# 373 374COVL0 = $(CDEFINE)OVL0 375COVL1 = $(CDEFINE)OVL1 376COVL2 = $(CDEFINE)OVL2 377COVL3 = $(CDEFINE)OVL3 378COVLB = $(CDEFINE)OVLB 379 380# 381# Flags 382# 383 384FLAGOPT = $(DLBFLG) $(TILFLG) 385 386# 387# Precompiled Header Section 388# 389 390#common options (placed in $(BCCFG)) 391CFLGTOT = $(CDFLAGS) $(CFLAGS) $(FLAGOPT) $(CW) 392#util builds 393CFLAGSU = $(CUSTACK) +$(VROOMMCFG) 394#normal build, no PCH 395CFLAGSN = $(CNSTACK) +$(VROOMMCFG) 396#no optimizations 397CFLAGNO = $(CNOOPT) $(CFLAGSN) 398 399! IF ("$(PRECOMPHEAD)"!="Y") 400 401CFLAGCO = $(COVLO) 402CFLAGUO = $(COVLO) 403CFLAGC0 = $(COVL0) 404CFLAGU0 = $(COVL0) 405CFLAGC1 = $(COVL1) 406CFLAGU1 = $(COVL1) 407CFLAGC2 = $(COVL2) 408CFLAGU2 = $(COVL2) 409CFLAGC3 = $(COVL3) 410CFLAGU3 = $(COVL3) 411CFLAGCB = $(COVLB) 412CFLAGUB = $(COVLB) 413PCHO = 414PCH0 = 415PCH1 = 416PCH2 = 417PCH3 = 418PCHB = 419 420precomp.msg: 421 @echo Not using precompiled headers... 422 423! ELSE 424 425# .o files 426CFLAGUO = $(CPCHUSE) $(CPCHNAM)PHO$(CPCHEXT) $(COVLO) 427CFLAGCO = $(CPCHGEN) $(CPCHNAM)PHO$(CPCHEXT) $(COVLO) 428PCHO = PHO$(CPCHEXT) 429# .0 files 430CFLAGU0 = $(CPCHUSE) $(CPCHNAM)PH0$(CPCHEXT) $(COVL0) 431CFLAGC0 = $(CPCHGEN) $(CPCHNAM)PH0$(CPCHEXT) $(COVL0) 432PCH0 = PH0$(CPCHEXT) 433# .1 files 434CFLAGU1 = $(CPCHUSE) $(CPCHNAM)PH1$(CPCHEXT) $(COVL1) 435CFLAGC1 = $(CPCHGEN) $(CPCHNAM)PH1$(CPCHEXT) $(COVL1) 436PCH1 = PH1$(CPCHEXT) 437# .2 files 438CFLAGU2 = $(CPCHUSE) $(CPCHNAM)PH2$(CPCHEXT) $(COVL2) 439CFLAGC2 = $(CPCHGEN) $(CPCHNAM)PH2$(CPCHEXT) $(COVL2) 440PCH2 = PH2$(CPCHEXT) 441# .3 files 442CFLAGU3 = $(CPCHUSE) $(CPCHNAM)PH3$(CPCHEXT) $(COVL3) 443CFLAGC3 = $(CPCHGEN) $(CPCHNAM)PH3$(CPCHEXT) $(COVL3) 444PCH3 = PH3$(CPCHEXT) 445# .B files 446CFLAGUB = $(CPCHUSE) $(CPCHNAM)PHB$(CPCHEXT) $(COVLB) 447CFLAGCB = $(CPCHGEN) $(CPCHNAM)PHB$(CPCHEXT) $(COVLB) 448PCHB = PHB$(CPCHEXT) 449 450precomp.msg: 451 @echo Using precompiled headers... 452 453! ENDIF 454 455 456FLAGCO = $(CNSTACK) +$(VROOMMCFG) 457FLAGUO = $(CNSTACK) +$(VROOMMCFG) 458FLAGC0 = $(CNSTACK) +$(VROOMMCFG) 459FLAGU0 = $(CNSTACK) +$(VROOMMCFG) 460FLAGC1 = $(CNSTACK) +$(VROOMMCFG) 461FLAGU1 = $(CNSTACK) +$(VROOMMCFG) 462FLAGC2 = $(CNSTACK) +$(VROOMMCFG) 463FLAGU2 = $(CNSTACK) +$(VROOMMCFG) 464FLAGC3 = $(CNSTACK) +$(VROOMMCFG) 465FLAGU3 = $(CNSTACK) +$(VROOMMCFG) 466FLAGCB = $(CNSTACK) +$(VROOMMCFG) 467FLAGUB = $(CNSTACK) +$(VROOMMCFG) 468 469# End of Pre-compiled header section 470#=========================================================================== 471 472# 473# Basic Borland C++ option line 474# 475BCOPTS1 = -Y -O -Z -Oe -Ob -Os -Ff -I$(BCINCL);$(INCL) -m$(MODEL) 476BCOPTS2 = $(CDEFINE)__IO_H $(CFLGTOT) -DSTRNCMPI 477 478# 479# Linker options for building various things. 480# 481 482LFLAGSU = $(LDFLAGSU) $(LUSTACK) $(LINIT) 483LFLAGSN = $(LDFLAGSN) $(LNSTACK) $(LWCASE) $(LMAXSEG) $(INTOVL) $(LMAXALL) \ 484 $(LINFO) $(LINIT) $(LOVL) 485 486# 487# Make Roolz dude. 488# Due to the inadequacy of some makes these must accord with a 489# topological sort of the generated-from relation... output on 490# the left, input on the right. Trust me. 491# 492 493.SUFFIXES: .exe .0 .1 .2 .3 .B .o .til .uu .c .y .l 494 495# 496# Rules for files in src 497# 498 499 500.c{$(OBJ)}.o: 501 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG) 502 @echo $(BCOPTS1) >> $(VROOMMCFG) 503 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG) 504 $(CC) $(FLAGUO) $(COBJNAM)$@ $< 505 506{$(SRC)}.c{$(OBJ)}.o: 507 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG) 508 @echo $(BCOPTS1) >> $(VROOMMCFG) 509 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG) 510 $(CC) $(FLAGUO) $(COBJNAM)$@ $< 511 512{$(SRC)}.c{$(OBJ)}.0: 513 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG) 514 @echo $(BCOPTS1) >> $(VROOMMCFG) 515 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG) 516 $(CC) $(FLAGU0) $(COBJNAM)$@ $< 517 518{$(SRC)}.c{$(OBJ)}.1: 519 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG) 520 @echo $(BCOPTS1) >> $(VROOMMCFG) 521 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG) 522 $(CC) $(FLAGU1) $(COBJNAM)$@ $< 523 524{$(SRC)}.c{$(OBJ)}.2: 525 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG) 526 @echo $(BCOPTS1) >> $(VROOMMCFG) 527 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG) 528 $(CC) $(FLAGU2) $(COBJNAM)$@ $< 529 530{$(SRC)}.c{$(OBJ)}.3: 531 @type schema$(SCHEMA).bc | find "$(@B)_3" > $(VROOMMCFG) 532 @echo $(BCOPTS1) >> $(VROOMMCFG) 533 @echo $(BCOPTS2) $(CFLAGU3) >> $(VROOMMCFG) 534 $(CC) $(FLAGU3) $(COBJNAM)$@ $< 535 536{$(SRC)}.c{$(OBJ)}.B: 537 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG) 538 @echo $(BCOPTS1) >> $(VROOMMCFG) 539 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG) 540 $(CC) $(FLAGUB) $(COBJNAM)$@ $< 541 542# 543# Rules for files in sys\share 544# 545 546{$(SYS)}.c{$(OBJ)}.o: 547 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG) 548 @echo $(BCOPTS1) >> $(VROOMMCFG) 549 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG) 550 $(CC) $(FLAGUO) $(COBJNAM)$@ $< 551 552{$(SYS)}.c{$(OBJ)}.0: 553 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG) 554 @echo $(BCOPTS1) >> $(VROOMMCFG) 555 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG) 556 $(CC) $(FLAGU0) $(COBJNAM)$@ $< 557 558{$(SYS)}.c{$(OBJ)}.1: 559 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG) 560 @echo $(BCOPTS1) >> $(VROOMMCFG) 561 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG) 562 $(CC) $(FLAGU1) $(COBJNAM)$@ $< 563 564{$(SYS)}.c{$(OBJ)}.2: 565 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG) 566 @echo $(BCOPTS1) >> $(VROOMMCFG) 567 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG) 568 $(CC) $(FLAGU2) $(COBJNAM)$@ $< 569 570{$(SYS)}.c{$(OBJ)}.3: 571 @type schema$(SCHEMA).bc | find "$(@B)_3" > $(VROOMMCFG) 572 @echo $(BCOPTS1) >> $(VROOMMCFG) 573 @echo $(BCOPTS2) $(CFLAGU3) >> $(VROOMMCFG) 574 $(CC) $(FLAGU3) $(COBJNAM)$@ $< 575 576{$(SYS)}.c{$(OBJ)}.B: 577 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG) 578 @echo $(BCOPTS1) >> $(VROOMMCFG) 579 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG) 580 $(CC) $(FLAGUB) $(COBJNAM)$@ $< 581 582# 583# Rules for files in sys\msdos 584# 585 586{$(MSYS)}.c{$(OBJ)}.o: 587 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG) 588 @echo $(BCOPTS1) >> $(VROOMMCFG) 589 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG) 590 $(CC) $(FLAGUO) $(COBJNAM)$@ $< 591 592{$(MSYS)}.c{$(OBJ)}.0: 593 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG) 594 @echo $(BCOPTS1) >> $(VROOMMCFG) 595 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG) 596 $(CC) $(FLAGU0) $(COBJNAM)$@ $< 597 598{$(MSYS)}.c{$(OBJ)}.1: 599 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG) 600 @echo $(BCOPTS1) >> $(VROOMMCFG) 601 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG) 602 $(CC) $(FLAGU1) $(COBJNAM)$@ $< 603 604{$(MSYS)}.c{$(OBJ)}.2: 605 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG) 606 @echo $(BCOPTS1) >> $(VROOMMCFG) 607 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG) 608 $(CC) $(FLAGU2) $(COBJNAM)$@ $< 609 610{$(MSYS)}.c{$(OBJ)}.3: 611 @type schema$(SCHEMA).bc | find "$(@B)_3" > $(VROOMMCFG) 612 @echo $(BCOPTS1) >> $(VROOMMCFG) 613 @echo $(BCOPTS2) $(CFLAGU3) >> $(VROOMMCFG) 614 $(CC) $(FLAGU3) $(COBJNAM)$@ $< 615 616{$(MSYS)}.c{$(OBJ)}.B: 617 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG) 618 @echo $(BCOPTS1) >> $(VROOMMCFG) 619 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG) 620 $(CC) $(FLAGUB) $(COBJNAM)$@ $< 621 622{$(MSYS)}.h{$(INCL)}.h: 623 @copy $< $@ 624 625# 626# Rules for files in util 627# 628 629{$(UTIL)}.c{$(OBJ)}.o: 630 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG) 631 @echo $(BCOPTS1) >> $(VROOMMCFG) 632 @echo $(BCOPTS2) >> $(VROOMMCFG) 633 $(CC) $(CFLAGSU) (COBJNAM)$@ $< 634 635# 636# Rules for files in win\share 637# 638 639{$(WSHR)}.c.o: 640 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG) 641 @echo $(BCOPTS1) >> $(VROOMMCFG) 642 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG) 643 @$(CC) $(FLAGUO) $(COBJNAM)$@ $< 644 645{$(WSHR)}.c{$(OBJ)}.o: 646 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG) 647 @echo $(BCOPTS1) >> $(VROOMMCFG) 648 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG) 649 @$(CC) $(FLAGUO) $(COBJNAM)$@ $< 650 651{$(WSHR)}.h{$(INCL)}.h: 652 @copy $< $@ 653 654{$(WSHR)}.txt{$(DAT)}.txt: 655 @copy $< $@ 656 657# 658# Rules for files in win\tty 659# 660 661{$(WTTY)}.c{$(OBJ)}.o: 662 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG) 663 @echo $(BCOPTS1) >> $(VROOMMCFG) 664 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG) 665 $(CC) $(FLAGUO) $(COBJNAM)$@ $< 666 667{$(WTTY)}.c{$(OBJ)}.0: 668 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG) 669 @echo $(BCOPTS1) >> $(VROOMMCFG) 670 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG) 671 $(CC) $(FLAGU0) $(COBJNAM)$@ $< 672 673{$(WTTY)}.c{$(OBJ)}.1: 674 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG) 675 @echo $(BCOPTS1) >> $(VROOMMCFG) 676 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG) 677 $(CC) $(FLAGU1) $(COBJNAM)$@ $< 678 679{$(WTTY)}.c{$(OBJ)}.2: 680 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG) 681 @echo $(BCOPTS1) >> $(VROOMMCFG) 682 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG) 683 $(CC) $(FLAGU2) $(COBJNAM)$@ $< 684 685{$(WTTY)}.c{$(OBJ)}.3: 686 @type schema$(SCHEMA).bc | find "$(@B)_3" > $(VROOMMCFG) 687 @echo $(BCOPTS1) >> $(VROOMMCFG) 688 @echo $(BCOPTS2) $(CFLAGU3) >> $(VROOMMCFG) 689 $(CC) $(FLAGU3) $(COBJNAM)$@ $< 690 691{$(WTTY)}.c{$(OBJ)}.B: 692 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG) 693 @echo $(BCOPTS1) >> $(VROOMMCFG) 694 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG) 695 $(CC) $(FLAGUB) $(COBJNAM)$@ $< 696 697# 698# NETHACK OBJECTS 699# 700# This section creates shorthand macros for many objects 701# referenced later on in the Makefile. 702# 703 704# 705# Shorten up the location for some files 706# 707 708O = $(OBJ)\ # comment so \ isn't last char 709 710U = $(UTIL)\ # comment so \ isn't last char 711 712SPLEVDES = $(DAT)\Arch.des $(DAT)\Barb.des $(DAT)\bigroom.des \ 713 $(DAT)\castle.des $(DAT)\Caveman.des $(DAT)\endgame.des \ 714 $(DAT)\gehennom.des $(DAT)\Healer.des $(DAT)\Knight.des \ 715 $(DAT)\knox.des $(DAT)\Monk.des $(DAT)\medusa.des \ 716 $(DAT)\mines.des $(DAT)\oracle.des $(DAT)\Priest.des \ 717 $(DAT)\Ranger.des $(DAT)\Rogue.des $(DAT)\Samurai.des \ 718 $(DAT)\Tourist.des $(DAT)\tower.des $(DAT)\Valkyrie.des \ 719 $(DAT)\Wizard.des $(DAT)\yendor.des 720 721# 722# Utility Objects. 723# 724 725MAKESRC = $(U)makedefs.c 726 727SPLEVSRC = $(U)lev_yacc.c $(U)lev_$(LEX).c $(U)lev_main.c $(U)panic.c 728 729DGNCOMPSRC = $(U)dgn_yacc.c $(U)dgn_$(LEX).c $(U)dgn_main.c 730 731MAKEOBJS = $(O)makedefs.o $(O)monst.o $(O)objects.o 732 733SPLEVOBJS =$(O)lev_yacc.o $(O)lev_$(LEX).o $(O)lev_main.o \ 734 $(O)alloc.o $(O)decl.o $(O)drawing.o $(O)monst.o \ 735 $(O)objects.o $(O)panic.o $(O)stubvid.o 736 737DGNCOMPOBJS =$(O)dgn_yacc.o $(O)dgn_$(LEX).o $(O)dgn_main.o \ 738 $(O)alloc.o $(O)panic.o 739 740RECOVOBJS = $(O)recover.o 741 742GIFREADERS =$(O)gifread.o $(O)alloc.o $(O)panic.o 743 744TEXT_IO =$(O)tiletext.o $(O)tiletxt.o $(O)drawing.o \ 745 $(O)decl.o $(O)monst.o $(O)objects.o $(O)stubvid.o 746 747PPMWRITERS = $(O)ppmwrite.o $(O)alloc.o $(O)panic.o 748 749GIFREAD2 =$(O)gifread2.o $(O)alloc.o $(O)panic.o 750 751TEXT_IO2 =$(O)tiletex2.o $(O)tiletxt2.o $(O)drawing.o \ 752 $(O)decl.o $(O)monst.o $(O)objects.o $(O)stubvid.o 753 754PPMWRIT2 = $(O)ppmwrit2.o $(O)alloc.o $(O)panic.o 755 756TILEFILES = $(WSHR)\monsters.txt $(WSHR)\objects.txt $(WSHR)\other.txt 757 758TILEFILES2 = $(WSHR)\monthin.txt $(WSHR)\objthin.txt $(WSHR)\oththin.txt 759 760DLBOBJS = $(O)dlb_main.o $(O)dlb.o $(O)alloc.o $(O)panic.o 761 762# 763# Object files for the game itself. 764# 765 766OBJ01 = $(O)alloc.o $(RANDOM) $(O)decl.o $(O)objects.o \ 767 $(O)muse.o $(O)display.o $(O)vision.o \ 768 $(O)rect.o $(O)vis_tab.o $(O)monst.o $(O)wintty.o \ 769 $(O)files.o $(O)sys.o $(O)monstr.o $(O)minion.o \ 770 $(O)worm.o $(O)detect.o $(O)exper.o $(O)mplayer.o \ 771 $(O)uhitm.o $(O)pager.o $(O)windows.o $(O)quest.o \ 772 $(O)questpgr.o $(O)write.o $(O)drawing.o $(O)dokick.o \ 773 $(O)dothrow.o $(O)pickup.o $(O)pray.o $(O)spell.o \ 774 $(O)ball.o $(O)wield.o $(O)worn.o $(O)fountain.o \ 775 $(O)music.o $(O)rumors.o $(O)dlb.o $(O)sit.o \ 776 $(O)bones.o $(O)mklev.o $(O)save.o $(O)restore.o \ 777 $(O)mkmaze.o $(O)mkmap.o $(O)end.o $(O)o_init.o \ 778 $(O)options.o $(O)rip.o $(O)sound.o $(O)teleport.o \ 779 $(O)topten.o $(O)tty.o $(O)u_init.o $(O)extralev.o \ 780 $(O)sp_lev.o $(O)dig.o $(O)pckeys.o $(O)role.o \ 781 $(O)steed.o $(O)region.o 782 783OVL0 = $(O)allmain.0 $(O)apply.0 $(O)artifact.0 $(O)attrib.0 \ 784 $(O)botl.0 $(O)cmd.0 $(O)dbridge.0 $(O)do.0 \ 785 $(O)do_name.0 $(O)do_wear.0 $(O)dogmove.0 $(O)dungeon.0 \ 786 $(O)eat.0 $(O)engrave.0 $(O)hacklib.0 $(O)invent.0 \ 787 $(O)lock.0 $(O)pcmain.0 $(O)mail.0 $(O)makemon.0 \ 788 $(O)mcastu.0 $(O)mhitm.0 $(O)mhitu.0 $(O)mkobj.0 \ 789 $(O)mkroom.0 $(O)mon.0 $(O)mondata.0 $(O)monmove.0 \ 790 $(O)mthrowu.0 $(O)objnam.0 $(O)polyself.0 $(O)priest.0 \ 791 $(O)rnd.0 $(O)shknam.0 $(O)sounds.0 $(O)steal.0 \ 792 $(O)timeout.0 $(O)track.0 $(O)trap.0 $(O)vault.0 \ 793 $(O)weapon.0 $(O)were.0 $(O)wizard.0 $(O)msdos.0 \ 794 $(O)termcap.0 $(O)video.0 $(O)vidtxt.0 $(O)zap.0 \ 795 $(O)explode.0 $(O)shk.0 796 797OVL1 = $(O)allmain.1 $(O)apply.1 $(O)artifact.1 $(O)attrib.1 \ 798 $(O)botl.1 $(O)cmd.1 $(O)dbridge.1 $(O)do.1 \ 799 $(O)do_wear.1 $(O)dog.1 $(O)dungeon.1 $(O)eat.1 \ 800 $(O)engrave.1 $(O)hack.1 $(O)hacklib.1 $(O)invent.1 \ 801 $(O)makemon.1 $(O)mhitu.1 $(O)mkobj.1 $(O)mon.1 \ 802 $(O)mondata.1 $(O)monmove.1 $(O)mthrowu.1 $(O)objnam.1 \ 803 $(O)pcmain.1 $(O)polyself.1 $(O)rnd.1 $(O)shk.1 \ 804 $(O)steal.1 $(O)timeout.1 $(O)track.1 $(O)trap.1 \ 805 $(O)weapon.1 $(O)getline.1 $(O)termcap.1 $(O)topl.1 \ 806 $(O)video.1 $(O)zap.1 $(O)explode.1 807 808OVL2 = $(O)attrib.2 $(O)do.2 $(O)do_name.2 $(O)do_wear.2 \ 809 $(O)dog.2 $(O)engrave.2 $(O)hack.2 $(O)hacklib.2 \ 810 $(O)invent.2 $(O)makemon.2 $(O)mon.2 $(O)mondata.2 \ 811 $(O)monmove.2 $(O)getline.2 $(O)shk.2 $(O)topl.2 \ 812 $(O)trap.2 $(O)zap.2 813 814OVL3 = $(O)do.3 $(O)hack.3 $(O)invent.3 $(O)light.3 \ 815 $(O)shk.3 $(O)trap.3 $(O)zap.3 816 817 818OVLB = $(O)allmain.B $(O)apply.B $(O)artifact.B $(O)attrib.B \ 819 $(O)botl.B $(O)cmd.B $(O)dbridge.B $(O)do.B \ 820 $(O)do_name.B $(O)do_wear.B $(O)dog.B $(O)dogmove.B \ 821 $(O)eat.B $(O)engrave.B $(O)hack.B $(O)hacklib.B \ 822 $(O)invent.B $(O)lock.B $(O)mail.B $(O)makemon.B \ 823 $(O)mcastu.B $(O)mhitm.B $(O)mhitu.B $(O)mkobj.B \ 824 $(O)mkroom.B $(O)mon.B $(O)mondata.B $(O)monmove.B \ 825 $(O)mthrowu.B $(O)objnam.B $(O)pcmain.B $(O)pline.B \ 826 $(O)polyself.B $(O)potion.B $(O)priest.B $(O)read.B \ 827 $(O)rnd.B $(O)shk.B $(O)shknam.B $(O)sounds.B \ 828 $(O)steal.B $(O)timeout.B $(O)track.B $(O)trap.B \ 829 $(O)vault.B $(O)weapon.B $(O)were.B $(O)wizard.B \ 830 $(O)msdos.B $(O)pcunix.B $(O)termcap.B $(O)topl.B \ 831 $(O)video.B $(O)vidtxt.B $(O)zap.B 832 833TILOBJ = $(TILEGAME) $(TILEVGA) 834 835VVOBJ = $(O)version.o 836 837NVOBJ = $(OBJ01) $(OVL0) $(OVL1) $(OVL2) \ 838 $(OVL3) $(OVLB) $(TILOBJ) 839 840ALLOBJ= $(NVOBJ) $(VVOBJ) $(OVLINIT) 841 842# 843# Header objects 844# 845 846# This comment copied from sys/unix/Makefile.src, 847# extern.h is ignored, even though its declared function types may affect the 848# compilation of all the .c files, since extern.h changes every time the 849# type of an external function does, and we would spend all our time recompiling 850# if we did not ignore it. 851#EXTERN_H = $(INCL)\extern.h 852EXTERN_H = 853PCCONF_H = $(INCL)\pcconf.h $(INCL)\micro.h $(INCL)\system.h 854PERMONST_H = $(INCL)\monattk.h $(INCL)\monflag.h $(INCL)\align.h 855YOUPROP_H = $(INCL)\prop.h $(PERMONST_H) $(INCL)\pm.h $(INCL)\youprop.h \ 856 $(INCL)\mondata.h 857YOU_H = $(INCL)\attrib.h $(INCL)\monst.h $(YOUPROP_H) $(INCL)\align.h 858DECL_H = $(INCL)\quest.h $(INCL)\spell.h $(INCL)\color.h \ 859 $(INCL)\obj.h $(YOU_H) $(INCL)\onames.h $(INCL)\pm.h 860 861CONFIG_H = $(INCL)\config1.h $(INCL)\tradstdc.h $(INCL)\coord.h $(PCCONF_H) \ 862 $(INCL)\config.h 863HACK_H = $(CONFIG_H) $(INCL)\dungeon.h $(INCL)\align.h $(INCL)\monsym.h \ 864 $(INCL)\mkroom.h $(INCL)\objclass.h $(DECL_H) \ 865 $(INCL)\timeout.h $(INCL)\trap.h $(INCL)\flag.h $(INCL)\rm.h \ 866 $(INCL)\vision.h $(INCL)\mondata.h $(INCL)\wintype.h \ 867 $(INCL)\engrave.h $(INCL)\rect.h $(EXTERN_H) \ 868 $(INCL)\winprocs.h $(INCL)\trampoli.h $(INCL)\display.h 869TILE_H = $(INCL)\tile.h $(INCL)\pctiles.h 870PCVIDEO_H = $(INCL)\portio.h $(INCL)\pcvideo.h 871ALIGN_H = $(INCL)\align.h 872ARTIFACT_H = $(INCL)\artifact.h 873ARTILIST_H = $(INCL)\artilist.h 874COLOR_H = $(INCL)\color.h 875DATE_H = $(INCL)\date.h 876DGN_FILE_H = $(INCL)\dgn_file.h 877DLB_H = $(INCL)\dlb.h 878EMIN_H = $(INCL)\emin.h 879EPRI_H = $(INCL)\epri.h 880ESHK_H = $(INCL)\eshk.h 881EDOG_H = $(INCL)\edog.h 882FUNC_TAB_H = $(INCL)\func_tab.h 883LEV_H = $(INCL)\lev.h 884LEV_COMP_H = $(INCL)\lev_comp.h 885MAIL_H = $(INCL)\mail.h 886MFNDPOS_H = $(INCL)\mfndpos.h 887MONSYM_H = $(INCL)\monsym.h 888OBJ_H = $(INCL)\obj.h 889OBJCLASS_H = $(INCL)\objclass.h 890OBJECTS_H = $(INCL)\objects.h 891PROP_H = $(INCL)\prop.h 892QTEXT_H = $(INCL)\qtext.h 893QUEST_H = $(INCL)\quest.h 894SP_LEV_H = $(INCL)\sp_lev.h 895TERMCAP_H = $(INCL)\tcap.h 896VAULT_H = $(INCL)\vault.h 897VIS_TAB_H = $(INCL)\vis_tab.h 898WINTTY_H = $(INCL)\wintty.h 899 900# 901# In the unix distribution this file is patchlevel.h, make it 8.3 here 902# to avoid an nmake warning under dos. 903# 904 905PATCHLEVEL_H = $(INCL)\patchlev.h 906 907 908# 909# The name of the game. 910# 911 912GAMEFILE = $(GAMEDIR)\$(GAME).exe 913 914# 915# make data.base an 8.3 filename to prevent an nmake warning 916# 917 918DATABASE = $(DAT)\data.bas 919 920####################################################################### 921# 922# TARGETS 923 924# 925# The main target. 926# 927 928$(GAME): obj.tag envchk $(U)utility.tag $(GAMEFILE) 929 @echo $(GAME) is up to date. 930 931# 932# Everything 933# 934 935all : install 936 937install: $(GAME) install.tag 938 @echo Done. 939 940 941install.tag: $(DAT)\data $(DAT)\rumors $(DAT)\dungeon \ 942 $(DAT)\oracles $(DAT)\quest.dat $(DAT)\sp_lev.tag $(DLB) 943! IF ("$(USE_DLB)"=="Y") 944 copy nhdat $(GAMEDIR) 945 copy $(DAT)\license $(GAMEDIR) 946! ELSE 947 copy $(DAT)\*. $(GAMEDIR) 948 copy $(DAT)\*.dat $(GAMEDIR) 949 copy $(DAT)\*.lev $(GAMEDIR) 950 copy $(MSYS)\msdoshlp.txt $(GAMEDIR) 951 if exist $(GAMEDIR)\makefile del $(GAMEDIR)\makefile 952! ENDIF 953 copy $(SYS)\termcap $(GAMEDIR) 954 if exist $(DOC)\guideb*.txt copy $(DOC)\guideb*.txt $(GAMEDIR) 955 if exist $(DOC)\nethack.txt copy $(DOC)\nethack.txt $(GAMEDIR)\NetHack.txt 956 if exist $(DOC)\recover.txt copy $(DOC)\recover.txt $(GAMEDIR) 957 copy $(SYS)\NetHack.cnf $(GAMEDIR)\defaults.nh 958 copy $(MSYS)\NHAccess.nh $(GAMEDIR) 959 copy $(U)recover.exe $(GAMEDIR) 960 if exist *.tib copy *.tib $(GAMEDIR) 961 echo install done > $@ 962 963$(DAT)\sp_lev.tag: $(U)utility.tag $(SPLEVDES) 964 cd $(DAT) 965 $(U)lev_comp bigroom.des 966 $(U)lev_comp castle.des 967 $(U)lev_comp endgame.des 968 $(U)lev_comp gehennom.des 969 $(U)lev_comp knox.des 970 $(U)lev_comp mines.des 971 $(U)lev_comp medusa.des 972 $(U)lev_comp oracle.des 973 $(U)lev_comp sokoban.des 974 $(U)lev_comp tower.des 975 $(U)lev_comp yendor.des 976 $(U)lev_comp arch.des 977 $(U)lev_comp barb.des 978 $(U)lev_comp caveman.des 979 $(U)lev_comp healer.des 980 $(U)lev_comp knight.des 981 $(U)lev_comp monk.des 982 $(U)lev_comp priest.des 983 $(U)lev_comp ranger.des 984 $(U)lev_comp rogue.des 985 $(U)lev_comp samurai.des 986 $(U)lev_comp tourist.des 987 $(U)lev_comp valkyrie.des 988 $(U)lev_comp wizard.des 989 cd $(SRC) 990 echo sp_levs done > $(DAT)\sp_lev.tag 991 992$(U)utility.tag: envchk $(INCL)\date.h $(INCL)\onames.h \ 993 $(INCL)\pm.h $(SRC)\monstr.c $(SRC)\vis_tab.c \ 994 $(U)lev_comp.exe $(VIS_TAB_H) $(U)dgn_comp.exe \ 995 $(U)recover.exe $(TILEUTIL) 996 @echo utilities made >$@ 997 @echo utilities made. 998 999tileutil: $(U)gif2txt.exe $(U)txt2ppm.exe 1000 @echo Optional tile development utilities are up to date. 1001 1002# 1003# Inline files : 1004# Specifying the "<<" means to start an inline file. 1005# Another "<<" at the start of a line closes the 1006# inline file. 1007# 1008# DO NOT INDENT THE << below! 1009# 1010 1011$(GAMEFILE) : $(ALLOBJ) 1012 @echo Linking.... 1013 $(LINK) $(LFLAGSN) @<<$(GAME).lnk 1014 $(ALLOBJ) 1015 $(GAMEFILE) 1016 $(GAME) 1017 $(TERMLIB) $(MOVETR) $(CLIB) $(BCOVL) $(BCMDL) 1018<< 1019 @if exist $(GAMEDIR)\$(GAME).bak del $(GAMEDIR)\$(GAME).bak 1020 1021# 1022# Makedefs Stuff 1023# 1024 1025$(U)makedefs.exe: $(MAKEOBJS) 1026 @$(LINK) $(LFLAGSU) $(MAKEOBJS), $@,, $(CLIB) $(BCMDL); 1027 1028$(O)makedefs.o: $(CONFIG_H) $(PERMONST_H) $(OBJCLASS_H) \ 1029 $(MONSYM_H) $(QTEXT_H) $(PATCHLEVEL_H) \ 1030 $(U)makedefs.c 1031 @echo $(BCOPTS1) > $(VROOMMCFG) 1032 @echo $(BCOPTS2) >> $(VROOMMCFG) 1033 @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)makedefs.c 1034 1035# 1036# date.h should be remade every time any of the source or include 1037# files is modified. 1038# 1039 1040$(INCL)\date.h : $(U)makedefs.exe 1041 $(U)makedefs -v 1042 @echo A new $@ has been created. 1043 1044$(INCL)\onames.h : $(U)makedefs.exe 1045 $(U)makedefs -o 1046 1047$(INCL)\pm.h : $(U)makedefs.exe 1048 $(U)makedefs -p 1049 1050#$(INCL)\trap.h : $(U)makedefs.exe 1051# $(U)makedefs -t 1052 1053$(SRC)\monstr.c: $(U)makedefs.exe 1054 $(U)makedefs -m 1055 1056$(INCL)\vis_tab.h: $(U)makedefs.exe 1057 $(U)makedefs -z 1058 1059$(SRC)\vis_tab.c: $(U)makedefs.exe 1060 $(U)makedefs -z 1061 1062# 1063# Level Compiler Stuff 1064# 1065 1066$(U)lev_comp.exe: $(SPLEVOBJS) 1067 @echo Linking $@... 1068 $(LINK) $(LFLAGSU) @&&! 1069 $(O)stubvid.o $(O)panic.o $(O)objects.o $(O)monst.o + 1070 $(O)drawing.o $(O)decl.o $(O)alloc.o $(O)lev_main.o + 1071 $(O)lev_$(LEX).o $(O)lev_yacc.o 1072 $@ 1073 $(@B) 1074 $(BCMDL); 1075! 1076 1077$(O)lev_yacc.o: $(HACK_H) $(SP_LEV_H) $(INCL)\lev_comp.h $(U)lev_yacc.c 1078 @echo $(BCOPTS1) > $(VROOMMCFG) 1079 @echo $(BCOPTS2) >> $(VROOMMCFG) 1080 @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)lev_yacc.c 1081 1082$(O)lev_$(LEX).o: $(HACK_H) $(INCL)\lev_comp.h $(SP_LEV_H) \ 1083 $(U)lev_$(LEX).c 1084 @echo $(BCOPTS1) > $(VROOMMCFG) 1085 @echo $(BCOPTS2) >> $(VROOMMCFG) 1086 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)lev_$(LEX).c 1087 1088$(O)lev_main.o: $(U)lev_main.c $(HACK_H) $(SP_LEV_H) 1089 @echo $(BCOPTS1) > $(VROOMMCFG) 1090 @echo $(BCOPTS2) >> $(VROOMMCFG) 1091 @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)lev_main.c 1092 1093$(U)lev_yacc.c $(INCL)\lev_comp.h : $(U)lev_comp.y 1094! IF "$(DO_YACC)"=="YACC_ACT" 1095 $(YACC) -d -l $(U)lev_comp.y 1096 copy $(YTABC) $(U)lev_yacc.c 1097 copy $(YTABH) $(INCL)\lev_comp.h 1098 @del $(YTABC) 1099 @del $(YTABH) 1100! ELSE 1101 @echo. 1102 @echo $(U)lev_comp.y has changed. 1103 @echo To update $(U)lev_yacc.c and $(INCL)\lev_comp.h run $(YACC). 1104 @echo. 1105 @echo For now, we will copy the prebuilt lev_yacc.c 1106 @echo from $(SYS) to $(U)lev_yacc.c, and copy the prebuilt 1107 @echo lev_comp.h from $(SYS) to $(UTIL)\lev_comp.h 1108 @echo and use those. 1109 @echo. 1110 copy $(SYS)\lev_yacc.c $@ >nul 1111 touch $@ 1112 copy $(SYS)\lev_comp.h $(INCL)\lev_comp.h >nul 1113 touch $(INCL)\lev_comp.h 1114! ENDIF 1115 1116$(U)lev_$(LEX).c: $(U)lev_comp.l 1117! IF "$(DO_LEX)"=="LEX_ACT" 1118 $(LEX) $(FLEXSKEL) $(U)lev_comp.l 1119 copy $(LEXYYC) $@ 1120 @del $(LEXYYC) 1121! ELSE 1122 @echo. 1123 @echo $(U)lev_comp.l has changed. To update $@ run $(LEX). 1124 @echo. 1125 @echo For now, we will copy a prebuilt lev_lex.c 1126 @echo from $(SYS) to $@ and use it. 1127 @echo. 1128 copy $(SYS)\lev_lex.c $@ >nul 1129 touch $@ 1130! ENDIF 1131 1132# 1133# Dungeon Stuff 1134# 1135 1136$(U)dgn_comp.exe: $(DGNCOMPOBJS) 1137 @echo Linking $@... 1138 $(LINK) $(LFLAGSU) @&&! 1139 $(O)panic.o $(O)alloc.o $(O)dgn_main.o $(O)dgn_$(LEX).o + 1140 $(O)dgn_yacc.o 1141 $@ 1142 $(@B) 1143 $(BCMDL); 1144! 1145 1146$(O)dgn_yacc.o: $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h \ 1147 $(U)dgn_yacc.c 1148 @echo $(BCOPTS1) > $(VROOMMCFG) 1149 @echo $(BCOPTS2) >> $(VROOMMCFG) 1150 @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)dgn_yacc.c 1151 1152$(O)dgn_$(LEX).o: $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h \ 1153 $(U)dgn_$(LEX).c 1154 @echo $(BCOPTS1) > $(VROOMMCFG) 1155 @echo $(BCOPTS2) >> $(VROOMMCFG) 1156 @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)dgn_$(LEX).c 1157 1158$(O)dgn_main.o: $(HACK_H) $(U)dgn_main.c 1159 @echo $(BCOPTS1) > $(VROOMMCFG) 1160 @echo $(BCOPTS2) >> $(VROOMMCFG) 1161 @$(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)dgn_main.c 1162 1163$(U)dgn_yacc.c $(INCL)\dgn_comp.h : $(U)dgn_comp.y 1164! IF "$(DO_YACC)"=="YACC_ACT" 1165 $(YACC) -d -l $(U)dgn_comp.y 1166 copy $(YTABC) $(U)dgn_yacc.c 1167 copy $(YTABH) $(INCL)\dgn_comp.h 1168 @del $(YTABC) 1169 @del $(YTABH) 1170! ELSE 1171 @echo. 1172 @echo $(U)dgn_comp.y has changed. To update $@ and 1173 @echo $(INCL)\dgn_comp.h run $(YACC). 1174 @echo. 1175 @echo For now, we will copy the prebuilt dgn_yacc.c from 1176 @echo $(SYS) to $(U)dgn_yacc.c, and copy the prebuilt 1177 @echo dgn_comp.h from $(SYS) to $(INCL)\dgn_comp.h 1178 @echo and use those. 1179 @echo. 1180 copy $(SYS)\dgn_yacc.c $@ >nul 1181 touch $@ 1182 copy $(SYS)\dgn_comp.h $(INCL)\dgn_comp.h >nul 1183 touch $(INCL)\dgn_comp.h 1184! ENDIF 1185 1186$(U)dgn_$(LEX).c: $(U)dgn_comp.l 1187! IF "$(DO_LEX)"=="LEX_ACT" 1188 $(LEX) $(FLEXSKEL) $(U)dgn_comp.l 1189 copy $(LEXYYC) $@ 1190 @del $(LEXYYC) 1191! ELSE 1192 @echo. 1193 @echo $(U)dgn_comp.l has changed. To update $@ run $(LEX). 1194 @echo. 1195 @echo For now, we will copy a prebuilt dgn_lex.c 1196 @echo from $(SYS) to $@ and use it. 1197 @echo. 1198 copy $(SYS)\dgn_lex.c $@ >nul 1199 touch $@ 1200! ENDIF 1201 1202 1203obj.tag: 1204 @if not exist $(O)*.* mkdir $(OBJ) 1205 @echo directory $(OBJ) created 1206 @echo directory $(OBJ) created >$@ 1207 1208envchk: precomp.msg 1209! IF "$(TILEGAME)"=="" 1210 @echo. 1211 @echo NOTE: This build will NOT include tile support. 1212 @echo. 1213! ELSE 1214 @echo. 1215 @echo This build includes tile support. 1216 @echo. 1217! ENDIF 1218 1219# 1220# SECONDARY TARGETS 1221# 1222 1223# 1224# Header files NOT distributed in ..\include 1225# 1226 1227$(INCL)\tile.h: $(WSHR)\tile.h 1228 copy $(WSHR)\tile.h $@ 1229 1230$(INCL)\pctiles.h: $(MSYS)\pctiles.h 1231 copy $(MSYS)\pctiles.h $@ 1232 1233$(INCL)\pcvideo.h: $(MSYS)\pcvideo.h 1234 copy $(MSYS)\pcvideo.h $@ 1235 1236$(INCL)\portio.h: $(MSYS)\portio.h 1237 copy $(MSYS)\portio.h $@ 1238 1239# 1240# Recover Utility 1241# 1242 1243$(U)recover.exe: $(RECOVOBJS) 1244 @$(LINK) $(LFLAGSU) $(RECOVOBJS),$@,, $(CLIB) $(BCMDL); 1245 1246# 1247# Tile Mapping 1248# 1249 1250$(SRC)\tile.c: $(U)tilemap.exe 1251 @echo A new $@ is being created. 1252 @$(U)tilemap 1253 1254$(U)tilemap.exe: $(O)tilemap.o 1255 @$(LINK) $(LFLAGSU) $(O)tilemap.o,$@,, $(CLIB) $(BCMDL); 1256 1257$(O)tilemap.o: $(WSHR)\tilemap.c $(HACK_H) 1258 @echo $(BCOPTS1) > $(VROOMMCFG) 1259 @echo $(BCOPTS2) >> $(VROOMMCFG) 1260 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(WSHR)\tilemap.c 1261 1262 1263# 1264# Tile Utilities 1265# 1266 1267# 1268# Optional (for development) 1269# 1270 1271 1272 1273# 1274 1275$(U)gif2txt.exe: $(GIFREADERS) $(TEXT_IO) 1276 @$(LINK) $(LFLAGSU) << $(@B).lnk 1277 $(GIFREADERS) $(TEXT_IO) 1278 $@,,$(CLIB) $(BCMDL) 1279<< 1280 1281$(U)txt2ppm.exe: $(PPMWRITERS) $(TEXT_IO) 1282 @$(LINK) $(LFLAGSU) << $(@B).lnk 1283 $(PPMWRITERS) $(TEXT_IO) 1284 $@,,$(CLIB) $(BCMDL); 1285<< 1286 1287$(U)gif2txt2.exe: $(GIFREAD2) $(TEXT_IO2) 1288 @$(LINK) $(LFLAGSU) << $(@B).lnk 1289 $(GIFREAD2) $(TEXT_IO2) 1290 $@,,$(CLIB) $(BCMDL); 1291<< 1292 1293$(U)txt2ppm2.exe: $(PPMWRIT2) $(TEXT_IO2) 1294 @$(LINK) $(LFLAGSU) << $(@B).lnk 1295 $(PPMWRIT2) $(TEXT_IO2) 1296 $@,,$(CLIB) $(BCMDL); 1297<< 1298 1299# 1300# Required for tile support 1301# 1302 1303NetHack1.tib: $(TILEFILES) $(U)tile2bin.exe 1304 @echo Creating binary tile files (this may take some time) 1305 @$(U)tile2bin 1306 1307NetHackO.tib: thintile.tag $(TILEFILES2) $(U)til2bin2.exe 1308 @echo Creating overview binary tile files (this may take some time) 1309 @$(U)til2bin2 1310 1311thintile.tag: $(U)thintile.exe $(TILEFILES) 1312 $(U)thintile 1313 @echo thintiles created >thintile.tag 1314 1315$(U)tile2bin.exe: $(O)tile2bin.o $(TEXT_IO) 1316 @echo Linking $@... 1317 $(LINK) $(LFLAGSU) @&&! 1318 $(O)tile2bin.o+ 1319 $(O)stubvid.o $(O)objects.o $(O)monst.o $(O)decl.o + 1320 $(O)drawing.o $(O)tiletxt.o $(O)tiletext.o 1321 $@ 1322 $(@B) 1323 $(BCMDL); 1324! 1325 1326$(U)til2bin2.exe: $(O)til2bin2.o $(TEXT_IO2) 1327 @echo Linking $@... 1328 $(LINK) $(LFLAGSU) @&&! 1329 $(O)til2bin2.o+ 1330 $(O)stubvid.o $(O)objects.o $(O)monst.o $(O)decl.o + 1331 $(O)drawing.o $(O)tiletxt2.o $(O)tiletex2.o 1332 $@ 1333 $(@B) 1334 $(BCMDL); 1335! 1336 1337 1338$(U)thintile.exe: $(O)thintile.o 1339 @$(LINK) $(LFLAGSU) $(O)thintile.o,$@,, $(CLIB) $(BCMDL); 1340 1341$(O)thintile.o: $(HACK_H) $(INCL)\tile.h $(WSHR)\thintile.c 1342 @echo $(BCOPTS1) > $(VROOMMCFG) 1343 @echo $(BCOPTS2) >> $(VROOMMCFG) 1344 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(WSHR)\thintile.c 1345 1346$(O)tile2bin.o: $(HACK_H) $(TILE_H) $(PCVIDEO_H) 1347 @echo $(BCOPTS1) > $(VROOMMCFG) 1348 @echo $(BCOPTS2) >> $(VROOMMCFG) 1349 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(MSYS)\tile2bin.c 1350 1351$(O)til2bin2.o: $(HACK_H) $(TILE_H) $(PCVIDEO_H) 1352 @echo $(BCOPTS1) > $(VROOMMCFG) 1353 @echo $(BCOPTS2) >> $(VROOMMCFG) 1354 $(CC) $(CFLAGSU) $(CDEFINE)TILE_X=8 $(CDEFINE)OVERVIEW_FILE \ 1355 $(COBJNAM)$@ $(MSYS)\tile2bin.c 1356 1357 1358# 1359# DLB stuff 1360# 1361 1362nhdat: $(U)dlb_main.exe 1363 @copy $(MSYS)\msdoshlp.txt $(DAT) 1364 @cd $(DAT) 1365 @echo data >dlb.lst 1366 @echo oracles >>dlb.lst 1367 @echo options >>dlb.lst 1368 @echo quest.dat >>dlb.lst 1369 @echo rumors >>dlb.lst 1370 @echo help >>dlb.lst 1371 @echo hh >>dlb.lst 1372 @echo cmdhelp >>dlb.lst 1373 @echo history >>dlb.lst 1374 @echo opthelp >>dlb.lst 1375 @echo wizhelp >>dlb.lst 1376 @echo dungeon >>dlb.lst 1377 @echo license >>dlb.lst 1378 @echo msdoshlp.txt >>dlb.lst 1379 @for %%N in (*.lev) do echo %%N >>dlb.lst 1380 $(U)dlb_main cvIf dlb.lst $(SRC)\nhdat 1381 @cd $(SRC) 1382 1383$(U)dlb_main.exe: $(DLBOBJS) 1384 @$(LINK) $(LFLAGSU) $(DLBOBJS),$@,, $(CLIB) $(BCMDL); 1385 1386$(O)dlb_main.o: $(U)dlb_main.c $(INCL)\config.h $(DLB_H) 1387 @echo $(BCOPTS1) > $(VROOMMCFG) 1388 @echo $(BCOPTS2) >> $(VROOMMCFG) 1389 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)dlb_main.c 1390 1391# 1392# Housekeeping 1393# 1394 1395spotless: clean 1396 rmdir $(OBJ) 1397 if exist $(DATE_H) del $(DATE_H) 1398 if exist $(INCL)\onames.h del $(INCL)\onames.h 1399 if exist $(INCL)\pm.h del $(INCL)\pm.h 1400 if exist $(VIS_TAB_H) del $(VIS_TAB_H) 1401 if exist $(SRC)\vis_tab.c del $(SRC)\vis_tab.c 1402 if exist $(SRC)\tile.c del $(SRC)\tile.c 1403 if exist $(DAT)\rumors del $(DAT)\rumors 1404 if exist $(DAT)\data del $(DAT)\data 1405 if exist $(DAT)\dungeon del $(DAT)\dungeon 1406 if exist $(DAT)\dungeon.pdf del $(DAT)\dungeon.pdf 1407 if exist $(DAT)\options del $(DAT)\options 1408 if exist $(DAT)\oracles del $(DAT)\oracles 1409 if exist $(DAT)\rumors del $(DAT)\rumors 1410 if exist $(DAT)\quest.dat del $(DAT)\quest.dat 1411 if exist $(DAT)\*.lev del $(DAT)\*.lev 1412 if exist $(DAT)\sp_lev.tag del $(DAT)\sp_lev.tag 1413 if exist $(SRC)\monstr.c del $(SRC)\monstr.c 1414 if exist $(SRC)\vis_tab.c del $(SRC)\vis_tab.c 1415 if exist $(SRC)\$(PLANAR_TIB) del $(SRC)\$(PLANAR_TIB) 1416 if exist $(SRC)\$(OVERVIEW_TIB) del $(SRC)\$(OVERVIEW_TIB) 1417 if exist $(U)recover.exe del $(U)recover.exe 1418 1419clean: 1420 if exist $(O)*.o del $(O)*.o 1421 if exist $(O)*.0 del $(O)*.0 1422 if exist $(O)*.1 del $(O)*.1 1423 if exist $(O)*.2 del $(O)*.2 1424 if exist $(O)*.3 del $(O)*.3 1425 if exist $(O)*.b del $(O)*.b 1426 if exist $(U)utility.tag del $(U)utility.tag 1427 if exist $(U)makedefs.exe del $(U)makedefs.exe 1428 if exist $(U)lev_comp.exe del $(U)lev_comp.exe 1429 if exist $(U)dgn_comp.exe del $(U)dgn_comp.exe 1430 if exist $(U)dlb_main.exe del $(U)dlb_main.exe 1431 if exist $(SRC)\*.lnk del $(SRC)\*.lnk 1432 if exist $(SRC)\*.map del $(SRC)\*.map 1433 if exist $(SRC)\*$(CPCHEXT) del $(SRC)\*$(CPCHEXT) 1434 if exist $(SRC)\*.cfg del $(SRC)\*.cfg 1435 if exist $(DAT)\dlb.lst del $(DAT)\dlb.lst 1436 1437pch.c: $(HACK_H) 1438 @echo ^#include "hack.h" > $@ 1439 @echo main(int argc, char *argv[]) >> $@ 1440 @echo { >> $@ 1441 @echo } >> $@ 1442 @echo. >> $@ 1443 1444# 1445# OTHER DEPENDENCIES 1446# 1447 1448# 1449# Precompiled Header dependencies 1450# (We need to force the generation of these at the beginning) 1451# 1452 1453PHO$(CPCHEXT): $(HACK_H) pch.c 1454 @echo Generating new precompiled header for .O files 1455 @echo $(BCOPTS1) > $(VROOMMCFG) 1456 @echo $(BCOPTS2) $(CFLAGCO) >> $(VROOMMCFG) 1457 @$(CC) $(FLAGCO) pch.c 1458PH0$(CPCHEXT): $(HACK_H) pch.c 1459 @echo Generating new precompiled header for .0 files 1460 @echo $(BCOPTS1) > $(VROOMMCFG) 1461 @echo $(BCOPTS2) $(CFLAGC0) >> $(VROOMMCFG) 1462 @$(CC) $(FLAGC0) pch.c 1463PH1$(CPCHEXT): $(HACK_H) pch.c 1464 @echo Generating new precompiled header for .1 files 1465 @echo $(BCOPTS1) > $(VROOMMCFG) 1466 @echo $(BCOPTS2) $(CFLAGC1) >> $(VROOMMCFG) 1467 @$(CC) $(FLAGC1) pch.c 1468PH2$(CPCHEXT): $(HACK_H) pch.c 1469 @echo Generating new precompiled header for .2 files 1470 @echo $(BCOPTS1) > $(VROOMMCFG) 1471 @echo $(BCOPTS2) $(CFLAGC2) >> $(VROOMMCFG) 1472 @$(CC) $(FLAGC2) pch.c 1473PH3$(CPCHEXT): $(HACK_H) pch.c 1474 @echo Generating new precompiled header for .3 files 1475 @echo $(BCOPTS1) > $(VROOMMCFG) 1476 @echo $(BCOPTS2) $(CFLAGC3) >> $(VROOMMCFG) 1477 @$(CC) $(FLAGC3) pch.c 1478PHB$(CPCHEXT): $(HACK_H) pch.c 1479 @echo Generating new precompiled header for .B files 1480 @echo $(BCOPTS1) > $(VROOMMCFG) 1481 @echo $(BCOPTS2) $(CFLAGCB) >> $(VROOMMCFG) 1482 @$(CC) $(FLAGCB) pch.c 1483 1484 1485# Overlay initialization routines used by pcmain() at startup to 1486# determine EMS/XMS memory usage. 1487 1488# Comment out the following line if you don't want Borland C++ to check for 1489# extended memory. 1490RECOGNIZE_XMS = $(CDEFINE)RECOGNIZE_XMS 1491 1492 1493$(O)ovlinit.o: $(MSYS)\ovlinit.c $(HACK_H) 1494 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG) 1495 @echo $(BCOPTS1) >> $(VROOMMCFG) 1496 @echo $(BCOPTS2) >> $(VROOMMCFG) 1497 $(CC) $(CFLAGSN) $(RECOGNIZE_XMS) $(COBJNAM)$@ $(MSYS)\ovlinit.c 1498 1499# 1500# dat dependencies 1501# 1502 1503$(DAT)\data: $(U)utility.tag $(DATABASE) 1504 $(U)makedefs -d 1505 1506$(DAT)\rumors: $(U)utility.tag $(DAT)\rumors.tru $(DAT)\rumors.fal 1507 $(U)makedefs -r 1508 1509$(DAT)\quest.dat: $(U)utility.tag $(DAT)\quest.txt 1510 $(U)makedefs -q 1511 1512$(DAT)\oracles: $(U)utility.tag $(DAT)\oracles.txt 1513 $(U)makedefs -h 1514 1515$(DAT)\dungeon: $(U)utility.tag $(DAT)\dungeon.def 1516 $(U)makedefs -e 1517 cd $(DAT) 1518 $(U)dgn_comp dungeon.pdf 1519 cd $(SRC) 1520 1521# 1522# Util Dependencies. 1523# 1524 1525$(O)panic.o: $(U)panic.c $(CONFIG_H) 1526 @echo $(BCOPTS1) > $(VROOMMCFG) 1527 @echo $(BCOPTS2) >> $(VROOMMCFG) 1528 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)panic.c 1529 1530$(O)recover.o: $(CONFIG_H) $(U)recover.c 1531 @echo $(BCOPTS1) > $(VROOMMCFG) 1532 @echo $(BCOPTS2) >> $(VROOMMCFG) 1533 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(U)recover.c 1534 1535# 1536# from win\share 1537# 1538 1539$(O)tiletxt.o: $(WSHR)\tilemap.c $(HACK_H) 1540 @echo $(BCOPTS1) > $(VROOMMCFG) 1541 @echo $(BCOPTS2) >> $(VROOMMCFG) 1542 $(CC) $(CFLAGSU) $(CDEFINE)TILETEXT $(COBJNAM)$@ $(WSHR)\tilemap.c 1543 1544$(O)tiletxt2.o: $(WSHR)\tilemap.c $(HACK_H) 1545 @echo $(BCOPTS1) > $(VROOMMCFG) 1546 @echo $(BCOPTS2) >> $(VROOMMCFG) 1547 $(CC) $(CFLAGSU) $(CDEFINE)TILETEXT \ 1548 $(CDEFINE)TILE_X=8 $(COBJNAM)$@ $(WSHR)\tilemap.c 1549 1550$(O)gifread.o: $(WSHR)\gifread.c $(CONFIG_H) $(INCL)\tile.h 1551 @echo $(BCOPTS1) > $(VROOMMCFG) 1552 @echo $(BCOPTS2) >> $(VROOMMCFG) 1553 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(WSHR)\gifread.c 1554 1555$(O)gifread2.o: $(WSHR)\gifread.c $(CONFIG_H) $(INCL)\tile.h 1556 @echo $(BCOPTS1) > $(VROOMMCFG) 1557 @echo $(BCOPTS2) >> $(VROOMMCFG) 1558 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(CDEFINE)TILE_X=8 $(WSHR)\gifread.c 1559 1560$(O)ppmwrite.o: $(WSHR)\ppmwrite.c $(CONFIG_H) $(INCL)\tile.h 1561 @echo $(BCOPTS1) > $(VROOMMCFG) 1562 @echo $(BCOPTS2) >> $(VROOMMCFG) 1563 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(WSHR)\ppmwrite.c 1564 1565$(O)ppmwrit2.o: $(WSHR)\ppmwrite.c $(CONFIG_H) $(INCL)\tile.h 1566 @echo $(BCOPTS1) > $(VROOMMCFG) 1567 @echo $(BCOPTS2) >> $(VROOMMCFG) 1568 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(CDEFINE)TILE_X=8 $(WSHR)\ppmwrite.c 1569 1570$(O)tiletext.o: $(WSHR)\tiletext.c $(CONFIG_H) $(INCL)\tile.h 1571 @echo $(BCOPTS1) > $(VROOMMCFG) 1572 @echo $(BCOPTS2) >> $(VROOMMCFG) 1573 $(CC) $(CFLAGSU) $(COBJNAM)$@ $(WSHR)\tiletext.c 1574 1575$(O)tiletex2.o: $(WSHR)\tiletext.c $(CONFIG_H) $(INCL)\tile.h 1576 @echo $(BCOPTS1) > $(VROOMMCFG) 1577 @echo $(BCOPTS2) >> $(VROOMMCFG) 1578 $(CC) $(CFLAGSU) $(CDEFINE)TILE_X=8 $(COBJNAM)$@ $(WSHR)\tiletext.c 1579 1580# 1581# from win\tty 1582# 1583 1584$(O)getline.1: $(PCH1) $(WTTY)\getline.c $(HACK_H) $(WINTTY_H) $(FUNC_TAB_H) 1585 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG) 1586 @echo $(BCOPTS1) >> $(VROOMMCFG) 1587 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG) 1588 $(CC) $(FLAGU1) $(COBJNAM)$@ $(WTTY)\getline.c 1589 1590$(O)getline.2: $(PCH2) $(WTTY)\getline.c $(HACK_H) $(WINTTY_H) $(FUNC_TAB_H) 1591 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG) 1592 @echo $(BCOPTS1) >> $(VROOMMCFG) 1593 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG) 1594 $(CC) $(FLAGU2) $(COBJNAM)$@ $(WTTY)\getline.c 1595 1596$(O)termcap.0: $(PCH0) $(WTTY)\termcap.c $(HACK_H) $(WINTTY_H) $(TERMCAP_H) 1597 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG) 1598 @echo $(BCOPTS1) >> $(VROOMMCFG) 1599 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG) 1600 $(CC) $(FLAGU0) $(COBJNAM)$@ $(WTTY)\termcap.c 1601 1602$(O)termcap.1: $(PCH1) $(WTTY)\termcap.c $(HACK_H) $(WINTTY_H) $(TERMCAP_H) 1603 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG) 1604 @echo $(BCOPTS1) >> $(VROOMMCFG) 1605 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG) 1606 $(CC) $(FLAGU1) $(COBJNAM)$@ $(WTTY)\termcap.c 1607 1608$(O)termcap.B: $(PCHB) $(WTTY)\termcap.c $(HACK_H) $(WINTTY_H) $(TERMCAP_H) 1609 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG) 1610 @echo $(BCOPTS1) >> $(VROOMMCFG) 1611 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG) 1612 $(CC) $(FLAGUB) $(COBJNAM)$@ $(WTTY)\termcap.c 1613 1614$(O)topl.1: $(PCH1) $(WTTY)\topl.c $(HACK_H) $(TERMCAP_H) $(WINTTY_H) 1615 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG) 1616 @echo $(BCOPTS1) >> $(VROOMMCFG) 1617 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG) 1618 $(CC) $(FLAGU1) $(COBJNAM)$@ $(WTTY)\topl.c 1619 1620$(O)topl.2: $(PCH2) $(WTTY)\topl.c $(HACK_H) $(TERMCAP_H) $(WINTTY_H) 1621 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG) 1622 @echo $(BCOPTS1) >> $(VROOMMCFG) 1623 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG) 1624 $(CC) $(FLAGU2) $(COBJNAM)$@ $(WTTY)\topl.c 1625 1626$(O)topl.B: $(PCHB) $(WTTY)\topl.c $(HACK_H) $(TERMCAP_H) $(WINTTY_H) 1627 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG) 1628 @echo $(BCOPTS1) >> $(VROOMMCFG) 1629 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG) 1630 $(CC) $(FLAGUB) $(COBJNAM)$@ $(WTTY)\topl.c 1631 1632$(O)wintty.o: $(PCHO) $(CONFIG_H) $(WTTY)\wintty.c $(PATCHLEVEL_H) 1633 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG) 1634 @echo $(BCOPTS1) >> $(VROOMMCFG) 1635 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG) 1636 $(CC) $(FLAGUO) $(COBJNAM)$@ $(WTTY)\wintty.c 1637 1638# 1639# from sys\share 1640# 1641 1642$(O)pcmain.0: $(PCH0) $(HACK_H) $(SYS)\pcmain.c 1643 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG) 1644 @echo $(BCOPTS1) >> $(VROOMMCFG) 1645 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG) 1646 $(CC) $(FLAGU0) $(COBJNAM)$@ $(SYS)\pcmain.c 1647 1648$(O)pcmain.1: $(PCH1) $(HACK_H) $(SYS)\pcmain.c 1649 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG) 1650 @echo $(BCOPTS1) >> $(VROOMMCFG) 1651 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG) 1652 $(CC) $(FLAGU1) $(COBJNAM)$@ $(SYS)\pcmain.c 1653 1654$(O)pcmain.B: $(PCHB) $(HACK_H) $(SYS)\pcmain.c 1655 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG) 1656 @echo $(BCOPTS1) >> $(VROOMMCFG) 1657 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG) 1658 $(CC) $(FLAGUB) $(COBJNAM)$@ $(SYS)\pcmain.c 1659 1660$(O)pcunix.B: $(PCHB) $(SYS)\pcunix.c $(HACK_H) 1661 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG) 1662 @echo $(BCOPTS1) >> $(VROOMMCFG) 1663 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG) 1664 $(CC) $(FLAGUB) $(COBJNAM)$@ $(SYS)\pcunix.c 1665 1666$(O)tty.o: $(HACK_H) $(WINTTY_H) $(SYS)\pctty.c 1667 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG) 1668 @echo $(BCOPTS1) >> $(VROOMMCFG) 1669 @echo $(BCOPTS2) >> $(VROOMMCFG) 1670 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SYS)\pctty.c 1671 1672$(O)sys.o: $(HACK_H) $(SYS)\pcsys.c 1673 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG) 1674 @echo $(BCOPTS1) >> $(VROOMMCFG) 1675 @echo $(BCOPTS2) >> $(VROOMMCFG) 1676 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SYS)\pcsys.c 1677 1678$(O)random.o: $(PCHO) $(HACK_H) $(SYS)\random.c 1679 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG) 1680 @echo $(BCOPTS1) >> $(VROOMMCFG) 1681 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG) 1682 $(CC) $(FLAGUO) $(COBJNAM)$@ $(SYS)\random.c 1683 1684# 1685# from sys\msdos 1686# 1687 1688$(O)msdos.0: $(MSYS)\msdos.c $(HACK_H) $(PCVIDEO_H) 1689 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG) 1690 @echo $(BCOPTS1) >> $(VROOMMCFG) 1691 @echo $(BCOPTS2) >> $(VROOMMCFG) 1692 $(CC) $(CFLAGSN) $(COVL0) $(COBJNAM)$@ $(MSYS)\msdos.c 1693 1694$(O)msdos.B: $(MSYS)\msdos.c $(HACK_H) $(PCVIDEO_H) 1695 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG) 1696 @echo $(BCOPTS1) >> $(VROOMMCFG) 1697 @echo $(BCOPTS2) >> $(VROOMMCFG) 1698 $(CC) $(CFLAGSN) $(COVLB) $(COBJNAM)$@ $(MSYS)\msdos.c 1699 1700$(O)pctiles.0: $(PCH0) $(MSYS)\pctiles.c $(HACK_H) $(TILE_H) $(PCVIDEO_H) 1701 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG) 1702 @echo $(BCOPTS1) >> $(VROOMMCFG) 1703 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG) 1704 $(CC) $(FLAGU0) $(COBJNAM)$@ $(MSYS)\pctiles.c 1705 1706$(O)pctiles.B: $(PCHB) $(MSYS)\pctiles.c $(HACK_H) $(TILE_H) $(PCVIDEO_H) 1707 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG) 1708 @echo $(BCOPTS1) >> $(VROOMMCFG) 1709 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG) 1710 $(CC) $(FLAGUB) $(COBJNAM)$@ $(MSYS)\pctiles.c 1711 1712$(O)sound.o: $(PCH0) $(MSYS)\sound.c $(HACK_H) $(INCL)\portio.h 1713 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG) 1714 @echo $(BCOPTS1) >> $(VROOMMCFG) 1715 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG) 1716 $(CC) $(FLAGUO) $(COBJNAM)$@ $(MSYS)\sound.c 1717 1718$(O)pckeys.o: $(PCHO) $(MSYS)\pckeys.c $(HACK_H) $(PCVIDEO_H) 1719 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG) 1720 @echo $(BCOPTS1) >> $(VROOMMCFG) 1721 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG) 1722 $(CC) $(FLAGUO) $(COBJNAM)$@ $(MSYS)\pckeys.c 1723 1724$(O)stubvid.o : $(MSYS)\video.c $(HACK_H) 1725 @echo $(BCOPTS1) >> $(VROOMMCFG) 1726 @echo $(BCOPTS2) $(CFLAGUO) >> $(VROOMMCFG) 1727 $(CC) $(FLAGUO) $(CDEFINE)STUBVIDEO $(COBJNAM)$@ $(MSYS)\video.c 1728 1729$(O)video.0: $(PCH0) $(MSYS)\video.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \ 1730 $(TILE_H) 1731 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG) 1732 @echo $(BCOPTS1) >> $(VROOMMCFG) 1733 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG) 1734 $(CC) $(FLAGU0) $(COBJNAM)$@ $(MSYS)\video.c 1735 1736$(O)video.1: $(PCH1) $(MSYS)\video.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \ 1737 $(TILE_H) 1738 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG) 1739 @echo $(BCOPTS1) >> $(VROOMMCFG) 1740 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG) 1741 $(CC) $(FLAGU1) $(COBJNAM)$@ $(MSYS)\video.c 1742 1743$(O)video.B: $(PCHB) $(MSYS)\video.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \ 1744 $(TILE_H) 1745 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG) 1746 @echo $(BCOPTS1) >> $(VROOMMCFG) 1747 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG) 1748 $(CC) $(FLAGUB) $(COBJNAM)$@ $(MSYS)\video.c 1749 1750$(O)vidtxt.0: $(MSYS)\vidtxt.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) 1751 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG) 1752 @echo $(BCOPTS1) >> $(VROOMMCFG) 1753 @echo $(BCOPTS2) >> $(VROOMMCFG) 1754 $(CC) $(CFLAGSN) $(COVL0) $(COBJNAM)$@ $(MSYS)\vidtxt.c 1755 1756$(O)vidtxt.B: $(MSYS)\vidtxt.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) 1757 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG) 1758 @echo $(BCOPTS1) >> $(VROOMMCFG) 1759 @echo $(BCOPTS2) >> $(VROOMMCFG) 1760 $(CC) $(CFLAGSN) $(COVLB) $(COBJNAM)$@ $(MSYS)\vidtxt.c 1761 1762$(O)vidvga.0: $(PCH0) $(MSYS)\vidvga.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \ 1763 $(TILE_H) 1764 @type schema$(SCHEMA).bc | find "$(@B)_0" > $(VROOMMCFG) 1765 @echo $(BCOPTS1) >> $(VROOMMCFG) 1766 @echo $(BCOPTS2) $(CFLAGU0) >> $(VROOMMCFG) 1767 $(CC) $(FLAGU0) $(COBJNAM)$@ $(MSYS)\vidvga.c 1768 1769$(O)vidvga.1: $(PCH1) $(MSYS)\vidvga.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \ 1770 $(TILE_H) 1771 @type schema$(SCHEMA).bc | find "$(@B)_1" > $(VROOMMCFG) 1772 @echo $(BCOPTS1) >> $(VROOMMCFG) 1773 @echo $(BCOPTS2) $(CFLAGU1) >> $(VROOMMCFG) 1774 $(CC) $(FLAGU1) $(COBJNAM)$@ $(MSYS)\vidvga.c 1775 1776$(O)vidvga.2: $(PCH2) $(MSYS)\vidvga.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \ 1777 $(TILE_H) 1778 @type schema$(SCHEMA).bc | find "$(@B)_2" > $(VROOMMCFG) 1779 @echo $(BCOPTS1) >> $(VROOMMCFG) 1780 @echo $(BCOPTS2) $(CFLAGU2) >> $(VROOMMCFG) 1781 $(CC) $(FLAGU2) $(COBJNAM)$@ $(MSYS)\vidvga.c 1782 1783$(O)vidvga.B: $(PCHB) $(MSYS)\vidvga.c $(HACK_H) $(WINTTY_H) $(PCVIDEO_H) \ 1784 $(TILE_H) 1785 @type schema$(SCHEMA).bc | find "$(@B)_b" > $(VROOMMCFG) 1786 @echo $(BCOPTS1) >> $(VROOMMCFG) 1787 @echo $(BCOPTS2) $(CFLAGUB) >> $(VROOMMCFG) 1788 $(CC) $(FLAGUB) $(COBJNAM)$@ $(MSYS)\vidvga.c 1789 1790# 1791# from src 1792# 1793 1794$(O)alloc.o: $(SRC)\alloc.c $(CONFIG_H) 1795 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG) 1796 @echo $(BCOPTS1) >> $(VROOMMCFG) 1797 @echo $(BCOPTS2) >> $(VROOMMCFG) 1798 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\alloc.c 1799$(O)ball.o: $(PCHO) $(SRC)\ball.c $(HACK_H) 1800$(O)bones.o: $(PCHO) $(SRC)\bones.c $(HACK_H) $(LEV_H) 1801$(O)decl.o: $(PCHO) $(SRC)\decl.c $(HACK_H) $(QUEST_H) 1802$(O)detect.o: $(PCHO) $(SRC)\detect.c $(HACK_H) $(ARTIFACT_H) 1803$(O)dig.o: $(PCHO) $(SRC)\dig.c $(HACK_H) $(EDOG_H) # check dep 1804$(O)display.o: $(PCHO) $(SRC)\display.c $(HACK_H) 1805$(O)dlb.o: $(SRC)\dlb.c $(DLB_H) $(HACK_H) 1806 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG) 1807 @echo $(BCOPTS1) >> $(VROOMMCFG) 1808 @echo $(BCOPTS2) >> $(VROOMMCFG) 1809 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\dlb.c 1810$(O)dokick.o: $(PCHO) $(SRC)\dokick.c $(HACK_H) $(ESHK_H) 1811$(O)dothrow.o: $(PCHO) $(SRC)\dothrow.c $(HACK_H) 1812$(O)drawing.o: $(SRC)\drawing.c $(HACK_H) $(TERMCAP_H) 1813 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG) 1814 @echo $(BCOPTS1) >> $(VROOMMCFG) 1815 @echo $(BCOPTS2) >> $(VROOMMCFG) 1816 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\drawing.c 1817$(O)end.o: $(SRC)\end.c $(HACK_H) $(ESHK_H) $(DLB_H) 1818 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG) 1819 @echo $(BCOPTS1) >> $(VROOMMCFG) 1820 @echo $(BCOPTS2) >> $(VROOMMCFG) 1821 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\end.c 1822$(O)exper.o: $(PCHO) $(SRC)\exper.c $(HACK_H) 1823$(O)extralev.o: $(PCHO) $(SRC)\extralev.c $(HACK_H) 1824$(O)files.o: $(PCHO) $(SRC)\files.c $(HACK_H) $(DLB_H) 1825$(O)fountain.o: $(PCHO) $(SRC)\fountain.c $(HACK_H) 1826$(O)minion.o: $(PCHO) $(SRC)\minion.c $(HACK_H) $(EMIN_H) $(EPRI_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 $(ESHK_H) $(EPRI_H) $(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) $(EPRI_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)sp_lev.o: $(PCHO) $(SRC)\sp_lev.c $(HACK_H) $(SP_LEV_H) $(DLB_H) 1876$(O)spell.o: $(PCHO) $(SRC)\spell.c $(HACK_H) 1877$(O)teleport.o: $(PCHO) $(SRC)\teleport.c $(HACK_H) # check dep 1878$(O)tile.o: $(PCHO) $(SRC)\tile.c $(HACK_H) 1879$(O)topten.o: $(PCHO) $(SRC)\topten.c $(HACK_H) $(DLB_H) $(PATCHLEVEL_H) 1880$(O)u_init.o: $(PCHO) $(SRC)\u_init.c $(HACK_H) 1881$(O)uhitm.o: $(PCHO) $(SRC)\uhitm.c $(HACK_H) 1882$(O)version.o: $(PCHO) $(SRC)\version.c $(HACK_H) $(PATCHLEVEL_H) 1883$(O)vision.o: $(PCHO) $(SRC)\vision.c $(HACK_H) $(VIS_TAB_H) 1884$(O)vis_tab.o: $(SRC)\vis_tab.c $(HACK_H) $(VIS_TAB_H) 1885 @type schema$(SCHEMA).bc | find "$(@B)_o" > $(VROOMMCFG) 1886 @echo $(BCOPTS1) >> $(VROOMMCFG) 1887 @echo $(BCOPTS2) >> $(VROOMMCFG) 1888 $(CC) $(CFLAGSN) $(COBJNAM)$@ $(SRC)\vis_tab.c 1889$(O)wield.o: $(PCHO) $(SRC)\wield.c $(HACK_H) 1890$(O)windows.o: $(PCHO) $(SRC)\windows.c $(HACK_H) $(WINTTY_H) 1891$(O)worm.o: $(PCHO) $(SRC)\worm.c $(HACK_H) $(LEV_H) 1892$(O)worn.o: $(PCHO) $(SRC)\worn.c $(HACK_H) 1893$(O)write.o: $(PCHO) $(SRC)\write.c $(HACK_H) 1894 1895# 1896# Overlays 1897# 1898 1899# OVL0 1900# 1901 1902$(O)allmain.0: $(PCH0) $(SRC)\allmain.c $(HACK_H) 1903$(O)apply.0: $(PCH0) $(SRC)\apply.c $(HACK_H) $(EDOG_H) 1904$(O)artifact.0: $(PCH0) $(SRC)\artifact.c $(HACK_H) $(ARTIFACT_H) $(ARTILIST_H) 1905$(O)attrib.0: $(PCH0) $(SRC)\attrib.c $(HACK_H) 1906$(O)botl.0: $(PCH0) $(SRC)\botl.c $(HACK_H) 1907$(O)cmd.0: $(PCH0) $(SRC)\cmd.c $(HACK_H) $(FUNC_TAB_H) 1908$(O)dbridge.0: $(PCH0) $(SRC)\dbridge.c $(HACK_H) 1909$(O)do.0: $(PCH0) $(SRC)\do.c $(HACK_H) $(LEV_H) 1910$(O)do_name.0: $(PCH0) $(SRC)\do_name.c $(HACK_H) 1911$(O)do_wear.0: $(PCH0) $(SRC)\do_wear.c $(HACK_H) 1912$(O)dogmove.0: $(PCH0) $(SRC)\dogmove.c $(HACK_H) $(MFNDPOS_H) $(EDOG_H) 1913$(O)dungeon.0: $(PCH0) $(SRC)\dungeon.c $(HACK_H) $(ALIGN_H) $(DGN_FILE_H) \ 1914 $(DLB_H) 1915$(O)eat.0: $(PCH0) $(SRC)\eat.c $(HACK_H) 1916$(O)engrave.0: $(PCH0) $(SRC)\engrave.c $(HACK_H) $(LEV_H) 1917$(O)explode.0: $(PCH0) $(SRC)\explode.c $(HACK_H) 1918$(O)hacklib.0: $(PCH0) $(SRC)\hacklib.c $(HACK_H) 1919$(O)invent.0: $(PCH0) $(SRC)\invent.c $(HACK_H) $(ARTIFACT_H) 1920$(O)lock.0: $(PCH0) $(SRC)\lock.c $(HACK_H) 1921$(O)mail.0: $(PCH0) $(SRC)\mail.c $(HACK_H) $(MAIL_H) $(DATE_H) 1922$(O)makemon.0: $(PCH0) $(SRC)\makemon.c $(HACK_H) $(EPRI_H) $(EMIN_H) 1923$(O)mcastu.0: $(PCH0) $(SRC)\mcastu.c $(HACK_H) 1924$(O)mhitm.0: $(PCH0) $(SRC)\mhitm.c $(HACK_H) $(ARTIFACT_H) $(EDOG_H) 1925$(O)mhitu.0: $(PCH0) $(SRC)\mhitu.c $(HACK_H) $(ARTIFACT_H) $(EDOG_H) 1926$(O)mkobj.0: $(PCH0) $(SRC)\mkobj.c $(HACK_H) $(ARTIFACT_H) $(PROP_H) 1927$(O)mkroom.0: $(PCH0) $(SRC)\mkroom.c $(HACK_H) 1928$(O)mon.0: $(PCH0) $(SRC)\mon.c $(HACK_H) $(MFNDPOS_H) $(EDOG_H) 1929$(O)mondata.0: $(PCH0) $(SRC)\mondata.c $(HACK_H) $(ESHK_H) $(EPRI_H) 1930$(O)monmove.0: $(PCH0) $(SRC)\monmove.c $(HACK_H) $(MFNDPOS_H) $(ARTIFACT_H) 1931$(O)mthrowu.0: $(PCH0) $(SRC)\mthrowu.c $(HACK_H) 1932$(O)objnam.0: $(PCH0) $(SRC)\objnam.c $(HACK_H) 1933$(O)polyself.0: $(PCH0) $(SRC)\polyself.c $(HACK_H) 1934$(O)priest.0: $(PCH0) $(SRC)\priest.c $(HACK_H) $(MFNDPOS_H) $(ESHK_H) \ 1935 $(EPRI_H) $(EMIN_H) 1936$(O)rnd.0: $(PCH0) $(SRC)\rnd.c $(HACK_H) 1937$(O)shk.0: $(PCH0) $(SRC)\shk.c $(HACK_H) $(ESHK_H) 1938$(O)shknam.0: $(PCH0) $(SRC)\shknam.c $(HACK_H) $(ESHK_H) 1939$(O)sounds.0: $(PCH0) $(SRC)\sounds.c $(HACK_H) $(EDOG_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) $(VAULT_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) 1949 1950# 1951# OVL1 1952# 1953 1954$(O)allmain.1: $(PCH1) $(SRC)\allmain.c $(HACK_H) 1955$(O)apply.1: $(PCH1) $(SRC)\apply.c $(HACK_H) $(EDOG_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) $(EDOG_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) $(EPRI_H) $(EMIN_H) 1972$(O)mhitu.1: $(PCH1) $(SRC)\mhitu.c $(HACK_H) $(ARTIFACT_H) $(EDOG_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) $(EDOG_H) 1975$(O)mondata.1: $(PCH1) $(SRC)\mondata.c $(HACK_H) $(ESHK_H) $(EPRI_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) $(ESHK_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) 1988 1989# 1990# OVL2 1991# 1992 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) $(EDOG_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) $(EPRI_H) $(EMIN_H) 2003$(O)mon.2: $(PCH2) $(SRC)\mon.c $(HACK_H) $(MFNDPOS_H) $(EDOG_H) 2004$(O)mondata.2: $(PCH2) $(SRC)\mondata.c $(HACK_H) $(ESHK_H) $(EPRI_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) $(ESHK_H) 2007$(O)trap.2: $(PCH2) $(SRC)\trap.c $(HACK_H) 2008$(O)zap.2: $(PCH2) $(SRC)\zap.c $(HACK_H) 2009 2010# 2011# OVL3 2012# 2013 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) $(ESHK_H) 2019$(O)trap.3: $(PCH3) $(SRC)\trap.c $(HACK_H) 2020$(O)zap.3: $(PCH3) $(SRC)\zap.c $(HACK_H) 2021 2022# 2023# OVLB 2024# 2025 2026$(O)allmain.B: $(PCHB) $(SRC)\allmain.c $(HACK_H) 2027$(O)apply.B: $(PCHB) $(SRC)\apply.c $(HACK_H) $(EDOG_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) $(EDOG_H) 2037$(O)dogmove.B: $(PCHB) $(SRC)\dogmove.c $(HACK_H) $(MFNDPOS_H) $(EDOG_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) $(EPRI_H) $(EMIN_H) 2046$(O)mcastu.B: $(PCHB) $(SRC)\mcastu.c $(HACK_H) 2047$(O)mhitm.B: $(PCHB) $(SRC)\mhitm.c $(HACK_H) $(ARTIFACT_H) $(EDOG_H) 2048$(O)mhitu.B: $(PCHB) $(SRC)\mhitu.c $(HACK_H) $(ARTIFACT_H) $(EDOG_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) $(EDOG_H) 2052$(O)mondata.B: $(PCHB) $(SRC)\mondata.c $(HACK_H) $(ESHK_H) $(EPRI_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) $(EPRI_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) $(ESHK_H) \ 2064 $(EPRI_H) $(EMIN_H) 2065$(O)read.B: $(PCHB) $(SRC)\read.c $(HACK_H) 2066$(O)rnd.B: $(PCHB) $(SRC)\rnd.c $(HACK_H) 2067$(O)shk.B: $(PCHB) $(SRC)\shk.c $(HACK_H) $(ESHK_H) 2068$(O)shknam.B: $(PCHB) $(SRC)\shknam.c $(HACK_H) $(ESHK_H) 2069$(O)sounds.B: $(PCHB) $(SRC)\sounds.c $(HACK_H) $(EDOG_H) 2070$(O)steal.B: $(PCHB) $(SRC)\steal.c $(HACK_H) 2071$(O)timeout.B: $(PCHB) $(SRC)\timeout.c $(HACK_H) $(LEV_H) 2072$(O)track.B: $(PCHB) $(SRC)\track.c $(HACK_H) 2073$(O)trap.B: $(PCHB) $(SRC)\trap.c $(HACK_H) 2074$(O)vault.B: $(PCHB) $(SRC)\vault.c $(HACK_H) $(VAULT_H) 2075$(O)weapon.B: $(PCHB) $(SRC)\weapon.c $(HACK_H) 2076$(O)were.B: $(PCHB) $(SRC)\were.c $(HACK_H) 2077$(O)wizard.B: $(PCHB) $(SRC)\wizard.c $(HACK_H) $(QTEXT_H) 2078$(O)zap.B: $(PCHB) $(SRC)\zap.c $(HACK_H) 2079 2080# end of file 2081