1# SCCS Id: @(#)Makefile.os2 3.4.3 1996/10/29 2# OS/2 NetHack 3.4.3 Makefile for OS/2 versions 2.x 3# Copyright (C) 1990, 1991, 1992, 1993, 1996 Timo Hakulinen 4# 5# Several compilers exist for OS/2 but, currently only GCC emx is tested 6# and used for releases. make programs other than dmake are not tested. 7# 8# Supported compilers: GCC emx 0.9g 9# 10# DMAKE is required. Credit for the makefile improvements goes to 11# Pekka Rousu. 12# 13# Copy this file into $(SRC) directory, rename it to "makefile" 14# (important, many targets rely on it), compile and link inside 15# $(SRC). If required, termcap library can be built from termcap 16# sources using makefile.lib in "sys\share" directory. 17# 18# "GCC" refers to GCC emx only. No other ports of GCC are supported. 19# Additional credits for honing GCC support for 3.2 go to Ronald 20# Van Iwaarden (ron@vaniwaarden.org) and Stefan Neis (neis@cs.uni-sb.de). 21# 22# "OMF" is short for "Object Module Format" and refers to the 23# standard OS/2 object format, which e.g. link386 uses. MSC and 24# CSet/2 always produce OMF object files, and GCC can be instructed 25# to produce them with proper switches (see below). 26# 27# "a.out" refers to Unix object file format, which is used by GCC 28# in its default compilation mode. These object files must be 29# linked using GCC's own linker to produce a proper OS/2 executable. 30# GDB debugger shipped with GCC can only be used with a.out object 31# format. 32# 33# Note that the default setup in this makefile is my personal setup, 34# which you will have to adapt to your configuration. 35# 36 37# 38# Compiler and linker selection. 39# 40 41#format = omf 42format = a.out 43 44.IF $(format) == a.out 45with_x11 = yes 46#debug = yes 47.END 48 49 50CC = gcc # GCC 51 52.IF $(format) == a.out 53LINK = gcc 54#LINK = link386 # GCC OMF, CSet/2 55.ELSE 56LINK = link386 # GCC OMF, CSet/2 57LFLAGS = /noig /stack:40000 58.END 59 60.IF $(with_x11) == yes 61WINX11OBJ01 = $(OBJ)/Window.o 62WINX11OBJ02 = $(OBJ)/dialogs.o 63WINX11OBJ03 = $(OBJ)/winX.o 64WINX11OBJ04 = $(OBJ)/winmap.o 65WINX11OBJ05 = $(OBJ)/winmenu.o 66WINX11OBJ06 = $(OBJ)/winmesg.o 67WINX11OBJ07 = $(OBJ)/winmisc.o 68WINX11OBJ08 = $(OBJ)/winstat.o 69WINX11OBJ09 = $(OBJ)/wintext.o 70WINX11OBJ10 = $(OBJ)/winval.o 71WINX11OBJ11 = $(OBJ)/tile.o 72X11ROOT = e:/xfree86 73WINX11CFLAGS = -DUSE_XPM -DX11_GRAPHICS \ 74 -I$(X11ROOT)/include -Zmtd 75WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11 -lXpm -L$(X11ROOT)/lib -lc_app 76WINX11SRC = ../win/X11/Window.c ../win/X11/dialogs.c ../win/X11/winX.c \ 77 ../win/X11/winmap.c ../win/X11/winmenu.c ../win/X11/winmesg.c \ 78 ../win/X11/winmisc.c ../win/X11/winstat.c ../win/X11/wintext.c \ 79 ../win/X11/winval.c tile.c 80WINX11OBJ = $(WINX11OBJ01) $(WINX11OBJ02) $(WINX11OBJ03) $(WINX11OBJ04) \ 81 $(WINX11OBJ05) $(WINX11OBJ06) $(WINX11OBJ07) $(WINX11OBJ08) \ 82 $(WINX11OBJ09) $(WINX11OBJ10) $(WINX11OBJ11) 83WINX11VARDAT=x11tiles pet_mark.xbm rip.xpm 84X11ECHO = $(CMD) @echo 85.END 86 87 88 89 90MAKEB = dmake 91CMD = cmd /C 92AB = $(@:B).c 93CB = $$(@:B).c 94BEG = $(CMD) " 95END = " 96SEP = & 97P = % 98 99# 100# Most makes execute actions automatically inside a subshell, 101# which makes even the shell internals work ok. 102# 103 104ECHO = $(CMD) @echo 105RM = $(CMD) del 106CP = $(CMD) copy 107CAT = $(CMD) type 108 109# 110# For those of us who have these on PC. 111# 112 113#YACC = yacc 114#LEX = lex 115YACC = bison -y 116LEX = flex 117 118# 119# For extracting NetHack icon. 120# 121 122UUDECODE = uudecode 123 124# 125# For people with TeX and LaTeX. 126# 127 128LATEX = latex 129 130# 131# If you have TOUCH, some things become slightly easier. 132# 133 134TOUCH = touch 135 136# 137# Standard file naming for LEX and YACC output may vary in PC 138# installations. These three are probably the most generally used 139# names. 140# 141 142YTABC = y_tab.c 143YTABH = y_tab.h 144LEXYYC = lexyy.c 145 146# 147# Source tree base directory. 148# 149 150NHSRC = \nethack 151 152# 153# Source directories. Makedefs hardcodes these, don't change them. 154# 155 156INCL = $(NHSRC)\include # NetHack include files 157DAT = $(NHSRC)\dat # NetHack data files 158DOC = $(NHSRC)\doc # NetHack documentation files 159UTIL = $(NHSRC)\util # Utility source 160SRC = $(NHSRC)\src # Main source 161WIN = $(NHSRC)\win\tty # Window system specific source 162WINX11 = $(NHSRC)\win\x11 # Window system specific source 163SYS = $(NHSRC)\sys\os2 # System specific source 164SSYS = $(NHSRC)\sys\share # Shared system files 165WINSHARE= $(NHSRC)\win\share # Shared system files 166 167# 168# Modifiable directories. Set these according to your setup and 169# preferences. They must all be present prior to compilation. 170# OBJ, TEMP and GAMEDIR should all preferably be separate and, 171# in particular, not the same as any of the source directories. 172# Note that DMAKE may dislike drive designators in paths because 173# it misinterprets the colon as being part of a make rule. In that 174# case, all directories have to reside on the same drive. 175# 176 177OBJ = \tmp\obj # Object files 178TEMP = \tmp\bin # Temporary files during make process 179GAMEDIR = \games\nh343x11 # Game directory 180PLIBP = c:\emx\lib # Protected mode C libraries 181RLIBP = c:\emx\lib # Possible real mode C libraries 182 183# 184# The game name and description. 185# 186 187GAME = nethack 188GAMEDES = "NetHack 3.4.3" 189 190# 191# The uppermost two lines for MSC, the middle two for GCC, and 192# the lowermost two for CSet/2. 193# 194# GCC: compile only, compiler id, object format selection, warnings, 195# include file path, debug flags, ANSI conformance. 196# 197 198CFLAGS = -c $(GCCO) $(WARN) -I$(INCL) $(CDFLAGS) $(STDC) $(WINX11CFLAGS) 199#OPT = -s -O -o 200OPT = -o 201 202# 203# Compiler warning levels. These are really for development, so 204# they are commented out in general distribution to save the user 205# from masses of benign warnings. If any problems arise, however, 206# they may help in finding the trouble. 207# 208# GCC: max. reasonable GCC warning levels. Can't use -Wall, because then 209# it would whine about all the zillions of unused declarations etc. 210# Even with these switches you'll get a lot of warnings, but they should 211# all be benign. 212# 213 214WARN = #-W -Wimplicit -Wreturn-type -Wunused -Wformat -Wswitch -Wshadow -Wcast-qual -Wwrite-strings -DGCC_WARN # GCC 215 216# 217# GCC object format selection. The upper line for standard OS/2 OMF 218# object format, the lower for Unix style a.out format. 219# 220 221.IF $(format) == omf 222GCCO = -Zomf -Zsys 223.ELSE 224GCCO = 225.END 226 227# 228# MSC 5.1 needs the large model first pass of the compiler. 229# Not needed for later versions. 230# 231 232BIGC = 233 234# 235# Unset CL to avoid troubles with conflicting switches in MSC 6.0. 236# 237 238CL = 239 240# 241# Prepare for a debugger. 242# 243 244.IF $(debug) == yes 245CDFLAGS = 246LDFLAGS = 247.ELSE 248CDFLAGS = -O -s 249LDFLAGS = -s 250.END 251 252# 253# How to produce the most ANSI-like environment. 254# 255 256STDC = -ansi # GCC 257 258# 259# Possible system object files required during linking. 260# 261 262.IF $(format) == omf 263SYSOBJ = $(PLIBP)\crt0.obj $(PLIBP)\end.lib# GCC OMF 264.ELSE 265SYSOBJ = # MSC, GCC a.out, CSet/2 266.END 267 268# 269# Compiler library selection. Change if necessary. 270# 271# GCC emx 0.9 OMF: C single-threaded libs, Unix system call alias lib, 272# extra GCC lib, single threaded system lib, OS/2 API entry points. 273# Note that emx changed library naming convention between 0.8 and 0.9. 274# 275# GCC a.out: extra GCC lib, C standard lib, extra GCC lib (again), 276# OS/2 API entry points. 277# 278 279.IF $(format) == omf 280PLIBS = $(PLIBP)\st\c $(PLIBP)\st\c_app $(PLIBP)\c_alias $(PLIBP)\gcc $(PLIBP)\st\sys $(PLIBP)\os2 # GCC emx 0.9 OMF 281.ELSE 282PLIBS = -lgcc -lc -lgcc -los2 $(X11LIBS) # GCC a.out 283.END 284 285# 286# C libraries used by makedefs, lev_comp and dgn_comp (change if 287# necessary). If compilation is done in DOS, enable the upper line 288# possibly setting the library name to something else, if in OS/2, 289# enable the lower line (protected mode libraries). 290# 291 292#RLIBS = $(RLIBP)\llibcer 293RLIBS = $(PLIBS) 294 295SRCCC = $(CC) $(CFLAGS) $(OPT) $@ $(AB) 296UTILCC = $(BEG) cd $(UTIL) $(SEP) $(CC) $(CFLAGS) $(OPT) $@ $(AB) $(END) 297SYSCC = $(BEG) cd $(SYS) $(SEP) $(CC) $(CFLAGS) $(OPT) $@ $(AB) $(END) 298SSYSCC = $(BEG) cd $(SSYS) $(SEP) $(CC) $(CFLAGS) $(OPT) $@ $(AB) $(END) 299PSYSCC = $(BEG) cd $(SSYS) $(SEP) $(CC) $(CFLAGS) $(OPT) $@ pc$(AB) $(END) 300WINCC = $(BEG) cd $(WIN) $(SEP) $(CC) $(CFLAGS) $(OPT) $@ $(AB) $(END) 301 302# 303# Default linker skeletons. The upper six lines for everything 304# that uses standard OS/2 object format (GCC OMF), The lower six 305# for GCC a.out format. 306# 307 308.IF $(format) == omf 309GAMELN = $(LINK) @$(TEMP)\$(GAME).rsp 310MKDFLN = $(LINK) @$(TEMP)\makedefs.rsp 311LEVCLN = $(LINK) @$(TEMP)\lev_comp.rsp 312DGNCLN = $(LINK) @$(TEMP)\dgn_comp.rsp 313RCVRLN = $(LINK) @$(TEMP)\recover.rsp 314DLBRLN = $(LINK) @$(TEMP)\dlb.rsp 315.ELSE 316GAMELN = $(CC) $(LDFLAGS) -o $(GAMEDIR)\$(GAME).exe @$(TEMP)\$(GAME).r $(PLIBS) $(WINX11CFLAGS) $(WINX11LIB) 317MKDFLN = $(CC) $(LDFLAGS) -o $(TEMP)\makedefs.exe $(TEMP)\$(MKDFDEF) $(SYSOBJ) $(MAKEOBJS) $(PLIBS) 318LEVCLN = $(CC) $(LDFLAGS) -o $(TEMP)\lev_comp.exe $(TEMP)\$(LEVCDEF) $(SYSOBJ) $(SPLEVOBJS) $(PLIBS) 319DGNCLN = $(CC) $(LDFLAGS) -o $(TEMP)\dgn_comp.exe $(TEMP)\$(DGNCDEF) $(SYSOBJ) $(DGNCOMPOBJS) $(PLIBS) 320RCVRLN = $(CC) $(LDFLAGS) -o $(GAMEDIR)\recover.exe $(TEMP)\$(RCVRDEF) $(SYSOBJ) $(RECOVOBJS) $(PLIBS) 321 DLBRLN = $(CC) $(LDFLAGS) -o $(TEMP)\dlb.exe $(TEMP)\$(DLBDEF) $(SYSOBJ) $(DLBOBJS) $(PLIBS) 322.END 323 324# 325# OS/2 module definition files for NetHack, 326# makedefs, dgn_comp, lev_comp, recover, dlb. 327# 328 329GAMEDEF = $(GAME).def 330MKDFDEF = makedefs.def 331LEVCDEF = lev_comp.def 332DGNCDEF = dgn_comp.def 333RCVRDEF = recover.def 334DLBDEF = dlb.def 335 336# 337# For compilation in DOS, enable the lower three lines and 338# disable the upper three. 339# 340 341MKDFMD = $(TEMP)\$(MKDFDEF) 342LEVCMD = $(TEMP)\$(LEVCDEF) 343DGNCMD = $(TEMP)\$(DGNCDEF) 344#MKDFMD = 345#LEVCMD = 346#DGNCMD = 347 348# 349# Optional high-quality BSD random number generation routines 350# (see os2conf.h). Set to nothing if not used. 351# 352 353RANDOM = $(OBJ)\random.o 354#RANDOM = 355 356# 357# If TERMLIB is defined in os2conf.h, comment out the upper line and 358# uncomment the lower. If the termcap-library doesn't exist, use 359# sys\share\makefile.lib to build it. 360# 361 362TERMLIB = 363#TERMLIB = termlib.lib 364 365# 366# Short / long file name selection for FAT and HPFS. 367# Only three files need consideration. 368# 369 370#GUIDEBOO = Guideboo # FAT 371#PATCHLEV = patchlev # - " - 372#DATABASE = data.bas # - " - 373GUIDEBOO = Guidebook # HPFS 374PATCHLEV = patchlevel # - " - 375DATABASE = data.base # - " - 376 377 378# 379# If you have LaTeX and want to create the NetHack Guidebook in TeX 380# device-independent file format, comment out the upper line and 381# uncomment the lower. 382# 383 384GUIDE = 385#GUIDE = $(TEMP)\$(GUIDEBOO).dvi 386 387# 388# Set WINOBJ lines corresponding to your desired combination 389# of windowing systems. Also set windowing systems in config.h. 390# 391# A straight tty port using no native windowing system is the 392# only choice for now. 393# 394 395WINOBJ1 = $(OBJ)\getline.o 396WINOBJ2 = $(OBJ)\termcap.o 397WINOBJ3 = $(OBJ)\topl.o 398WINOBJ4 = $(OBJ)\wintty.o 399WINOBJ = $(WINOBJ1) $(WINOBJ2) $(WINOBJ3) $(WINOBJ4) $(WINX11OBJ) 400 401# 402# The default make target, so just typing 'make' is useful. 403# Has to be the first target in the makefile. 404# 405 406default : all 407 408# 409# If you have yacc and lex programs and make any changes, uncomment 410# the lowermost two lines and comment out the others. If you make 411# changes to the .y and .l files but prefer processing the files 412# separately elsewhere, activate the middle two lines, so your changes 413# don't get overwritten. 414# 415 416do_yacc : yacc_cpy # use pre-generated files 417do_lex : lex_cpy # - " - 418#do_yacc : yacc_msg # show message if changed 419#do_lex : lex_msg # - " - 420#do_yacc : yacc_act # re-process files 421#do_lex : lex_act # - " - 422 423# 424# If you have the TOUCH utility the upper line is ok. Otherwise 425# the lower one does the same albeit in an ugly manner. Besides, 426# the latter method only works for text files. 427# 428 429#do_touch : realtouch 430do_touch : faketouch 431 432# 433# If you don't have uudecode program, use the upper line. 434# If you still want the icon, you'll have to extract the 435# file manually somewhere else. 436# 437 438do_icon : icon_msg # show message if changed 439#do_icon : icon_act # extract icon file 440 441# 442# If you don't want to generate nethack.cmd, use the upper line. 443# This could be the case, e.g., if you use a different shell than 444# the standard cmd.exe. 445# 446 447#do_cmd : cmd_msg # show message 448do_cmd : cmd_act # generate nethack.cmd 449 450# 451# If you want to try the data librarian scheme to reduce 452# the amount of data files in the NetHack home directory, comment 453# out the lower line and uncomment the upper. Also, make sure 454# that DLB is defined in config.h. 455# 456 457do_dlb : dlb_yup 458#do_dlb : dlb_nope 459 460###################################################################### 461# 462# Nothing below this line should have to be changed. 463# 464# Other things that have to be reconfigured are in 465# config.h, os2conf.h and possibly system.h. 466# 467 468# 469# The game filename. 470# 471 472GAMEFILE = $(GAMEDIR)\$(GAME).exe 473 474# 475# Object files for makedefs. 476# 477 478MAKEOBJS = $(OBJ)\makedefs.o $(OBJ)\monst.o $(OBJ)\objects.o 479 480# 481# Object files for special levels compiler. 482# 483 484SOBJ01 = $(OBJ)\lev_yacc.o $(OBJ)\lev_lex.o $(OBJ)\lev_main.o $(OBJ)\alloc.o 485SOBJ02 = $(OBJ)\monst.o $(OBJ)\objects.o $(OBJ)\panic.o $(OBJ)\decl.o 486SOBJ03 = $(OBJ)\drawing.o 487 488SPLEVOBJS = $(SOBJ01) $(SOBJ02) $(SOBJ03) 489 490# 491# Object files for dungeon compiler. 492# 493 494DOBJ01 = $(OBJ)\dgn_yacc.o $(OBJ)\dgn_lex.o $(OBJ)\dgn_main.o 495DOBJ02 = $(OBJ)\panic.o $(OBJ)\alloc.o 496 497DGNCOMPOBJS = $(DOBJ01) $(DOBJ02) 498 499# 500# Object files for recovery utility. 501# 502 503RECOVOBJS = $(OBJ)\recover.o 504 505# 506# Object files for dlb. 507# 508 509DLBOBJS = $(OBJ)\dlb_main.o $(OBJ)\dlb.o $(OBJ)\alloc.o $(OBJ)\panic.o 510 511# 512# Data files for dlb. 513# 514 515DATHELP = \ 516 help hh cmdhelp history opthelp wizhelp 517 518SPEC_LEVS = \ 519 asmodeus.lev baalz.lev bigrm-1.lev \ 520 bigrm-2.lev bigrm-3.lev bigrm-4.lev castle.lev fakewiz1.lev fakewiz2.lev \ 521 juiblex.lev knox.lev medusa-1.lev medusa-2.lev minend-1.lev minend-2.lev \ 522 minend-3.lev minefill.lev minetn-1.lev minetn-2.lev minetn-3.lev minetn-4.lev \ 523 minetn-5.lev minetn-6.lev minetn-7.lev oracle.lev orcus.lev sanctum.lev \ 524 tower1.lev tower2.lev tower3.lev valley.lev wizard1.lev wizard2.lev \ 525 wizard3.lev astral.lev air.lev earth.lev fire.lev water.lev \ 526 soko1-1.lev soko1-2.lev soko2-1.lev soko2-2.lev \ 527 soko3-1.lev soko3-2.lev soko4-1.lev soko4-2.lev 528 529QUEST_LEVS = \ 530 Arc-goal.lev Arc-fila.lev Arc-filb.lev Arc-loca.lev Arc-strt.lev \ 531 Bar-goal.lev Bar-fila.lev Bar-filb.lev Bar-loca.lev Bar-strt.lev \ 532 Cav-goal.lev Cav-fila.lev Cav-filb.lev Cav-loca.lev Cav-strt.lev \ 533 Hea-goal.lev Hea-fila.lev Hea-filb.lev Hea-loca.lev Hea-strt.lev \ 534 Kni-goal.lev Kni-fila.lev Kni-filb.lev Kni-loca.lev Kni-strt.lev \ 535 Mon-goal.lev Mon-fila.lev Mon-filb.lev Mon-loca.lev Mon-strt.lev \ 536 Pri-goal.lev Pri-fila.lev Pri-filb.lev Pri-loca.lev Pri-strt.lev \ 537 Ran-goal.lev Ran-fila.lev Ran-filb.lev Ran-loca.lev Ran-strt.lev \ 538 Rog-goal.lev Rog-fila.lev Rog-filb.lev Rog-loca.lev Rog-strt.lev \ 539 Sam-goal.lev Sam-fila.lev Sam-filb.lev Sam-loca.lev Sam-strt.lev \ 540 Tou-goal.lev Tou-fila.lev Tou-filb.lev Tou-loca.lev Tou-strt.lev \ 541 Val-goal.lev Val-fila.lev Val-filb.lev Val-loca.lev Val-strt.lev \ 542 Wiz-goal.lev Wiz-fila.lev Wiz-filb.lev Wiz-loca.lev Wiz-strt.lev 543VARDATD = \ 544 data oracles options quest.dat rumors $(WINX11VARDAT) 545 546DATDLB = $(DATHELP) dungeon $(SPEC_LEVS) $(QUEST_LEVS) $(VARDATD) \ 547 $(do_dlb) 548 549# 550# Object files for the game itself. 551# 552 553VOBJ011 = $(OBJ)\allmain.o 554VOBJ012 = $(OBJ)\alloc.o 555VOBJ013 = $(OBJ)\apply.o 556VOBJ014 = $(OBJ)\artifact.o 557VOBJ021 = $(OBJ)\attrib.o 558VOBJ022 = $(OBJ)\ball.o 559VOBJ023 = $(OBJ)\bones.o 560VOBJ024 = $(OBJ)\botl.o 561VOBJ031 = $(OBJ)\cmd.o 562VOBJ032 = $(OBJ)\dbridge.o 563VOBJ033 = $(OBJ)\decl.o 564VOBJ034 = $(OBJ)\detect.o 565VOBJ041 = $(OBJ)\dig.o 566VOBJ042 = $(OBJ)\display.o 567VOBJ043 = $(OBJ)\dlb.o 568VOBJ044 = $(OBJ)\do.o 569VOBJ051 = $(OBJ)\do_name.o 570VOBJ052 = $(OBJ)\do_wear.o 571VOBJ053 = $(OBJ)\dog.o 572VOBJ054 = $(OBJ)\dogmove.o 573VOBJ061 = $(OBJ)\dokick.o 574VOBJ062 = $(OBJ)\dothrow.o 575VOBJ063 = $(OBJ)\drawing.o 576VOBJ064 = $(OBJ)\dungeon.o 577VOBJ071 = $(OBJ)\eat.o 578VOBJ072 = $(OBJ)\end.o 579VOBJ073 = $(OBJ)\engrave.o 580VOBJ074 = $(OBJ)\exper.o 581VOBJ071 = $(OBJ)\eat.o 582VOBJ072 = $(OBJ)\end.o 583VOBJ073 = $(OBJ)\engrave.o 584VOBJ074 = $(OBJ)\exper.o 585VOBJ081 = $(OBJ)\explode.o 586VOBJ082 = $(OBJ)\extralev.o 587VOBJ083 = $(OBJ)\files.o 588VOBJ084 = $(OBJ)\fountain.o 589VOBJ091 = $(OBJ)\hack.o 590VOBJ092 = $(OBJ)\hacklib.o 591VOBJ093 = $(OBJ)\invent.o 592VOBJ094 = $(OBJ)\light.o 593VOBJ101 = $(OBJ)\lock.o 594VOBJ102 = $(OBJ)\mail.o 595VOBJ103 = $(OBJ)\main.o 596VOBJ104 = $(OBJ)\makemon.o 597VOBJ111 = $(OBJ)\mapglyph.o 598VOBJ112 = $(OBJ)\mcastu.o 599VOBJ113 = $(OBJ)\mhitm.o 600VOBJ114 = $(OBJ)\mhitu.o 601VOBJ115 = $(OBJ)\minion.o 602VOBJ121 = $(OBJ)\mklev.o 603VOBJ122 = $(OBJ)\mkmap.o 604VOBJ123 = $(OBJ)\mkmaze.o 605VOBJ124 = $(OBJ)\mkobj.o 606VOBJ131 = $(OBJ)\mkroom.o 607VOBJ132 = $(OBJ)\mon.o 608VOBJ133 = $(OBJ)\mondata.o 609VOBJ134 = $(OBJ)\monmove.o 610VOBJ141 = $(OBJ)\monst.o 611VOBJ142 = $(OBJ)\monstr.o 612VOBJ143 = $(OBJ)\mplayer.o 613VOBJ144 = $(OBJ)\mthrowu.o 614VOBJ151 = $(OBJ)\muse.o 615VOBJ152 = $(OBJ)\music.o 616VOBJ153 = $(OBJ)\o_init.o 617VOBJ154 = $(OBJ)\objects.o 618VOBJ161 = $(OBJ)\objnam.o 619VOBJ162 = $(OBJ)\options.o 620VOBJ163 = $(OBJ)\os2.o 621VOBJ164 = $(OBJ)\pager.o 622VOBJ171 = $(OBJ)\pcsys.o 623VOBJ172 = $(OBJ)\pickup.o 624VOBJ173 = $(OBJ)\pline.o 625VOBJ174 = $(OBJ)\polyself.o 626VOBJ181 = $(OBJ)\potion.o 627VOBJ182 = $(OBJ)\pray.o 628VOBJ183 = $(OBJ)\priest.o 629VOBJ184 = $(OBJ)\quest.o 630VOBJ191 = $(OBJ)\questpgr.o 631VOBJ192 = $(OBJ)\read.o 632VOBJ193 = $(OBJ)\rect.o 633VOBJ194 = $(OBJ)\region.o 634VOBJ195 = $(OBJ)\restore.o 635VOBJ201 = $(OBJ)\rip.o 636VOBJ202 = $(OBJ)\rnd.o 637VOBJ203 = $(OBJ)\rumors.o 638VOBJ204 = $(OBJ)\save.o 639VOBJ211 = $(OBJ)\shk.o 640VOBJ212 = $(OBJ)\shknam.o 641VOBJ213 = $(OBJ)\sit.o 642VOBJ214 = $(OBJ)\sounds.o 643VOBJ221 = $(OBJ)\sp_lev.o 644VOBJ222 = $(OBJ)\spell.o 645VOBJ223 = $(OBJ)\steal.o 646VOBJ224 = $(OBJ)\teleport.o 647VOBJ231 = $(OBJ)\timeout.o 648VOBJ232 = $(OBJ)\topten.o 649VOBJ233 = $(OBJ)\track.o 650VOBJ234 = $(OBJ)\trap.o 651VOBJ241 = $(OBJ)\tty.o 652VOBJ242 = $(OBJ)\u_init.o 653VOBJ243 = $(OBJ)\uhitm.o 654VOBJ244 = $(OBJ)\unix.o 655VOBJ251 = $(OBJ)\vault.o 656VOBJ252 = $(OBJ)\vision.o 657VOBJ253 = $(OBJ)\vis_tab.o 658VOBJ254 = $(OBJ)\weapon.o 659VOBJ261 = $(OBJ)\were.o 660VOBJ262 = $(OBJ)\wield.o 661VOBJ263 = $(OBJ)\windows.o 662VOBJ264 = $(OBJ)\wizard.o 663VOBJ271 = $(OBJ)\worm.o 664VOBJ272 = $(OBJ)\worn.o 665VOBJ273 = $(OBJ)\write.o 666VOBJ274 = $(OBJ)\zap.o 667VOBJ281 = $(OBJ)\role.o 668VOBJ282 = $(OBJ)\steed.o 669 670VOBJ01 = $(VOBJ011) $(VOBJ012) $(VOBJ013) $(VOBJ014) 671VOBJ02 = $(VOBJ021) $(VOBJ022) $(VOBJ023) $(VOBJ024) 672VOBJ03 = $(VOBJ031) $(VOBJ032) $(VOBJ033) $(VOBJ034) 673VOBJ04 = $(VOBJ041) $(VOBJ042) $(VOBJ043) $(VOBJ044) 674VOBJ05 = $(VOBJ051) $(VOBJ052) $(VOBJ053) $(VOBJ054) 675VOBJ06 = $(VOBJ061) $(VOBJ062) $(VOBJ063) $(VOBJ064) 676VOBJ07 = $(VOBJ071) $(VOBJ072) $(VOBJ073) $(VOBJ074) 677VOBJ08 = $(VOBJ081) $(VOBJ082) $(VOBJ083) $(VOBJ084) 678VOBJ09 = $(VOBJ091) $(VOBJ092) $(VOBJ093) $(VOBJ094) 679VOBJ10 = $(VOBJ101) $(VOBJ102) $(VOBJ103) $(VOBJ104) 680VOBJ11 = $(VOBJ111) $(VOBJ112) $(VOBJ113) $(VOBJ114) $(VOBJ115) 681VOBJ12 = $(VOBJ121) $(VOBJ122) $(VOBJ123) $(VOBJ124) 682VOBJ13 = $(VOBJ131) $(VOBJ132) $(VOBJ133) $(VOBJ134) 683VOBJ14 = $(VOBJ141) $(VOBJ142) $(VOBJ143) $(VOBJ144) 684VOBJ15 = $(VOBJ151) $(VOBJ152) $(VOBJ153) $(VOBJ154) 685VOBJ16 = $(VOBJ161) $(VOBJ162) $(VOBJ163) $(VOBJ164) 686VOBJ17 = $(VOBJ171) $(VOBJ172) $(VOBJ173) $(VOBJ174) 687VOBJ18 = $(VOBJ181) $(VOBJ182) $(VOBJ183) $(VOBJ184) 688VOBJ19 = $(VOBJ191) $(VOBJ192) $(VOBJ193) $(VOBJ194) $(VOBJ195) 689VOBJ20 = $(VOBJ201) $(VOBJ202) $(VOBJ203) $(VOBJ204) 690VOBJ21 = $(VOBJ211) $(VOBJ212) $(VOBJ213) $(VOBJ214) 691VOBJ22 = $(VOBJ221) $(VOBJ222) $(VOBJ223) $(VOBJ224) 692VOBJ23 = $(VOBJ231) $(VOBJ232) $(VOBJ233) $(VOBJ234) 693VOBJ24 = $(VOBJ241) $(VOBJ242) $(VOBJ243) $(VOBJ244) 694VOBJ25 = $(VOBJ251) $(VOBJ252) $(VOBJ253) $(VOBJ254) 695VOBJ26 = $(VOBJ261) $(VOBJ262) $(VOBJ263) $(VOBJ264) 696VOBJ27 = $(VOBJ271) $(VOBJ272) $(VOBJ273) $(VOBJ274) 697VOBJ28 = $(VOBJ281) $(VOBJ282) 698VOBJ29 = $(WINOBJ) $(RANDOM) 699HHOBJ = $(OBJ)\version.o 700 701VOBJ = $(VOBJ01) $(VOBJ02) $(VOBJ03) $(VOBJ04) $(VOBJ05) $(VOBJ06) $(VOBJ07) \ 702 $(VOBJ08) $(VOBJ09) $(VOBJ10) $(VOBJ11) $(VOBJ12) $(VOBJ13) $(VOBJ14) \ 703 $(VOBJ15) $(VOBJ16) $(VOBJ17) $(VOBJ18) $(VOBJ19) $(VOBJ20) $(VOBJ21) \ 704 $(VOBJ22) $(VOBJ23) $(VOBJ24) $(VOBJ25) $(VOBJ26) $(VOBJ27) $(VOBJ28) \ 705 $(VOBJ29) 706HOBJ = $(VOBJ) $(HHOBJ) 707 708EXTERN_H = # $(INCL)\extern.h 709OS2CONF_H = $(INCL)\os2conf.h $(INCL)\micro.h $(INCL)\system.h $(EXTERN_H) 710GLOBAL_H = $(INCL)\global.h $(INCL)\coord.h $(OS2CONF_H) 711CONFIG_H = $(INCL)\config.h $(INCL)\config1.h $(INCL)\tradstdc.h $(GLOBAL_H) 712TRAP_H = $(INCL)\trap.h 713PERMONST_H = $(INCL)\permonst.h $(INCL)\monattk.h $(INCL)\monflag.h 714YOU_H = $(INCL)\you.h $(INCL)\attrib.h $(PERMONST_H) $(INCL)\mondata.h \ 715 $(INCL)\monst.h $(INCL)\youprop.h $(INCL)\prop.h $(INCL)\pm.h 716DECL_H = $(INCL)\decl.h $(INCL)\spell.h $(INCL)\obj.h $(YOU_H) \ 717 $(INCL)\onames.h $(INCL)\color.h 718HACK_H = $(CONFIG_H) $(DECL_H) $(INCL)\monsym.h $(INCL)\mkroom.h \ 719 $(INCL)\objclass.h $(TRAP_H) $(INCL)\engrave.h $(INCL)\flag.h \ 720 $(INCL)\rm.h $(INCL)\dungeon.h $(INCL)\hack.h $(INCL)\display.h \ 721 $(INCL)\vision.h $(INCL)\wintty.h $(INCL)\wintype.h $(INCL)\align.h \ 722 $(INCL)\winprocs.h 723 724# 725# The default target. 726# 727 728all : makedefs dgn_comp lev_comp recover $(GAME) dat $(GUIDE) 729 $(ECHO) Done. 730 731# 732# Definition file creation. 733# 734 735$(TEMP)\$(GAMEDEF) : 736 $(MAKEB) DD_NAME=$(GAME) DD_DESC=$(GAMEDES) DD_TARG=$@ do_def 737$(TEMP)\$(MKDFDEF) : 738 $(MAKEB) DD_NAME=makedefs DD_DESC="Definitions compiler" DD_TARG=$@ do_def 739$(TEMP)\$(DGNCDEF) : 740 $(MAKEB) DD_NAME=dgn_comp DD_DESC="Dungeon compiler" DD_TARG=$@ do_def 741$(TEMP)\$(LEVCDEF) : 742 $(MAKEB) DD_NAME=lev_comp DD_DESC="Level compiler" DD_TARG=$@ do_def 743$(TEMP)\$(RCVRDEF) : 744 $(MAKEB) DD_NAME=recover DD_DESC="Recovery utility" DD_TARG=$@ do_def 745$(TEMP)\$(DLBDEF) : 746 $(MAKEB) DD_NAME=dlb DD_DESC="Archive utility" DD_TARG=$@ do_def 747 748do_def : 749 $(ECHO) NAME $(DD_NAME) WINDOWCOMPAT> $(DD_TARG) 750 $(ECHO) DESCRIPTION '$(DD_DESC)'>> $(DD_TARG) 751 $(ECHO) PROTMODE>> $(DD_TARG) 752 $(ECHO) EXETYPE OS2>> $(DD_TARG) 753 754# 755# The main target. 756# 757 758$(GAME) : $(GAMEDIR)\$(GAME).exe 759$(GAME).exe : $(GAMEDIR)\$(GAME).exe 760$(GAMEDIR)\$(GAME).exe : $(TEMP)\$(GAME).rsp $(TEMP)\$(GAME).r 761 $(GAMELN) 762 763$(TEMP)\$(GAME).r : $(HOBJ) $(TEMP)\$(GAMEDEF) 764 $(ECHO) $(VOBJ011) > $@ 765 $(ECHO) $(VOBJ012) >> $@ 766 $(ECHO) $(VOBJ013) >> $@ 767 $(ECHO) $(VOBJ014) >> $@ 768 $(ECHO) $(VOBJ021) >> $@ 769 $(ECHO) $(VOBJ022) >> $@ 770 $(ECHO) $(VOBJ023) >> $@ 771 $(ECHO) $(VOBJ024) >> $@ 772 $(ECHO) $(VOBJ031) >> $@ 773 $(ECHO) $(VOBJ032) >> $@ 774 $(ECHO) $(VOBJ033) >> $@ 775 $(ECHO) $(VOBJ034) >> $@ 776 $(ECHO) $(VOBJ041) >> $@ 777 $(ECHO) $(VOBJ042) >> $@ 778 $(ECHO) $(VOBJ043) >> $@ 779 $(ECHO) $(VOBJ044) >> $@ 780 $(ECHO) $(VOBJ051) >> $@ 781 $(ECHO) $(VOBJ052) >> $@ 782 $(ECHO) $(VOBJ053) >> $@ 783 $(ECHO) $(VOBJ054) >> $@ 784 $(ECHO) $(VOBJ061) >> $@ 785 $(ECHO) $(VOBJ062) >> $@ 786 $(ECHO) $(VOBJ063) >> $@ 787 $(ECHO) $(VOBJ064) >> $@ 788 $(ECHO) $(VOBJ071) >> $@ 789 $(ECHO) $(VOBJ072) >> $@ 790 $(ECHO) $(VOBJ073) >> $@ 791 $(ECHO) $(VOBJ074) >> $@ 792 $(ECHO) $(VOBJ081) >> $@ 793 $(ECHO) $(VOBJ082) >> $@ 794 $(ECHO) $(VOBJ083) >> $@ 795 $(ECHO) $(VOBJ084) >> $@ 796 $(ECHO) $(VOBJ091) >> $@ 797 $(ECHO) $(VOBJ092) >> $@ 798 $(ECHO) $(VOBJ093) >> $@ 799 $(ECHO) $(VOBJ094) >> $@ 800 $(ECHO) $(VOBJ101) >> $@ 801 $(ECHO) $(VOBJ102) >> $@ 802 $(ECHO) $(VOBJ103) >> $@ 803 $(ECHO) $(VOBJ104) >> $@ 804 $(ECHO) $(VOBJ111) >> $@ 805 $(ECHO) $(VOBJ112) >> $@ 806 $(ECHO) $(VOBJ113) >> $@ 807 $(ECHO) $(VOBJ114) >> $@ 808 $(ECHO) $(VOBJ115) >> $@ 809 $(ECHO) $(VOBJ121) >> $@ 810 $(ECHO) $(VOBJ122) >> $@ 811 $(ECHO) $(VOBJ123) >> $@ 812 $(ECHO) $(VOBJ124) >> $@ 813 $(ECHO) $(VOBJ131) >> $@ 814 $(ECHO) $(VOBJ132) >> $@ 815 $(ECHO) $(VOBJ133) >> $@ 816 $(ECHO) $(VOBJ134) >> $@ 817 $(ECHO) $(VOBJ141) >> $@ 818 $(ECHO) $(VOBJ142) >> $@ 819 $(ECHO) $(VOBJ143) >> $@ 820 $(ECHO) $(VOBJ144) >> $@ 821 $(ECHO) $(VOBJ151) >> $@ 822 $(ECHO) $(VOBJ152) >> $@ 823 $(ECHO) $(VOBJ153) >> $@ 824 $(ECHO) $(VOBJ154) >> $@ 825 $(ECHO) $(VOBJ161) >> $@ 826 $(ECHO) $(VOBJ162) >> $@ 827 $(ECHO) $(VOBJ163) >> $@ 828 $(ECHO) $(VOBJ164) >> $@ 829 $(ECHO) $(VOBJ171) >> $@ 830 $(ECHO) $(VOBJ172) >> $@ 831 $(ECHO) $(VOBJ173) >> $@ 832 $(ECHO) $(VOBJ174) >> $@ 833 $(ECHO) $(VOBJ181) >> $@ 834 $(ECHO) $(VOBJ182) >> $@ 835 $(ECHO) $(VOBJ183) >> $@ 836 $(ECHO) $(VOBJ184) >> $@ 837 $(ECHO) $(VOBJ191) >> $@ 838 $(ECHO) $(VOBJ192) >> $@ 839 $(ECHO) $(VOBJ193) >> $@ 840 $(ECHO) $(VOBJ194) >> $@ 841 $(ECHO) $(VOBJ195) >> $@ 842 $(ECHO) $(VOBJ201) >> $@ 843 $(ECHO) $(VOBJ202) >> $@ 844 $(ECHO) $(VOBJ203) >> $@ 845 $(ECHO) $(VOBJ204) >> $@ 846 $(ECHO) $(VOBJ211) >> $@ 847 $(ECHO) $(VOBJ212) >> $@ 848 $(ECHO) $(VOBJ213) >> $@ 849 $(ECHO) $(VOBJ214) >> $@ 850 $(ECHO) $(VOBJ221) >> $@ 851 $(ECHO) $(VOBJ222) >> $@ 852 $(ECHO) $(VOBJ223) >> $@ 853 $(ECHO) $(VOBJ224) >> $@ 854 $(ECHO) $(VOBJ231) >> $@ 855 $(ECHO) $(VOBJ232) >> $@ 856 $(ECHO) $(VOBJ233) >> $@ 857 $(ECHO) $(VOBJ234) >> $@ 858 $(ECHO) $(VOBJ241) >> $@ 859 $(ECHO) $(VOBJ242) >> $@ 860 $(ECHO) $(VOBJ243) >> $@ 861 $(ECHO) $(VOBJ244) >> $@ 862 $(ECHO) $(VOBJ251) >> $@ 863 $(ECHO) $(VOBJ252) >> $@ 864 $(ECHO) $(VOBJ253) >> $@ 865 $(ECHO) $(VOBJ254) >> $@ 866 $(ECHO) $(VOBJ261) >> $@ 867 $(ECHO) $(VOBJ262) >> $@ 868 $(ECHO) $(VOBJ263) >> $@ 869 $(ECHO) $(VOBJ264) >> $@ 870 $(ECHO) $(VOBJ271) >> $@ 871 $(ECHO) $(VOBJ272) >> $@ 872 $(ECHO) $(VOBJ273) >> $@ 873 $(ECHO) $(VOBJ274) >> $@ 874 $(ECHO) $(VOBJ281) >> $@ 875 $(ECHO) $(VOBJ282) >> $@ 876 $(ECHO) $(WINOBJ1) >> $@ 877 $(ECHO) $(WINOBJ2) >> $@ 878 $(ECHO) $(WINOBJ3) >> $@ 879 $(ECHO) $(WINOBJ4) >> $@ 880 $(ECHO) $(HHOBJ) >> $@ 881 $(ECHO) $(RANDOM) >> $@ 882.IF $(with_x11) == yes 883 $(X11ECHO) $(WINX11OBJ01) >> $@ 884 $(X11ECHO) $(WINX11OBJ02) >> $@ 885 $(X11ECHO) $(WINX11OBJ03) >> $@ 886 $(X11ECHO) $(WINX11OBJ04) >> $@ 887 $(X11ECHO) $(WINX11OBJ05) >> $@ 888 $(X11ECHO) $(WINX11OBJ06) >> $@ 889 $(X11ECHO) $(WINX11OBJ07) >> $@ 890 $(X11ECHO) $(WINX11OBJ08) >> $@ 891 $(X11ECHO) $(WINX11OBJ09) >> $@ 892 $(X11ECHO) $(WINX11OBJ10) >> $@ 893 $(X11ECHO) $(WINX11OBJ11) >> $@ 894.END 895 896 897 898$(TEMP)\$(GAME).rsp : $(HOBJ) $(TEMP)\$(GAMEDEF) 899 $(ECHO) $(SYSOBJ) $(VOBJ01) +> $@ 900 $(ECHO) $(VOBJ02) +>> $@ 901 $(ECHO) $(VOBJ03) +>> $@ 902 $(ECHO) $(VOBJ04) +>> $@ 903 $(ECHO) $(VOBJ05) +>> $@ 904 $(ECHO) $(VOBJ06) +>> $@ 905 $(ECHO) $(VOBJ07) +>> $@ 906 $(ECHO) $(VOBJ08) +>> $@ 907 $(ECHO) $(VOBJ09) +>> $@ 908 $(ECHO) $(VOBJ10) +>> $@ 909 $(ECHO) $(VOBJ11) +>> $@ 910 $(ECHO) $(VOBJ12) +>> $@ 911 $(ECHO) $(VOBJ13) +>> $@ 912 $(ECHO) $(VOBJ14) +>> $@ 913 $(ECHO) $(VOBJ15) +>> $@ 914 $(ECHO) $(VOBJ16) +>> $@ 915 $(ECHO) $(VOBJ17) +>> $@ 916 $(ECHO) $(VOBJ18) +>> $@ 917 $(ECHO) $(VOBJ19) +>> $@ 918 $(ECHO) $(VOBJ20) +>> $@ 919 $(ECHO) $(VOBJ21) +>> $@ 920 $(ECHO) $(VOBJ22) +>> $@ 921 $(ECHO) $(VOBJ23) +>> $@ 922 $(ECHO) $(VOBJ24) +>> $@ 923 $(ECHO) $(VOBJ25) +>> $@ 924 $(ECHO) $(VOBJ26) +>> $@ 925 $(ECHO) $(VOBJ27) +>> $@ 926 $(ECHO) $(VOBJ28) +>> $@ 927 $(ECHO) $(VOBJ29) +>> $@ 928 $(ECHO) $(VOBJ30) +>> $@ 929 $(ECHO) $(HHOBJ)>> $@ 930 $(ECHO) $(GAMEDIR)\$(GAME).exe>> $@ 931 $(ECHO) $(TEMP)\$(GAME)>> $@ 932 $(ECHO) $(PLIBS) $(TERMLIB)>> $@ 933 $(ECHO) $(TEMP)\$(GAMEDEF) $(LFLAGS);>> $@ 934 935# 936# Targets for makedefs. 937# 938 939makedefs : $(TEMP)\makedefs.exe 940$(TEMP)\makedefs.exe : $(TEMP)\makedefs.rsp 941 $(MKDFLN) 942 943$(TEMP)\makedefs.rsp : $(MAKEOBJS) $(TEMP)\$(MKDFDEF) 944 $(ECHO) $(SYSOBJ) $(MAKEOBJS)> $@ 945 $(ECHO) $(TEMP)\makedefs.exe>> $@ 946 $(ECHO) nul>> $@ 947 $(ECHO) $(RLIBS)>> $@ 948 $(ECHO) $(MKDFMD) $(LFLAGS);>> $@ 949 950$(OBJ)\makedefs.o : $(UTIL)\$(CB) $(CONFIG_H) $(INCL)\permonst.h $(INCL)\objclass.h \ 951 $(INCL)\monsym.h $(INCL)\artilist.h $(INCL)\qtext.h 952 $(UTILCC) 953 954# 955# Targets for the special levels compiler. 956# 957 958lev_comp : $(TEMP)\lev_comp.exe 959$(TEMP)\lev_comp.exe : $(TEMP)\lev_comp.rsp 960 $(LEVCLN) 961 962$(TEMP)\lev_comp.rsp : $(SPLEVOBJS) $(TEMP)\$(LEVCDEF) 963 $(ECHO) $(SYSOBJ) $(SOBJ01) +> $@ 964 $(ECHO) $(SOBJ02) +>> $@ 965 $(ECHO) $(SOBJ03)>> $@ 966 $(ECHO) $(TEMP)\lev_comp.exe>> $@ 967 $(ECHO) nul>> $@ 968 $(ECHO) $(RLIBS)>> $@ 969 $(ECHO) $(LEVCMD) $(LFLAGS);>> $@ 970 971$(OBJ)\lev_yacc.o : $(UTIL)\$(CB) $(HACK_H) $(INCL)\sp_lev.h 972 $(UTILCC) 973$(OBJ)\lev_lex.o : $(UTIL)\$(CB) $(HACK_H) $(INCL)\sp_lev.h $(INCL)\lev_comp.h 974 $(UTILCC) 975$(OBJ)\lev_main.o : $(UTIL)\$(CB) $(HACK_H) $(INCL)\sp_lev.h $(INCL)\tcap.h 976 $(UTILCC) 977 978$(UTIL)\lev_yacc.c : $(UTIL)\lev_comp.y 979 $(MAKEB) YY=lev do_yacc 980 981$(UTIL)\lev_lex.c : $(UTIL)\lev_comp.l 982 $(MAKEB) YY=lev do_lex 983 984# 985# Targets for the dungeon compiler. 986# 987 988dgn_comp : $(TEMP)\dgn_comp.exe 989$(TEMP)\dgn_comp.exe : $(TEMP)\dgn_comp.rsp 990 $(DGNCLN) 991 992$(TEMP)\dgn_comp.rsp : $(DGNCOMPOBJS) $(TEMP)\$(DGNCDEF) 993 $(ECHO) $(SYSOBJ) $(DOBJ01) +> $@ 994 $(ECHO) $(DOBJ02)>> $@ 995 $(ECHO) $(TEMP)\dgn_comp.exe>> $@ 996 $(ECHO) nul>> $@ 997 $(ECHO) $(RLIBS)>> $@ 998 $(ECHO) $(DGNCMD) $(LFLAGS);>> $@ 999 1000$(OBJ)\dgn_yacc.o : $(UTIL)\$(CB) $(CONFIG_H) $(INCL)\date.h $(INCL)\dgn_file.h 1001 $(UTILCC) 1002$(OBJ)\dgn_lex.o : $(UTIL)\$(CB) $(CONFIG_H) $(INCL)\dgn_comp.h $(INCL)\dgn_file.h 1003 $(UTILCC) 1004$(OBJ)\dgn_main.o : $(UTIL)\$(CB) $(CONFIG_H) 1005 $(UTILCC) 1006 1007$(UTIL)\dgn_yacc.c : $(UTIL)\dgn_comp.y 1008 $(MAKEB) YY=dgn do_yacc 1009 1010$(UTIL)\dgn_lex.c : $(UTIL)\dgn_comp.l 1011 $(MAKEB) YY=dgn do_lex 1012 1013# 1014# For both lev_comp and dgn_comp. 1015# 1016 1017$(OBJ)\panic.o : $(UTIL)\$(CB) $(CONFIG_H) 1018 $(UTILCC) 1019 1020# 1021# Yacc and Lex targets. 1022# 1023 1024yacc_cpy : 1025 $(CP) $(SSYS)\$(YY)_yacc.c $(UTIL) 1026 $(CP) $(SSYS)\$(YY)_comp.h $(INCL) 1027 $(MAKEB) TT=$(UTIL)\$(YY)_yacc.c do_touch 1028 $(MAKEB) TT=$(INCL)\$(YY)_comp.h do_touch 1029 1030yacc_msg : 1031 $(ECHO) $(YY)_comp.y has changed. To update $(YY)_yacc.c and $(YY)_comp.h run $(YACC). 1032 1033yacc_act : 1034 $(YACC) -d $(UTIL)\$(YY)_comp.y 1035 $(CP) $(YTABC) $(UTIL)\$(YY)_yacc.c 1036 $(CP) $(YTABH) $(INCL)\$(YY)_comp.h 1037 $(RM) $(YTABC) 1038 $(RM) $(YTABH) 1039 1040lex_cpy : 1041 $(CP) $(SSYS)\$(YY)_lex.c $(UTIL) 1042 $(MAKEB) TT=$(UTIL)\$(YY)_lex.c do_touch 1043 1044lex_msg : 1045 $(ECHO) $(YY)_comp.l has changed. To update $(YY)_lex.c run $(LEX). 1046 1047lex_act : 1048 $(LEX) $(UTIL)\$(YY)_comp.l 1049 $(CP) $(LEXYYC) $(UTIL)\$(YY)_lex.c 1050 $(RM) $(LEXYYC) 1051 1052# 1053# Why must this be so kludgy? 1054# 1055 1056realtouch : 1057 $(TOUCH) $(TT) 1058 1059faketouch : 1060 $(BEG) $(CAT) $(TT) > $(TEMP)\foo.bar $(SEP) $(CP) $(TEMP)\foo.bar $(TT) $(SEP) $(RM) $(TEMP)\foo.bar $(END) 1061 1062# 1063# Targets for the recovery utility. 1064# 1065 1066recover : $(GAMEDIR)\recover.exe 1067$(GAMEDIR)\recover.exe : $(TEMP)\recover.rsp 1068 $(RCVRLN) 1069 1070$(TEMP)\recover.rsp : $(RECOVOBJS) $(TEMP)\$(RCVRDEF) 1071 $(ECHO) $(SYSOBJ) $(RECOVOBJS)> $@ 1072 $(ECHO) $(GAMEDIR)\recover.exe>> $@ 1073 $(ECHO) nul>> $@ 1074 $(ECHO) $(PLIBS)>> $@ 1075 $(ECHO) $(TEMP)\$(RCVRDEF) $(LFLAGS);>> $@ 1076 1077$(OBJ)\recover.o : $(UTIL)\$(CB) $(CONFIG_H) 1078 $(UTILCC) 1079 1080# 1081# Targets for the dlb. 1082# 1083 1084dlb : $(TEMP)\dlb.exe 1085$(TEMP)\dlb.exe : $(TEMP)\dlb.rsp 1086 $(DLBRLN) 1087 1088$(TEMP)\dlb.rsp : $(DLBOBJS) $(TEMP)\$(DLBDEF) 1089 $(ECHO) $(SYSOBJ) $(DLBOBJS)> $@ 1090 $(ECHO) $(TEMP)\dlb.exe>> $@ 1091 $(ECHO) nul>> $@ 1092 $(ECHO) $(PLIBS)>> $@ 1093 $(ECHO) $(TEMP)\$(DLBDEF) $(LFLAGS);>> $@ 1094 1095$(OBJ)\dlb_main.o : $(UTIL)\$(CB) $(CONFIG_H) $(INCL)\dlb.h 1096 $(UTILCC) 1097 1098$(GAMEDIR)\nhdat : $(WINX11VARDAT) 1099 $(MAKEB) do_dlb 1100 1101dlb_yup : dlb 1102 $(TEMP)\dlb cCf $(GAMEDIR) $(GAMEDIR)\nhdat $(DATDLB) 1103 -$(RM) $(GAMEDIR)\help 1104 -$(RM) $(GAMEDIR)\hh 1105 -$(RM) $(GAMEDIR)\cmdhelp 1106 -$(RM) $(GAMEDIR)\history 1107 -$(RM) $(GAMEDIR)\opthelp 1108 -$(RM) $(GAMEDIR)\wizhelp 1109 -$(RM) $(GAMEDIR)\asmodeus.lev 1110 -$(RM) $(GAMEDIR)\baalz.lev 1111 -$(RM) $(GAMEDIR)\bigrm-?.lev 1112 -$(RM) $(GAMEDIR)\castle.lev 1113 -$(RM) $(GAMEDIR)\fakewiz?.lev 1114 -$(RM) $(GAMEDIR)\juiblex.lev 1115 -$(RM) $(GAMEDIR)\knox.lev 1116 -$(RM) $(GAMEDIR)\medusa-?.lev 1117 -$(RM) $(GAMEDIR)\minend-?.lev 1118 -$(RM) $(GAMEDIR)\minefill.lev 1119 -$(RM) $(GAMEDIR)\minetn-?.lev 1120 -$(RM) $(GAMEDIR)\oracle.lev 1121 -$(RM) $(GAMEDIR)\orcus.lev 1122 -$(RM) $(GAMEDIR)\sanctum.lev 1123 -$(RM) $(GAMEDIR)\tower?.lev 1124 -$(RM) $(GAMEDIR)\valley.lev 1125 -$(RM) $(GAMEDIR)\wizard?.lev 1126 -$(RM) $(GAMEDIR)\astral.lev 1127 -$(RM) $(GAMEDIR)\air.lev 1128 -$(RM) $(GAMEDIR)\earth.lev 1129 -$(RM) $(GAMEDIR)\fire.lev 1130 -$(RM) $(GAMEDIR)\water.lev 1131 -$(RM) $(GAMEDIR)\???-goal.lev 1132 -$(RM) $(GAMEDIR)\???-fil?.lev 1133 -$(RM) $(GAMEDIR)\???-loca.lev 1134 -$(RM) $(GAMEDIR)\???-strt.lev 1135 -$(RM) $(GAMEDIR)\data 1136 -$(RM) $(GAMEDIR)\oracles 1137 -$(RM) $(GAMEDIR)\options 1138 -$(RM) $(GAMEDIR)\quest.dat 1139 -$(RM) $(GAMEDIR)\rumors 1140 -$(RM) $(GAMEDIR)\dungeon 1141 -$(RM) $(GAMEDIR)\soko?-?.lev 1142# -$(RM) $(GAMEDIR)\pet_mark.xbm 1143# -$(RM) $(GAMEDIR)\rip.xpm 1144 1145dlb_nope : 1146 $(ECHO) DLB not requested. 1147 1148# 1149# The following files depend on makedefs to be created. 1150# 1151# date.h should be remade every time any of the source or include 1152# files is modified. 1153# 1154 1155$(INCL)\date.h : $(VOBJ) $(TEMP)\makedefs.exe 1156 $(TEMP)\makedefs -v 1157 $(CP) $(DAT)\options $(GAMEDIR) 1158 $(RM) $(DAT)\options 1159 1160$(INCL)\onames.h : $(TEMP)\makedefs.exe 1161 $(TEMP)\makedefs -o 1162 1163$(INCL)\pm.h : $(TEMP)\makedefs.exe 1164 $(TEMP)\makedefs -p 1165 1166monstr.c : $(TEMP)\makedefs.exe 1167 $(TEMP)\makedefs -m 1168 1169$(OBJ)\monstr.o : $(CB) 1170 $(SRCCC) 1171 1172$(GAMEDIR)\data : $(DAT)\$(DATABASE) $(TEMP)\makedefs.exe 1173 $(TEMP)\makedefs -d 1174 $(CP) $(DAT)\data $(GAMEDIR) 1175 $(RM) $(DAT)\data 1176 1177$(GAMEDIR)\rumors : $(DAT)\rumors.tru $(DAT)\rumors.fal $(TEMP)\makedefs.exe 1178 $(TEMP)\makedefs -r 1179 $(CP) $(DAT)\rumors $(GAMEDIR) 1180 $(RM) $(DAT)\rumors 1181 1182$(GAMEDIR)\oracles : $(DAT)\oracles.txt $(TEMP)\makedefs.exe 1183 $(TEMP)\makedefs -h 1184 $(CP) $(DAT)\oracles $(GAMEDIR) 1185 $(RM) $(DAT)\oracles 1186 1187$(GAMEDIR)\quest.dat : $(DAT)\quest.txt $(TEMP)\makedefs.exe 1188 $(TEMP)\makedefs -q 1189 $(CP) $(DAT)\quest.dat $(GAMEDIR) 1190 $(RM) $(DAT)\quest.dat 1191 1192# 1193# Vision tables for algorithm D. 1194# 1195 1196vis_tab.c : $(INCL)\vis_tab.h 1197$(INCL)\vis_tab.h : $(TEMP)\makedefs.exe 1198 $(TEMP)\makedefs -z 1199 1200$(OBJ)\vis_tab.o : $(CB) 1201 $(SRCCC) 1202 1203# 1204# The following programs vary depending on what OS you are using. 1205# 1206 1207$(OBJ)\main.o : $(SSYS)\pc$(CB) $(HACK_H) $(INCL)\dlb.h 1208 $(PSYSCC) 1209$(OBJ)\tty.o : $(SSYS)\pc$(CB) $(HACK_H) $(INCL)\func_tab.h 1210 $(PSYSCC) 1211$(OBJ)\unix.o : $(SSYS)\pc$(CB) $(HACK_H) 1212 $(PSYSCC) 1213 1214# 1215# Other system specific modules. 1216# 1217 1218$(OBJ)\os2.o : $(SYS)\$(CB) $(HACK_H) $(INCL)\tcap.h $(INCL)\def_os2.h 1219 $(SYSCC) 1220$(OBJ)\pcsys.o : $(SSYS)\$(CB) $(HACK_H) 1221 $(SSYSCC) 1222 1223# 1224# Berkeley random(3) routines. 1225# 1226 1227$(OBJ)\random.o : $(SSYS)\$(CB) 1228 $(SSYSCC) 1229 1230# 1231# Window source. 1232# 1233 1234$(OBJ)\getline.o : $(WIN)\$(CB) $(HACK_H) $(INCL)\func_tab.h 1235 $(WINCC) 1236$(OBJ)\termcap.o : $(WIN)\$(CB) $(HACK_H) $(INCL)\tcap.h 1237 $(WINCC) 1238$(OBJ)\topl.o : $(WIN)\$(CB) $(HACK_H) $(INCL)\tcap.h 1239 $(WINCC) 1240$(OBJ)\wintty.o : $(WIN)\$(CB) $(HACK_H) $(INCL)\tcap.h 1241 $(WINCC) 1242 1243# 1244# Secondary targets. 1245# 1246 1247dat : spec_lev help_fil $(GAMEDIR)\dungeon $(GAMEDIR)\data $(GAMEDIR)\rumors \ 1248 $(GAMEDIR)\oracles $(GAMEDIR)\quest.dat $(GAMEDIR)\$(GAME).ico \ 1249 $(GAMEDIR)\$(GAME).cmd $(GAMEDIR)\nethack.cnf $(GAMEDIR)\nhdat \ 1250 $(WINX11VARDAT) 1251 1252help_fil : $(GAMEDIR)\cmdhelp $(GAMEDIR)\help $(GAMEDIR)\hh $(GAMEDIR)\history \ 1253 $(GAMEDIR)\license $(GAMEDIR)\opthelp $(GAMEDIR)\wizhelp 1254 1255$(GAMEDIR)\cmdhelp : $(DAT)\cmdhelp 1256 $(CP) $(DAT)\cmdhelp $(GAMEDIR) 1257$(GAMEDIR)\help : $(DAT)\help 1258 $(CP) $(DAT)\help $(GAMEDIR) 1259$(GAMEDIR)\hh : $(DAT)\hh 1260 $(CP) $(DAT)\hh $(GAMEDIR) 1261$(GAMEDIR)\history : $(DAT)\history 1262 $(CP) $(DAT)\history $(GAMEDIR) 1263$(GAMEDIR)\license : $(DAT)\license 1264 $(CP) $(DAT)\license $(GAMEDIR) 1265$(GAMEDIR)\opthelp : $(DAT)\opthelp 1266 $(CP) $(DAT)\opthelp $(GAMEDIR) 1267$(GAMEDIR)\wizhelp : $(DAT)\wizhelp 1268 $(CP) $(DAT)\wizhelp $(GAMEDIR) 1269 1270$(GAMEDIR)\dungeon : $(DAT)\dungeon.def $(TEMP)\makedefs.exe $(TEMP)\dgn_comp.exe 1271 $(TEMP)\makedefs -e 1272 $(TEMP)\dgn_comp $(DAT)\dungeon.pdf 1273 $(CP) $(DAT)\dungeon $(GAMEDIR) 1274 $(RM) $(DAT)\dungeon.pdf 1275 $(RM) $(DAT)\dungeon 1276 1277AFILES = $(GAMEDIR)\Arc-goal.lev 1278BFILES = $(GAMEDIR)\Bar-goal.lev 1279CFILES = $(GAMEDIR)\Cav-goal.lev 1280HFILES = $(GAMEDIR)\Hea-goal.lev 1281KFILES = $(GAMEDIR)\Kni-goal.lev 1282MFILES = $(GAMEDIR)\Mon-goal.lev 1283PFILES = $(GAMEDIR)\Pri-goal.lev 1284RANFILES = $(GAMEDIR)\Ran-goal.lev 1285RFILES = $(GAMEDIR)\Rog-goal.lev 1286SFILES = $(GAMEDIR)\Sam-goal.lev 1287TFILES = $(GAMEDIR)\Tou-goal.lev 1288VFILES = $(GAMEDIR)\Val-goal.lev 1289WFILES = $(GAMEDIR)\Wiz-goal.lev 1290 1291XFILES = $(AFILES) $(BFILES) $(CFILES) $(HFILES) $(KFILES) $(MFILES) \ 1292 $(PFILES) $(RANFILES) $(RFILES) $(SFILES) $(TFILES) $(VFILES) $(WFILES) 1293 1294spec_lev : $(GAMEDIR)\astral.lev $(GAMEDIR)\bigrm-1.lev $(GAMEDIR)\castle.lev \ 1295 $(GAMEDIR)\knox.lev $(GAMEDIR)\medusa-1.lev $(GAMEDIR)\minefill.lev \ 1296 $(GAMEDIR)\oracle.lev $(GAMEDIR)\tower1.lev $(GAMEDIR)\valley.lev \ 1297 $(GAMEDIR)\wizard1.lev $(GAMEDIR)\soko1-1.lev $(XFILES) 1298 1299# Single special level files 1300 1301$(GAMEDIR)\castle.lev : $(DAT)\castle.des $(TEMP)\lev_comp.exe 1302 $(MAKEB) LF=castle do_slev 1303$(GAMEDIR)\knox.lev : $(DAT)\knox.des $(TEMP)\lev_comp.exe 1304 $(MAKEB) LF=knox do_slev 1305$(GAMEDIR)\oracle.lev : $(DAT)\oracle.des $(TEMP)\lev_comp.exe 1306 $(MAKEB) LF=oracle do_slev 1307 1308do_slev : 1309 $(TEMP)\lev_comp $(DAT)\$(LF).des 1310 $(CP) $(LF).lev $(GAMEDIR) 1311 $(RM) $(LF).lev 1312 1313# Multiple special level files 1314 1315$(GAMEDIR)\astral.lev : $(DAT)\endgame.des $(TEMP)\lev_comp.exe 1316 $(TEMP)\lev_comp $(DAT)\endgame.des 1317 $(CP) air.lev $(GAMEDIR) 1318 $(CP) astral.lev $(GAMEDIR) 1319 $(CP) earth.lev $(GAMEDIR) 1320 $(CP) fire.lev $(GAMEDIR) 1321 $(CP) water.lev $(GAMEDIR) 1322 $(RM) air.lev 1323 $(RM) astral.lev 1324 $(RM) earth.lev 1325 $(RM) fire.lev 1326 $(RM) water.lev 1327 1328$(GAMEDIR)\bigrm-1.lev : $(DAT)\bigroom.des $(TEMP)\lev_comp.exe 1329 $(TEMP)\lev_comp $(DAT)\bigroom.des 1330 $(CP) bigrm-?.lev $(GAMEDIR) 1331 $(RM) bigrm-?.lev 1332 1333$(GAMEDIR)\medusa-1.lev : $(DAT)\medusa.des $(TEMP)\lev_comp.exe 1334 $(TEMP)\lev_comp $(DAT)\medusa.des 1335 $(CP) medusa-?.lev $(GAMEDIR) 1336 $(RM) medusa-?.lev 1337 1338$(GAMEDIR)\minefill.lev : $(DAT)\mines.des $(TEMP)\lev_comp.exe 1339 $(TEMP)\lev_comp $(DAT)\mines.des 1340 $(CP) minend-?.lev $(GAMEDIR) 1341 $(CP) minefill.lev $(GAMEDIR) 1342 $(CP) minetn-?.lev $(GAMEDIR) 1343 $(RM) minend-?.lev 1344 $(RM) minefill.lev 1345 $(RM) minetn-?.lev 1346 1347$(GAMEDIR)\tower1.lev : $(DAT)\tower.des $(TEMP)\lev_comp.exe 1348 $(TEMP)\lev_comp $(DAT)\tower.des 1349 $(CP) tower?.lev $(GAMEDIR) 1350 $(RM) tower?.lev 1351 1352$(GAMEDIR)\valley.lev : $(DAT)\gehennom.des $(TEMP)\lev_comp.exe 1353 $(TEMP)\lev_comp $(DAT)\gehennom.des 1354 $(CP) asmodeus.lev $(GAMEDIR) 1355 $(CP) baalz.lev $(GAMEDIR) 1356 $(CP) juiblex.lev $(GAMEDIR) 1357 $(CP) orcus.lev $(GAMEDIR) 1358 $(CP) sanctum.lev $(GAMEDIR) 1359 $(CP) valley.lev $(GAMEDIR) 1360 $(RM) asmodeus.lev 1361 $(RM) baalz.lev 1362 $(RM) juiblex.lev 1363 $(RM) orcus.lev 1364 $(RM) sanctum.lev 1365 $(RM) valley.lev 1366 1367$(GAMEDIR)\wizard1.lev : $(DAT)\yendor.des $(TEMP)\lev_comp.exe 1368 $(TEMP)\lev_comp $(DAT)\yendor.des 1369 $(CP) wizard?.lev $(GAMEDIR) 1370 $(CP) fakewiz?.lev $(GAMEDIR) 1371 $(RM) wizard?.lev 1372 $(RM) fakewiz?.lev 1373 1374$(GAMEDIR)\soko1-1.lev : $(DAT)\sokoban.des $(TEMP)\lev_comp.exe 1375 $(TEMP)\lev_comp $(DAT)\sokoban.des 1376 $(CP) soko?-?.lev $(GAMEDIR) 1377 $(RM) soko?-?.lev 1378 1379 1380# Quest dungeons 1381 1382$(AFILES) : $(DAT)\Arch.des $(TEMP)\lev_comp.exe 1383 $(MAKEB) QQ=Arc QF=Arch do_quest 1384$(BFILES) : $(DAT)\Barb.des $(TEMP)\lev_comp.exe 1385 $(MAKEB) QQ=Bar QF=Barb do_quest 1386$(CFILES) : $(DAT)\Caveman.des $(TEMP)\lev_comp.exe 1387 $(MAKEB) QQ=Cav QF=Caveman do_quest 1388$(HFILES) : $(DAT)\Healer.des $(TEMP)\lev_comp.exe 1389 $(MAKEB) QQ=Hea QF=Healer do_quest 1390$(KFILES) : $(DAT)\Knight.des $(TEMP)\lev_comp.exe 1391 $(MAKEB) QQ=Kni QF=Knight do_quest 1392$(MFILES) : $(DAT)\Monk.des $(TEMP)\lev_comp.exe 1393 $(MAKEB) QQ=Mon QF=Monk do_quest 1394$(PFILES) : $(DAT)\Priest.des $(TEMP)\lev_comp.exe 1395 $(MAKEB) QQ=Pri QF=Priest do_quest 1396$(RANFILES) : $(DAT)\Ranger.des $(TEMP)\lev_comp.exe 1397 $(MAKEB) QQ=Ran QF=Ranger do_quest 1398$(RFILES) : $(DAT)\Rogue.des $(TEMP)\lev_comp.exe 1399 $(MAKEB) QQ=Rog QF=Rogue do_quest 1400$(SFILES) : $(DAT)\Samurai.des $(TEMP)\lev_comp.exe 1401 $(MAKEB) QQ=Sam QF=Samurai do_quest 1402$(TFILES) : $(DAT)\Tourist.des $(TEMP)\lev_comp.exe 1403 $(MAKEB) QQ=Tou QF=Tourist do_quest 1404$(VFILES) : $(DAT)\Valkyrie.des $(TEMP)\lev_comp.exe 1405 $(MAKEB) QQ=Val QF=Valkyrie do_quest 1406$(WFILES) : $(DAT)\Wizard.des $(TEMP)\lev_comp.exe 1407 $(MAKEB) QQ=Wiz QF=Wizard do_quest 1408 1409do_quest : 1410 $(TEMP)\lev_comp $(DAT)\$(QF).des 1411 $(CP) $(QQ)-fil?.lev $(GAMEDIR) 1412 $(CP) $(QQ)-goal.lev $(GAMEDIR) 1413 $(CP) $(QQ)-loca.lev $(GAMEDIR) 1414 $(CP) $(QQ)-strt.lev $(GAMEDIR) 1415 $(RM) $(QQ)-fil?.lev 1416 $(RM) $(QQ)-goal.lev 1417 $(RM) $(QQ)-loca.lev 1418 $(RM) $(QQ)-strt.lev 1419 1420# 1421# NetHack icon for Presentation Manager. 1422# 1423 1424$(GAMEDIR)\$(GAME).ico : $(SYS)\nhpmico.uu 1425 $(MAKEB) do_icon 1426 1427icon_msg : 1428 $(ECHO) Icon file not extracted. Extract manually if required. 1429 1430icon_act : 1431 $(UUDECODE) $(SYS)\nhpmico.uu 1432 $(CP) nethack.ico $(GAMEDIR)\$(GAME).ico 1433 $(RM) nethack.ico 1434 1435# 1436# NetHack command file to use with Presentation Manager. 1437# 1438 1439$(GAMEDIR)\$(GAME).cmd : 1440 $(MAKEB) CMDF=$@ do_cmd 1441 1442cmd_msg : 1443 $(ECHO) Command file not created. Create manually if required. 1444 1445cmd_act : 1446 $(ECHO) @echo off> $(CMDF) 1447 $(ECHO) REM Command file for starting nethack.exe from PM/WPS Desktop>> $(CMDF) 1448 $(ECHO) $(GAME).exe $(P)1 $(P)2 $(P)3 $(P)4 $(P)5 $(P)6 $(P)7>> $(CMDF) 1449 $(ECHO) pause>> $(CMDF) 1450 1451# 1452# NetHack configuration file. Will not overwrite an existing file. 1453# 1454 1455$(GAMEDIR)\nethack.cnf : 1456 $(CP) $(SSYS)\nethack.cnf $(GAMEDIR) 1457 1458# 1459# Documentation. 1460# 1461 1462$(TEMP)\$(GUIDEBOO).dvi : $(DOC)\$(GUIDEBOO).tex 1463 $(LATEX) $(DOC)\$(GUIDEBOO).tex 1464 $(CP) $(GUIDEBOO).dvi $(TEMP) 1465 $(CP) $(GUIDEBOO).aux $(TEMP) 1466 $(CP) $(GUIDEBOO).log $(TEMP) 1467 $(RM) $(GUIDEBOO).dvi 1468 $(RM) $(GUIDEBOO).aux 1469 $(RM) $(GUIDEBOO).log 1470 1471# 1472# Housekeeping. 1473# 1474 1475clean : 1476 -$(RM) $(OBJ)\*.o 1477 1478spotless : clean 1479 -$(RM) $(INCL)\date.h 1480 -$(RM) $(INCL)\onames.h 1481 -$(RM) $(INCL)\pm.h 1482 -$(RM) $(INCL)\vis_tab.h 1483 -$(RM) vis_tab.c 1484 -$(RM) monstr.c 1485 -$(RM) *.lev 1486 -$(RM) nethack.ico 1487 -$(RM) $(TEMP)\makedefs.exe 1488 -$(RM) $(TEMP)\lev_comp.exe 1489 -$(RM) $(TEMP)\dgn_comp.exe 1490 -$(RM) $(TEMP)\*.rsp 1491 -$(RM) $(TEMP)\*.def 1492 -$(RM) $(TEMP)\*.map 1493 -$(RM) $(TEMP)\$(GUIDEBOO).dvi 1494 -$(RM) $(TEMP)\$(GUIDEBOO).aux 1495 -$(RM) $(TEMP)\$(GUIDEBOO).log 1496 1497# 1498# Main source. 1499# 1500# Default rules are sooo difficult for so many make 1501# programs that we do this the most straightforward way. 1502# 1503 1504$(OBJ)\allmain.o : $(SRC)\$(CB) $(HACK_H) 1505 $(SRCCC) 1506$(OBJ)\alloc.o : $(SRC)\$(CB) $(CONFIG_H) 1507 $(SRCCC) 1508$(OBJ)\apply.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\edog.h 1509 $(SRCCC) 1510$(OBJ)\artifact.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\artifact.h $(INCL)\artilist.h 1511 $(SRCCC) 1512$(OBJ)\attrib.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\artifact.h 1513 $(SRCCC) 1514$(OBJ)\ball.o : $(SRC)\$(CB) $(HACK_H) 1515 $(SRCCC) 1516$(OBJ)\bones.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\lev.h 1517 $(SRCCC) 1518$(OBJ)\botl.o : $(SRC)\$(CB) $(HACK_H) 1519 $(SRCCC) 1520$(OBJ)\cmd.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\func_tab.h 1521 $(SRCCC) 1522$(OBJ)\dbridge.o : $(SRC)\$(CB) $(HACK_H) 1523 $(SRCCC) 1524$(OBJ)\decl.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\quest.h 1525 $(SRCCC) 1526$(OBJ)\detect.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\artifact.h 1527 $(SRCCC) 1528$(OBJ)\dig.o : $(SRC)\$(CB) $(HACK_H) 1529 $(SRCCC) 1530$(OBJ)\display.o : $(SRC)\$(CB) $(HACK_H) 1531 $(SRCCC) 1532$(OBJ)\dlb.o : $(SRC)\$(CB) $(CONFIG_H) $(INCL)\dlb.h 1533 $(SRCCC) 1534$(OBJ)\do.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\lev.h 1535 $(SRCCC) 1536$(OBJ)\do_name.o : $(SRC)\$(CB) $(HACK_H) 1537 $(SRCCC) 1538$(OBJ)\do_wear.o : $(SRC)\$(CB) $(HACK_H) 1539 $(SRCCC) 1540$(OBJ)\dog.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\edog.h 1541 $(SRCCC) 1542$(OBJ)\dogmove.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h 1543 $(SRCCC) 1544$(OBJ)\dokick.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\eshk.h 1545 $(SRCCC) 1546$(OBJ)\dothrow.o : $(SRC)\$(CB) $(HACK_H) 1547 $(SRCCC) 1548$(OBJ)\drawing.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\tcap.h 1549 $(SRCCC) 1550$(OBJ)\dungeon.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\dgn_file.h 1551 $(SRCCC) 1552$(OBJ)\eat.o : $(SRC)\$(CB) $(HACK_H) 1553 $(SRCCC) 1554$(OBJ)\end.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\eshk.h 1555 $(SRCCC) 1556$(OBJ)\engrave.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\lev.h 1557 $(SRCCC) 1558$(OBJ)\exper.o : $(SRC)\$(CB) $(HACK_H) 1559 $(SRCCC) 1560$(OBJ)\explode.o : $(SRC)\$(CB) $(HACK_H) 1561 $(SRCCC) 1562$(OBJ)\extralev.o : $(SRC)\$(CB) $(HACK_H) 1563 $(SRCCC) 1564$(OBJ)\files.o : $(SRC)\$(CB) $(HACK_H) 1565 $(SRCCC) 1566$(OBJ)\fountain.o : $(SRC)\$(CB) $(HACK_H) 1567 $(SRCCC) 1568$(OBJ)\hack.o : $(SRC)\$(CB) $(HACK_H) 1569 $(SRCCC) 1570$(OBJ)\hacklib.o : $(SRC)\$(CB) $(HACK_H) 1571 $(SRCCC) 1572$(OBJ)\invent.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\artifact.h 1573 $(SRCCC) 1574$(OBJ)\light.o : $(SRC)\$(CB) $(HACK_H) 1575 $(SRCCC) 1576$(OBJ)\lock.o : $(SRC)\$(CB) $(HACK_H) 1577 $(SRCCC) 1578$(OBJ)\mail.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\mail.h 1579 $(SRCCC) 1580$(OBJ)\makemon.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\epri.h $(INCL)\emin.h 1581 $(SRCCC) 1582$(OBJ)\mapglyph.o : $(SRC)\$(CB) $(HACK_H) 1583 $(SRCCC) 1584$(OBJ)\mcastu.o : $(SRC)\$(CB) $(HACK_H) 1585 $(SRCCC) 1586$(OBJ)\mhitm.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h 1587 $(SRCCC) 1588$(OBJ)\mhitu.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h 1589 $(SRCCC) 1590$(OBJ)\minion.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\emin.h $(INCL)\epri.h 1591 $(SRCCC) 1592$(OBJ)\mklev.o : $(SRC)\$(CB) $(HACK_H) 1593 $(SRCCC) 1594$(OBJ)\mkmap.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\sp_lev.h 1595 $(SRCCC) 1596$(OBJ)\mkmaze.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\sp_lev.h 1597 $(SRCCC) 1598$(OBJ)\mkobj.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\artifact.h 1599 $(SRCCC) 1600$(OBJ)\mkroom.o : $(SRC)\$(CB) $(HACK_H) 1601 $(SRCCC) 1602$(OBJ)\mon.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h 1603 $(SRCCC) 1604$(OBJ)\mondata.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\eshk.h $(INCL)\epri.h 1605 $(SRCCC) 1606$(OBJ)\monmove.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h 1607 $(SRCCC) 1608$(OBJ)\monst.o : $(SRC)\$(CB) $(CONFIG_H) $(PERMONST_H) $(INCL)\monsym.h $(INCL)\eshk.h $(INCL)\vault.h $(INCL)\epri.h $(INCL)\color.h 1609 $(SRCCC) 1610$(OBJ)\mplayer.o : $(SRC)\$(CB) $(HACK_H) 1611 $(SRCCC) 1612$(OBJ)\mthrowu.o : $(SRC)\$(CB) $(HACK_H) 1613 $(SRCCC) 1614$(OBJ)\muse.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\edog.h 1615 $(SRCCC) 1616$(OBJ)\music.o : $(SRC)\$(CB) $(HACK_H) 1617 $(SRCCC) 1618$(OBJ)\o_init.o : $(SRC)\$(CB) $(HACK_H) 1619 $(SRCCC) 1620$(OBJ)\objects.o : $(SRC)\$(CB) $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h $(INCL)\prop.h $(INCL)\color.h 1621 $(SRCCC) 1622$(OBJ)\objnam.o : $(SRC)\$(CB) $(HACK_H) 1623 $(SRCCC) 1624$(OBJ)\options.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\tcap.h 1625 $(SRCCC) 1626$(OBJ)\pager.o : $(SRC)\$(CB) $(HACK_H) 1627 $(SRCCC) 1628$(OBJ)\pickup.o : $(SRC)\$(CB) $(HACK_H) 1629 $(SRCCC) 1630$(OBJ)\pline.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\epri.h 1631 $(SRCCC) 1632$(OBJ)\polyself.o : $(SRC)\$(CB) $(HACK_H) 1633 $(SRCCC) 1634$(OBJ)\potion.o : $(SRC)\$(CB) $(HACK_H) 1635 $(SRCCC) 1636$(OBJ)\pray.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\epri.h 1637 $(SRCCC) 1638$(OBJ)\priest.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\mfndpos.h $(INCL)\eshk.h $(INCL)\epri.h $(INCL)\emin.h 1639 $(SRCCC) 1640$(OBJ)\quest.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\quest.h $(INCL)\qtext.h 1641 $(SRCCC) 1642$(OBJ)\questpgr.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\qtext.h 1643 $(SRCCC) 1644$(OBJ)\read.o : $(SRC)\$(CB) $(HACK_H) 1645 $(SRCCC) 1646$(OBJ)\region.o : $(SRC)\$(CB) $(HACK_H) 1647 $(SRCCC) 1648$(OBJ)\rect.o : $(SRC)\$(CB) $(HACK_H) 1649 $(SRCCC) 1650$(OBJ)\restore.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\lev.h $(INCL)\tcap.h $(INCL)\quest.h 1651 $(SRCCC) 1652$(OBJ)\rip.o : $(SRC)\$(CB) $(HACK_H) 1653 $(SRCCC) 1654$(OBJ)\rnd.o : $(SRC)\$(CB) $(HACK_H) 1655 $(SRCCC) 1656$(OBJ)\role.o : $(SRC)\$(CB) $(HACK_H) 1657 $(SRCCC) 1658$(OBJ)\rumors.o : $(SRC)\$(CB) $(HACK_H) 1659 $(SRCCC) 1660$(OBJ)\save.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\lev.h $(INCL)\quest.h 1661 $(SRCCC) 1662$(OBJ)\shk.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\eshk.h 1663 $(SRCCC) 1664$(OBJ)\shknam.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\eshk.h 1665 $(SRCCC) 1666$(OBJ)\sit.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\artifact.h 1667 $(SRCCC) 1668$(OBJ)\sounds.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\edog.h $(INCL)\eshk.h 1669 $(SRCCC) 1670$(OBJ)\sp_lev.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\sp_lev.h $(INCL)\rect.h 1671 $(SRCCC) 1672$(OBJ)\spell.o : $(SRC)\$(CB) $(HACK_H) 1673 $(SRCCC) 1674$(OBJ)\steal.o : $(SRC)\$(CB) $(HACK_H) 1675 $(SRCCC) 1676$(OBJ)\steed.o : $(SRC)\$(CB) $(HACK_H) 1677 $(SRCCC) 1678$(OBJ)\teleport.o : $(SRC)\$(CB) $(HACK_H) 1679 $(SRCCC) 1680$(OBJ)\timeout.o : $(SRC)\$(CB) $(HACK_H) 1681 $(SRCCC) 1682$(OBJ)\topten.o : $(SRC)\$(CB) $(HACK_H) 1683 $(SRCCC) 1684$(OBJ)\track.o : $(SRC)\$(CB) $(HACK_H) 1685 $(SRCCC) 1686$(OBJ)\trap.o : $(SRC)\$(CB) $(HACK_H) 1687 $(SRCCC) 1688$(OBJ)\u_init.o : $(SRC)\$(CB) $(HACK_H) 1689 $(SRCCC) 1690$(OBJ)\uhitm.o : $(SRC)\$(CB) $(HACK_H) 1691 $(SRCCC) 1692$(OBJ)\vault.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\vault.h 1693 $(SRCCC) 1694$(OBJ)\version.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\date.h $(INCL)\$(PATCHLEV).h 1695 $(SRCCC) 1696$(OBJ)\vision.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\vis_tab.h 1697 $(SRCCC) 1698$(OBJ)\weapon.o : $(SRC)\$(CB) $(HACK_H) 1699 $(SRCCC) 1700$(OBJ)\were.o : $(SRC)\$(CB) $(HACK_H) 1701 $(SRCCC) 1702$(OBJ)\wield.o : $(SRC)\$(CB) $(HACK_H) 1703 $(SRCCC) 1704$(OBJ)\windows.o : $(SRC)\$(CB) $(HACK_H) 1705 $(SRCCC) 1706$(OBJ)\wizard.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\qtext.h 1707 $(SRCCC) 1708$(OBJ)\worm.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\lev.h 1709 $(SRCCC) 1710$(OBJ)\worn.o : $(SRC)\$(CB) $(HACK_H) 1711 $(SRCCC) 1712$(OBJ)\write.o : $(SRC)\$(CB) $(HACK_H) 1713 $(SRCCC) 1714$(OBJ)\zap.o : $(SRC)\$(CB) $(HACK_H) 1715 $(SRCCC) 1716 1717$(OBJ)/Window.o: $(WINX11)\Window.c $(INCL)\xwindowp.h $(INCL)\xwindow.h \ 1718 $(CONFIG_H) 1719 $(CC) -o$(OBJ)\Window.o $(CFLAGS) -c $(WINX11)\Window.c 1720$(OBJ)/dialogs.o: $(WINX11)\dialogs.c $(CONFIG_H) 1721 $(CC) -o$(OBJ)\dialogs.o $(CFLAGS) -c $(WINX11)\dialogs.c 1722$(OBJ)/winX.o: $(WINX11)\winX.c $(HACK_H) $(INCL)\winX.h $(INCL)\dlb.h \ 1723 $(INCL)\patchlevel.h $(WINX11)\nh72icon \ 1724 $(WINX11)\nh56icon $(WINX11)\nh32icon 1725 $(CC) $(CFLAGS) -c $(WINX11)\winX.c -o$(OBJ)\winX.o 1726$(OBJ)/winmap.o: $(WINX11)\winmap.c $(INCL)\xwindow.h $(HACK_H) $(INCL)\dlb.h \ 1727 $(INCL)\winX.h $(INCL)\tile2x11.h 1728 $(CC) $(CFLAGS) -c $(WINX11)\winmap.c -o $(OBJ)\winmap.o 1729$(OBJ)/winmenu.o: $(WINX11)\winmenu.c $(HACK_H) $(INCL)\winX.h 1730 $(CC) $(CFLAGS) -c $(WINX11)\winmenu.c -o $(OBJ)\winmenu.o 1731$(OBJ)/winmesg.o: $(WINX11)\winmesg.c $(INCL)\xwindow.h $(HACK_H) $(INCL)\winX.h 1732 $(CC) $(CFLAGS) -c $(WINX11)\winmesg.c -o$(OBJ)\winmesg.o 1733$(OBJ)/winmisc.o: $(WINX11)\winmisc.c $(HACK_H) $(INCL)\func_tab.h \ 1734 $(INCL)\winX.h 1735 $(CC) $(CFLAGS) -c $(WINX11)\winmisc.c -o$(OBJ)\winmisc.o 1736$(OBJ)/winstat.o: $(WINX11)\winstat.c $(HACK_H) $(INCL)\winX.h 1737 $(CC) $(CFLAGS) -c $(WINX11)\winstat.c -o$(OBJ)\winstat.o 1738$(OBJ)/wintext.o: $(WINX11)\wintext.c $(HACK_H) $(INCL)\winX.h $(INCL)\xwindow.h 1739 $(CC) $(CFLAGS) -c $(WINX11)\wintext.c -o$(OBJ)\wintext.o 1740$(OBJ)/winval.o: $(WINX11)\winval.c $(HACK_H) $(INCL)\winX.h 1741 $(CC) $(CFLAGS) -c $(WINX11)\winval.c -o$(OBJ)\winval.o 1742 1743$(OBJ)/tile.o: $(NHSRC)\src\tile.c $(HACK_H) 1744 $(CC) $(CFLAGS) -c $(NHSRC)\src\tile.c -o$(OBJ)\tile.o 1745 1746$(TEMP)\tilemap.exe: ..\win\share\tilemap.c $(HACK_H) 1747 $(CC) $(GCCO) $(WARN) -I$(INCL) $(CDFLAGS) $(STDC) $(WINX11CFLAGS) $(LFLAGS) -o $(TEMP)\tilemap.exe ..\win\share\tilemap.c $(LIBS) 1748$(NHSRC)\src\tile.c: $(TEMP)\tilemap.exe 1749 $(TEMP)\tilemap 1750 1751x11tiles: $(TEMP)\tile2x11.exe $(WINSHARE)\monsters.txt \ 1752 $(WINSHARE)\objects.txt \ 1753 $(WINSHARE)\other.txt 1754 $(TEMP)\tile2x11.exe $(WINSHARE)\monsters.txt $(WINSHARE)\objects.txt \ 1755 $(WINSHARE)\other.txt 1756 $(CP) x11tiles $(GAMEDIR)\x11tiles 1757 1758TEXT_IO = $(OBJ)\tiletext.o \ 1759 $(OBJ)\tiletxt.o \ 1760 $(OBJ)\drawing.o \ 1761 $(OBJ)\decl.o \ 1762 $(OBJ)\monst.o \ 1763 $(OBJ)\objects.o 1764 1765$(OBJ)\tiletext.o: ../win/share/tiletext.c $(CONFIG_H) $(WINSHARE)\tile.h 1766 $(CC) $(CFLAGS) -c $(WINSHARE)\tiletext.c -o$(OBJ)\tiletext.o 1767$(OBJ)\tiletxt.o: $(WINSHARE)\tilemap.c $(HACK_H) 1768 $(CC) $(CFLAGS) -c -DTILETEXT $(WINSHARE)\tilemap.c -o$(OBJ)\tiletxt.o 1769 1770$(TEMP)\tile2x11.exe: $(OBJ)\tile2x11.o $(TEXT_IO) 1771 $(CC) $(LFLAGS) -o $(TEMP)\tile2x11.exe $(OBJ)\tile2x11.o $(TEXT_IO) $(LIBS) 1772 1773pet_mark.xbm: $(WINX11)\pet_mark.xbm 1774 $(CP) $(WINX11)\pet_mark.xbm $(GAMEDIR)\pet_mark.xbm 1775 1776rip.xpm: $(WINX11)\rip.xpm 1777 $(CP) $(WINX11)\rip.xpm $(GAMEDIR)\rip.xpm 1778 1779$(OBJ)\tile2x11.o : $(WINX11)\tile2x11.c $(INCL)\tile2x11.h 1780 $(CC) $(CFLAGS) -o$(OBJ)\tile2x11.o -c $(WINX11)\tile2x11.c \ 1781 -I$(WINSHARE) 1782 1783