1# NetHack 3.6 Makefile2.cross 2# Cross-compile msdos version of NetHack using a 3# linux-hosted djgpp cross-compiler. 4# 5# Makefile1.cross is for the host-side obj files and utilities that 6# will run on the host platform only. 7# 8# Makefile2.cross (this file) is the the target platform obj files 9# and utilities. 10# 11# Makefile2 utilizes the djgpp cross-compiler from Andrew Wu: 12# https://github.com/andrewwutw/build-djgpp 13# 14# Currently, in NetHack 3.6, the cross-compile for msdos cannot be 15# used to build the entire game to a playable point but it is useful 16# for testing the msdos port build of the evolving NetHack code. 17# 18 19# Game Installation Variables 20# NOTE: Make sure GAMEDIR exists before make is started. 21 22GAME = nethack 23# The GNU Make has a problem if you include a drive spec below (unfortunately). 24GAMEDIR =../binary 25 26# Optional PDCurses support 27# Uncomment these and set them appropriately if you want to 28# include curses port support alongside TTY support in your 29# NetHack.exe binary. 30# 31# You'll have to set PDCURSES_H to the correct location of the 32# PDCurses header (.h) files and PDCURSES_C to the location 33# of your PDCurses C files which must already be resident on 34# your machine. 35# 36ADD_CURSES=Y 37PDCURSES_TOP=../../pdcurses 38 39# Set top of djgpp if not specified through ENV variables prior to make: 40#DJGPP_TOP = $(HOME)/djgpp 41 42# 43#============================================================================== 44# This marks the end of the BUILD DECISIONS section. 45#============================================================================== 46# 47# Directories, gcc likes unix style directory specs 48# 49 50OBJ = o 51HOBJ = host_o 52DAT = ../dat 53DOC = ../doc 54INCL = ../include 55MSYS = ../sys/msdos 56SRC = ../src 57SSHR = ../sys/share 58UTIL = ../util 59WIN = ../win/tty 60WCURSES = ../win/curses 61WSHR = ../win/share 62 63# 64# Executables. 65ifndef DJGPP_TOP 66ifdef TRAVIS_BUILD_DIR 67DJGPP_TOP = TRAVIS_BUILD_DIR/djgpp 68else 69DJGPP_TOP = $(HOME)/djgpp 70endif 71endif 72 73TARGET_CC = $(DJGPP_TOP)/i586-pc-msdosdjgpp/bin/gcc 74TARGET_LINK = $(DJGPP_TOP)/i586-pc-msdosdjgpp/bin/gcc 75TARGET_STUBEDIT = $(DJGPP_TOP)/i586-pc-msdosdjgpp/bin/stubedit 76MAKEBIN = make 77 78# 79# Special libraries and how to link them in. 80 81LIBS = -lpc 82 83# If TERMLIB is defined in pcconf.h, comment out the upper line and 84# uncomment the lower. Note that you must build the termc library 85# and place it in djgpp's lib directory. See termcap.zip for details 86 87TERMLIB = 88#TERMLIB = -ltermc 89 90LIBRARIES = $(LIBS) $(TERMLIB) 91 92# 93# Yacc/Lex ... if you got 'em. 94# 95# If you have yacc/lex or a work-alike set YACC_LEX to Y 96# 97YACC_LEX = N 98 99ifeq "$(YACC_LEX)" "Y" 100DO_YACC = YACC_ACT 101DO_LEX = LEX_ACT 102endif 103 104# If YACC_LEX is Y above, set the following to values appropriate for 105# your tools. 106# 107YACC = bison -y 108LEX = lex 109# 110# If your flex and bison port mess with the output names directly 111# you must set the file names to the appropriate output file names 112# here 113#YTABC = y_tab.c 114#YTABH = y_tab.h 115#LEXYYC = lexyy.c 116# 117# If your flex and bison are able to produce files named 118# y.tab.c, y.tab.h or lex.yy.c you might have to set these 119# to the short file name equivalent (DIR /X to reveal them): 120YTABC = ytab~1.c 121YTABH = ytab~1.h 122LEXYYC = lexyy~1.c 123 124# 125# Uncomment the line below if you want to store all the level files, 126# help files, etc. in a single library file. 127 128USE_DLB = Y 129 130# djgpp includes ls.exe and touch.exe in fil41b.zip from the v2gnu 131# folder so be sure to include that when downloading djgpp. Doing 132# so will make changing this unnecessary. 133 134LS = ls -1 # ls.exe from djgpp distribution 135#LS = dir /l/b # DOS command 136 137# To build a binary without any graphics 138# suitable for blind players, 139# set SUPPRESS_GRAPHICS to Y 140# (Note: binary will require ANSI.SYS driver or equivalent loaded) 141# SUPPRESS_GRAPHICS = Y 142SUPPRESS_GRAPHICS = 143 144# ZLIB Support 145# To support zlib compression in bones and save files, you must 146# define ZLIB_COMP in include/config.h. 147# You must also have a zlib library to link NetHack with, and 148# for the djgpp build, you need one compatible with djgpp. 149# At the time that this was written (post-NetHack 3.4.3) the 150# following URL was a valid place to get a pre-built djgpp library 151# to add to your djgpp tools directory tree. 152# http://www.delorie.com/pub/djgpp/current/v2tk/zlib114b.zip 153# 154# If you defined ZLIB_COMP in include/config.h to build in support 155# for ZLIB compression, you need to uncomment the line below. 156#ZLIB= -lz 157 158#=============================================== 159#======= End of Modification Section =========== 160#=============================================== 161################################################ 162# # 163# Nothing below here should have to be changed.# 164# # 165################################################ 166 167GAMEFILE = $(GAMEDIR)/$(GAME).exe 168 169# Changing this conditional block is not recommended 170ifeq "$(USE_DLB)" "Y" 171DLBFLG = -DDLB 172else 173DLBFLG = 174endif 175 176TERMLIB = 177# Build NetHack suitable for blind players 178 179#========================================== 180#================ MACROS ================== 181#========================================== 182# This section creates shorthand macros for many objects 183# referenced later on in the Makefile. 184# 185# Have windows path styles available for use in commands 186# 187W_OBJ =$(subst /,\, $(OBJ)) 188W_INCL =$(subst /,\, $(INCL)) 189W_DAT =$(subst /,\, $(DAT)) 190W_DOC =$(subst /,\, $(DOC)) 191W_UTIL =$(subst /,\, $(UTIL)) 192W_SRC =$(subst /,\, $(SRC)) 193W_SSYS =$(subst /,\, $(SSYS)) 194W_MSWSYS =$(subst /,\, $(MSWSYS)) 195W_TTY =$(subst /,\, $(TTY)) 196W_MSWIN =$(subst /,\, $(MSWIN)) 197ifeq "$(ADD_CURSES)" "Y" 198W_WCURSES =$(subst /,\, $(WCURSES)) 199endif 200W_WSHR =$(subst /,\, $(WSHR)) 201W_GAMEDIR =$(subst /,\, $(GAMEDIR)) 202 203# 204# Shorten up the location for some files 205# 206 207O = $(OBJ)/ 208HOST_O = $(HOBJ)/ 209U = $(UTIL)/ 210 211#========================================== 212# Utility Objects. 213#========================================== 214 215VGAOBJ = $(O)vidvga.o $(O)vidvesa.o 216 217MAKESRC = makedefs.c 218 219#SPLEVSRC = lev_yacc.c lev_$(LEX).c lev_main.c panic.c 220 221#DGNCOMPSRC = dgn_yacc.c dgn_$(LEX).c dgn_main.c 222 223MAKEDEFSOBJS = $(HOST_O)makedefs.o $(HOST_O)monst.o $(HOST_O)objects.o 224 225#SPLEVOBJS = $(HOST_O)lev_yacc.o $(HOST_O)lev_$(LEX).o $(HOST_O)lev_main.o $(HOST_O)alloc.o \ 226# $(HOST_O)monst.o $(HOST_O)objects.o $(HOST_O)panic.o \ 227# $(HOST_O)drawing.o $(HOST_O)decl.o $(O)stubvid.o 228 229#DGNCOMPOBJS = $(HOST_O)dgn_yacc.o $(HOST_O)dgn_$(LEX).o $(HOST_O)dgn_main.o $(HOST_O)alloc.o \ 230# $(HOST_O)panic.o 231 232RECOVOBJS = $(O)recover.o 233 234 235#========================================== 236# Tile related object files. 237#========================================== 238 239ifeq ($(SUPPRESS_GRAPHICS),Y) 240TILOBJ = 241TILOBJ2 = 242TEXTIO = 243TEXTIO2 = 244TILE_BMP = 245TILEUTIL = 246TILEFILES = 247TILEFILES2 = 248GIFREADERS = 249GIFREAD2 = 250PPMWRITERS = 251PPMWRIT2 = 252 253else 254 255TILOBJ = $(O)tile.o $(VGAOBJ) 256 257TILOBJ2 = $(O)tileset.o $(O)bmptiles.o $(O)giftiles.o 258 259TEXTIO = $(HOST_O)tiletext.o $(HOST_O)tiletxt.o $(HOST_O)drawing.o $(HOST_O)decl.o $(HOST_O)monst.o \ 260 $(HOST_O)objects.o $(HOST_O)stubvid.o 261 262TEXTIO2 = $(HOST_O)tiletex2.o $(HOST_O)tiletxt2.o $(HOST_O)drawing.o $(HOST_O)decl.o $(HOST_O)monst.o \ 263 $(HOST_O)objects.o $(HOST_O)stubvid.o 264 265TILE_BMP = $(DAT)/nhtiles.bmp 266 267TILEUTIL = $(TILOBJ) $(U)tile2bin $(U)til2bin2 $(TILE_BMP) 268 269TILEFILES = $(WSHR)/monsters.txt $(WSHR)/objects.txt $(WSHR)/other.txt 270 271TILEFILES2 = $(WSHR)/monthin.txt $(WSHR)/objthin.txt $(WSHR)/oththin.txt 272 273GIFREADERS = $(HOST_O)gifread.o $(HOST_O)alloc.o $(HOST_O)panic.o 274 275GIFREAD2 = $(HOST_O)gifread2.o $(HOST_O)alloc.o $(HOST_O)panic.o 276 277PPMWRITERS = $(HOST_O)ppmwrite.o $(HOST_O)alloc.o $(HOST_O)panic.o 278 279PPMWRIT2 = $(HOST_O)ppmwrit2.o $(HOST_O)alloc.o $(HOST_O)panic.o 280endif 281 282#REGEX = $(O)pmatchregex.o 283#REGEX = $(O)cppregex.o 284REGEX = $(O)posixreg.o 285 286DLBOBJ = $(O)dlb.o 287 288# Object files for the game itself. 289 290 291VOBJ01 = $(O)allmain.o $(O)alloc.o $(O)apply.o $(O)artifact.o $(O)attrib.o 292VOBJ02 = $(O)ball.o $(O)bones.o $(O)botl.o $(O)cmd.o $(O)dbridge.o 293VOBJ03 = $(O)decl.o $(O)detect.o $(O)display.o $(O)do.o $(O)do_name.o 294VOBJ04 = $(O)do_wear.o $(O)dog.o $(O)dogmove.o $(O)dokick.o $(O)dothrow.o 295VOBJ05 = $(O)drawing.o $(O)dungeon.o $(O)eat.o $(O)end.o $(O)engrave.o 296VOBJ06 = $(O)exper.o $(O)explode.o $(O)extralev.o $(O)files.o $(O)fountain.o 297VOBJ07 = $(O)getline.o $(O)hack.o $(O)hacklib.o $(O)invent.o $(O)lock.o 298VOBJ08 = $(O)mail.o $(O)main.o $(O)makemon.o $(O)mapglyph.o $(O)mcastu.o $(O)mhitm.o 299VOBJ09 = $(O)mhitu.o $(O)minion.o $(O)mkmap.o $(O)mklev.o $(O)mkmaze.o 300VOBJ10 = $(O)mkobj.o $(O)mkroom.o $(O)mon.o $(O)mondata.o $(O)monmove.o 301VOBJ11 = $(O)monst.o $(O)mplayer.o $(O)mthrowu.o $(O)muse.o 302VOBJ12 = $(O)music.o $(O)o_init.o $(O)objects.o $(O)objnam.o $(O)options.o 303VOBJ13 = $(O)pickup.o $(O)pline.o $(O)polyself.o $(O)potion.o $(O)quest.o 304VOBJ14 = $(O)questpgr.o $(O)pager.o $(O)pray.o $(O)priest.o $(O)read.o 305VOBJ15 = $(O)rect.o $(O)restore.o $(O)rip.o $(O)rnd.o $(O)role.o 306VOBJ16 = $(O)rumors.o $(O)save.o $(O)shk.o $(O)shknam.o $(O)sit.o 307VOBJ17 = $(O)sounds.o $(O)sp_lev.o $(O)spell.o $(O)steal.o $(O)steed.o 308VOBJ18 = $(O)termcap.o $(O)timeout.o $(O)topl.o $(O)topten.o $(O)track.o 309VOBJ19 = $(O)trap.o $(O)u_init.o $(O)uhitm.o $(O)vault.o $(O)vision.o 310VOBJ20 = $(O)vis_tab.o $(O)weapon.o $(O)were.o $(O)wield.o $(O)windows.o 311VOBJ21 = $(O)wintty.o $(O)wizard.o $(O)worm.o $(O)worn.o $(O)write.o 312VOBJ22 = $(O)zap.o $(O)light.o $(O)dlb.o $(O)dig.o $(O)teleport.o 313VOBJ23 = $(O)region.o $(O)sys.o $(REGEX) $(O)isaac64.o 314 315SOBJ = $(O)msdos.o $(O)sound.o $(O)pcsys.o $(O)tty.o $(O)unix.o \ 316 $(O)video.o $(O)vidtxt.o $(O)pckeys.o 317 318VVOBJ = $(O)version.o 319 320ifeq "$(ADD_CURSES)" "Y" 321CURSESOBJ= $(O)cursdial.o $(O)cursinit.o $(O)cursinvt.o $(O)cursmain.o \ 322 $(O)cursmesg.o $(O)cursmisc.o $(O)cursstat.o $(O)curswins.o 323else 324CURSESOBJ= 325endif 326 327VOBJ = $(VOBJ01) $(VOBJ02) $(VOBJ03) $(VOBJ04) $(VOBJ05) \ 328 $(VOBJ06) $(VOBJ07) $(VOBJ08) $(VOBJ09) $(VOBJ10) \ 329 $(VOBJ11) $(VOBJ12) $(VOBJ13) $(VOBJ14) $(VOBJ15) \ 330 $(VOBJ16) $(VOBJ17) $(VOBJ18) $(VOBJ19) $(VOBJ20) \ 331 $(VOBJ21) $(VOBJ22) $(VOBJ23) \ 332 $(CURSESOBJ) 333 334ALLOBJ = $(VOBJ) $(SOBJ) $(TILOBJ) $(TILOBJ2) $(VVOBJ) 335 336ifeq "$(ADD_CURSES)" "Y" 337#========================================== 338# PDCurses build macros 339#========================================== 340PDCURSES_CURSES_H = $(PDCURSES_TOP)/curses.h 341PDCURSES_CURSPRIV_H = $(PDCURSES_TOP)/curspriv.h 342PDCURSES_HEADERS = $(PDCURSES_CURSES_H) $(PDCURSES_CURSPRIV_H) 343PDCSRC = $(PDCURSES_TOP)/pdcurses 344PDCDOS = $(PDCURSES_TOP)/dos 345PDCLIBOBJS1 = $(O)addch.o $(O)addchstr.o $(O)addstr.o $(O)attr.o $(O)beep.o \ 346 $(O)bkgd.o $(O)border.o $(O)clear.o $(O)color.o $(O)delch.o $(O)deleteln.o \ 347 $(O)getch.o 348PDCLIBOBJS2 = $(O)getstr.o $(O)getyx.o $(O)inch.o $(O)inchstr.o $(O)initscr.o \ 349 $(O)inopts.o $(O)insch.o $(O)insstr.o $(O)instr.o $(O)kernel.o \ 350 $(O)keyname.o $(O)mouse.o 351PDCLIBOBJS3 = $(O)move.o $(O)outopts.o $(O)overlay.o $(O)pad.o $(O)panel.o \ 352 $(O)printw.o $(O)refresh.o $(O)scanw.o $(O)scr_dump.o $(O)scroll.o \ 353 $(O)slk.o $(O)termattr.o 354PDCLIBOBJS4 = $(O)touch.o $(O)util.o $(O)window.o $(O)debug.o 355PDCLIBOBJS = $(PDCLIBOBJS1) $(PDCLIBOBJS2) $(PDCLIBOBJS3) $(PDCLIBOBJS4) 356 357PDCOBJS = $(O)pdcclip.o $(O)pdcdisp.o $(O)pdcgetsc.o $(O)pdckbd.o \ 358 $(O)pdcscrn.o $(O)pdcsetsc.o $(O)pdcutil.o 359 360#PDCOBJS = $(O)pdcclip.o $(O)pdcdisp.o $(O)pdcgetsc.o $(O)pdckbd.o $(O)pdcscrn.o \ 361# $(O)pdcsetsc.o $(O)pdcutil.o 362 363PDCLIB = $(O)pdcurses.a 364 365#PDCINCL = -I$(PDCURSES_TOP) -I$(PDCSRC) -I$(PDCDOS) 366PDCINCL = -I$(PDCURSES_TOP) -I$(PDCDOS) 367else 368PDCLIB = 369endif 370 371#========================================== 372# Header file macros 373#========================================== 374 375PATCHLEV_H = $(INCL)/patchlev.h 376DGN_FILE_H = $(INCL)/align.h $(INCL)/dgn_file.h 377DUNGEON_H = $(INCL)/align.h $(INCL)/dungeon.h 378MONDATA_H = $(INCL)/align.h $(INCL)/mondata.h 379MONST_H = $(INCL)/align.h $(INCL)/monst.h $(INCL)/mextra.h 380PERMONST_H = $(INCL)/monattk.h $(INCL)/monflag.h $(INCL)/align.h \ 381 $(INCL)/permonst.h 382REGION_H = $(INCL)/region.h 383RM_H = $(INCL)/align.h $(INCL)/rm.h 384SKILLS_H = $(INCL)/skills.h 385SP_LEV_H = $(INCL)/align.h $(INCL)/sp_lev.h 386YOUPROP_H = $(PERMONST_H) $(MONDATA_H) $(INCL)/prop.h \ 387 $(INCL)/pm.h $(INCL)/youprop.h 388YOU_H = $(MONST_H) $(YOUPROP_H) $(INCL)/align.h \ 389 $(INCL)/attrib.h $(INCL)/you.h 390DISPLAY_H = $(MONDATA_H) $(INCL)/vision.h $(INCL)/display.h 391PCCONF_H = $(INCL)/micro.h $(INCL)/system.h $(INCL)/pcconf.h \ 392 $(MSYS)/pcvideo.h 393CONFIG_H = $(GLOBAL_H) $(INCL)/tradstdc.h $(INCL)/config1.h \ 394 $(INCL)/config.h 395DECL_H = $(YOU_H) $(INCL)/spell.h $(INCL)/color.h \ 396 $(INCL)/obj.h $(INCL)/onames.h $(INCL)/pm.h \ 397 $(INCL)/decl.h 398GLOBAL_H = $(PCCONF_H) $(INCL)/coord.h $(INCL)/global.h 399HACK_H = $(CONFIG_H) $(INCL)/context.h $(DUNGEON_H) \ 400 $(DECL_H) $(DISPLAY_H) $(INCL)/monsym.h \ 401 $(INCL)/mkroom.h $(INCL)/objclass.h $(INCL)/trap.h \ 402 $(INCL)/flag.h $(RM_H) $(INCL)/vision.h \ 403 $(INCL)/wintype.h $(INCL)/engrave.h $(INCL)/rect.h \ 404 $(INCL)/trampoli.h $(INCL)/hack.h $(REGION_H) \ 405 $(INCL)/sys.h 406DLB_H = $(INCL)/dlb.h 407 408ifeq ($(SUPPRESS_GRAPHICS),Y) 409TILE_H = 410else 411TILE_H = $(WSHR)/tile.h $(INCL)/tileset.h 412endif 413 414ifeq ($(USE_DLB),Y) 415DLB = dlb 416DLBOBJS = $(O)dlb_main.o $(O)dlb.o $(O)alloc.o $(O)panic.o 417else 418DLB = 419DLBOBJS = 420endif 421 422ifdef DJGPP 423DJ1 = $(dir $(DJGPP)) 424CWSDPMI = $(subst /,\,$(DJ1))bin\CWSDPMI.* 425endif 426 427#========================================== 428# More compiler setup macros 429#========================================== 430# 431ifeq "$(ADD_CURSES)" "Y" 432CURSESDEF=-D"CURSES_GRAPHICS" -D"CURSES_BRIEF_INCLUDE" 433else 434CURSESDEF= 435CURSESLIB= 436endif 437 438INCLDIR=-I../include -I../sys/msdos 439 440# Debugging 441#cflags = -pg -c $(INCLDIR) $(DLBFLG) $(CURSESDEF) -DSUPPRESS_GRAPHICS 442#LFLAGS = -pg 443 444cflags = -c -O $(INCLDIR) $(DLBFLG) $(CURSESDEF) -DSUPPRESS_GRAPHICS 445LFLAGS = 446 447# Debugging 448#cflags = -g -c $(INCLDIR) $(DLBFLG) $(CURSESDEF) -DUSE_TILES 449#LFLAGS = -g 450 451# Normal 452cflags = -c -O $(INCLDIR) $(DLBFLG) $(CURSESDEF) -DUSE_TILES 453LFLAGS = 454 455#========================================== 456#================ RULES ================== 457#========================================== 458 459.SUFFIXES: .o .til .uu .c .y .l 460 461#========================================== 462# Rules for files in src 463#========================================== 464 465$(OBJ)/%.o : %.c 466 $(TARGET_CC) $(cflags) -o$@ $< 467 468$(OBJ)/%.o : $(SRC)/%.c 469 $(TARGET_CC) $(cflags) -o$@ $< 470 471#========================================== 472# Rules for files in sys/share 473#========================================== 474 475$(OBJ)/%.o : $(SSHR)/%.c 476 $(TARGET_CC) $(cflags) -o$@ $< 477 478#========================================== 479# Rules for files in sys/msdos 480#========================================== 481 482$(OBJ)/%.o : $(MSYS)/%.c 483 $(TARGET_CC) $(cflags) -I../sys/msdos -o$@ $< 484 485#========================================== 486# Rules for files in util 487#========================================== 488 489$(OBJ)/%.o : $(UTIL)/%.c 490 $(TARGET_CC) $(cflags) -o$@ $< 491 492#========================================== 493# Rules for files in win/share 494#========================================== 495 496$(OBJ)/%.o : $(WSHR)/%.c 497 $(TARGET_CC) $(cflags) -I../win/share -o$@ $< 498 499#========================================== 500# Rules for files in win/tty 501#========================================== 502 503$(OBJ)/%.o : $(TTY)/%.c 504 $(TARGET_CC) $(cflags) -o$@ $< 505 506#========================================== 507# Rules for files in win/curses 508#========================================== 509 510$(OBJ)/%.o : $(WCURSES)/%.c 511 $(TARGET_CC) -DPDC_NCMOUSE $(PDCINCL) $(cflags) -o$@ $< 512 513#========================================== 514# Rules for files in PDCurses 515#========================================== 516 517$(OBJ)/%.o : $(PDCURSES_TOP)/%.c 518 $(TARGET_CC) $(PDCINCL) $(cflags) -o$@ $< 519 520$(OBJ)/%.o : $(PDCSRC)/%.c 521 $(TARGET_CC) $(PDCINCL) $(cflags) -o$@ $< 522 523$(OBJ)/%.o : $(PDCDOS)/%.c 524 $(TARGET_CC) $(PDCINCL) $(cflags) -o$@ $< 525 526#========================================== 527# Primary Targets. 528#========================================== 529 530# The default target. 531 532all : install 533 534install: $(GAMEFILE) $(O)install.tag 535 @echo Done. 536 537default: $(GAMEFILE) 538 539util: $(O)utility.tag 540 541#LEVCOMPEXE = $(U)lev_comp 542 543$(O)utility.tag: $(INCL)/date.h $(INCL)/trap.h $(INCL)/onames.h \ 544 $(INCL)/pm.h vis_tab.c $(TILEUTIL) 545 echo utilities made > $@ 546 547tileutil: $(U)gif2txt $(U)txt2ppm 548 @echo Optional tile development utilities are up to date. 549 550recover.exe: $(U)recover 551# @$(subst /,\,if exist $(U)recover copy $(U)recover $(GAMEDIR)) 552# @$(subst /,\,if exist $(DOC)/recover.txt copy $(DOC)/recover.txt $(GAMEDIR)) 553 554$(O)install.tag: $(DAT)/nhdat $(GAMEFILE) 555ifeq ($(USE_DLB),Y) 556 cp $(DAT)/nhdat $(GAMEDIR) 557 cp $(DAT)/license $(GAMEDIR) 558else 559 cp $(DAT)/*. $(GAMEDIR) 560 cp $(DAT)/*.dat $(GAMEDIR) 561 cp $(DAT)/*.lev $(GAMEDIR) 562 cp $(MSYS)/msdoshlp.txt $(GAMEDIR)) 563endif 564ifdef TERMLIB 565 cp $(SSHR)/termcap $(GAMEDIR)) 566endif 567# if [ -f $(TILE_BMP) ]; then rm $(TILE_BMP); fi; 568 if [ -f $(TILE_BMP) ]; then cp $(TILE_BMP) $(GAMEDIR); fi; 569 if [ -f $(DAT)/symbols ]; then cp $(DAT)/symbols $(GAMEDIR); fi; 570 if [ -f $(SSHR)/NetHack.cnf ]; then cp $(SSHR)/NetHack.cnf $(GAMEDIR); fi; 571 -touch $(GAMEDIR)/record 572 if [ -f ../sys/winnt/sysconf ]; then cp ../sys/winnt/sysconf $(GAMEDIR); fi; 573 if [ -f $(DOC)/nethack.txt ]; then cp $(DOC)/nethack.txt $(GAMEDIR); fi; 574ifdef CWSDPMI 575 if [ -f $(CWSDPMI) ]; then cp $(CWSDPMI) $(GAMEDIR); fi; 576else 577 @echo Could not find a copy of CWSDPMI.EXE to put into $(GAMEDIR) 578endif 579 @echo install done > $@ 580 581#========================================== 582# The main target. 583#========================================== 584 585$(GAMEFILE): $(O)obj.tag $(PATCHLEV_H) $(PDCLIB) \ 586 $(O)utility.tag $(ALLOBJ) $(O)$(GAME).lnk 587 if [ -f temp.a ]; then rm temp.a; fi; 588 @ar r temp.a $(VOBJ01) 589 @ar r temp.a $(VOBJ02) 590 @ar r temp.a $(VOBJ03) 591 @ar r temp.a $(VOBJ04) 592 @ar r temp.a $(VOBJ05) 593 @ar r temp.a $(VOBJ06) 594 @ar r temp.a $(VOBJ07) 595 @ar r temp.a $(VOBJ08) 596 @ar r temp.a $(VOBJ09) 597 @ar r temp.a $(VOBJ10) 598 @ar r temp.a $(VOBJ11) 599 @ar r temp.a $(VOBJ12) 600 @ar r temp.a $(VOBJ13) 601 @ar r temp.a $(VOBJ14) 602 @ar r temp.a $(VOBJ15) 603 @ar r temp.a $(VOBJ16) 604 @ar r temp.a $(VOBJ17) 605 @ar r temp.a $(VOBJ18) 606 @ar r temp.a $(VOBJ19) 607 @ar r temp.a $(VOBJ20) 608 @ar r temp.a $(VOBJ21) 609 @ar r temp.a $(VOBJ22) 610 @ar r temp.a $(VOBJ23) 611 @ar r temp.a $(VOBJ24) 612 @ar r temp.a $(VOBJ25) 613 @ar r temp.a $(SOBJ) 614 @ar r temp.a $(TILOBJ) 615 @ar r temp.a $(TILOBJ2) 616 @ar r temp.a $(VVOBJ) 617ifeq "$(ADD_CURSES)" "Y" 618 @ar r temp.a $(CURSESOBJ) 619endif 620 $(TARGET_LINK) $(LFLAGS) -o$(GAME).exe temp.a $(PDCLIB) $(LIBRARIES) $(ZLIB) 621 $(TARGET_STUBEDIT) $(GAME).exe minstack=2048K 622 cp $(GAME).exe $(GAMEFILE) 623 rm $(GAME).exe 624 625$(O)$(GAME).lnk: $(ALLOBJ) 626 echo $(VOBJ01) > $(subst /,\,$@) 627 echo $(VOBJ02) >> $(subst /,\,$@) 628 echo $(VOBJ03) >> $(subst /,\,$@) 629 echo $(VOBJ04) >> $(subst /,\,$@) 630 echo $(VOBJ05) >> $(subst /,\,$@) 631 echo $(VOBJ06) >> $(subst /,\,$@) 632 echo $(VOBJ07) >> $(subst /,\,$@) 633 echo $(VOBJ08) >> $(subst /,\,$@) 634 echo $(VOBJ09) >> $(subst /,\,$@) 635 echo $(VOBJ10) >> $(subst /,\,$@) 636 echo $(VOBJ11) >> $(subst /,\,$@) 637 echo $(VOBJ12) >> $(subst /,\,$@) 638 echo $(VOBJ13) >> $(subst /,\,$@) 639 echo $(VOBJ14) >> $(subst /,\,$@) 640 echo $(VOBJ15) >> $(subst /,\,$@) 641 echo $(VOBJ16) >> $(subst /,\,$@) 642 echo $(VOBJ17) >> $(subst /,\,$@) 643 echo $(VOBJ18) >> $(subst /,\,$@) 644 echo $(VOBJ19) >> $(subst /,\,$@) 645 echo $(VOBJ20) >> $(subst /,\,$@) 646 echo $(VOBJ21) >> $(subst /,\,$@) 647 echo $(VOBJ22) >> $(subst /,\,$@) 648 echo $(VOBJ23) >> $(subst /,\,$@) 649 echo $(VOBJ24) >> $(subst /,\,$@) 650 echo $(VOBJ25) >> $(subst /,\,$@) 651 echo $(SOBJ) >> $(subst /,\,$@) 652 echo $(TILOBJ) >> $(subst /,\,$@) 653 echo $(TILOBJ2) >> $(subst /,\,$@) 654 echo $(VVOBJ) >> $(subst /,\,$@) 655ifeq "$(ADD_CURSES)" "Y" 656 echo $(CURSESOBJ) >> $(subst /,\,$@) 657endif 658 659#========================================== 660#=========== SECONDARY TARGETS ============ 661#========================================== 662# 663# The following include files depend on makedefs to be created. 664# 665# date.h should be remade every time any of the source or include 666# files is modified. 667# 668# 669#$(INCL)/date.h : $(U)makedefs 670# -$(U)makedefs -v 671# 672#$(INCL)/onames.h: $(U)makedefs 673# -$(U)makedefs -o 674# 675#$(INCL)/pm.h: $(U)makedefs 676# -$(U)makedefs -p 677# 678#monstr.c: $(U)makedefs 679# -$(U)makedefs -m 680# 681#$(INCL)/vis_tab.h: $(U)makedefs 682# -$(U)makedefs -z 683# 684#vis_tab.c: $(U)makedefs 685# -$(U)makedefs -z 686# 687#========================================== 688# Level Compiler Dependencies 689#========================================== 690# 691#$(U)lev_comp: $(SPLEVOBJS) 692# -rm -f temp.a 693# @ar ru temp.a $(SPLEVOBJS) 694# $(HOST_LINK) $(LFLAGS) -o$@ temp.a 695# 696#$(HOST_O)lev_yacc.o: $(HACK_H) $(SP_LEV_H) $(INCL)/lev_comp.h $(U)lev_yacc.c 697# $(HOST_CC) $(cflags) -o$@ $(U)lev_yacc.c 698# 699#$(HOST_O)lev_$(LEX).o: $(HACK_H) $(SP_LEV_H) $(INCL)/lev_comp.h \ 700# $(U)lev_$(LEX).c 701# $(HOST_CC) $(cflags) -o$@ $(U)lev_$(LEX).c 702# 703#$(HOST_O)lev_main.o: $(HACK_H) $(INCL)/sp_lev.h $(INCL)/date.h $(U)lev_main.c 704# 705#$(U)lev_yacc.c: $(SSHR)/lev_yacc.c 706# @echo --- 707# @echo For now, we will copy the prebuilt 708# @echo lev_comp.c from $(SSHR) into $(U) and use that. 709# @cp $(SSHR)/lev_yacc.c $(U)lev_yacc.c 710# @echo.>>$(U)lev_yacc.c 711# 712#$(INCL)/lev_comp.h : $(SSHR)/lev_comp.h 713# @echo For now, we will copy the prebuilt lev_comp.h 714# @echo from $(SSHR) into $(INCL) and use that. 715# @cp $(SSHR)/lev_comp.h $@ 716#$(U)lev_lex.c: $(SSHR)/lev_lex.c 717# @echo.>>$(INCL)/lev_comp.h 718# @echo For now, we will copy the prebuilt lev_lex.c 719# @echo from $(SSHR) into $(U) and use it. 720# @cp $(SSHR)/lev_lex.c $@ 721# @echo.>>$@ 722# 723#========================================== 724# Dungeon Dependencies 725#========================================== 726# 727#$(U)dgn_comp: $(DGNCOMPOBJS) 728# $(HOST_LINK) $(LFLAGS) -o$@ $(DGNCOMPOBJS) 729# 730#$(U)dgn_yacc.c: $(SSHR)/dgn_yacc.c 731# @echo --- 732# @echo For now, we will copy the prebuilt $(U)dgn_yacc.c and 733# @echo dgn_comp.h from $(SSHR) into $(U) and use that. 734# @cp $(SSHR)/dgn_yacc.c $(U)dgn_yacc.c 735# @echo.>>$(U)dgn_yacc.c 736# 737#$(INCL)/dgn_comp.h: $(SSHR)/dgn_comp.h 738# @echo --- 739# @echo For now, we will copy the prebuilt dgn_comp.h 740# @echo from $(SSHR) into $(INCL) and use that. 741# @cp $(SSHR)/dgn_comp.h $@ 742# @echo.>>$(INCL)/dgn_comp.h 743# 744#$(U)dgn_$(LEX).c: $(SSHR)/dgn_lex.c $(INCL)/dgn_comp.h 745# @echo --- 746# @echo For now, we will copy the prebuilt dgn_lex.c 747# @echo from $(SSHR) into $(U) and use it. 748# @cp $(SSHR)/dgn_lex.c $@ 749# @echo.>>$@ 750 751#========================================== 752# Recover Utility 753#========================================== 754 755$(U)recover.exe: $(RECOVOBJS) 756 $(TARGET_LINK) $(LFLAGS) -o$@ $(O)recover.o 757 758$(O)recover.o: $(CONFIG_H) $(U)recover.c 759 $(TARGET_CC) $(cflags) -o$@ $(U)recover.c 760 761#========================================== 762# Header file moves required for tile support 763#========================================== 764 765ifeq ($(SUPPRESS_GRAPHICS),Y) 766 767else 768# 769# Tile Mapping 770# 771 772#$(SRC)/tile.c: $(U)tilemap 773# @$(U)tilemap 774# @echo A new $@ has been created 775 776endif 777 778#========================================== 779# PDCurses Library 780#========================================== 781 782$(O)pdcurses.a : $(PDCLIBOBJS) $(PDCOBJS) 783 ar rcS $@ $(PDCLIBOBJS1) 784 ar rcS $@ $(PDCLIBOBJS2) 785 ar rcS $@ $(PDCLIBOBJS3) 786 ar rcS $@ $(PDCLIBOBJS4) 787 ar rcs $@ $(PDCOBJS) 788 789#========================================== 790# Other Util Dependencies. 791#========================================== 792 793$(O)alloc.o: $(CONFIG_H) alloc.c 794 $(TARGET_CC) $(cflags) -o$@ alloc.c 795 796$(O)drawing.o: $(CONFIG_H) drawing.c $(MSYS)/pcvideo.h 797 $(TARGET_CC) $(cflags) -I$(MSYS) -o$@ drawing.c 798 799$(O)decl.o: $(CONFIG_H) decl.c 800 $(TARGET_CC) $(cflags) -o$@ decl.c 801 802$(O)monst.o: $(CONFIG_H) $(PERMONST_H) $(INCL)/monsym.h \ 803 $(INCL)/color.h monst.c 804 $(TARGET_CC) $(cflags) -o$@ monst.c 805 806$(O)objects.o: $(CONFIG_H) $(INCL)/obj.h $(INCL)/objclass.h \ 807 $(INCL)/prop.h $(INCL)/color.h objects.c 808 $(TARGET_CC) $(cflags) -o$@ objects.c 809 810$(O)dat.tag: $(DAT)/nhdat 811 @echo dat done >$@ 812 813#$(HOST_O)monst.o: $(CONFIG_H) $(PERMONST_H) $(INCL)/monsym.h \ 814# $(INCL)/color.h monst.c 815# $(HOST_CC) $(cflags) -o$@ monst.c 816 817#$(HOST_O)objects.o: $(CONFIG_H) $(INCL)/obj.h $(INCL)/objclass.h \ 818# $(INCL)/prop.h $(INCL)/color.h objects.c 819# $(HOST_CC) $(cflags) -o$@ objects.c 820 821#$(O)panic.o: $(CONFIG_H) $(U)panic.c 822 823# make data.base an 8.3 filename to prevent an make warning 824#DATABASE = $(DAT)/data.bas 825# 826# 827# 828#$(DAT)/data: $(O)utility.tag $(DATABASE) 829# $(U)makedefs -d 830# 831#$(DAT)/rumors: $(O)utility.tag $(DAT)/rumors.tru $(DAT)/rumors.fal 832# $(U)makedefs -r 833# 834#$(DAT)/quest.dat: $(O)utility.tag $(DAT)/quest.txt 835# $(U)makedefs -q 836# 837#$(DAT)/oracles: $(O)utility.tag $(DAT)/oracles.txt 838# $(U)makedefs -h 839# 840#$(DAT)/bogusmon: $(O)utility.tag $(DAT)/bogusmon.txt 841# $(U)makedefs -s 842# 843#$(DAT)/engrave: $(O)utility.tag $(DAT)/engrave.txt 844# $(U)makedefs -s 845# 846#$(DAT)/epitaph: $(O)utility.tag $(DAT)/epitaph.txt 847# $(U)makedefs -s 848# 849#$(O)sp_lev.tag: $(O)utility.tag \ 850# $(DAT)/bigroom.des $(DAT)/castle.des \ 851# $(DAT)/endgame.des $(DAT)/gehennom.des $(DAT)/knox.des \ 852# $(DAT)/medusa.des $(DAT)/oracle.des $(DAT)/tower.des \ 853# $(DAT)/yendor.des $(DAT)/arch.des $(DAT)/barb.des \ 854# $(DAT)/caveman.des $(DAT)/healer.des $(DAT)/knight.des \ 855# $(DAT)/monk.des $(DAT)/priest.des $(DAT)/ranger.des \ 856# $(DAT)/rogue.des $(DAT)/samurai.des $(DAT)/tourist.des \ 857# $(DAT)/valkyrie.des $(DAT)/wizard.des 858# cd $(DAT) 859# $(U)lev_comp bigroom.des 860# $(U)lev_comp castle.des 861# $(U)lev_comp endgame.des 862# $(U)lev_comp gehennom.des 863# $(U)lev_comp knox.des 864# $(U)lev_comp mines.des 865# $(U)lev_comp medusa.des 866# $(U)lev_comp oracle.des 867# $(U)lev_comp sokoban.des 868# $(U)lev_comp tower.des 869# $(U)lev_comp yendor.des 870# $(U)lev_comp arch.des 871# $(U)lev_comp barb.des 872# $(U)lev_comp caveman.des 873# $(U)lev_comp healer.des 874# $(U)lev_comp knight.des 875# $(U)lev_comp monk.des 876# $(U)lev_comp priest.des 877# $(U)lev_comp ranger.des 878# $(U)lev_comp rogue.des 879# $(U)lev_comp samurai.des 880# $(U)lev_comp tourist.des 881# $(U)lev_comp valkyrie.des 882# $(U)lev_comp wizard.des 883# cd $(SRC) 884# echo sp_levs done > $@ 885# 886#$(DAT)/dungeon: $(O)utility.tag $(DAT)/dungeon.def 887# $(U)makedefs -e 888# cd $(DAT) 889# $(U)dgn_comp dungeon.pdf 890# cd $(SRC) 891 892#========================================== 893# DLB stuff 894#========================================== 895 896#note that dir below assumes bin/dir from djgpp distribution 897# 898#$(DAT)/nhdat: $(U)dlb_main $(DAT)/data $(DAT)/rumors $(DAT)/dungeon \ 899# $(DAT)/oracles $(DAT)/quest.dat $(O)sp_lev.tag \ 900# $(DAT)/bogusmon $(DAT)/engrave $(DAT)/epitaph $(DAT)/tribute 901# echo dat done >$(O)dat.tag 902# cd $(DAT) 903# copy $(MSYS)/msdoshlp.txt . 904# @$(LS) data dungeon oracles options quest.dat rumors help hh >dlb.lst 905# @$(LS) cmdhelp history opthelp wizhelp license msdoshlp.txt >>dlb.lst 906# @$(LS) bogusmon engrave epitaph tribute >>dlb.lst 907# $(LS) $(subst /,\,*.lev) >>dlb.lst 908# $(U)dlb_main cvIf dlb.lst nhdat 909# cd $(SRC) 910# 911#$(U)dlb_main: $(DLBOBJS) 912# $(HOST_LINK) $(LFLAGS) -o$@ $(DLBOBJS) 913# 914#$(HOST_O)dlb_main.o: $(U)dlb_main.c $(INCL)/config.h $(DLB_H) 915# $(HOST_CC) $(cflags) -o$@ $(U)dlb_main.c 916 917#========================================== 918# Housekeeping. 919#========================================== 920 921clean: 922 rm ./o/*.o 923 if [ -f $(O)install.tag ]; then rm $(O)install.tag; fi; 924 if [ -f $(O)obj.tag ]; then rm $(O)obj.tag; fi; 925 if [ -f $(O)$(GAME).lnk ]; then rm temp.a; fi; 926 if [ -f temp.a ]; then rm temp.a; fi; 927 928spotless: clean 929 930 if [ -f dgn_flex.c ]; then rm dgn_flex.c; fi; 931 if [ -f dgn_lex.c ]; then rm dgn_lex.c; fi; 932 if [ -f $(U)dgn_comp.exe ]; then rm $(U)dgn_comp.exe; fi; 933 if [ -f $(U)recover.exe ]; then rm $(U)recover.exe; fi; 934 if [ -f $(INCL)/vis_tab.h ]; then rm $(INCL)/vis_tab.h; fi; 935 if [ -f $(INCL)/onames.h ]; then rm $(INCL)/onames.h; fi; 936 if [ -f $(INCL)/pm.h ]; then rm $(INCL)/pm.h; fi; 937 if [ -f $(INCL)/date.h ]; then rm $(INCL)/date.h; fi; 938 if [ -f $(INCL)/dgn_comp.h ]; then rm $(INCL)/dgn_comp.h; fi; 939 if [ -f $(INCL)/lev_comp.h ]; then rm $(INCL)/lev_comp.h; fi; 940# if [ -f $(SRC)/monstr.c ]; then rm $(SRC)/monstr.c; fi; 941 if [ -f $(SRC)/vis_tab.c ]; then rm $(SRC)/vis_tab.c; fi; 942 if [ -f $(SRC)/tile.c ]; then rm $(SRC)/tile.c; fi; 943 if [ -f $(DAT)/options ]; then rm $(DAT)/options; fi; 944 if [ -f $(DAT)/data ]; then rm $(DAT)/data; fi; 945 if [ -f $(DAT)/rumors ]; then rm $(DAT)/rumors; fi; 946 if [ -f $(DAT)/dungeon.pdf ]; then rm $(DAT)/dungeon.pdf; fi; 947 if [ -f $(DAT)/dungeon ]; then rm $(DAT)/dungeon; fi; 948 if [ -f $(DAT)/oracles ]; then rm $(DAT)/oracles; fi; 949 if [ -f $(DAT)/quest.dat ]; then rm $(DAT)/quest.dat; fi; 950 if [ -f $(DAT)/bogusmon ]; then rm $(DAT)/bogusmon; fi; 951 if [ -f $(DAT)/engrave ]; then rm $(DAT)/engrave; fi; 952 if [ -f $(DAT)/epitaph ]; then rm $(DAT)/epitaph; fi; 953 if [ -f $(DAT)/dlb.lst ]; then rm $(DAT)/dlb.lst; fi; 954 if [ -f $(TILE_BMP) ]; then rm $(TILE_BMP); fi; 955 if [ -f $(WSHR)/monthin.txt ]; then rm $(WSHR)/monthin.txt; fi; 956 if [ -f $(WSHR)/objthin.txt ]; then rm $(WSHR)/objthin.txt; fi; 957 if [ -f $(WSHR)/oththin.txt ]; then rm $(WSHR)/oththin.txt; fi; 958 -rm $(DAT)/*.lev 959 960#========================================== 961# Create directory for holding object files 962#========================================== 963 964$(O)obj.tag: 965 -mkdir -p $(OBJ) 966 @echo directory ready $(OBJ) 967 968#========================================== 969# Game Dependencies 970#========================================== 971 972# sys/share 973$(O)main.o: $(HACK_H) $(DLB_H) $(SSHR)/pcmain.c 974 $(TARGET_CC) $(cflags) -o$@ $(SSHR)/pcmain.c 975 976$(O)tty.o: $(HACK_H) $(INCL)/wintty.h $(SSHR)/pctty.c 977 $(TARGET_CC) $(cflags) -o$@ $(SSHR)/pctty.c 978 979$(O)unix.o: $(HACK_H) $(SSHR)/pcunix.c 980 $(TARGET_CC) $(cflags) -o$@ $(SSHR)/pcunix.c 981 982$(O)pcsys.o : $(HACK_H) $(SSHR)/pcsys.c 983 $(TARGET_CC) $(cflags) -o$@ $(SSHR)/pcsys.c 984 985$(O)posixreg.o : $(HACK_H) $(SSHR)/posixreg.c 986 $(TARGET_CC) $(cflags) -o$@ $(SSHR)/posixreg.c 987 988$(O)cppregex.o : $(HACK_H) $(SSHR)/cppregex.cpp 989 gpp $(cflags) -std=c++11 -o$@ $(SSHR)/cppregex.cpp 990 991$(O)pmatchre.o : $(HACK_H) $(SSHR)/pmatchre.c 992 $(TARGET_CC) $(cflags) -o$@ $(SSHR)/pmatchre.c 993 994# sys/msdos 995$(O)msdos.o : $(HACK_H) $(MSYS)/msdos.c 996$(O)pckeys.o : $(HACK_H) $(MSYS)/pckeys.c 997$(O)pctiles.o : $(HACK_H) $(MSYS)/pctiles.c $(MSYS)/portio.h 998 $(TARGET_CC) $(cflags) -I$(MSYS) -I$(WSHR) -o$@ $(MSYS)/pctiles.c 999$(O)sound.o : $(HACK_H) $(MSYS)/sound.c $(MSYS)/portio.h 1000$(O)video.o : $(HACK_H) $(MSYS)/pcvideo.h $(MSYS)/portio.h $(MSYS)/video.c 1001$(O)vidvga.o : $(HACK_H) $(MSYS)/pcvideo.h $(MSYS)/portio.h $(TILE_H) $(MSYS)/vidvga.c 1002 $(TARGET_CC) $(cflags) -I$(MSYS) -I$(WSHR) -o$@ $(MSYS)/vidvga.c 1003$(O)vidvesa.o : $(HACK_H) $(MSYS)/pcvideo.h $(MSYS)/portio.h $(TILE_H) $(MSYS)/vidvesa.c 1004 $(TARGET_CC) $(cflags) -I$(MSYS) -I$(WSHR) -o$@ $(MSYS)/vidvesa.c 1005$(O)vidtxt.o : $(HACK_H) $(MSYS)/pcvideo.h $(MSYS)/portio.h $(TILE_H) $(MSYS)/vidtxt.c 1006$(O)stubvid.o : $(HACK_H) $(MSYS)/pcvideo.h $(MSYS)/video.c 1007 $(TARGET_CC) $(cflags) -I$(MSYS) -DSTUBVIDEO -o$@ $(MSYS)/video.c 1008# 1009# The rest are stolen from sys/unix/Makefile.src, 1010# with the following changes: 1011# o -c (which is included in cflags) substituted with -o$@ , 1012# o an explicit build instruction for dlb.o because it requires 1013# a .h file in ../sys/msdos. 1014# o the PATCHLEV_H macro is substitued for $(INCL)/patchlevel.h 1015# to work around a long filename issue. 1016# o $(CFLAGS) changed to $(cflags) 1017# Other than that, these dependencies are untouched. 1018# That means that there is some irrelevant stuff 1019# in here, but maintenance should be easier. 1020# 1021# 1022# src dependencies 1023#$(O)tos.o: ../sys/atari/tos.c $(HACK_H) $(INCL)/tcap.h 1024 $(TARGET_CC) $(cflags) -o$@ ../sys/atari/tos.c 1025$(O)pcmain.o: ../sys/share/pcmain.c $(HACK_H) $(INCL)/dlb.h \ 1026 #$(INCL)/win32api.h 1027 $(TARGET_CC) $(cflags) -o$@ ../sys/share/pcmain.c 1028$(O)pctty.o: ../sys/share/pctty.c $(HACK_H) 1029 $(TARGET_CC) $(cflags) -o$@ ../sys/share/pctty.c 1030$(O)pcunix.o: ../sys/share/pcunix.c $(HACK_H) 1031 $(TARGET_CC) $(cflags) -o$@ ../sys/share/pcunix.c 1032$(O)random.o: ../sys/share/random.c $(HACK_H) 1033 $(TARGET_CC) $(cflags) -o$@ ../sys/share/random.c 1034$(O)ioctl.o: ../sys/share/ioctl.c $(HACK_H) $(INCL)/tcap.h 1035 $(TARGET_CC) $(cflags) -o$@ ../sys/share/ioctl.c 1036$(O)unixtty.o: ../sys/share/unixtty.c $(HACK_H) 1037 $(TARGET_CC) $(cflags) -o$@ ../sys/share/unixtty.c 1038$(O)unixmain.o: ../sys/unix/unixmain.c $(HACK_H) $(INCL)/dlb.h 1039 $(TARGET_CC) $(cflags) -o$@ ../sys/unix/unixmain.c 1040$(O)unixunix.o: ../sys/unix/unixunix.c $(HACK_H) 1041 $(TARGET_CC) $(cflags) -o$@ ../sys/unix/unixunix.c 1042$(O)unixres.o: ../sys/unix/unixres.c $(CONFIG_H) 1043 $(TARGET_CC) $(cflags) -o$@ ../sys/unix/unixres.c 1044$(O)bemain.o: ../sys/be/bemain.c $(HACK_H) $(INCL)/dlb.h 1045 $(TARGET_CC) $(cflags) -o$@ ../sys/be/bemain.c 1046$(O)getline.o: ../win/tty/getline.c $(HACK_H) $(INCL)/func_tab.h 1047 $(TARGET_CC) $(cflags) -o$@ ../win/tty/getline.c 1048$(O)termcap.o: ../win/tty/termcap.c $(HACK_H) $(INCL)/tcap.h 1049 $(TARGET_CC) $(cflags) -o$@ ../win/tty/termcap.c 1050$(O)topl.o: ../win/tty/topl.c $(HACK_H) $(INCL)/tcap.h 1051 $(TARGET_CC) $(cflags) -o$@ ../win/tty/topl.c 1052$(O)wintty.o: ../win/tty/wintty.c $(HACK_H) $(INCL)/dlb.h \ 1053 $(INCL)/date.h $(PATCHLEV_H) $(INCL)/tcap.h 1054 $(TARGET_CC) $(cflags) -o$@ ../win/tty/wintty.c 1055$(O)Window.o: ../win/X11/Window.c $(INCL)/xwindowp.h $(INCL)/xwindow.h \ 1056 $(CONFIG_H) 1057 $(TARGET_CC) $(cflags) -o$@ ../win/X11/Window.c 1058$(O)dialogs.o: ../win/X11/dialogs.c $(CONFIG_H) 1059 $(TARGET_CC) $(cflags) -o$@ ../win/X11/dialogs.c 1060$(O)winX.o: ../win/X11/winX.c $(HACK_H) $(INCL)/winX.h $(INCL)/dlb.h \ 1061 $(PATCHLEV_H) ../win/X11/nh72icon \ 1062 ../win/X11/nh56icon ../win/X11/nh32icon 1063 $(TARGET_CC) $(cflags) -o$@ ../win/X11/winX.c 1064$(O)winmap.o: ../win/X11/winmap.c $(INCL)/xwindow.h $(HACK_H) $(INCL)/dlb.h \ 1065 $(INCL)/winX.h $(INCL)/tile2x11.h 1066 $(TARGET_CC) $(cflags) -o$@ ../win/X11/winmap.c 1067$(O)winmenu.o: ../win/X11/winmenu.c $(HACK_H) $(INCL)/winX.h 1068 $(TARGET_CC) $(cflags) -o$@ ../win/X11/winmenu.c 1069$(O)winmesg.o: ../win/X11/winmesg.c $(INCL)/xwindow.h $(HACK_H) $(INCL)/winX.h 1070 $(TARGET_CC) $(cflags) -o$@ ../win/X11/winmesg.c 1071$(O)winmisc.o: ../win/X11/winmisc.c $(HACK_H) $(INCL)/func_tab.h \ 1072 $(INCL)/winX.h 1073 $(TARGET_CC) $(cflags) -o$@ ../win/X11/winmisc.c 1074$(O)winstat.o: ../win/X11/winstat.c $(HACK_H) $(INCL)/winX.h 1075 $(TARGET_CC) $(cflags) -o$@ ../win/X11/winstat.c 1076$(O)wintext.o: ../win/X11/wintext.c $(HACK_H) $(INCL)/winX.h $(INCL)/xwindow.h 1077 $(TARGET_CC) $(cflags) -o$@ ../win/X11/wintext.c 1078$(O)winval.o: ../win/X11/winval.c $(HACK_H) $(INCL)/winX.h 1079 $(TARGET_CC) $(cflags) -o$@ ../win/X11/winval.c 1080$(O)tile.o: tile.c $(HACK_H) 1081$(HOST_O)tile.o: tile.c $(HACK_H) 1082$(O)gnaskstr.o: ../win/gnome/gnaskstr.c ../win/gnome/gnaskstr.h \ 1083 ../win/gnome/gnmain.h 1084 $(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnaskstr.c 1085$(O)gnbind.o: ../win/gnome/gnbind.c ../win/gnome/gnbind.h ../win/gnome/gnmain.h \ 1086 ../win/gnome/gnaskstr.h ../win/gnome/gnyesno.h 1087 $(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnbind.c 1088$(O)gnglyph.o: ../win/gnome/gnglyph.c ../win/gnome/gnglyph.h $(INCL)/tile2x11.h 1089 $(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnglyph.c 1090$(O)gnmain.o: ../win/gnome/gnmain.c ../win/gnome/gnmain.h ../win/gnome/gnsignal.h \ 1091 ../win/gnome/gnbind.h ../win/gnome/gnopts.h $(HACK_H) \ 1092 $(INCL)/date.h 1093 $(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnmain.c 1094$(O)gnmap.o: ../win/gnome/gnmap.c ../win/gnome/gnmap.h ../win/gnome/gnglyph.h \ 1095 ../win/gnome/gnsignal.h $(HACK_H) 1096 $(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnmap.c 1097$(O)gnmenu.o: ../win/gnome/gnmenu.c ../win/gnome/gnmenu.h ../win/gnome/gnmain.h \ 1098 ../win/gnome/gnbind.h 1099 $(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnmenu.c 1100$(O)gnmesg.o: ../win/gnome/gnmesg.c ../win/gnome/gnmesg.h ../win/gnome/gnsignal.h 1101 $(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnmesg.c 1102$(O)gnopts.o: ../win/gnome/gnopts.c ../win/gnome/gnopts.h ../win/gnome/gnglyph.h \ 1103 ../win/gnome/gnmain.h ../win/gnome/gnmap.h $(HACK_H) 1104 $(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnopts.c 1105$(O)gnplayer.o: ../win/gnome/gnplayer.c ../win/gnome/gnplayer.h \ 1106 ../win/gnome/gnmain.h $(HACK_H) 1107 $(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnplayer.c 1108$(O)gnsignal.o: ../win/gnome/gnsignal.c ../win/gnome/gnsignal.h \ 1109 ../win/gnome/gnmain.h 1110 $(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnsignal.c 1111$(O)gnstatus.o: ../win/gnome/gnstatus.c ../win/gnome/gnstatus.h \ 1112 ../win/gnome/gnsignal.h ../win/gnome/gn_xpms.h \ 1113 ../win/gnome/gnomeprv.h 1114 $(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnstatus.c 1115$(O)gntext.o: ../win/gnome/gntext.c ../win/gnome/gntext.h ../win/gnome/gnmain.h \ 1116 ../win/gnome/gn_rip.h 1117 $(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gntext.c 1118$(O)gnworn.o: ../win/gnome/gnworn.c ../win/gnome/gnworn.h ../win/gnome/gnglyph.h \ 1119 ../win/gnome/gnsignal.h ../win/gnome/gnomeprv.h 1120 $(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnworn.c 1121$(O)gnyesno.o: ../win/gnome/gnyesno.c ../win/gnome/gnbind.h ../win/gnome/gnyesno.h 1122 $(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnyesno.c 1123$(O)wingem.o: ../win/gem/wingem.c $(HACK_H) $(INCL)/func_tab.h $(INCL)/dlb.h \ 1124 $(PATCHLEV_H) $(INCL)/wingem.h 1125 $(TARGET_CC) $(cflags) -o$@ ../win/gem/wingem.c 1126$(O)wingem1.o: ../win/gem/wingem1.c $(INCL)/gem_rsc.h $(INCL)/load_img.h \ 1127 $(INCL)/gr_rect.h $(INCL)/wintype.h $(INCL)/wingem.h 1128 $(TARGET_CC) $(cflags) -o$@ ../win/gem/wingem1.c 1129$(O)load_img.o: ../win/gem/load_img.c $(INCL)/load_img.h 1130 $(TARGET_CC) $(cflags) -o$@ ../win/gem/load_img.c 1131$(O)gr_rect.o: ../win/gem/gr_rect.c $(INCL)/gr_rect.h 1132 $(TARGET_CC) $(cflags) -o$@ ../win/gem/gr_rect.c 1133$(O)tile.o: tile.c $(HACK_H) 1134$(O)qt_win.o: ../win/Qt/qt_win.cpp $(HACK_H) $(INCL)/func_tab.h \ 1135 $(INCL)/dlb.h $(PATCHLEV_H) $(INCL)/tile2x11.h \ 1136 $(INCL)/qt_win.h $(INCL)/qt_clust.h $(INCL)/qt_kde0.h \ 1137 $(INCL)/qt_xpms.h qt_win.moc qt_kde0.moc qttableview.moc 1138 $(CXX) $(CXXFLAGS) -o$@ ../win/Qt/qt_win.cpp 1139$(O)qt_clust.o: ../win/Qt/qt_clust.cpp $(INCL)/qt_clust.h 1140 $(CXX) $(CXXFLAGS) -o$@ ../win/Qt/qt_clust.cpp 1141$(O)qttableview.o: ../win/Qt/qttableview.cpp $(INCL)/qttableview.h 1142 $(CXX) $(CXXFLAGS) -o$@ ../win/Qt/qttableview.cpp 1143#$(O)monstr.o: monstr.c $(CONFIG_H) 1144$(O)vis_tab.o: vis_tab.c $(CONFIG_H) $(INCL)/vis_tab.h 1145$(O)allmain.o: allmain.c $(HACK_H) 1146$(O)alloc.o: alloc.c $(CONFIG_H) 1147$(O)apply.o: apply.c $(HACK_H) 1148$(O)artifact.o: artifact.c $(HACK_H) $(INCL)/artifact.h $(INCL)/artilist.h 1149$(O)attrib.o: attrib.c $(HACK_H) 1150$(O)ball.o: ball.c $(HACK_H) 1151$(O)bones.o: bones.c $(HACK_H) $(INCL)/lev.h 1152$(O)botl.o: botl.c $(HACK_H) 1153$(O)cmd.o: cmd.c $(HACK_H) $(INCL)/func_tab.h 1154$(O)dbridge.o: dbridge.c $(HACK_H) 1155$(O)decl.o: decl.c $(HACK_H) 1156$(O)detect.o: detect.c $(HACK_H) $(INCL)/artifact.h 1157$(O)dig.o: dig.c $(HACK_H) 1158$(O)display.o: display.c $(HACK_H) 1159$(O)dlb.o: dlb.c $(CONFIG_H) $(INCL)/dlb.h 1160 $(TARGET_CC) $(cflags) -I../sys/msdos -o$@ dlb.c 1161$(O)do.o: do.c $(HACK_H) $(INCL)/lev.h 1162$(O)do_name.o: do_name.c $(HACK_H) 1163$(O)do_wear.o: do_wear.c $(HACK_H) 1164$(O)dog.o: dog.c $(HACK_H) 1165$(O)dogmove.o: dogmove.c $(HACK_H) $(INCL)/mfndpos.h 1166$(O)dokick.o: dokick.c $(HACK_H) 1167$(O)dothrow.o: dothrow.c $(HACK_H) 1168$(O)drawing.o: drawing.c $(HACK_H) $(INCL)/tcap.h 1169$(O)dungeon.o: dungeon.c $(HACK_H) $(INCL)/dgn_file.h $(INCL)/dlb.h 1170$(O)eat.o: eat.c $(HACK_H) 1171$(O)end.o: end.c $(HACK_H) $(INCL)/lev.h $(INCL)/dlb.h 1172$(O)engrave.o: engrave.c $(HACK_H) $(INCL)/lev.h 1173$(O)exper.o: exper.c $(HACK_H) 1174$(O)explode.o: explode.c $(HACK_H) 1175$(O)extralev.o: extralev.c $(HACK_H) 1176$(O)files.o: files.c $(HACK_H) $(INCL)/dlb.h 1177$(O)fountain.o: fountain.c $(HACK_H) 1178$(O)hack.o: hack.c $(HACK_H) 1179$(O)hacklib.o: hacklib.c $(HACK_H) 1180$(O)invent.o: invent.c $(HACK_H) 1181$(O)light.o: light.c $(HACK_H) $(INCL)/lev.h 1182$(O)lock.o: lock.c $(HACK_H) 1183$(O)mail.o: mail.c $(HACK_H) $(INCL)/mail.h 1184$(O)makemon.o: makemon.c $(HACK_H) 1185$(O)mapglyph.o: mapglyph.c $(HACK_H) 1186$(O)mcastu.o: mcastu.c $(HACK_H) 1187$(O)mhitm.o: mhitm.c $(HACK_H) $(INCL)/artifact.h 1188$(O)mhitu.o: mhitu.c $(HACK_H) $(INCL)/artifact.h 1189$(O)minion.o: minion.c $(HACK_H) 1190$(O)mklev.o: mklev.c $(HACK_H) 1191$(O)mkmap.o: mkmap.c $(HACK_H) $(INCL)/sp_lev.h 1192$(O)mkmaze.o: mkmaze.c $(HACK_H) $(INCL)/sp_lev.h $(INCL)/lev.h 1193$(O)mkobj.o: mkobj.c $(HACK_H) 1194$(O)mkroom.o: mkroom.c $(HACK_H) 1195$(O)mon.o: mon.c $(HACK_H) $(INCL)/mfndpos.h 1196$(O)mondata.o: mondata.c $(HACK_H) 1197$(O)monmove.o: monmove.c $(HACK_H) $(INCL)/mfndpos.h $(INCL)/artifact.h 1198$(O)monst.o: monst.c $(CONFIG_H) $(INCL)/permonst.h $(INCL)/align.h \ 1199 $(INCL)/monattk.h $(INCL)/monflag.h $(INCL)/monsym.h \ 1200 $(INCL)/color.h 1201$(O)mplayer.o: mplayer.c $(HACK_H) 1202$(O)mthrowu.o: mthrowu.c $(HACK_H) 1203$(O)muse.o: muse.c $(HACK_H) 1204$(O)music.o: music.c $(HACK_H) #interp.c 1205$(O)o_init.o: o_init.c $(HACK_H) $(INCL)/lev.h 1206$(O)objects.o: objects.c $(CONFIG_H) $(INCL)/obj.h $(INCL)/objclass.h \ 1207 $(INCL)/prop.h $(INCL)/skills.h $(INCL)/color.h 1208$(O)objnam.o: objnam.c $(HACK_H) 1209$(O)options.o: options.c $(CONFIG_H) $(INCL)/objclass.h $(INCL)/flag.h \ 1210 $(HACK_H) $(INCL)/tcap.h 1211$(O)pager.o: pager.c $(HACK_H) $(INCL)/dlb.h 1212$(O)pickup.o: pickup.c $(HACK_H) 1213$(O)pline.o: pline.c $(HACK_H) 1214$(O)polyself.o: polyself.c $(HACK_H) 1215$(O)potion.o: potion.c $(HACK_H) 1216$(O)pray.o: pray.c $(HACK_H) 1217$(O)priest.o: priest.c $(HACK_H) $(INCL)/mfndpos.h 1218$(O)quest.o: quest.c $(HACK_H) $(INCL)/qtext.h 1219$(O)questpgr.o: questpgr.c $(HACK_H) $(INCL)/dlb.h $(INCL)/qtext.h 1220$(O)read.o: read.c $(HACK_H) 1221$(O)rect.o: rect.c $(HACK_H) 1222$(O)region.o: region.c $(HACK_H) $(INCL)/lev.h 1223$(O)restore.o: restore.c $(HACK_H) $(INCL)/lev.h $(INCL)/tcap.h 1224$(O)rip.o: rip.c $(HACK_H) 1225$(O)rnd.o: rnd.c $(HACK_H) 1226$(O)role.o: role.c $(HACK_H) 1227$(O)rumors.o: rumors.c $(HACK_H) $(INCL)/lev.h $(INCL)/dlb.h 1228$(O)save.o: save.c $(HACK_H) $(INCL)/lev.h 1229$(O)shk.o: shk.c $(HACK_H) 1230$(O)shknam.o: shknam.c $(HACK_H) 1231$(O)sit.o: sit.c $(HACK_H) $(INCL)/artifact.h 1232$(O)sounds.o: sounds.c $(HACK_H) 1233$(O)sp_lev.o: sp_lev.c $(HACK_H) $(INCL)/dlb.h $(INCL)/sp_lev.h 1234$(O)spell.o: spell.c $(HACK_H) 1235$(O)steal.o: steal.c $(HACK_H) 1236$(O)steed.o: steed.c $(HACK_H) 1237$(O)sys.o: sys.c $(HACK_H) 1238$(O)teleport.o: teleport.c $(HACK_H) 1239$(O)timeout.o: timeout.c $(HACK_H) $(INCL)/lev.h 1240$(O)topten.o: topten.c $(HACK_H) $(INCL)/dlb.h $(PATCHLEV_H) 1241$(O)track.o: track.c $(HACK_H) 1242$(O)trap.o: trap.c $(HACK_H) 1243$(O)u_init.o: u_init.c $(HACK_H) 1244$(O)uhitm.o: uhitm.c $(HACK_H) 1245$(O)vault.o: vault.c $(HACK_H) 1246$(O)version.o: version.c $(HACK_H) $(INCL)/date.h $(PATCHLEV_H) 1247$(O)vision.o: vision.c $(HACK_H) $(INCL)/vis_tab.h 1248$(O)weapon.o: weapon.c $(HACK_H) 1249$(O)were.o: were.c $(HACK_H) 1250$(O)wield.o: wield.c $(HACK_H) 1251$(O)windows.o: windows.c $(HACK_H) $(INCL)/wingem.h $(INCL)/winGnome.h 1252$(O)wizard.o: wizard.c $(HACK_H) $(INCL)/qtext.h 1253$(O)worm.o: worm.c $(HACK_H) $(INCL)/lev.h 1254$(O)worn.o: worn.c $(HACK_H) 1255$(O)write.o: write.c $(HACK_H) 1256$(O)zap.o: zap.c $(HACK_H) 1257$(O)pmatchre.o: $(SSHR)/pmatchre.c $(HACK_H) 1258$(O)tileset.o: $(WSHR)/tileset.c $(HACK_H) 1259$(O)bmptiles.o: $(WSHR)/bmptiles.c $(INCL)/config.h $(INCL)/tileset.h $(INCL)/integer.h 1260$(O)giftiles.o: $(WSHR)/giftiles.c $(INCL)/config.h $(INCL)/tileset.h $(INCL)/integer.h 1261 1262# end of file 1263 1264