1# NetHack Makefile. 2# SCCS Id: @(#)Makefile.agc 3.2 2000/01/12 3# Copyright (c) Kenneth Lorber, Bethesda, Maryland, 1991,1992,1993,1996. 4# NetHack may be freely redistributed. See license for details. 5 6### 7### modified for gcc by Teemu Suikki (zu@iki.fi) 8### 9### note: you need to use smake.. sorry 10### 11 12### 13### DIRECTORY STRUCTURE 14### 15 16NH = nh: 17 18SBIN = $(NH)sbin/ 19SLIB = $(NH)slib/ 20NETHACK = $(NH)NetHack/ 21HACKEXE = $(NH)HackExe/ 22AMI = $(NH)sys/amiga/ 23DAT = $(NH)dat/ 24DOC = $(NH)doc/ 25I = $(NH)include/ 26SHARE = $(NH)sys/share/ 27NHS = $(NH)src/ 28TTY = $(NH)win/tty/ 29WSHARE = $(NH)win/share/ 30UTIL = $(NH)util/ 31O = $(NH)obj/ 32OO = $(NH)objo/ 33# NB: O and OO MUST be different directories 34 35### 36### INVOCATION 37### 38 39MAKE = smake 40 41# Startup makefile with: 42# 43# $(MAKE) -f $(AMI)Makefile.amigcc 44# $(MAKE) -f $(AMI)Makefile.amigcc install 45# 46# You may use following targets on $(MAKE) command lines: 47# all do it all (default) 48# link just create binary from object files 49# obj just create common object files 50# obja just create amiga object files 51# objs just create shared object files 52# clean deletes the object files 53# spotless deletes the object files, main binary, and more 54# 55# Note: We do not build the Guidebook here since it needs tbl 56# (See the file sys/unix/Makefile.doc for more information) 57 58#[SAS5] [and gcc?] 59# If we were to use the precompiled header file feature in a newer version 60# of SAS/C, we would comment out these following two lines. 61# If we don't use precompiled header files, we uncomment it as well. 62 63HDEP = $(I)hack.h 64CSYM = 65 66#Pathname for uudecode program: 67UUDEC = uudecode 68 69# Flex/Bison command assignments -- Useful only if you have flex/bison 70FLEX = flex 71BISON = bison 72# FBFIL and FBLIB may be used, if required by your version of flex or bison, 73# to specify additional files or libraries to be linked with 74FBFIL = 75FBLIB = #lib lib:compat.lib 76 77# If you're compiling this on a 1.3 system, you'll have to uncomment the 78# following (for use with the ifchange script below). Also useful instead of 79# "protect ifchange +s" 80EXECUTE = execute 81 82# Headers we depend on 83AMDEP = $(AMI)winproto.h $(AMI)winext.h $(AMI)windefs.h $(I)winami.h 84 85# Pathname for the C compiler being used. 86 87CC = gcc -c 88ASM = as 89 90# Compilation flags for selected C Compiler: 91# $(CFLAGS) should appear before filename arguments of $(CC) command line. 92 93CFLAGS = -O3 -I $(I) 94 95# Components of various link command lines: 96# $(LINK) should be the pathname of the linker being used (with any options 97# that should appear at the beginning of the command line). The name of the 98# output file should appear immediately after $(LNSPEC). $(LIN) should 99# appear before the list of object files in each link command. $(LLINK) 100# should appear as the list of object files in the link command line that 101# creates the NetHack executable. $(LLIB) should appear at the end of each 102# link command line. 103 104LINK = gcc -noixemul -O3 105LIN = 106LLINK = 107LLIB = 108FLLIB = 109OBJSPEC = -o 110PNSPEC = -o 111LNSPEC = -o 112CCLINK = gcc -noixemul 113CLFLAGS = -O3 114INCLSPEC = -I 115DEFSPEC = -D 116IGNSPEC = -j 117 118### 119### FILE LISTS 120### 121 122# A more reasonable random number generator (recommended for the Amiga): 123 124RANDOBJ = $(O)random.o 125 126.PRECIOUS: $(I)config.h $(I)decl.h $(I)hack.h $(I)permonst.h $(I)you.h 127 128# Almost nothing below this line should have to be changed. 129# (Exceptions are marked by [SAS6], [MANX], etc.) 130# 131# Other things that have to be reconfigured are in config.h, 132# (amiconf.h, pcconf.h), and possibly system.h, tradstdc.h. 133 134# Object files for makedefs: 135 136MAKEOBJS = \ 137 $(OO)makedefs.o $(O)monst.o $(O)objects.o 138 139# Object files for special levels compiler: 140 141SPLEVOBJS = \ 142 $(OO)lev_yacc.o $(OO)lev_lex.o $(OO)lev_main.o \ 143 $(O)decl.o $(O)drawing.o $(O)monst.o \ 144 $(O)objects.o $(OO)panic.o 145 146# Object files for dungeon compiler 147 148DGNCOMPOBJS = \ 149 $(OO)dgn_yacc.o $(OO)dgn_lex.o $(OO)dgn_main.o $(O)alloc.o $(OO)panic.o 150 151# Object files for NetHack: 152 153COMMOBJ = \ 154 $(O)allmain.o $(O)alloc.o $(O)apply.o $(O)artifact.o \ 155 $(O)attrib.o $(O)ball.o $(O)bones.o $(O)botl.o \ 156 $(O)cmd.o $(O)dbridge.o $(O)decl.o $(O)detect.o \ 157 $(O)dig.o $(O)display.o $(O)dlb.o $(O)do.o \ 158 $(O)do_name.o $(O)do_wear.o $(O)dog.o $(O)dogmove.o \ 159 $(O)dokick.o $(O)dothrow.o $(O)drawing.o $(O)dungeon.o \ 160 $(O)eat.o $(O)end.o $(O)engrave.o $(O)exper.o \ 161 $(O)explode.o $(O)extralev.o $(O)files.o $(O)fountain.o \ 162 $(O)hack.o $(O)hacklib.o $(O)invent.o $(O)light.o \ 163 $(O)lock.o $(O)mail.o $(O)makemon.o $(O)mapglyph.o \ 164 $(O)mcastu.o $(O)mhitm.o $(O)mhitu.o $(O)minion.o \ 165 $(O)mklev.o $(O)mkmap.o $(O)mkmaze.o $(O)mkobj.o \ 166 $(O)mkroom.o $(O)mon.o $(O)mondata.o $(O)monmove.o \ 167 $(O)monst.o $(O)mplayer.o $(O)mthrowu.o $(O)muse.o \ 168 $(O)music.o $(O)o_init.o $(O)objects.o $(O)objnam.o \ 169 $(O)options.o $(O)pager.o $(O)pickup.o $(O)pline.o \ 170 $(O)polyself.o $(O)potion.o $(O)pray.o $(O)priest.o \ 171 $(O)quest.o $(O)questpgr.o $(O)read.o $(O)rect.o \ 172 $(O)region.o $(O)restore.o $(O)rnd.o $(O)role.o \ 173 $(O)rumors.o $(O)save.o $(O)shk.o $(O)shknam.o \ 174 $(O)sit.o $(O)sounds.o $(O)sp_lev.o $(O)spell.o \ 175 $(O)steal.o $(O)steed.o $(O)teleport.o $(O)timeout.o \ 176 $(O)topten.o $(O)track.o $(O)trap.o $(O)u_init.o \ 177 $(O)uhitm.o $(O)vault.o $(O)version.o $(O)vision.o \ 178 $(O)weapon.o $(O)were.o $(O)wield.o $(O)windows.o \ 179 $(O)wizard.o $(O)worm.o $(O)worn.o $(O)write.o \ 180 $(O)zap.o 181 182MAKEDEFOBJ = \ 183 $(O)monstr.o 184 185AMIGAOBJ = \ 186 $(O)amidos.o $(O)amirip.o $(O)amisnd.o $(O)amistack.o \ 187 $(O)amiwind.o $(O)winami.o $(O)winchar.o $(O)winfuncs.o \ 188 $(O)winkey.o $(O)winmenu.o $(O)winreq.o $(O)winstr.o 189 190# Objects from assembly sources (because DMake can't handle default rules) 191AMIGAOBJ2 = \ 192# $(O)dispmap.o 193 194SHAREOBJ = \ 195 $(O)pcmain.o $(RANDOBJ) 196 197TTYOBJ = \ 198 $(O)getline.o $(O)termcap.o $(O)topl.o $(O)wintty.o $(O)amitty.o \ 199 $(O)rip.o 200 201# Yuck yuck yuck. Have to tell DMake where these are, since they're not 202# all in the same place. 203TTYSRC = \ 204 $(TTY)getline.c $(TTY)termcap.c $(TTY)topl.c $(TTY)wintty.c \ 205 $(AMI)amitty.c $(NHS)rip.c 206 207# All the object files for NetHack: 208 209HOBJ = $(COMMOBJ) $(AMIGAOBJ) $(AMIGAOBJ2) $(SHAREOBJ) $(MAKEDEFOBJ) $(TTYOBJ) 210 211### 212### DATA FILES 213### 214 215# quest files 216ADFILES1= $(SLIB)Arc-fila.lev $(SLIB)Arc-filb.lev $(SLIB)Arc-loca.lev \ 217 $(SLIB)Arc-strt.lev 218ADFILES= $(SLIB)Arc-goal.lev $(ADFILES1) 219 220BDFILES1= $(SLIB)Bar-fila.lev $(SLIB)Bar-filb.lev $(SLIB)Bar-loca.lev \ 221 $(SLIB)Bar-strt.lev 222BDFILES= $(SLIB)Bar-goal.lev $(BDFILES1) 223 224CDFILES1= $(SLIB)Cav-fila.lev $(SLIB)Cav-filb.lev $(SLIB)Cav-loca.lev \ 225 $(SLIB)Cav-strt.lev 226CDFILES= $(SLIB)Cav-goal.lev $(CDFILES1) 227 228HDFILES1= $(SLIB)Hea-fila.lev $(SLIB)Hea-filb.lev $(SLIB)Hea-loca.lev \ 229 $(SLIB)Hea-strt.lev 230HDFILES= $(SLIB)Hea-goal.lev $(HDFILES1) 231 232KDFILES1= $(SLIB)Kni-fila.lev $(SLIB)Kni-filb.lev $(SLIB)Kni-loca.lev \ 233 $(SLIB)Kni-strt.lev 234KDFILES= $(SLIB)Kni-goal.lev $(KDFILES1) 235 236MDFILES1= $(SLIB)Mon-fila.lev $(SLIB)Mon-filb.lev $(SLIB)Mon-loca.lev \ 237 $(SLIB)Mon-strt.lev 238MDFILES= $(SLIB)Mon-goal.lev $(MDFILES1) 239 240PDFILES1= $(SLIB)Pri-fila.lev $(SLIB)Pri-filb.lev $(SLIB)Pri-loca.lev \ 241 $(SLIB)Pri-strt.lev 242PDFILES= $(SLIB)Pri-goal.lev $(PDFILES1) 243 244RDFILES1= $(SLIB)Rog-fila.lev $(SLIB)Rog-filb.lev $(SLIB)Rog-loca.lev \ 245 $(SLIB)Rog-strt.lev 246RDFILES= $(SLIB)Rog-goal.lev $(RDFILES1) 247 248RANFILES1= $(SLIB)Ran-fila.lev $(SLIB)Ran-filb.lev $(SLIB)Ran-loca.lev \ 249 $(SLIB)Ran-strt.lev 250RANFILES= $(SLIB)Ran-goal.lev $(RANFILES1) 251 252SDFILES1= $(SLIB)Sam-fila.lev $(SLIB)Sam-filb.lev $(SLIB)Sam-loca.lev \ 253 $(SLIB)Sam-strt.lev 254SDFILES= $(SLIB)Sam-goal.lev $(SDFILES1) 255 256TDFILES1= $(SLIB)Tou-fila.lev $(SLIB)Tou-filb.lev $(SLIB)Tou-loca.lev \ 257 $(SLIB)Tou-strt.lev 258TDFILES= $(SLIB)Tou-goal.lev $(TDFILES1) 259 260VDFILES1= $(SLIB)Val-fila.lev $(SLIB)Val-filb.lev $(SLIB)Val-loca.lev \ 261 $(SLIB)Val-strt.lev 262VDFILES= $(SLIB)Val-goal.lev $(VDFILES1) 263 264WDFILES1= $(SLIB)Wiz-fila.lev $(SLIB)Wiz-filb.lev $(SLIB)Wiz-loca.lev \ 265 $(SLIB)Wiz-strt.lev 266WDFILES= $(SLIB)Wiz-goal.lev $(WDFILES1) 267 268XDFILES= $(ADFILES) $(BDFILES) $(CDFILES) $(HDFILES) $(KDFILES) \ 269 $(MDFILES) $(PDFILES) $(RDFILES) $(RANFILES) $(SDFILES) $(TDFILES) \ 270 $(VDFILES) $(WDFILES) 271 272SOUNDFILES= \ 273 $(SBIN)cvtsnd \ 274 $(SLIB)sounds \ 275 $(SLIB)sounds/Bell $(SLIB)sounds/Bugle \ 276 $(SLIB)sounds/Drum_Of_Earthquake \ 277 $(SLIB)sounds/Fire_Horn $(SLIB)sounds/Frost_Horn \ 278 $(SLIB)sounds/Leather_Drum $(SLIB)sounds/Magic_Flute \ 279 $(SLIB)sounds/Magic_Harp $(SLIB)sounds/Tooled_Horn \ 280 $(SLIB)sounds/Wooden_Flute $(SLIB)sounds/Wooden_Harp 281 282TILEFILES= \ 283 $(SBIN)txt2iff \ 284 $(NETHACK)tiles \ 285 $(NETHACK)tiles/objects.iff \ 286 $(NETHACK)tiles/monsters.iff \ 287 $(NETHACK)tiles/other.iff 288 289INSTDUNGEONFILES1= \ 290 $(SLIB)air.lev $(SLIB)asmodeus.lev $(SLIB)astral.lev \ 291 $(SLIB)baalz.lev $(SLIB)bigrm-1.lev $(SLIB)bigrm-2.lev \ 292 $(SLIB)bigrm-3.lev $(SLIB)bigrm-4.lev $(SLIB)bigrm-5.lev \ 293 $(SLIB)castle.lev $(SLIB)dungeon $(SLIB)earth.lev \ 294 $(SLIB)fakewiz1.lev $(SLIB)fakewiz2.lev $(SLIB)fire.lev \ 295 $(SLIB)juiblex.lev $(SLIB)knox.lev $(SLIB)medusa-1.lev \ 296 $(SLIB)medusa-2.lev $(SLIB)minend-1.lev $(SLIB)minend-2.lev \ 297 $(SLIB)minetn-1.lev $(SLIB)minetn-2.lev $(SLIB)minefill.lev \ 298 $(SLIB)options $(SLIB)oracle.lev $(SLIB)orcus.lev \ 299 $(SLIB)sanctum.lev $(SLIB)soko1-1.lev $(SLIB)soko1-2.lev \ 300 $(SLIB)soko2-1.lev $(SLIB)soko2-2.lev $(SLIB)soko3-1.lev \ 301 $(SLIB)soko3-2.lev $(SLIB)soko4-1.lev $(SLIB)soko4-2.lev \ 302 $(SLIB)tower1.lev $(SLIB)tower2.lev $(SLIB)tower3.lev \ 303 $(SLIB)valley.lev $(SLIB)water.lev $(SLIB)wizard1.lev \ 304 $(SLIB)wizard2.lev $(SLIB)wizard3.lev \ 305 $(XDFILES) 306 307INSTDUNGEONFILES= $(NETHACK)NetHack.cnf $(INSTDUNGEONFILES1) 308 309 310INSTDATAFILES= \ 311 $(NETHACK)license $(NETHACK)logfile $(NETHACK)record \ 312 $(NETHACK)tomb.iff $(NETHACK)amii.hlp $(NETHACK)Recover.txt \ 313 $(NETHACK)GuideBook.txt $(NETHACK)NetHack.txt $(NETHACK)Install.ami \ 314# $(NETHACK)HackWB.hlp $(NETHACK)WBDefaults.def 315 316LIBFILES= \ 317 $(INSTDUNGEONFILES1) \ 318 $(SLIB)cmdhelp $(SLIB)data $(SLIB)dungeon \ 319 $(SLIB)help $(SLIB)hh $(SLIB)history \ 320 $(SLIB)opthelp $(SLIB)oracles $(SLIB)rumors \ 321 $(SLIB)quest.dat $(SLIB)wizhelp 322 323### 324### Getting down to business: 325### 326 327all: $(COMPACT_HEADERS) $(SBIN)lev_comp $(SBIN)dgn_comp $(SBIN)NetHack \ 328 $(SBIN)dlb $(NETHACK)recover #$(NETHACK)HackCli $(SBIN)splitter \ 329# $(NETHACK)HackWB 330 331install: inst-data inst-dungeon inst-fonts inst-sounds inst-tiles \ 332 $(NETHACK)recover $(NETHACK)NetHack $(NETHACK)nhdat 333 #$(NETHACK)NetHack.dir inst-icons 334 335$(SBIN)NetHack: link 336 337$(NETHACK)NetHack: $(SBIN)NetHack 338 copy $(SBIN)NetHack $(NETHACK)NetHack 339 340## uuh this is messy.. smake has weird command line length limit 341link: $(HOBJ) 342 list to t:link lformat="$(O)%s" $(O)\#?.o QUICK NOHEAD 343 echo "\#sh" to t:cc 344 echo "$(LINK) $(LNSPEC) $(SBIN)NetHack $(LIN) $(LLIB) $(LLINK) " >>t:cc noline 345 fmt -u -w 2500 t:link >>t:cc 346 sh t:cc 347 delete t:cc t:link 348 349 350## dlb support 351$(OO)dlb_main.o: $(UTIL)dlb_main.c $(HDEP) $(I)dlb.h $(I)date.h 352 $(CC) $(CFLAGS) $(OBJSPEC)$(OO)dlb_main.o $(UTIL)dlb_main.c 353 354$(SBIN)dlb: $(OO)dlb_main.o $(O)dlb.o $(O)alloc.o $(OO)panic.o 355 $(LINK) $(PNSPEC) $(SBIN)dlb $(LIN) $(OO)dlb_main.o $(O)dlb.o \ 356 $(O)alloc.o $(OO)panic.o $(LLIB) 357 358obj: $(HOBJ) 359 360obja: $(AMIGAOBJ) 361 362objs: $(SHAREOBJ) 363 364 365SUFFIXES = .lev .des 366.des.lev: 367 $(SBIN)lev_comp $< 368 369# The default method for creating object files: 370 371#$(O)%.o: $(NHS)%.c 372.c.o: 373 $(CC) $(CFLAGS) $(CSYM) $(OBJSPEC)$@ $< 374 375clean: 376 -delete $(O)\#?.o $(OO)\#?.o 377 378spotless: clean 379 -delete $(SBIN)NetHack $(SBIN)lev_comp $(SBIN)makedefs $(SBIN)dgn_comp 380 -delete $(SBIN)cvtsnd $(SBIN)dlb $(SBIN)txt2iff $(SBIN)splitter 381 -delete $(SBIN)tilemap 382 -delete $(SLIB)data $(SLIB)rumors 383 -delete $(SLIB)\#?.lev 384 -delete $(SLIB)dungeon 385 -delete $(SLIB)cmdhelp $(SLIB)help $(SLIB)hh $(SLIB)history 386 -delete $(SLIB)opthelp $(SLIB)options $(SLIB)oracles 387 -delete $(SLIB)quest.dat $(SLIB)wizhelp 388# -delete $(SLIB)earth.lev $(SLIB)air.lev $(SLIB)fire.lev 389# -delete $(SLIB)water.lev $(SLIB)astral.lev 390# -delete $(SLIB)tower1.lev $(SLIB)tower2.lev $(SLIB)tower3.lev 391# -delete $(SLIB)fakewiz1.lev $(SLIB)fakewiz2.lev 392# -delete $(SLIB)medusa-1.lev $(SLIB)medusa-2.lev 393# -delete $(SLIB)oracle.lev $(SLIB)wizard1.lev $(SLIB)wizard2.lev 394# -delete $(SLIB)wizard3.lev $(DAT)dungeon.pdf $(SLIB)valley.lev 395# -delete $(SLIB)minefill.lev 396# -delete $(SLIB)minetn-1 $(SLIB)minetn-2 $(SLIB)minend-1 $(SLIB)minend-2 397# -delete $(SLIB)soko1-1.lev $(SLIB)soko1-2.lev $(SLIB)soko2-1.lev 398# -delete $(SLIB)soko2-2.lev $(SLIB)soko3-1.lev $(SLIB)soko3-2.lev 399# -delete $(SLIB)soko4-1.lev $(SLIB)soko4-2.lev 400# -delete $(ADFILES) 401# -delete $(BDFILES) 402# -delete $(CDFILES) 403# -delete $(HDFILES) 404# -delete $(KDFILES) 405# -delete $(MDFILES) 406# -delete $(PDFILES) 407# -delete $(RDFILES) 408# -delete $(RANFILES) 409# -delete $(SDFILES) 410# -delete $(TDFILES) 411# -delete $(VDFILES) 412# -delete $(WDFILES) 413 -delete $(I)onames.h $(I)pm.h $(I)date.h 414 -delete $(NHS)tile.c $(NHS)monstr.c 415 -delete $(I)tile.h 416# -echo to $(I)onames.h "" noline 417# -c:wait 2 418# -echo to $(I)pm.h "" noline 419# -c:wait 2 420# -setdate $(UTIL)makedefs.c 421# -c:wait 2 422 423# Creating precompiled version of $(I)hack.h to save disk I/O. 424 425# 426# Please note: The dependency lines for the modules here are 427# deliberately incorrect. Including "hack.h" in 428# the dependency list would cause a dependency 429# loop. 430# 431 432$(SBIN)makedefs: $(MAKEOBJS) 433 $(LINK) $(LNSPEC) $(SBIN)makedefs $(LIN) $(MAKEOBJS) $(LLIB) 434 435$(OO)makedefs.o: $(UTIL)makedefs.c $(I)config.h $(I)permonst.h $(I)monsym.h \ 436 $(I)objclass.h $(I)patchlevel.h $(I)qtext.h $(I)artilist.h 437 $(CC) $(DEFSPEC)MAKEDEFS_C $(CFLAGS) $(OBJSPEC)$@ $(UTIL)makedefs.c 438 439$(SBIN)lev_comp: $(SPLEVOBJS) 440 $(LINK) $(LNSPEC) $(SBIN)lev_comp $(LIN) $(SPLEVOBJS) $(FBFIL) $(FLLIB) 441 442$(SBIN)dgn_comp: $(DGNCOMPOBJS) 443 $(LINK) $(LNSPEC) $(SBIN)dgn_comp $(LIN) $(DGNCOMPOBJS) $(FBFIL) $(FLLIB) 444 445$(OO)lev_yacc.o: $(UTIL)lev_yacc.c $(HDEP) $(I)sp_lev.h $(I)pm.h $(I)onames.h 446# setdate $(UTIL)lev_yacc.c 447 $(CC) $(DEFSPEC)LEV_LEX_C $(DEFSPEC)PREFIX="NH:slib/" $(CFLAGS) \ 448 $(DEFSPEC)alloca=malloc $(OBJSPEC)$@ $(UTIL)lev_yacc.c 449 450$(OO)lev_lex.o: $(UTIL)lev_lex.c $(HDEP) $(I)lev_comp.h $(I)sp_lev.h 451 $(CC) $(DEFSPEC)LEV_LEX_C $(CFLAGS) $(OBJSPEC)$@ $(UTIL)lev_lex.c 452 453$(OO)lev_main.o: $(UTIL)lev_main.c $(HDEP) $(I)pm.h $(I)onames.h $(I)date.h 454 $(CC) $(DEFSPEC)LEV_LEX_C $(DEFSPEC)AMIGA $(CFLAGS) $(OBJSPEC)$@ \ 455 $(UTIL)lev_main.c 456 457$(OO)dgn_yacc.o: $(UTIL)dgn_yacc.c $(HDEP) $(I)dgn_file.h $(I)patchlevel.h 458 $(CC) $(DEFSPEC)LEV_LEX_C $(CFLAGS) $(DEFSPEC)alloca=malloc \ 459 $(OBJSPEC)$@ $(UTIL)dgn_yacc.c 460 461$(OO)dgn_lex.o: $(UTIL)dgn_lex.c $(I)config.h $(I)dgn_comp.h $(I)dgn_file.h 462 $(CC) $(DEFSPEC)LEV_LEX_C $(CFLAGS) $(OBJSPEC)$@ $(UTIL)dgn_lex.c 463 464$(OO)dgn_main.o: $(UTIL)dgn_main.c $(I)config.h $(I)date.h 465 $(CC) $(DEFSPEC)LEV_LEX_C $(DEFSPEC)AMIGA $(CFLAGS) $(OBJSPEC)$@ \ 466 $(UTIL)dgn_main.c 467 468$(OO)panic.o: $(UTIL)panic.c $(HDEP) 469 470$(OO)recover.o: $(UTIL)recover.c $(I)config.h $(I)date.h 471 $(CC) $(DEFSPEC)LEV_LEX_C $(DEFSPEC)AMIGA $(CFLAGS) $(OBJSPEC)$@ \ 472 $(UTIL)recover.c 473 474$(NETHACK)recover: $(OO)recover.o 475 $(LINK) $(LNSPEC) $(NETHACK)recover $(LIN) $(OO)recover.o $(LLIB) 476 477# [OPTION] -- If you have flex/bison, leave these uncommented. Otherwise, 478# comment them out and be careful! (You're not guaranteed to have the most 479# up to date *_comp.c, *_comp.h and *_lex.c) 480 481$(I)lev_comp.h: $(UTIL)lev_yacc.c $(I)patchlevel.h 482 483$(UTIL)lev_yacc.c: $(UTIL)lev_comp.y $(I)patchlevel.h 484 $(BISON) -d $(UTIL)lev_comp.y 485# copy y.tab.c $(UTIL)lev_yacc.c 486# copy y.tab.h $(I)lev_comp.h 487 copy $(UTIL)lev_comp.tab.c $(UTIL)lev_yacc.c 488 copy $(UTIL)lev_comp.tab.h $(I)lev_comp.h 489# delete y.tab.c 490# delete y.tab.h 491 delete $(UTIL)lev_comp.tab.c 492 delete $(UTIL)lev_comp.tab.h 493 494$(UTIL)lev_lex.c: $(UTIL)lev_comp.l $(I)patchlevel.h 495 $(FLEX) $(UTIL)lev_comp.l 496 copy lex.yy.c $(UTIL)lev_lex.c 497 delete lex.yy.c 498 499$(I)dgn_comp.h: $(UTIL)dgn_yacc.c $(I)patchlevel.h 500 501$(UTIL)dgn_yacc.c: $(UTIL)dgn_comp.y $(I)patchlevel.h 502 $(BISON) -d $(UTIL)dgn_comp.y 503# copy y.tab.c $(UTIL)dgn_yacc.c 504# copy y.tab.h $(I)dgn_comp.h 505 copy $(UTIL)dgn_comp.tab.c $(UTIL)dgn_yacc.c 506 copy $(UTIL)dgn_comp.tab.h $(I)dgn_comp.h 507# delete y.tab.c 508# delete y.tab.h 509 delete $(UTIL)dgn_comp.tab.c 510 delete $(UTIL)dgn_comp.tab.h 511 512$(UTIL)dgn_lex.c: $(UTIL)dgn_comp.l $(I)patchlevel.h 513 $(FLEX) $(UTIL)dgn_comp.l 514 copy lex.yy.c $(UTIL)dgn_lex.c 515 delete lex.yy.c 516 517# 518# The following include files depend on makedefs to be created. 519# As a result, they are not defined in HACKINCL, instead, their 520# dependencies are explicitly outlined here. 521# 522 523# 524# date.h should be remade any time any of the source or include code 525# is modified. Unfortunately, this would make the contents of this 526# file far more complex. Since "hack.h" depends on most of the include 527# files, we kludge around this by making date.h dependent on hack.h, 528# even though it doesn't include this file. 529# 530 531$(I)date.h $(DAT)options: $(HDEP) $(SBIN)makedefs $(AMIGAOBJ) $(I)patchlevel.h 532 $(SBIN)makedefs -v 533 $(EXECUTE) ifchange MOVE $(I)t.date.h $(I)date.h 534 -c:wait 2 535 536$(I)onames.h: $(SBIN)makedefs 537 $(SBIN)makedefs -o 538 $(EXECUTE) ifchange TOUCH $(I)t.onames.h $(I)onames.h $(I)decl.h 539 $(EXECUTE) ifchange MOVE $(I)t.onames.h $(I)onames.h 540 -c:wait 2 541 542$(I)pm.h: $(SBIN)makedefs 543 $(SBIN)makedefs -p 544 $(EXECUTE) ifchange TOUCH $(I)t.pm.h $(I)pm.h $(I)decl.h $(I)youprop.h 545 $(EXECUTE) ifchange MOVE $(I)t.pm.h $(I)pm.h 546 -c:wait 2 547 548$(SLIB)quest.dat: $(DAT)quest.txt $(SBIN)makedefs 549 $(SBIN)makedefs -q 550 551$(NHS)monstr.c: $(HDEP) $(SBIN)makedefs 552 $(SBIN)makedefs -m 553 -c:wait 2 554 555$(SLIB)oracles: $(DAT)oracles.txt $(SBIN)makedefs 556 $(SBIN)makedefs -h 557 -c:wait 2 558 559# 560# The following programs vary depending on what OS you are using. 561# As a result, they are not defined in HACKSRC and their dependencies 562# are explicitly outlined here. 563# 564 565$(O)amidos.o: $(AMI)amidos.c $(HDEP) 566 567$(O)amirip.o: $(AMI)amirip.c $(HDEP) 568 569$(O)aglue.o: $(AMI)aglue.a 570 $(ASM) $(AFLAGS) $(AOBJSPEC)$(O)aglue.o $(AMI)aglue.a 571 572$(O)amisnd.o: $(AMI)amisnd.c $(HDEP) 573 574$(O)winchar.o: $(AMI)winchar.c $(NHS)tile.c $(HDEP) 575 576$(NHS)tile.c: $(WSHARE)tilemap.c 577 $(CCLINK) $(CFLAGS) $(PNSPEC) $(SBIN)tilemap $(WSHARE)tilemap.c 578 $(SBIN)tilemap 579 580$(O)winstr.o: $(AMI)winstr.c $(HDEP) $(AMDEP) 581 582$(O)winreq.o: $(AMI)winreq.c $(HDEP) $(AMDEP) $(AMI)colorwin.c $(AMI)clipwin.c 583 584$(O)winfuncs.o: $(AMI)winfuncs.c $(HDEP) $(AMDEP) $(I)patchlevel.h 585 586$(O)winkey.o: $(AMI)winkey.c $(HDEP) $(AMDEP) 587 588$(O)winmenu.o: $(AMI)winmenu.c $(HDEP) $(AMDEP) 589 590$(O)winami.o: $(AMI)winami.c $(HDEP) $(AMDEP) #$(AMI)char.c $(AMI)randwin.c 591 592#$(O)amilib.o: $(AMI)amilib.c $(HDEP) $(AMDEP) 593 594$(O)amiwind.o: $(AMI)amiwind.c $(AMI)amimenu.c $(HDEP) $(AMDEP) 595 596$(O)amiwbench.o: $(AMI)amiwbench.c $(HDEP) 597 598$(O)random.o: $(SHARE)random.c 599 600$(O)pcmain.o: $(SHARE)pcmain.c $(HDEP) $(I)dlb.h 601 602$(O)dispmap.o: $(AMI)dispmap.s 603 $(ASM) $(AFLAGS) $(AOBJSPEC)$@ $< 604 605# Stuff to build the front ends 606$(NETHACK)HackWB: $(OO)wb.o $(OO)wbx.o $(OO)loader.o $(OO)multi.o 607 $(LINK) $(LNSPEC) $(NETHACK)HackWB $(LIN) $(OO)wb.o $(OO)wbx.o \ 608 $(OO)loader.o $(OO)multi.o $(LLIB) 609 610$(NETHACK)HackCli: $(OO)cli.o $(OO)loader.o $(OO)multi.o 611 $(LINK) $(LNSPEC) $(NETHACK)HackCli $(LIN) $(OO)cli.o $(OO)loader.o \ 612 $(OO)multi.o $(LLIB) 613 614# This needs to exist to eliminate the HackWB startup message 615$(NETHACK)WBDefaults.def: 616 echo to $(NETHACK)WBDefaults.def 617 618WBH = $(AMI)wbdefs.h $(AMI)wbstruct.h $(AMI)wbprotos.h 619ASP = $(AMI)splitter 620$(OO)wb.o: $(WBH) $(AMI)wb.c $(AMI)wbwin.c $(AMI)wbdata.c $(AMI)wbgads.c \ 621 $(I)patchlevel.h 622 $(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)$(OO)wb.o $(AMI)wb.c 623 624$(OO)wbx.o: $(WBH) $(AMI)wbcli.c $(AMI)wbwin.c $(AMI)wbdata.c \ 625 $(I)patchlevel.h $(I)date.h 626 $(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)$(OO)wbx.o $(AMI)wbcli.c 627 628$(OO)loader.o: $(ASP)/loader.c $(ASP)/split.h $(ASP)/amiout.h $(ASP)/multi.h 629 $(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)$(OO)loader.o $(ASP)/loader.c 630 631$(OO)multi.o: $(ASP)/multi.c $(ASP)/multi.h 632 $(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)$(OO)multi.o $(ASP)/multi.c 633 634$(OO)cli.o: $(WBH) $(AMI)wbcli.c $(I)patchlevel.h $(I)date.h 635 $(CC) $(WBCFLAGS) $(WBC2FLAGS) $(SPLFLAGS) $(OBJSPEC)$(OO)cli.o \ 636 $(AMI)wbcli.c 637 638#### 639# splitter support 640$(SBIN)splitter: $(OO)splitter.o $(OO)arg.o 641 $(LINK) $(LNSPEC) $(SBIN)splitter $(LIN) $(OO)splitter.o $(OO)arg.o \ 642 $(LLIB) 643 644$(NETHACK)NetHack.dir: $(SBIN)splitter $(SBIN)NetHack 645 $(SBIN)splitter $(SBIN)NetHack 646 647$(OO)splitter.o: $(ASP)/splitter.c $(ASP)/split.h $(ASP)/amiout.h $(ASP)/arg.h 648 $(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)$(OO)splitter.o \ 649 $(ASP)/splitter.c 650 651$(OO)arg.o: $(ASP)/arg.c $(ASP)/arg.h 652 $(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)$(OO)arg.o $(ASP)/arg.c 653 654# Create/copy other stuff into NetHack: directory: 655 656$(NETHACK)tomb.iff: $(SBIN)xpm2iff $(AMI)grave16.xpm 657 $(SBIN)xpm2iff $(AMI)grave16.xpm $(NETHACK)tomb.iff 658 659$(OO)xpm2iff.o: $(AMI)xpm2iff.c 660 $(CC) $(CFLAGS) $(INCLSPEC)$(WSHARE) $(OBJSPEC)$@ $(AMI)xpm2iff.c 661 662$(SBIN)xpm2iff: $(OO)xpm2iff.o 663 $(LINK) $(LNSPEC) $@ $(LIN) $(OO)xpm2iff.o $(FLLIB) 664 665# Tile installation for the tile version of the game 666inst-tiles: $(TILEFILES) 667 668$(NETHACK)tiles: 669 -makedir $(NETHACK)tiles 670 671$(OO)txt2iff.o: $(AMI)txt2iff.c 672 $(CC) $(CFLAGS) $(CSYM) $(INCLSPEC)$(WSHARE) $(OBJSPEC)$@ \ 673 $(AMI)txt2iff.c 674 675$(OO)ppmwrite.o: $(WSHARE)ppmwrite.c 676 $(CC) $(CFLAGS) $(CSYM) $(INCLSPEC)$(WSHARE) $(OBJSPEC)$@ $(WSHARE)ppmwrite.c 677 678$(OO)tiletext.o: $(WSHARE)tiletext.c $(I)config.h $(WSHARE)tile.h 679 $(CC) $(CFLAGS) $(CSYM) $(INCLSPEC)$(WSHARE) $(OBJSPEC)$@ $(WSHARE)tiletext.c 680 681$(OO)tiletxt.o: $(WSHARE)tilemap.c $(I)hack.h 682 $(CC) $(CFLAGS) $(CSYM) $(DEFSPEC)TILETEXT $(INCLSPEC)$(WSHARE) $(OBJSPEC)$@ $(WSHARE)tilemap.c 683 684NAMEOBJS = $(O)drawing.o $(O)decl.o $(O)monst.o $(O)objects.o 685 686$(SBIN)txt2ppm: $(OO)ppmwrite.o $(NAMEOBJS) $(O)alloc.o $(OO)panic.o $(OO)tiletext.o $(OO)tiletxt.o 687 $(LINK) $(LNSPEC) $@ $(LIN) $(OO)ppmwrite.o $(NAMEOBJS) $(OO)tiletext.o $(OO)tiletxt.o $(O)alloc.o $(OO)panic.o $(FLLIB) 688 689$(SBIN)txt2iff: $(OO)txt2iff.o $(NAMEOBJS) $(OO)tiletext.o $(OO)tiletxt.o 690 $(LINK) $(LNSPEC) $@ $(LIN) $(OO)txt2iff.o $(NAMEOBJS) $(OO)tiletext.o \ 691 $(OO)tiletxt.o $(FLLIB) 692 693$(NETHACK)tiles/objects.iff: $(WSHARE)objects.txt $(SBIN)txt2iff 694 $(SBIN)txt2iff $(WSHARE)objects.txt $(NETHACK)tiles/objects.iff 695 696$(NETHACK)tiles/monsters.iff: $(WSHARE)monsters.txt $(SBIN)txt2iff 697 $(SBIN)txt2iff $(WSHARE)monsters.txt $(NETHACK)tiles/monsters.iff 698 699$(NETHACK)tiles/other.iff: $(WSHARE)other.txt $(SBIN)txt2iff 700 $(SBIN)txt2iff $(WSHARE)other.txt $(NETHACK)tiles/other.iff 701 702# Sound installation rules. 703inst-sounds: $(SOUNDFILES) 704 list to T:nhsdat.lst $(SLIB)sounds QUICK NOHEAD 705 echo >T:make-nhsdat $(SBIN)dlb cCfI $(SLIB)sounds $(NETHACK)nhsdat T:nhsdat.lst 706 echo >>T:make-nhsdat if not exists $(NETHACK)nhsdat 707 echo >>T:make-nhsdat copy $(SLIB)sounds/\#? $(NETHACK)sounds 708 echo >>T:make-nhsdat endif 709 execute T:make-nhsdat 710 -delete T:make-nhsdat 711 712$(SLIB)sounds: 713 -makedir $(SLIB)sounds 714 715$(SBIN)cvtsnd: $(OO)cvtsnd.o 716 $(LINK) $(LNSPEC) $@ $(LIN) $(OO)cvtsnd.o $(FLLIB) 717 718$(OO)cvtsnd.o: $(AMI)cvtsnd.c 719 720$(SLIB)sounds/Bell: $(SHARE)sounds/bell.uu 721 $(UUDEC) $(SHARE)sounds/bell.uu 722 $(SBIN)cvtsnd Bell $(SLIB)sounds/Bell 723 -delete Bell 724 725$(SLIB)sounds/Bugle: $(SHARE)sounds/bugle.uu 726 $(UUDEC) $(SHARE)sounds/bugle.uu 727 $(SBIN)cvtsnd Bugle $(SLIB)sounds/Bugle 728 -delete Bugle 729 730$(SLIB)sounds/Drum_Of_Earthquake: $(SHARE)sounds/erthdrum.uu 731 $(UUDEC) $(SHARE)sounds/erthdrum.uu 732 $(SBIN)cvtsnd Drum_Of_Earthquake $(SLIB)sounds/Drum_Of_Earthquake 733 -delete Drum_Of_Earthquake 734 735$(SLIB)sounds/Fire_Horn: $(SHARE)sounds/firehorn.uu 736 $(UUDEC) $(SHARE)sounds/firehorn.uu 737 $(SBIN)cvtsnd Fire_Horn $(SLIB)sounds/Fire_Horn 738 -delete Fire_Horn 739 740$(SLIB)sounds/Frost_Horn: $(SHARE)sounds/frsthorn.uu 741 $(UUDEC) $(SHARE)sounds/frsthorn.uu 742 $(SBIN)cvtsnd Frost_Horn $(SLIB)sounds/Frost_Horn 743 -delete Frost_Horn 744 745$(SLIB)sounds/Leather_Drum: $(SHARE)sounds/lethdrum.uu 746 $(UUDEC) $(SHARE)sounds/lethdrum.uu 747 $(SBIN)cvtsnd Leather_Drum $(SLIB)sounds/Leather_Drum 748 -delete Leather_Drum 749 750$(SLIB)sounds/Magic_Flute: $(SHARE)sounds/mgcflute.uu 751 $(UUDEC) $(SHARE)sounds/mgcflute.uu 752 $(SBIN)cvtsnd Magic_Flute $(SLIB)sounds/Magic_Flute 753 -delete Magic_Flute 754 755$(SLIB)sounds/Magic_Harp: $(SHARE)sounds/mgcharp.uu 756 $(UUDEC) $(SHARE)sounds/mgcharp.uu 757 $(SBIN)cvtsnd Magic_Harp $(SLIB)sounds/Magic_Harp 758 -delete Magic_Harp 759 760$(SLIB)sounds/Tooled_Horn: $(SHARE)sounds/toolhorn.uu 761 $(UUDEC) $(SHARE)sounds/toolhorn.uu 762 $(SBIN)cvtsnd Tooled_Horn $(SLIB)sounds/Tooled_Horn 763 -delete Tooled_Horn 764 765$(SLIB)sounds/Wooden_Flute: $(SHARE)sounds/wdnflute.uu 766 $(UUDEC) $(SHARE)sounds/wdnflute.uu 767 $(SBIN)cvtsnd Wooden_Flute $(SLIB)sounds/Wooden_Flute 768 -delete Wooden_Flute 769 770$(SLIB)sounds/Wooden_Harp: $(SHARE)sounds/wdnharp.uu 771 $(UUDEC) $(SHARE)sounds/wdnharp.uu 772 $(SBIN)cvtsnd Wooden_Harp $(SLIB)sounds/Wooden_Harp 773 -delete Wooden_Harp 774 775inst-dungeon: $(INSTDUNGEONFILES) 776 777$(NETHACK)options : $(DAT)options 778 copy $(DAT)options $@ 779 780# Create compiled dungeon files 781BGM= $(SLIB)bigrm-2.lev $(SLIB)bigrm-3.lev $(SLIB)bigrm-4.lev $(SLIB)bigrm-5.lev 782$(BGM): $(SLIB)bigrm-1.lev 783 784$(SLIB)bigrm-1.lev: $(DAT)bigroom.des $(SBIN)lev_comp 785 786$(SLIB)castle.lev: $(DAT)castle.des $(SBIN)lev_comp 787 788ENDGAME1= $(SLIB)air.lev $(SLIB)earth.lev $(SLIB)fire.lev $(SLIB)water.lev 789$(ENDGAME1): $(SLIB)astral.lev 790 791$(SLIB)astral.lev: $(DAT)endgame.des $(SBIN)lev_comp 792 793GEHENNOM1= $(SLIB)asmodeus.lev $(SLIB)baalz.lev $(SLIB)juiblex.lev \ 794 $(SLIB)orcus.lev $(SLIB)sanctum.lev 795$(GEHENNOM1): $(SLIB)valley.lev 796 797$(SLIB)valley.lev: $(DAT)gehennom.des $(SBIN)lev_comp 798 799$(SLIB)knox.lev: $(DAT)knox.des $(SBIN)lev_comp 800 801MINES1= $(SLIB)minend-1.lev $(SLIB)minend-2.lev $(SLIB)minetn-1.lev $(SLIB)minetn-2.lev 802$(MINES1): $(SLIB)minefill.lev 803 804$(SLIB)minefill.lev: $(DAT)mines.des $(SBIN)lev_comp 805 806$(SLIB)oracle.lev: $(DAT)oracle.des $(SBIN)lev_comp 807 808TOWER1= $(SLIB)tower1.lev $(SLIB)tower2.lev 809$(TOWER1): $(SLIB)tower3.lev 810 811$(SLIB)tower3.lev: $(DAT)tower.des $(SBIN)lev_comp 812 813WIZARD1= $(SLIB)wizard1.lev $(SLIB)wizard2.lev $(SLIB)wizard3.lev \ 814 $(SLIB)fakewiz1.lev 815$(WIZARD1): $(SLIB)fakewiz2.lev 816 817$(SLIB)fakewiz2.lev: $(DAT)yendor.des $(SBIN)lev_comp 818 819MEDUSA1= $(SLIB)medusa-1.lev 820$(MEDUSA1): $(SLIB)medusa-2.lev 821 822$(SLIB)medusa-2.lev: $(DAT)medusa.des $(SBIN)lev_comp 823 824SOKOBAN1= $(SLIB)soko1-1.lev $(SLIB)soko1-2.lev $(SLIB)soko2-1.lev \ 825 $(SLIB)soko2-2.lev $(SLIB)soko3-1.lev $(SLIB)soko3-2.lev \ 826 $(SLIB)soko4-1.lev 827$(SOKOBAN1): $(SLIB)soko4-2.lev 828 829$(SLIB)soko4-2.lev: $(DAT)sokoban.des $(SBIN)lev_comp 830 831$(ADFILES1): $(SLIB)Arc-goal.lev 832 833$(SLIB)Arc-goal.lev: $(DAT)Arch.des $(SBIN)lev_comp 834 835$(BDFILES1): $(SLIB)Bar-goal.lev 836 837$(SLIB)Bar-goal.lev: $(DAT)Barb.des $(SBIN)lev_comp 838 839$(CDFILES1): $(SLIB)Cav-goal.lev 840 841$(SLIB)Cav-goal.lev: $(DAT)Caveman.des $(SBIN)lev_comp 842 843$(HDFILES1): $(SLIB)Hea-goal.lev 844 845$(SLIB)Hea-goal.lev: $(DAT)Healer.des $(SBIN)lev_comp 846 847$(KDFILES1): $(SLIB)Kni-goal.lev 848 849$(SLIB)Kni-goal.lev: $(DAT)Knight.des $(SBIN)lev_comp 850 851$(MDFILES1): $(SLIB)Mon-goal.lev 852 853$(SLIB)Mon-goal.lev: $(DAT)Monk.des $(SBIN)lev_comp 854 855$(PDFILES1): $(SLIB)Pri-goal.lev 856 857$(SLIB)Pri-goal.lev: $(DAT)Priest.des $(SBIN)lev_comp 858 859$(RDFILES1): $(SLIB)Rog-goal.lev 860 861$(SLIB)Rog-goal.lev: $(DAT)Rogue.des $(SBIN)lev_comp 862 863$(RANFILES1): $(SLIB)Ran-goal.lev 864 865$(SLIB)Ran-goal.lev: $(DAT)Ranger.des $(SBIN)lev_comp 866 867$(SDFILES1): $(SLIB)Sam-goal.lev 868 869$(SLIB)Sam-goal.lev: $(DAT)Samurai.des $(SBIN)lev_comp 870 871$(TDFILES1): $(SLIB)Tou-goal.lev 872 873$(SLIB)Tou-goal.lev: $(DAT)Tourist.des $(SBIN)lev_comp 874 875$(VDFILES1): $(SLIB)Val-goal.lev 876 877$(SLIB)Val-goal.lev: $(DAT)Valkyrie.des $(SBIN)lev_comp 878 879$(WDFILES1): $(SLIB)Wiz-goal.lev 880 881$(SLIB)Wiz-goal.lev: $(DAT)Wizard.des $(SBIN)lev_comp 882 883$(SLIB)dungeon: $(DAT)dungeon.def $(SBIN)makedefs $(SBIN)dgn_comp 884 $(SBIN)makedefs -e 885 $(SBIN)dgn_comp $(DAT)dungeon.pdf 886 copy $(DAT)dungeon $(SLIB)dungeon 887 delete $(DAT)dungeon 888 889inst-data: $(INSTDATAFILES) 890 891$(NETHACK)amii.hlp: $(AMI)amii.hlp 892 copy $(AMI)amii.hlp $@ 893 894#$(NETHACK)data: $(DAT)data 895# copy $(DAT)data $@ 896 897$(SLIB)data: $(DAT)data.base $(I)config.h $(SBIN)makedefs 898 $(SBIN)makedefs -d 899 900#$(NETHACK)rumors: $(DAT)rumors 901# copy $(DAT)rumors $@ 902 903$(SLIB)rumors: $(DAT)rumors.tru $(DAT)rumors.fal $(SBIN)makedefs 904 $(SBIN)makedefs -r 905 906$(SLIB)cmdhelp: $(DAT)cmdhelp 907 copy $(DAT)cmdhelp $@ 908 909$(SLIB)help: $(DAT)help 910 copy $(DAT)help $@ 911 912$(SLIB)hh: $(DAT)hh 913 copy $(DAT)hh $@ 914 915$(NETHACK)HackWB.hlp: $(AMI)HackWB.hlp 916 copy $(AMI)HackWB.hlp $@ 917 918$(SLIB)history: $(DAT)history 919 copy $(DAT)history $@ 920 921$(NETHACK)license: $(DAT)license 922 copy $(DAT)license $@ 923 924$(SLIB)opthelp: $(DAT)opthelp 925 copy $(DAT)opthelp $@ 926 927$(NETHACK)Recover.txt: $(DOC)Recover.txt 928 copy $(DOC)Recover.txt $@ 929 930$(NETHACK)GuideBook.txt: $(DOC)GuideBook.txt 931 copy $(DOC)GuideBook.txt $@ 932 933$(NETHACK)NetHack.txt: $(DOC)NetHack.txt 934 copy $(DOC)NetHack.txt $@ 935 936$(NETHACK)Install.ami: $(AMI)Install.ami 937 copy $(AMI)Install.ami $@ 938 939$(NETHACK)logfile: 940 echo to $@ 941 942$(NETHACK)record: 943 echo to $@ 944 945$(SLIB)wizhelp: $(DAT)wizhelp 946 copy $(DAT)wizhelp $@ 947 948# Create the directories here because NetHack.cnf puts them there by default 949$(NETHACK)NetHack.cnf: $(AMI)NetHack.cnf 950 copy $(AMI)NetHack.cnf $@ 951 -makedir $(NETHACK)save 952 -makedir $(NETHACK)levels 953 954# Unpack and install fonts 955 956INSTFONTFILES= $(NETHACK)hack.font $(NETHACK)hack $(NETHACK)hack/8 957 958inst-fonts: $(INSTFONTFILES) 959 960$(NETHACK)hack/8: $(AMI)amifont8.uu $(NETHACK)hack 961 $(UUDEC) $(AMI)amifont8.uu 962 copy 8 $(NETHACK)hack/8 963 delete 8 964 965$(NETHACK)hack.font: $(AMI)amifont.uu 966 $(UUDEC) $(AMI)amifont.uu 967 copy hack.font $(NETHACK)hack.font 968 delete hack.font 969 970$(NETHACK)hack: 971 -makedir $@ 972 973INSTICONFILES= \ 974 $(NETHACK)default.icon $(NETHACK)NetHack.info $(NETHACK)NewGame.info \ 975 $(NETHACK)HackWB.info 976 977inst-icons: $(INSTICONFILES) 978 979# Unpack the icons into place 980 981$(NETHACK)default.icon: $(AMI)dflticon.uu 982 $(UUDEC) $(AMI)dflticon.uu 983# copy default.icon $(NETHACK)default.icon 984# delete default.icon 985 986$(NETHACK)NetHack.info: $(AMI)NHinfo.uu 987 $(UUDEC) $(AMI)NHinfo.uu 988# copy NetHack.info $(NETHACK)NetHack.info 989# delete NetHack.info 990 991$(NETHACK)NewGame.info: $(AMI)NewGame.uu 992 $(UUDEC) $(AMI)NewGame.uu 993# copy NewGame.info $(NETHACK)NewGame.info 994# delete NewGame.info 995 996$(NETHACK)HackWB.info: $(AMI)HackWB.uu 997 $(UUDEC) $(AMI)HackWB.uu 998# copy HackWB.info $(NETHACK)HackWB.info 999# delete HackWB.info 1000 1001# If DLB is defined, create the nhdat library file in the playground 1002# directory. If not, move all the data files there. 1003$(NETHACK)nhdat: $(LIBFILES) 1004 list to T:nhdat.lst $(SLIB) QUICK NOHEAD FILES 1005 echo >T:make-nhdat $(SBIN)dlb cCfI $(SLIB) $(NETHACK)nhdat T:nhdat.lst 1006 echo >>T:make-nhdat if not exists $(NETHACK)nhdat 1007 echo >>T:make-nhdat copy $(SLIB)\#? $(NETHACK) 1008 echo >>T:make-nhdat endif 1009 execute T:make-nhdat 1010 -delete T:make-nhdat 1011 1012# DO NOT DELETE THIS LINE 1013 1014$(O)allmain.o: $(NHS)allmain.c $(HDEP) 1015 1016$(O)alloc.o: $(NHS)alloc.c $(I)config.h 1017 1018$(O)apply.o: $(NHS)apply.c $(HDEP) $(I)edog.h 1019 $(CC) $(CFLAGS) $(CFLAGS2) $(OBJSPEC)$@ $(NHS)apply.c 1020 1021$(O)artifact.o: $(NHS)artifact.c $(HDEP) $(I)artifact.h $(I)artilist.h 1022 1023$(O)attrib.o: $(NHS)attrib.c $(HDEP) $(I)artifact.h 1024 1025$(O)ball.o: $(NHS)ball.c $(HDEP) 1026 1027$(O)bones.o: $(NHS)bones.c $(HDEP) $(I)lev.h 1028 1029$(O)botl.o: $(NHS)botl.c $(HDEP) 1030 1031$(O)cmd.o: $(NHS)cmd.c $(HDEP) $(I)func_tab.h 1032 1033$(O)dbridge.o: $(NHS)dbridge.c $(HDEP) 1034 1035$(O)decl.o: $(NHS)decl.c $(HDEP) $(I)quest.h 1036 1037$(O)detect.o: $(NHS)detect.c $(HDEP) $(I)artifact.h 1038 1039$(O)dig.o: $(NHS)dig.c $(HDEP) $(I)edog.h 1040 1041$(O)display.o: $(NHS)display.c $(HDEP) 1042 1043$(O)dlb.o: $(NHS)dlb.c $(HDEP) $(I)dlb.h 1044 1045$(O)do.o: $(NHS)do.c $(HDEP) $(I)lev.h 1046 1047$(O)do_name.o: $(NHS)do_name.c $(HDEP) 1048 1049$(O)do_wear.o: $(NHS)do_wear.c $(HDEP) 1050 1051$(O)dog.o: $(NHS)dog.c $(HDEP) $(I)edog.h 1052 1053$(O)dogmove.o: $(NHS)dogmove.c $(HDEP) $(I)mfndpos.h $(I)edog.h 1054 1055$(O)dokick.o: $(NHS)dokick.c $(HDEP) $(I)eshk.h 1056 1057$(O)dothrow.o: $(NHS)dothrow.c $(HDEP) 1058 1059$(O)drawing.o: $(NHS)drawing.c $(HDEP) $(I)tcap.h 1060 $(CC) $(CFLAGS) $(CFLAGS2) $(OBJSPEC)$@ $(NHS)drawing.c 1061 1062$(O)dungeon.o: $(NHS)dungeon.c $(HDEP) $(I)dgn_file.h $(I)dlb.h 1063 1064$(O)eat.o: $(NHS)eat.c $(HDEP) 1065 1066$(O)end.o: $(NHS)end.c $(HDEP) $(I)eshk.h $(I)dlb.h 1067 1068$(O)engrave.o: $(NHS)engrave.c $(HDEP) $(I)lev.h 1069 1070$(O)exper.o: $(NHS)exper.c $(HDEP) 1071 1072$(O)explode.o: $(NHS)explode.c $(HDEP) 1073 1074$(O)extralev.o: $(NHS)extralev.c $(HDEP) 1075 1076$(O)files.o: $(NHS)files.c $(HDEP) $(I)dlb.h $(I)date.h 1077 1078$(O)fountain.o: $(NHS)fountain.c $(HDEP) 1079 1080$(O)hack.o: $(NHS)hack.c $(HDEP) 1081 1082$(O)hacklib.o: $(NHS)hacklib.c $(HDEP) 1083 1084$(O)invent.o: $(NHS)invent.c $(HDEP) $(I)artifact.h 1085 1086$(O)light.o: $(NHS)light.c $(HDEP) $(I)lev.h 1087 1088$(O)lock.o: $(NHS)lock.c $(HDEP) 1089 1090$(O)mail.o: $(NHS)mail.c $(HDEP) $(I)mail.h 1091 1092$(O)makemon.o: $(NHS)makemon.c $(HDEP) $(I)epri.h $(I)emin.h $(I)edog.h 1093 1094$(O)mapglyph.o: $(NHS)mapglyph.c $(HDEP) 1095 1096$(O)mcastu.o: $(NHS)mcastu.c $(HDEP) 1097 1098$(O)mhitm.o: $(NHS)mhitm.c $(HDEP) $(I)artifact.h $(I)edog.h 1099 1100$(O)mhitu.o: $(NHS)mhitu.c $(HDEP) $(I)artifact.h $(I)edog.h 1101 $(CC) $(CFLAGS) $(CFLAGS2) $(OBJSPEC)$@ $(NHS)mhitu.c 1102 1103$(O)minion.o: $(NHS)minion.c $(HDEP) $(I)emin.h $(I)epri.h 1104 1105$(O)mklev.o: $(NHS)mklev.c $(HDEP) 1106 1107$(O)mkmap.o: $(NHS)mkmap.c $(HDEP) $(I)sp_lev.h 1108 1109$(O)mkmaze.o: $(NHS)mkmaze.c $(HDEP) $(I)sp_lev.h $(I)lev.h 1110 1111$(O)mkobj.o: $(NHS)mkobj.c $(HDEP) $(I)artifact.h $(I)prop.h 1112 1113$(O)mkroom.o: $(NHS)mkroom.c $(HDEP) 1114 1115$(O)mon.o: $(NHS)mon.c $(HDEP) $(I)mfndpos.h $(I)edog.h 1116 1117$(O)mondata.o: $(NHS)mondata.c $(HDEP) $(I)eshk.h $(I)epri.h 1118 1119$(O)monmove.o: $(NHS)monmove.c $(HDEP) $(I)mfndpos.h $(I)artifact.h 1120 1121$(O)monst.o: $(NHS)monst.c $(I)config.h $(I)permonst.h $(I)monsym.h \ 1122 $(I)eshk.h $(I)vault.h $(I)epri.h $(I)color.h 1123 1124$(O)monstr.o: $(NHS)monstr.c $(HDEP) 1125 1126$(O)mplayer.o: $(NHS)mplayer.c $(HDEP) 1127 1128$(O)mthrowu.o: $(NHS)mthrowu.c $(HDEP) 1129 1130$(O)muse.o: $(NHS)muse.c $(HDEP) 1131 $(CC) $(CFLAGS) $(CFLAGS2) $(OBJSPEC)$@ $(NHS)muse.c 1132 1133$(O)music.o: $(NHS)music.c $(HDEP) #interp.c 1134 1135$(O)o_init.o: $(NHS)o_init.c $(HDEP) $(I)lev.h 1136 1137$(O)objects.o: $(NHS)objects.c $(I)config.h $(I)obj.h $(I)objclass.h \ 1138 $(I)prop.h $(I)skills.h $(I)color.h 1139 $(CC) $(CFLAGS) $(INCLSPEC)$(NHS) $(OBJSPEC)$@ $(NHS)objects.c 1140 1141$(O)objnam.o: $(NHS)objnam.c $(HDEP) 1142 1143$(O)options.o: $(NHS)options.c $(HDEP) $(I)tcap.h $(I)config.h \ 1144 $(I)objclass.h $(I)flag.h 1145 1146$(O)pager.o: $(NHS)pager.c $(HDEP) $(I)dlb.h 1147 1148$(O)pickup.o: $(NHS)pickup.c $(HDEP) 1149 1150$(O)pline.o: $(NHS)pline.c $(HDEP) $(I)epri.h 1151 1152$(O)polyself.o: $(NHS)polyself.c $(HDEP) 1153 1154$(O)potion.o: $(NHS)potion.c $(HDEP) 1155 1156$(O)pray.o: $(NHS)pray.c $(HDEP) $(I)epri.h 1157 1158$(O)priest.o: $(NHS)priest.c $(HDEP) $(I)mfndpos.h $(I)eshk.h $(I)epri.h \ 1159 $(I)emin.h 1160 1161$(O)quest.o: $(NHS)quest.c $(HDEP) $(I)quest.h $(I)qtext.h 1162 1163$(O)questpgr.o: $(NHS)questpgr.c $(HDEP) $(I)qtext.h $(I)dlb.h 1164 1165$(O)read.o: $(NHS)read.c $(HDEP) 1166 1167$(O)rect.o: $(NHS)rect.c $(HDEP) 1168 1169$(O)region.o: $(NHS)region.c $(HDEP) 1170 1171$(O)restore.o: $(NHS)restore.c $(HDEP) $(I)lev.h $(I)tcap.h $(I)quest.h 1172 1173$(O)rnd.o: $(NHS)rnd.c $(HDEP) 1174 1175$(O)role.o: $(NHS)role.c $(HDEP) 1176 1177$(O)rumors.o: $(NHS)rumors.c $(HDEP) $(I)dlb.h 1178 1179$(O)save.o: $(NHS)save.c $(HDEP) $(I)lev.h $(I)quest.h 1180 1181$(O)shk.o: $(NHS)shk.c $(HDEP) $(I)eshk.h 1182 $(CC) $(CFLAGS) $(CFLAGS2) $(OBJSPEC)$@ $(NHS)shk.c 1183 1184$(O)shknam.o: $(NHS)shknam.c $(HDEP) $(I)eshk.h 1185 1186$(O)sit.o: $(NHS)sit.c $(HDEP) $(I)artifact.h 1187 1188$(O)sounds.o: $(NHS)sounds.c $(HDEP) $(I)edog.h 1189 1190$(O)sp_lev.o: $(NHS)sp_lev.c $(HDEP) $(I)sp_lev.h $(I)rect.h $(I)dlb.h 1191 1192$(O)spell.o: $(NHS)spell.c $(HDEP) 1193 1194$(O)steal.o: $(NHS)steal.c $(HDEP) 1195 1196$(O)steed.o: $(NHS)steed.c $(HDEP) 1197 1198$(O)teleport.o: $(NHS)teleport.c $(HDEP) 1199 1200$(O)timeout.o: $(NHS)timeout.c $(HDEP) $(I)lev.h 1201 1202$(O)topten.o: $(NHS)topten.c $(HDEP) $(I)dlb.h 1203 1204$(O)track.o: $(NHS)track.c $(HDEP) 1205 1206$(O)trap.o: $(NHS)trap.c $(HDEP) 1207 $(CC) $(CFLAGS) $(CFLAGS2) $(OBJSPEC)$@ $(NHS)trap.c 1208 1209$(O)u_init.o: $(NHS)u_init.c $(HDEP) 1210 1211$(O)uhitm.o: $(NHS)uhitm.c $(HDEP) 1212 $(CC) $(CFLAGS) $(CFLAGS2) $(OBJSPEC)$@ $(NHS)uhitm.c 1213 1214$(O)vault.o: $(NHS)vault.c $(HDEP) $(I)vault.h 1215 1216$(O)version.o: $(NHS)version.c $(HDEP) $(I)date.h $(I)patchlevel.h 1217 1218$(O)vision.o: $(NHS)vision.c $(HDEP) #$(I)vis_tab.h 1219 1220$(O)weapon.o: $(NHS)weapon.c $(HDEP) 1221 1222$(O)were.o: $(NHS)were.c $(HDEP) 1223 1224$(O)wield.o: $(NHS)wield.c $(HDEP) 1225 1226$(O)windows.o: $(NHS)windows.c $(HDEP) $(I)wintty.h 1227 1228$(O)wizard.o: $(NHS)wizard.c $(HDEP) $(I)qtext.h 1229 1230$(O)worm.o: $(NHS)worm.c $(HDEP) $(I)lev.h 1231 1232$(O)worn.o: $(NHS)worn.c $(HDEP) 1233 1234$(O)write.o: $(NHS)write.c $(HDEP) 1235 1236$(O)zap.o: $(NHS)zap.c $(HDEP) 1237 $(CC) $(CFLAGS) $(CFLAGS2) $(OBJSPEC)$@ $(NHS)zap.c 1238 1239$(O)getline.o: $(TTY)getline.c $(HDEP) $(I)wintty.h 1240 1241$(O)termcap.o: $(TTY)termcap.c $(HDEP) $(I)wintty.h $(I)tcap.h 1242 1243$(O)topl.o: $(TTY)topl.c $(HDEP) $(I)wintty.h $(I)tcap.h 1244 1245$(O)wintty.o: $(TTY)wintty.c $(HDEP) $(I)wintty.h $(I)tcap.h \ 1246 $(I)patchlevel.h 1247 1248$(O)amitty.o: $(AMI)amitty.c $(HDEP) 1249 1250$(O)amistack.o: $(AMI)amistack.c 1251 $(CC) $(CFLAGS3) $(CSYM) $(OBJSPEC)$@ $(AMI)amistack.c 1252 1253$(O)rip.o: $(NHS)rip.c $(HDEP) 1254 1255 1256$(I)config.h: $(I)config1.h $(I)tradstdc.h $(I)global.h 1257 -setdate $(I)config.h 1258 -c:wait 2 1259 1260# onames.h handled at onames.h target, pm.h 1261 1262$(I)decl.h: $(I)quest.h $(I)spell.h $(I)color.h $(I)obj.h $(I)you.h 1263 -setdate $(I)decl.h 1264 -c:wait 2 1265 1266$(I)global.h: $(I)coord.h $(I)pcconf.h $(I)amiconf.h 1267 -setdate $(I)global.h 1268 -c:wait 2 1269 1270$(I)hack.h: $(I)config.h $(I)trap.h $(I)decl.h $(I)dungeon.h $(I)monsym.h \ 1271 $(I)mkroom.h $(I)objclass.h $(I)flag.h $(I)rm.h $(I)vision.h \ 1272 $(I)display.h $(I)wintype.h $(I)engrave.h $(I)rect.h \ 1273 $(I)region.h $(I)trampoli.h 1274 -setdate $(I)hack.h 1275 -c:wait 2 1276 1277$(I)permonst.h: $(I)monattk.h $(I)monflag.h $(I)align.h 1278 -setdate $(I)permonst.h 1279 -c:wait 2 1280 1281$(I)you.h: $(I)align.h $(I)attrib.h $(I)monst.h $(I)youprop.h $(I)skills.h 1282 -setdate $(I)you.h 1283 -c:wait 2 1284 1285# pm.h handled at target 1286 1287$(I)youprop.h: $(I)prop.h $(I)permonst.h $(I)mondata.h 1288 -setdate $(I)youprop.h 1289 -c:wait 2 1290 1291$(I)display.h: $(I)vision.h $(I)mondata.h 1292 -setdate $(I)display.h 1293 -c:wait 2 1294 1295$(I)dungeon.h: $(I)align.h 1296 -setdate $(I)dungeon.h 1297 -c:wait 2 1298 1299$(I)emin.h: $(I)dungeon.h 1300 -setdate $(I)emin.h 1301 -c:wait 2 1302 1303$(I)epri.h: $(I)dungeon.h $(I)align.h 1304 -setdate $(I)epri.h 1305 -c:wait 2 1306 1307$(I)eshk.h: $(I)dungeon.h 1308 -setdate $(I)eshk.h 1309 -c:wait 2 1310 1311$(I)engrave.h: $(I)trampoli.h $(I)rect.h 1312 -setdate $(I)engrave.h 1313 -c:wait 2 1314 1315$(I)mondata.h: $(I)align.h 1316 -setdate $(I)mondata.h 1317 -c:wait 2 1318 1319$(I)monst.h: $(I)align.h 1320 -setdate $(I)monst.h 1321 -c:wait 2 1322 1323$(I)pcconf.h: $(I)micro.h $(I)system.h 1324 -setdate $(I)pcconf.h 1325 -c:wait 2 1326 1327$(I)rm.h: $(I)align.h 1328 -setdate $(I)rm.h 1329 -c:wait 2 1330 1331$(I)vault.h: $(I)dungeon.h 1332 -setdate $(I)vault.h 1333 -c:wait 2 1334 1335#notes 1336# install keeps doing re-install because it keeps rebuilding lev_comp??? 1337# fixed(?) - deleted setdate 1338