Files
nethack/sys/msdos/Makefile2.cross
2020-05-30 08:41:20 -04:00

1140 lines
40 KiB
Plaintext

# NetHack 3.7 Makefile2.cross
# Cross-compile msdos version of NetHack using a
# linux-hosted djgpp cross-compiler.
#
# Makefile1.cross is for the host-side obj files and utilities that
# will run on the host platform only.
#
# Makefile2.cross (this file) is for the target platform obj files
# and utilities.
#
# Makefile2 utilizes the djgpp cross-compiler from Andrew Wu:
# https://github.com/andrewwutw/build-djgpp
#
# Currently, in NetHack 3.7, it is now feasible to cross-compile
# the game in a 2-stage process. Makefile2.cross (this file) carries
# out the 2nd stage.
#
# A proof-of-concept to cross-compile NetHack 3.7 was achieved on
# November 22, 2019 using the msdos set of Makefiles.
#
#
# Game Installation Variables
# NOTE: Make sure GAMEDIR exists before make is started.
GAME = NETHACK
# The GNU Make has a problem if you include a drive spec below (unfortunately).
GAMEDIR =../msdos-binary
# Optional PDCurses support
# Uncomment these and set them appropriately if you want to
# include curses port support alongside TTY support in your
# NetHack.exe binary.
#
# You'll have to set PDCURSES_H to the correct location of the
# PDCurses header (.h) files and PDCURSES_C to the location
# of your PDCurses C files which must already be resident on
# your machine.
#
ADD_CURSES=Y
PDCURSES_TOP=../lib/pdcurses
# Set top of djgpp if not specified through ENV variables prior to make:
#DJGPP_TOP = $(HOME)/lib/djgpp
#---------------------------------------------------------------
# Location of LUA
#
# Original source needs to be obtained from:
# http://www.lua.org/ftp/lua-5.3.5.tar.gz
#
# This build assumes that the LUA sources are located
# at the specified location. If they are actually elsewhere
# you'll need to specify the correct spot below in order to
# successfully build NetHack-3.7.
#
ADD_LUA=Y
LUATOP=../lib/lua-5.3.5
#
#
#==============================================================================
# This marks the end of the BUILD DECISIONS section.
#==============================================================================
#
# Directories, gcc likes unix style directory specs
#
TARGET = msdos
OBJ = $(TARGET)_o
HOBJ = host_o
DAT = ../dat
DOC = ../doc
INCL = ../include
LIB = ../lib
MSYS = ../sys/msdos
SRC = ../src
SSHR = ../sys/share
UTIL = ../util
WIN = ../win/tty
WCURSES = ../win/curses
WSHR = ../win/share
#
# Executables.
ifndef DJGPP_TOP
ifdef TRAVIS_BUILD_DIR
DJGPP_TOP = TRAVIS_BUILD_DIR/lib/djgpp
else
DJGPP_TOP = $(HOME)/lib/djgpp
endif
endif
TARGET_CC = $(DJGPP_TOP)/i586-pc-msdosdjgpp/bin/gcc
TARGET_LINK = $(DJGPP_TOP)/i586-pc-msdosdjgpp/bin/gcc
TARGET_STUBEDIT = $(DJGPP_TOP)/i586-pc-msdosdjgpp/bin/stubedit
TARGET_AR = $(DJGPP_TOP)/i586-pc-msdosdjgpp/bin/ar
MAKEBIN = make
#
# Special libraries and how to link them in.
LIBS = -lpc
# If TERMLIB is defined in pcconf.h, comment out the upper line and
# uncomment the lower. Note that you must build the termc library
# and place it in djgpp's lib directory. See termcap.zip for details
TERMLIB =
#TERMLIB = -ltermc
LIBRARIES = $(LIBS) $(TERMLIB)
#
# Yacc/Lex ... if you got 'em.
#
# If you have yacc/lex or a work-alike set YACC_LEX to Y
#
YACC_LEX = N
ifeq "$(YACC_LEX)" "Y"
DO_YACC = YACC_ACT
DO_LEX = LEX_ACT
endif
# If YACC_LEX is Y above, set the following to values appropriate for
# your tools.
#
YACC = bison -y
LEX = lex
#
# If your flex and bison port mess with the output names directly
# you must set the file names to the appropriate output file names
# here
#YTABC = y_tab.c
#YTABH = y_tab.h
#LEXYYC = lexyy.c
#
# If your flex and bison are able to produce files named
# y.tab.c, y.tab.h or lex.yy.c you might have to set these
# to the short file name equivalent (DIR /X to reveal them):
YTABC = ytab~1.c
YTABH = ytab~1.h
LEXYYC = lexyy~1.c
#
# Uncomment the line below if you want to store all the level files,
# help files, etc. in a single library file.
USE_DLB = Y
# djgpp includes ls.exe and touch.exe in fil41b.zip from the v2gnu
# folder so be sure to include that when downloading djgpp. Doing
# so will make changing this unnecessary.
LS = ls -1 # ls.exe from djgpp distribution
#LS = dir /l/b # DOS command
# To build a binary without any graphics
# suitable for blind players,
# set SUPPRESS_GRAPHICS to Y
# (Note: binary will require ANSI.SYS driver or equivalent loaded)
# SUPPRESS_GRAPHICS = Y
SUPPRESS_GRAPHICS =
# ZLIB Support
# To support zlib compression in bones and save files, you must
# define ZLIB_COMP in include/config.h.
# You must also have a zlib library to link NetHack with, and
# for the djgpp build, you need one compatible with djgpp.
# At the time that this was written (post-NetHack 3.4.3) the
# following URL was a valid place to get a pre-built djgpp library
# to add to your djgpp tools directory tree.
# http://www.delorie.com/pub/djgpp/current/v2tk/zlib114b.zip
#
# If you defined ZLIB_COMP in include/config.h to build in support
# for ZLIB compression, you need to uncomment the line below.
#ZLIB= -lz
#===============================================
#======= End of Modification Section ===========
#===============================================
################################################
# #
# Nothing below here should have to be changed.#
# #
################################################
GAMEFILE = $(GAMEDIR)/$(GAME).EXE
# Changing this conditional block is not recommended
ifeq "$(USE_DLB)" "Y"
DLBFLG = -DDLB
else
DLBFLG =
endif
TERMLIB =
# Build NetHack suitable for blind players
#==========================================
#================ MACROS ==================
#==========================================
# This section creates shorthand macros for many objects
# referenced later on in the Makefile.
#
# Have windows path styles available for use in commands
#
W_OBJ =$(subst /,\, $(OBJ))
W_INCL =$(subst /,\, $(INCL))
W_DAT =$(subst /,\, $(DAT))
W_DOC =$(subst /,\, $(DOC))
W_UTIL =$(subst /,\, $(UTIL))
W_SRC =$(subst /,\, $(SRC))
W_SSYS =$(subst /,\, $(SSYS))
W_MSWSYS =$(subst /,\, $(MSWSYS))
W_TTY =$(subst /,\, $(TTY))
W_MSWIN =$(subst /,\, $(MSWIN))
ifeq "$(ADD_CURSES)" "Y"
W_WCURSES =$(subst /,\, $(WCURSES))
endif
W_WSHR =$(subst /,\, $(WSHR))
W_GAMEDIR =$(subst /,\, $(GAMEDIR))
#
# Shorten up the location for some files
#
O = $(OBJ)/
HOST_O = $(HOBJ)/
U = $(UTIL)/
#==========================================
# Tile related object files.
#==========================================
PLANAR_TIB = $(DAT)/NETHACK1.tib
OVERVIEW_TIB = $(DAT)/NETHACKO.tib
TILE_BMP = $(DAT)/NHTILES.BMP
##REGEX = $(O)pmatchregex.o
##REGEX = $(O)cppregex.o
REGEX = $(O)posixreg.o
DLBOBJ = $(O)dlb.o
VIDEO_OBJ = $(O)vidvga.o $(O)vidvesa.o $(O)tile.o $(O)tileset.o $(O)bmptiles.o $(O)giftiles.o
RECOVOBJS = $(O)recover.o
# Object files for the game itself.
VOBJ01 = $(O)allmain.o $(O)alloc.o $(O)apply.o $(O)artifact.o
VOBJ02 = $(O)attrib.o $(O)ball.o $(O)bones.o $(O)botl.o
VOBJ03 = $(O)cmd.o $(O)dbridge.o $(O)decl.o $(O)detect.o
VOBJ04 = $(O)display.o $(O)dlb.o $(O)dig.o $(O)do.o
VOBJ05 = $(O)do_name.o $(O)do_wear.o $(O)dog.o $(O)dogmove.o
VOBJ06 = $(O)dokick.o $(O)dothrow.o $(O)drawing.o $(O)dungeon.o
VOBJ07 = $(O)eat.o $(O)end.o $(O)engrave.o $(O)exper.o
VOBJ08 = $(O)explode.o $(O)extralev.o $(O)files.o $(O)fountain.o
VOBJ09 = $(O)getline.o $(O)hack.o $(O)hacklib.o $(O)insight.o
VOBJ10 = $(O)invent.o $(O)isaac64.o $(O)light.o $(O)lock.o
VOBJ11 = $(O)mail.o $(O)main.o $(O)makemon.o $(O)mapglyph.o
VOBJ12 = $(O)mcastu.o $(O)mhitm.o $(O)mhitu.o $(O)minion.o
VOBJ13 = $(O)mkmap.o $(O)mklev.o $(O)mkmaze.o $(O)mkobj.o
VOBJ14 = $(O)mkroom.o $(O)mon.o $(O)mondata.o $(O)monmove.o
VOBJ15 = $(O)monst.o $(O)mplayer.o $(O)mthrowu.o $(O)muse.o
VOBJ16 = $(O)music.o $(O)o_init.o $(O)objects.o $(O)objnam.o
VOBJ17 = $(O)options.o $(O)pickup.o $(O)pline.o $(O)polyself.o
VOBJ18 = $(O)potion.o $(O)quest.o $(O)questpgr.o $(O)pager.o
VOBJ19 = $(O)pray.o $(O)priest.o $(O)read.o $(O)rect.o
VOBJ20 = $(O)region.o $(O)restore.o $(O)rip.o $(O)rnd.o
VOBJ21 = $(O)role.o $(O)rumors.o $(O)save.o $(O)sfstruct.o
VOBJ22 = $(O)shk.o $(O)shknam.o $(O)sit.o $(O)sounds.o
VOBJ23 = $(O)sp_lev.o $(O)spell.o $(O)steal.o $(O)steed.o
VOBJ24 = $(O)symbols.o $(O)sys.o $(O)teleport.o $(O)termcap.o
VOBJ25 = $(O)timeout.o $(O)topl.o $(O)topten.o $(O)track.o
VOBJ26 = $(O)trap.o $(O)u_init.o $(O)uhitm.o $(O)vault.o
VOBJ27 = $(O)vision.o $(O)vis_tab.o $(O)weapon.o $(O)were.o
VOBJ28 = $(O)wield.o $(O)windows.o $(O)wintty.o $(O)wizard.o
VOBJ29 = $(O)worm.o $(O)worn.o $(O)write.o $(O)zap.o
VOBJ30 = $(REGEX) $(VIDEO_OBJ)
SOBJ = $(O)msdos.o $(O)pcsys.o $(O)tty.o $(O)unix.o \
$(O)video.o $(O)vidtxt.o $(O)pckeys.o
VVOBJ = $(O)version.o
MDLIB = $(O)mdlib.o
ifeq "$(ADD_LUA)" "Y"
LUAOBJ = $(O)nhlua.o $(O)nhlsel.o $(O)nhlobj.o
endif
ifeq "$(ADD_CURSES)" "Y"
CURSESOBJ= $(O)cursdial.o $(O)cursinit.o $(O)cursinvt.o $(O)cursmain.o \
$(O)cursmesg.o $(O)cursmisc.o $(O)cursstat.o $(O)curswins.o
else
CURSESOBJ=
endif
VOBJ = $(VOBJ01) $(VOBJ02) $(VOBJ03) $(VOBJ04) $(VOBJ05) \
$(VOBJ06) $(VOBJ07) $(VOBJ08) $(VOBJ09) $(VOBJ10) \
$(VOBJ11) $(VOBJ12) $(VOBJ13) $(VOBJ14) $(VOBJ15) \
$(VOBJ16) $(VOBJ17) $(VOBJ18) $(VOBJ19) $(VOBJ20) \
$(VOBJ21) $(VOBJ22) $(VOBJ23) $(VOBJ24) $(VOBJ25) \
$(VOBJ26) $(VOBJ27) $(VOBJ28) $(VOBJ29) $(VOBJ30) \
$(LUAOBJ) $(CURSESOBJ) $(MDLIB)
ALLOBJ = $(VOBJ) $(SOBJ) $(TILOBJ) $(TILOBJ2) $(VVOBJ)
ifeq "$(ADD_LUA)" "Y"
#===============-=================================================
# LUA library
# Source from http://www.lua.org/ftp/lua-5.3.5.tar.gz
#=================================================================
LUASRC = $(LUATOP)/src
LUALIB = $(O)lua535s.a
#LUADLL = $(O)lua535.a
LUAINCL = -I$(LUASRC)
#LUAFLAGS = unix added -lm here?
LUATARGETS = lua.exe luac.exe $(LUALIB)
#LUATARGETS = $(LUADLL) $(LUALIB)
LUASRCFILES = lapi.c lauxlib.c lbaselib.c lbitlib.c lcode.c \
lcorolib.c lctype.c ldblib.c ldebug.c ldo.c \
ldump.c lfunc.c lgc.c linit.c liolib.c llex.c \
lmathlib.c lmem.c loadlib.c lobject.c lopcodes.c \
loslib.c lparser.c lstate.c lstring.c lstrlib.c \
ltable.c ltablib.c ltm.c lundump.c lutf8lib.c \
lvm.c lzio.c
LUAOBJFILES1 = $(O)lapi.o $(O)lauxlib.o $(O)lbaselib.o $(O)lbitlib.o \
$(O)lcode.o $(O)lcorolib.o $(O)lctype.o $(O)ldblib.o
LUAOBJFILES2 = $(O)ldebug.o $(O)ldo.o $(O)ldump.o $(O)lfunc.o \
$(O)lgc.o $(O)linit.o $(O)liolib.o $(O)llex.o
LUAOBJFILES3 = $(O)lmathlib.o $(O)lmem.o $(O)loadlib.o $(O)lobject.o \
$(O)lopcodes.o $(O)loslib.o $(O)lparser.o $(O)lstate.o
LUAOBJFILES4 = $(O)lstring.o $(O)lstrlib.o $(O)ltable.o $(O)ltablib.o \
$(O)ltm.o $(O)lundump.o $(O)lutf8lib.o $(O)lvm.o $(O)lzio.o
#LUAOBJFILES = $(O)lapi.o $(O)lauxlib.o $(O)lbaselib.o $(O)lbitlib.o \
# $(O)lcode.o $(O)lcorolib.o $(O)lctype.o $(O)ldblib.o \
# $(O)ldebug.o $(O)ldo.o $(O)ldump.o $(O)lfunc.o \
# $(O)lgc.o $(O)linit.o $(O)liolib.o $(O)llex.o \
# $(O)lmathlib.o $(O)lmem.o $(O)loadlib.o $(O)lobject.o \
# $(O)lopcodes.o $(O)loslib.o $(O)lparser.o $(O)lstate.o \
# $(O)lstring.o $(O)lstrlib.o $(O)ltable.o $(O)ltablib.o \
# $(O)ltm.o $(O)lundump.o $(O)lutf8lib.o $(O)lvm.o $(O)lzio.o
LUALIBOBJS = $(LUAOBJFILES1) $(LUAOBJFILES2) $(LUAOBJFILES3) $(LUAOBJFILES4)
endif
ifeq "$(ADD_CURSES)" "Y"
#==========================================
# PDCurses build macros
#==========================================
PDCURSES_CURSES_H = $(PDCURSES_TOP)/curses.h
PDCURSES_CURSPRIV_H = $(PDCURSES_TOP)/curspriv.h
PDCURSES_HEADERS = $(PDCURSES_CURSES_H) $(PDCURSES_CURSPRIV_H)
PDCSRC = $(PDCURSES_TOP)/pdcurses
PDCDOS = $(PDCURSES_TOP)/dos
PDCLIBOBJS1 = $(O)addch.o $(O)addchstr.o $(O)addstr.o $(O)attr.o $(O)beep.o \
$(O)bkgd.o $(O)border.o $(O)clear.o $(O)color.o $(O)delch.o $(O)deleteln.o \
$(O)getch.o
PDCLIBOBJS2 = $(O)getstr.o $(O)getyx.o $(O)inch.o $(O)inchstr.o $(O)initscr.o \
$(O)inopts.o $(O)insch.o $(O)insstr.o $(O)instr.o $(O)kernel.o \
$(O)keyname.o $(O)mouse.o
PDCLIBOBJS3 = $(O)move.o $(O)outopts.o $(O)overlay.o $(O)pad.o $(O)panel.o \
$(O)printw.o $(O)refresh.o $(O)scanw.o $(O)scr_dump.o $(O)scroll.o \
$(O)slk.o $(O)termattr.o
PDCLIBOBJS4 = $(O)touch.o $(O)util.o $(O)window.o $(O)debug.o
PDCLIBOBJS = $(PDCLIBOBJS1) $(PDCLIBOBJS2) $(PDCLIBOBJS3) $(PDCLIBOBJS4)
PDCOBJS = $(O)pdcclip.o $(O)pdcdisp.o $(O)pdcgetsc.o $(O)pdckbd.o \
$(O)pdcscrn.o $(O)pdcsetsc.o $(O)pdcutil.o
#PDCOBJS = $(O)pdcclip.o $(O)pdcdisp.o $(O)pdcgetsc.o $(O)pdckbd.o $(O)pdcscrn.o \
# $(O)pdcsetsc.o $(O)pdcutil.o
PDCLIB = $(O)pdcurses.a
#PDCINCL = -I$(PDCURSES_TOP) -I$(PDCSRC) -I$(PDCDOS)
PDCINCL = -I$(PDCURSES_TOP) -I$(PDCDOS)
else
PDCLIB =
endif
#==========================================
# Header file macros
#==========================================
PATCHLEV_H = $(INCL)/patchlev.h
DGN_FILE_H = $(INCL)/align.h $(INCL)/dgn_file.h
DUNGEON_H = $(INCL)/align.h $(INCL)/dungeon.h
MONDATA_H = $(INCL)/align.h $(INCL)/mondata.h
MONST_H = $(INCL)/align.h $(INCL)/monst.h $(INCL)/mextra.h
PERMONST_H = $(INCL)/monattk.h $(INCL)/monflag.h $(INCL)/align.h \
$(INCL)/permonst.h
REGION_H = $(INCL)/region.h
RM_H = $(INCL)/align.h $(INCL)/rm.h
SKILLS_H = $(INCL)/skills.h
SP_LEV_H = $(INCL)/align.h $(INCL)/sp_lev.h
YOUPROP_H = $(PERMONST_H) $(MONDATA_H) $(INCL)/prop.h \
$(INCL)/pm.h $(INCL)/youprop.h
YOU_H = $(MONST_H) $(YOUPROP_H) $(INCL)/align.h \
$(INCL)/attrib.h $(INCL)/you.h
DISPLAY_H = $(MONDATA_H) $(INCL)/vision.h $(INCL)/display.h
PCCONF_H = $(INCL)/micro.h $(INCL)/system.h $(INCL)/pcconf.h \
$(MSYS)/pcvideo.h
DECL_H = $(YOU_H) $(INCL)/spell.h $(INCL)/color.h \
$(INCL)/obj.h $(INCL)/onames.h $(INCL)/pm.h \
$(INCL)/decl.h
GLOBAL_H = $(PCCONF_H) $(INCL)/coord.h $(INCL)/global.h
CONFIG_H = $(INCL)/config.h $(INCL)/config1.h $(INCL)/tradstdc.h \
$(INCL)/global.h $(INCL)/coord.h $(INCL)/vmsconf.h \
$(INCL)/system.h $(INCL)/nhlua.h $(INCL)/unixconf.h \
$(INCL)/os2conf.h $(INCL)/micro.h $(INCL)/pcconf.h \
$(INCL)/tosconf.h $(INCL)/amiconf.h $(INCL)/macconf.h \
$(INCL)/beconf.h $(INCL)/wceconf.h $(INCL)/ntconf.h
HACK_H = $(INCL)/hack.h $(CONFIG_H) $(INCL)/lint.h $(INCL)/align.h \
$(INCL)/dungeon.h $(INCL)/monsym.h $(INCL)/mkroom.h \
$(INCL)/objclass.h $(INCL)/youprop.h $(INCL)/prop.h \
$(INCL)/permonst.h $(INCL)/monattk.h \
$(INCL)/monflag.h $(INCL)/mondata.h $(INCL)/pm.h \
$(INCL)/wintype.h $(INCL)/context.h $(INCL)/rm.h \
$(INCL)/botl.h $(INCL)/rect.h \
$(INCL)/region.h $(INCL)/decl.h $(INCL)/quest.h \
$(INCL)/spell.h $(INCL)/color.h $(INCL)/obj.h \
$(INCL)/you.h $(INCL)/attrib.h $(INCL)/monst.h \
$(INCL)/mextra.h $(INCL)/skills.h $(INCL)/onames.h \
$(INCL)/timeout.h $(INCL)/trap.h $(INCL)/flag.h \
$(INCL)/vision.h $(INCL)/display.h $(INCL)/engrave.h \
$(INCL)/winprocs.h $(INCL)/sys.h $(INCL)/wintty.h \
$(INCL)/trampoli.h
DLB_H = $(INCL)/dlb.h
ifeq ($(SUPPRESS_GRAPHICS),Y)
TILE_H =
else
TILE_H = $(WSHR)/tile.h $(INCL)/tileset.h
endif
ifeq ($(USE_DLB),Y)
DLB = dlb
DLBOBJS = $(O)dlb_main.o $(O)dlb.o $(O)alloc.o $(O)panic.o
else
DLB =
DLBOBJS =
endif
#==========================================
# More compiler setup macros
#==========================================
#
ifeq "$(ADD_CURSES)" "Y"
CURSESDEF=-D"CURSES_GRAPHICS" -D"CURSES_BRIEF_INCLUDE"
else
CURSESDEF=
CURSESLIB=
endif
INCLDIR=-I../include -I../sys/msdos $(LUAINCL)
# Debugging
#cflags = -pg -c $(INCLDIR) $(DLBFLG) $(CURSESDEF) -DSUPPRESS_GRAPHICS -DCROSSCOMPILE -DCROSSCOMPILE_TARGET
#LFLAGS = -pg
#cflags = -c -O $(INCLDIR) $(DLBFLG) $(CURSESDEF) -DSUPPRESS_GRAPHICS -DCROSSCOMPILE-DCROSSCOMPILE_TARGET
#LFLAGS =
# Debugging
#cflags = -g -c $(INCLDIR) $(DLBFLG) $(CURSESDEF) -DUSE_TILES -DCROSSCOMPILE -DCROSSCOMPILE_TARGET
#LFLAGS = -g
# Normal
cflags = -c -O $(INCLDIR) $(DLBFLG) $(CURSESDEF) -DUSE_TILES -DCROSSCOMPILE -DCROSSCOMPILE_TARGET
LFLAGS =
#==========================================
#================ RULES ==================
#==========================================
.SUFFIXES: .o .til .uu .c .y .l
#==========================================
# Rules for files in src
#==========================================
$(OBJ)/%.o : %.c
$(TARGET_CC) $(cflags) -o$@ $<
$(OBJ)/%.o : $(SRC)/%.c
$(TARGET_CC) $(cflags) -o$@ $<
#==========================================
# Rules for files in sys/share
#==========================================
$(OBJ)/%.o : $(SSHR)/%.c
$(TARGET_CC) $(cflags) -o$@ $<
#==========================================
# Rules for files in sys/msdos
#==========================================
$(OBJ)/%.o : $(MSYS)/%.c
$(TARGET_CC) $(cflags) -I../sys/msdos -o$@ $<
#==========================================
# Rules for files in util
#==========================================
$(OBJ)/%.o : $(UTIL)/%.c
$(TARGET_CC) $(cflags) -o$@ $<
#==========================================
# Rules for files in win/share
#==========================================
$(OBJ)/%.o : $(WSHR)/%.c
$(TARGET_CC) $(cflags) -I../win/share -o$@ $<
#==========================================
# Rules for files in win/tty
#==========================================
$(OBJ)/%.o : $(TTY)/%.c
$(TARGET_CC) $(cflags) -o$@ $<
#==========================================
# Rules for files in win/curses
#==========================================
$(OBJ)/%.o : $(WCURSES)/%.c
$(TARGET_CC) -DPDC_NCMOUSE $(PDCINCL) $(cflags) -o$@ $<
#==========================================
# Rules for files in PDCurses
#==========================================
$(OBJ)/%.o : $(PDCURSES_TOP)/%.c
$(TARGET_CC) $(PDCINCL) $(cflags) -o$@ $<
$(OBJ)/%.o : $(PDCSRC)/%.c
$(TARGET_CC) $(PDCINCL) $(cflags) -o$@ $<
$(OBJ)/%.o : $(PDCDOS)/%.c
$(TARGET_CC) $(PDCINCL) $(cflags) -o$@ $<
ifeq "$(ADD_LUA)" "Y"
#==========================================
# Rules for LUA files
#==========================================
$(OBJ)/%.o : $(LUASRC)/%.c
$(TARGET_CC) $(cflags) -o$@ $<
endif
#==========================================
# Primary Targets.
#==========================================
# The default target.
all : install
install: $(GAMEFILE) $(O)install.tag
@echo Done.
default: $(GAMEFILE)
tileutil: $(U)gif2txt $(U)txt2ppm
@echo Optional tile development utilities are up to date.
recover.exe: $(U)recover
# @$(subst /,\,if exist $(U)recover copy $(U)recover $(GAMEDIR))
# @$(subst /,\,if exist $(DOC)/recover.txt copy $(DOC)/recover.txt $(GAMEDIR))
$(O)install.tag: $(DAT)/nhdat $(GAMEFILE)
ifeq ($(USE_DLB),Y)
cp $(DAT)/nhdat $(GAMEDIR)/NHDAT
cp $(DAT)/license $(GAMEDIR)/LICENSE
else
cp $(DAT)/*. $(GAMEDIR)
cp $(DAT)/*.dat $(GAMEDIR)
cp $(MSYS)/msdoshlp.txt $(GAMEDIR))
ifeq "$(ADD_LUA)" "Y"
cp $(DAT)/*.lua $(GAMEDIR)
endif
endif
ifdef TERMLIB
cp $(SSHR)/termcap $(GAMEDIR)/TERMCAP)
endif
# if [ -f $(TILE_BMP) ]; then rm $(TILE_BMP); fi;
if [ -f $(TILE_BMP) ]; then cp $(TILE_BMP) $(GAMEDIR)/NHTILES.BMP; fi;
if [ -f $(DAT)/symbols ]; then cp $(DAT)/symbols $(GAMEDIR)/SYMBOLS; fi;
if [ -f $(SSHR)/NetHack.cnf ]; then cp $(SSHR)/NetHack.cnf $(GAMEDIR)/NETHACK.CNF; fi;
-touch $(GAMEDIR)/RECORD
if [ -f ../sys/msdos/sysconf ]; then cp ../sys/msdos/sysconf $(GAMEDIR)/SYSCONF; fi;
if [ -f $(DOC)/nethack.txt ]; then cp $(DOC)/nethack.txt $(GAMEDIR)/NETHACK.TXT; fi;
@echo install done > $@
#==========================================
# The main target.
#==========================================
$(GAMEFILE): $(O)obj.tag $(PDCLIB) $(LUALIB) \
$(ALLOBJ) $(O)$(GAME).lnk
if [ -f temp.a ]; then rm temp.a; fi;
@$(TARGET_AR) r temp.a $(VOBJ01)
@$(TARGET_AR) r temp.a $(VOBJ02)
@$(TARGET_AR) r temp.a $(VOBJ03)
@$(TARGET_AR) r temp.a $(VOBJ04)
@$(TARGET_AR) r temp.a $(VOBJ05)
@$(TARGET_AR) r temp.a $(VOBJ06)
@$(TARGET_AR) r temp.a $(VOBJ07)
@$(TARGET_AR) r temp.a $(VOBJ08)
@$(TARGET_AR) r temp.a $(VOBJ09)
@$(TARGET_AR) r temp.a $(VOBJ10)
@$(TARGET_AR) r temp.a $(VOBJ11)
@$(TARGET_AR) r temp.a $(VOBJ12)
@$(TARGET_AR) r temp.a $(VOBJ13)
@$(TARGET_AR) r temp.a $(VOBJ14)
@$(TARGET_AR) r temp.a $(VOBJ15)
@$(TARGET_AR) r temp.a $(VOBJ16)
@$(TARGET_AR) r temp.a $(VOBJ17)
@$(TARGET_AR) r temp.a $(VOBJ18)
@$(TARGET_AR) r temp.a $(VOBJ19)
@$(TARGET_AR) r temp.a $(VOBJ20)
@$(TARGET_AR) r temp.a $(VOBJ21)
@$(TARGET_AR) r temp.a $(VOBJ22)
@$(TARGET_AR) r temp.a $(VOBJ23)
@$(TARGET_AR) r temp.a $(VOBJ24)
@$(TARGET_AR) r temp.a $(VOBJ25)
@$(TARGET_AR) r temp.a $(VOBJ26)
@$(TARGET_AR) r temp.a $(VOBJ27)
@$(TARGET_AR) r temp.a $(VOBJ28)
@$(TARGET_AR) r temp.a $(VOBJ29)
@$(TARGET_AR) r temp.a $(VOBJ30)
@$(TARGET_AR) r temp.a $(VIDEO_OBJ)
@$(TARGET_AR) r temp.a $(SOBJ)
@$(TARGET_AR) r temp.a $(TILOBJ)
@$(TARGET_AR) r temp.a $(TILOBJ2)
ifeq "$(ADD_LUA)" "Y"
@$(TARGET_AR) r temp.a $(LUAOBJ)
endif
@$(TARGET_AR) r temp.a $(VVOBJ)
ifeq "$(ADD_CURSES)" "Y"
@$(TARGET_AR) r temp.a $(CURSESOBJ)
endif
@$(TARGET_AR) r temp.a $(MDLIB)
$(TARGET_LINK) $(LFLAGS) -o$(GAME).exe temp.a $(PDCLIB) $(LUALIB) $(LIBRARIES) $(ZLIB)
$(TARGET_STUBEDIT) $(GAME).exe minstack=2048K
cp $(GAME).exe $(GAMEFILE)
rm $(GAME).exe
$(O)$(GAME).lnk: $(ALLOBJ)
echo $(VOBJ01) > $@
echo $(VOBJ02) >> $@
echo $(VOBJ03) >> $@
echo $(VOBJ04) >> $@
echo $(VOBJ05) >> $@
echo $(VOBJ06) >> $@
echo $(VOBJ07) >> $@
echo $(VOBJ08) >> $@
echo $(VOBJ09) >> $@
echo $(VOBJ10) >> $@
echo $(VOBJ11) >> $@
echo $(VOBJ12) >> $@
echo $(VOBJ13) >> $@
echo $(VOBJ14) >> $@
echo $(VOBJ15) >> $@
echo $(VOBJ16) >> $@
echo $(VOBJ17) >> $@
echo $(VOBJ18) >> $@
echo $(VOBJ19) >> $@
echo $(VOBJ20) >> $@
echo $(VOBJ21) >> $@
echo $(VOBJ22) >> $@
echo $(VOBJ23) >> $@
echo $(VOBJ24) >> $@
echo $(VOBJ25) >> $@
echo $(VOBJ26) >> $@
echo $(VOBJ27) >> $@
echo $(VOBJ28) >> $@
echo $(VOBJ29) >> $@
echo $(VOBJ30) >> $@
echo $(SOBJ) >> $@
echo $(TILOBJ) >> $@
echo $(TILOBJ2) >> $@
ifeq "$(ADD_LUA)" "Y"
echo $(LUAOBJ) >> $@
endif
echo $(VVOBJ) >> $@
ifeq "$(ADD_CURSES)" "Y"
echo $(CURSESOBJ) >> $@
endif
#==========================================
#=========== SECONDARY TARGETS ============
#==========================================
#
#==========================================
# Recover Utility
#==========================================
$(U)recover.exe: $(RECOVOBJS)
$(TARGET_LINK) $(LFLAGS) -o$@ $(O)recover.o
$(O)recover.o: $(CONFIG_H) $(U)recover.c
$(TARGET_CC) $(cflags) -o$@ $(U)recover.c
#==========================================
# Header file moves required for tile support
#==========================================
ifeq ($(SUPPRESS_GRAPHICS),Y)
else
#
# Tile Mapping
#
#$(SRC)/tile.c: $(U)tilemap
# @$(U)tilemap
# @echo A new $@ has been created
endif
#==========================================
# PDCurses Library
#==========================================
$(O)pdcurses.a : $(PDCLIBOBJS) $(PDCOBJS)
if [ -f $@ ]; then rm $@; fi;
$(TARGET_AR) rcS $@ $(PDCLIBOBJS1)
$(TARGET_AR) rcS $@ $(PDCLIBOBJS2)
$(TARGET_AR) rcS $@ $(PDCLIBOBJS3)
$(TARGET_AR) rcS $@ $(PDCLIBOBJS4)
$(TARGET_AR) rcs $@ $(PDCOBJS)
#==========================================
# Other Util Dependencies.
#==========================================
$(O)alloc.o: $(CONFIG_H) alloc.c
$(TARGET_CC) $(cflags) -o$@ alloc.c
$(O)drawing.o: $(CONFIG_H) drawing.c $(MSYS)/pcvideo.h
$(TARGET_CC) $(cflags) -I$(MSYS) -o$@ drawing.c
$(O)decl.o: $(CONFIG_H) decl.c
$(TARGET_CC) $(cflags) -o$@ decl.c
$(O)monst.o: $(CONFIG_H) $(PERMONST_H) $(INCL)/monsym.h \
$(INCL)/color.h monst.c
$(TARGET_CC) $(cflags) -o$@ monst.c
$(O)objects.o: $(CONFIG_H) $(INCL)/obj.h $(INCL)/objclass.h \
$(INCL)/prop.h $(INCL)/color.h objects.c
$(TARGET_CC) $(cflags) -o$@ objects.c
$(O)dat.tag: $(DAT)/nhdat
@echo dat done >$@
#=============================================================
# Lua
#=============================================================
lua.exe: $(O)lua.o $(LUALIB)
$(TARGET_LINK) $(LFLAGS) -o$@ $(O)lua.o $(LUALIB)
luac.exe: $(O)luac.o $(LUALIB)
$(TARGET_LINK) $(LFLAGSU) -o$@ $(O)luac.o $(LUALIB)
$(O)lua.o: $(LUASRC)/lua.c
$(O)luac.o: $(LUASRC)/luac.c
#==========================================
# Lua lib
#==========================================
$(LUALIB): $(LUALIBOBJS)
if [ -f $@ ]; then rm $@; fi;
$(TARGET_AR) rcS $@ $(LUAOBJFILES1)
$(TARGET_AR) rcS $@ $(LUAOBJFILES2)
$(TARGET_AR) rcS $@ $(LUAOBJFILES3)
$(TARGET_AR) rcs $@ $(LUAOBJFILES4)
#$(LUADLL): $(LUALIBOBJS)
# $(TARGET_CC) -shared -Wl,--export-all-symbols \
# -Wl,--add-stdcall-alias -o $@ $<
#==========================================
# Housekeeping.
#==========================================
clean:
rm ./o/*.o
if [ -f $(O)install.tag ]; then rm $(O)install.tag; fi;
if [ -f $(O)obj.tag ]; then rm $(O)obj.tag; fi;
if [ -f $(O)$(GAME).lnk ]; then rm temp.a; fi;
if [ -f temp.a ]; then rm temp.a; fi;
spotless: clean
if [ -f $(U)recover.exe ]; then rm $(U)recover.exe; fi;
if [ -f $(INCL)/vis_tab.h ]; then rm $(INCL)/vis_tab.h; fi;
if [ -f $(INCL)/onames.h ]; then rm $(INCL)/onames.h; fi;
if [ -f $(INCL)/pm.h ]; then rm $(INCL)/pm.h; fi;
if [ -f $(INCL)/date.h ]; then rm $(INCL)/date.h; fi;
# if [ -f $(SRC)/monstr.c ]; then rm $(SRC)/monstr.c; fi;
if [ -f $(SRC)/vis_tab.c ]; then rm $(SRC)/vis_tab.c; fi;
if [ -f $(SRC)/tile.c ]; then rm $(SRC)/tile.c; fi;
if [ -f $(DAT)/options ]; then rm $(DAT)/options; fi;
if [ -f $(DAT)/data ]; then rm $(DAT)/data; fi;
if [ -f $(DAT)/rumors ]; then rm $(DAT)/rumors; fi;
if [ -f $(DAT)/oracles ]; then rm $(DAT)/oracles; fi;
if [ -f $(DAT)/bogusmon ]; then rm $(DAT)/bogusmon; fi;
if [ -f $(DAT)/engrave ]; then rm $(DAT)/engrave; fi;
if [ -f $(DAT)/epitaph ]; then rm $(DAT)/epitaph; fi;
if [ -f $(DAT)/dlb.lst ]; then rm $(DAT)/dlb.lst; fi;
if [ -f $(TILE_BMP) ]; then rm $(TILE_BMP); fi;
if [ -f $(PLANAR_TIB) ]; then rm $(PLANAR_TIB); fi;
if [ -f $(OVERVIEW_TIB) ]; then rm $(OVERVIEW_TIB); fi;
if [ -f $(WSHR)/monthin.txt ]; then rm $(WSHR)/monthin.txt; fi;
if [ -f $(WSHR)/objthin.txt ]; then rm $(WSHR)/objthin.txt; fi;
if [ -f $(WSHR)/oththin.txt ]; then rm $(WSHR)/oththin.txt; fi;
#==========================================
# Create directory for holding object files
#==========================================
$(O)obj.tag:
-mkdir -p $(OBJ)
@echo directory ready $(OBJ)
#==========================================
# Game Dependencies
#==========================================
# sys/share
$(O)main.o: $(HACK_H) $(DLB_H) $(SSHR)/pcmain.c
$(TARGET_CC) $(cflags) -o$@ $(SSHR)/pcmain.c
$(O)tty.o: $(HACK_H) $(INCL)/wintty.h $(SSHR)/pctty.c
$(TARGET_CC) $(cflags) -o$@ $(SSHR)/pctty.c
$(O)unix.o: $(HACK_H) $(SSHR)/pcunix.c
$(TARGET_CC) $(cflags) -o$@ $(SSHR)/pcunix.c
$(O)pcsys.o : $(HACK_H) $(SSHR)/pcsys.c
$(TARGET_CC) $(cflags) -o$@ $(SSHR)/pcsys.c
$(O)posixreg.o : $(HACK_H) $(SSHR)/posixreg.c
$(TARGET_CC) $(cflags) -o$@ $(SSHR)/posixreg.c
$(O)cppregex.o : $(HACK_H) $(SSHR)/cppregex.cpp
gpp $(cflags) -std=c++11 -o$@ $(SSHR)/cppregex.cpp
$(O)pmatchre.o : $(HACK_H) $(SSHR)/pmatchre.c
$(TARGET_CC) $(cflags) -o$@ $(SSHR)/pmatchre.c
# sys/msdos
$(O)tile.o : $(HACK_H) $(SRC)/tile.c
$(O)msdos.o : $(HACK_H) $(MSYS)/msdos.c
$(O)pckeys.o : $(HACK_H) $(MSYS)/pckeys.c
$(O)pctiles.o : $(HACK_H) $(MSYS)/pctiles.c $(MSYS)/portio.h
$(TARGET_CC) $(cflags) -I$(MSYS) -I$(WSHR) -o$@ $(MSYS)/pctiles.c
$(O)sound.o : $(HACK_H) $(MSYS)/sound.c $(MSYS)/portio.h
$(O)video.o : $(HACK_H) $(MSYS)/pcvideo.h $(MSYS)/portio.h $(MSYS)/video.c
$(O)vidvga.o : $(HACK_H) $(MSYS)/pcvideo.h $(MSYS)/portio.h $(TILE_H) $(MSYS)/vidvga.c
$(TARGET_CC) $(cflags) -I$(MSYS) -I$(WSHR) -o$@ $(MSYS)/vidvga.c
$(O)vidvesa.o : $(HACK_H) $(MSYS)/pcvideo.h $(MSYS)/portio.h $(TILE_H) $(MSYS)/vidvesa.c
$(TARGET_CC) $(cflags) -I$(MSYS) -I$(WSHR) -o$@ $(MSYS)/vidvesa.c
$(O)vidtxt.o : $(HACK_H) $(MSYS)/pcvideo.h $(MSYS)/portio.h $(TILE_H) $(MSYS)/vidtxt.c
$(O)stubvid.o : $(HACK_H) $(MSYS)/pcvideo.h $(MSYS)/video.c
$(TARGET_CC) $(cflags) -I$(MSYS) -DSTUBVIDEO -o$@ $(MSYS)/video.c
#
# The rest are stolen from sys/unix/Makefile.src,
# with the following changes:
# o -c (which is included in cflags) substituted with -o$@ ,
# o an explicit build instruction for dlb.o because it requires
# a .h file in ../sys/msdos.
# o the PATCHLEV_H macro is substitued for $(INCL)/patchlevel.h
# to work around a long filename issue.
# o $(CFLAGS) changed to $(cflags)
# Other than that, these dependencies are untouched.
# That means that there is some irrelevant stuff
# in here, but maintenance should be easier.
#
#
# src dependencies
#$(O)tos.o: ../sys/atari/tos.c $(HACK_H) $(INCL)/tcap.h
$(TARGET_CC) $(cflags) -o$@ ../sys/atari/tos.c
$(O)pcmain.o: ../sys/share/pcmain.c $(HACK_H) $(INCL)/dlb.h \
#$(INCL)/win32api.h
$(TARGET_CC) $(cflags) -o$@ ../sys/share/pcmain.c
$(O)pctty.o: ../sys/share/pctty.c $(HACK_H)
$(TARGET_CC) $(cflags) -o$@ ../sys/share/pctty.c
$(O)pcunix.o: ../sys/share/pcunix.c $(HACK_H)
$(TARGET_CC) $(cflags) -o$@ ../sys/share/pcunix.c
$(O)random.o: ../sys/share/random.c $(HACK_H)
$(TARGET_CC) $(cflags) -o$@ ../sys/share/random.c
$(O)ioctl.o: ../sys/share/ioctl.c $(HACK_H) $(INCL)/tcap.h
$(TARGET_CC) $(cflags) -o$@ ../sys/share/ioctl.c
$(O)unixtty.o: ../sys/share/unixtty.c $(HACK_H)
$(TARGET_CC) $(cflags) -o$@ ../sys/share/unixtty.c
$(O)unixmain.o: ../sys/unix/unixmain.c $(HACK_H) $(INCL)/dlb.h
$(TARGET_CC) $(cflags) -o$@ ../sys/unix/unixmain.c
$(O)unixunix.o: ../sys/unix/unixunix.c $(HACK_H)
$(TARGET_CC) $(cflags) -o$@ ../sys/unix/unixunix.c
$(O)unixres.o: ../sys/unix/unixres.c $(CONFIG_H)
$(TARGET_CC) $(cflags) -o$@ ../sys/unix/unixres.c
$(O)bemain.o: ../sys/be/bemain.c $(HACK_H) $(INCL)/dlb.h
$(TARGET_CC) $(cflags) -o$@ ../sys/be/bemain.c
$(O)getline.o: ../win/tty/getline.c $(HACK_H) $(INCL)/func_tab.h
$(TARGET_CC) $(cflags) -o$@ ../win/tty/getline.c
$(O)termcap.o: ../win/tty/termcap.c $(HACK_H) $(INCL)/tcap.h
$(TARGET_CC) $(cflags) -o$@ ../win/tty/termcap.c
$(O)topl.o: ../win/tty/topl.c $(HACK_H) $(INCL)/tcap.h
$(TARGET_CC) $(cflags) -o$@ ../win/tty/topl.c
$(O)wintty.o: ../win/tty/wintty.c $(HACK_H) $(INCL)/dlb.h \
$(INCL)/date.h $(PATCHLEV_H) $(INCL)/tcap.h
$(TARGET_CC) $(cflags) -o$@ ../win/tty/wintty.c
$(O)Window.o: ../win/X11/Window.c $(INCL)/xwindowp.h $(INCL)/xwindow.h \
$(CONFIG_H)
$(TARGET_CC) $(cflags) -o$@ ../win/X11/Window.c
$(O)dialogs.o: ../win/X11/dialogs.c $(CONFIG_H)
$(TARGET_CC) $(cflags) -o$@ ../win/X11/dialogs.c
$(O)winX.o: ../win/X11/winX.c $(HACK_H) $(INCL)/winX.h $(INCL)/dlb.h \
$(PATCHLEV_H) ../win/X11/nh72icon \
../win/X11/nh56icon ../win/X11/nh32icon
$(TARGET_CC) $(cflags) -o$@ ../win/X11/winX.c
$(O)winmap.o: ../win/X11/winmap.c $(INCL)/xwindow.h $(HACK_H) $(INCL)/dlb.h \
$(INCL)/winX.h $(INCL)/tile2x11.h
$(TARGET_CC) $(cflags) -o$@ ../win/X11/winmap.c
$(O)winmenu.o: ../win/X11/winmenu.c $(HACK_H) $(INCL)/winX.h
$(TARGET_CC) $(cflags) -o$@ ../win/X11/winmenu.c
$(O)winmesg.o: ../win/X11/winmesg.c $(INCL)/xwindow.h $(HACK_H) $(INCL)/winX.h
$(TARGET_CC) $(cflags) -o$@ ../win/X11/winmesg.c
$(O)winmisc.o: ../win/X11/winmisc.c $(HACK_H) $(INCL)/func_tab.h \
$(INCL)/winX.h
$(TARGET_CC) $(cflags) -o$@ ../win/X11/winmisc.c
$(O)winstat.o: ../win/X11/winstat.c $(HACK_H) $(INCL)/winX.h
$(TARGET_CC) $(cflags) -o$@ ../win/X11/winstat.c
$(O)wintext.o: ../win/X11/wintext.c $(HACK_H) $(INCL)/winX.h $(INCL)/xwindow.h
$(TARGET_CC) $(cflags) -o$@ ../win/X11/wintext.c
$(O)winval.o: ../win/X11/winval.c $(HACK_H) $(INCL)/winX.h
$(TARGET_CC) $(cflags) -o$@ ../win/X11/winval.c
#$(O)tile.o: tile.c $(HACK_H)
#$(HOST_O)tile.o: tile.c $(HACK_H)
$(O)gnaskstr.o: ../win/gnome/gnaskstr.c ../win/gnome/gnaskstr.h \
../win/gnome/gnmain.h
$(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnaskstr.c
$(O)gnbind.o: ../win/gnome/gnbind.c ../win/gnome/gnbind.h ../win/gnome/gnmain.h \
../win/gnome/gnaskstr.h ../win/gnome/gnyesno.h
$(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnbind.c
$(O)gnglyph.o: ../win/gnome/gnglyph.c ../win/gnome/gnglyph.h $(INCL)/tile2x11.h
$(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnglyph.c
$(O)gnmain.o: ../win/gnome/gnmain.c ../win/gnome/gnmain.h ../win/gnome/gnsignal.h \
../win/gnome/gnbind.h ../win/gnome/gnopts.h $(HACK_H) \
$(INCL)/date.h
$(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnmain.c
$(O)gnmap.o: ../win/gnome/gnmap.c ../win/gnome/gnmap.h ../win/gnome/gnglyph.h \
../win/gnome/gnsignal.h $(HACK_H)
$(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnmap.c
$(O)gnmenu.o: ../win/gnome/gnmenu.c ../win/gnome/gnmenu.h ../win/gnome/gnmain.h \
../win/gnome/gnbind.h
$(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnmenu.c
$(O)gnmesg.o: ../win/gnome/gnmesg.c ../win/gnome/gnmesg.h ../win/gnome/gnsignal.h
$(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnmesg.c
$(O)gnopts.o: ../win/gnome/gnopts.c ../win/gnome/gnopts.h ../win/gnome/gnglyph.h \
../win/gnome/gnmain.h ../win/gnome/gnmap.h $(HACK_H)
$(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnopts.c
$(O)gnplayer.o: ../win/gnome/gnplayer.c ../win/gnome/gnplayer.h \
../win/gnome/gnmain.h $(HACK_H)
$(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnplayer.c
$(O)gnsignal.o: ../win/gnome/gnsignal.c ../win/gnome/gnsignal.h \
../win/gnome/gnmain.h
$(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnsignal.c
$(O)gnstatus.o: ../win/gnome/gnstatus.c ../win/gnome/gnstatus.h \
../win/gnome/gnsignal.h ../win/gnome/gn_xpms.h \
../win/gnome/gnomeprv.h
$(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnstatus.c
$(O)gntext.o: ../win/gnome/gntext.c ../win/gnome/gntext.h ../win/gnome/gnmain.h \
../win/gnome/gn_rip.h
$(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gntext.c
$(O)gnworn.o: ../win/gnome/gnworn.c ../win/gnome/gnworn.h ../win/gnome/gnglyph.h \
../win/gnome/gnsignal.h ../win/gnome/gnomeprv.h
$(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnworn.c
$(O)gnyesno.o: ../win/gnome/gnyesno.c ../win/gnome/gnbind.h ../win/gnome/gnyesno.h
$(TARGET_CC) $(cflags) $(GNOMEINC) -o$@ ../win/gnome/gnyesno.c
$(O)wingem.o: ../win/gem/wingem.c $(HACK_H) $(INCL)/func_tab.h $(INCL)/dlb.h \
$(PATCHLEV_H) $(INCL)/wingem.h
$(TARGET_CC) $(cflags) -o$@ ../win/gem/wingem.c
$(O)wingem1.o: ../win/gem/wingem1.c $(INCL)/gem_rsc.h $(INCL)/load_img.h \
$(INCL)/gr_rect.h $(INCL)/wintype.h $(INCL)/wingem.h
$(TARGET_CC) $(cflags) -o$@ ../win/gem/wingem1.c
$(O)load_img.o: ../win/gem/load_img.c $(INCL)/load_img.h
$(TARGET_CC) $(cflags) -o$@ ../win/gem/load_img.c
$(O)gr_rect.o: ../win/gem/gr_rect.c $(INCL)/gr_rect.h
$(TARGET_CC) $(cflags) -o$@ ../win/gem/gr_rect.c
$(O)qt_win.o: ../win/Qt/qt_win.cpp $(HACK_H) $(INCL)/func_tab.h \
$(INCL)/dlb.h $(PATCHLEV_H) $(INCL)/tile2x11.h \
$(INCL)/qt_win.h $(INCL)/qt_clust.h $(INCL)/qt_kde0.h \
$(INCL)/qt_xpms.h qt_win.moc qt_kde0.moc qttableview.moc
$(CXX) $(CXXFLAGS) -o$@ ../win/Qt/qt_win.cpp
$(O)qt_clust.o: ../win/Qt/qt_clust.cpp $(INCL)/qt_clust.h
$(CXX) $(CXXFLAGS) -o$@ ../win/Qt/qt_clust.cpp
$(O)qttableview.o: ../win/Qt/qttableview.cpp $(INCL)/qttableview.h
$(CXX) $(CXXFLAGS) -o$@ ../win/Qt/qttableview.cpp
#$(O)monstr.o: monstr.c $(CONFIG_H)
$(O)vis_tab.o: vis_tab.c $(CONFIG_H) $(INCL)/vis_tab.h
$(O)allmain.o: allmain.c $(HACK_H)
$(O)alloc.o: alloc.c $(CONFIG_H)
$(O)apply.o: apply.c $(HACK_H)
$(O)artifact.o: artifact.c $(HACK_H) $(INCL)/artifact.h $(INCL)/artilist.h
$(O)attrib.o: attrib.c $(HACK_H)
$(O)ball.o: ball.c $(HACK_H)
$(O)bones.o: bones.c $(HACK_H)
$(O)botl.o: botl.c $(HACK_H)
$(O)cmd.o: cmd.c $(HACK_H) $(INCL)/func_tab.h
$(O)dbridge.o: dbridge.c $(HACK_H)
$(O)decl.o: decl.c $(HACK_H)
$(O)detect.o: detect.c $(HACK_H) $(INCL)/artifact.h
$(O)dig.o: dig.c $(HACK_H)
$(O)display.o: display.c $(HACK_H)
$(O)dlb.o: dlb.c $(CONFIG_H) $(INCL)/dlb.h
$(TARGET_CC) $(cflags) -I../sys/msdos -o$@ dlb.c
$(O)do.o: do.c $(HACK_H)
$(O)do_name.o: do_name.c $(HACK_H)
$(O)do_wear.o: do_wear.c $(HACK_H)
$(O)dog.o: dog.c $(HACK_H)
$(O)dogmove.o: dogmove.c $(HACK_H) $(INCL)/mfndpos.h
$(O)dokick.o: dokick.c $(HACK_H)
$(O)dothrow.o: dothrow.c $(HACK_H)
$(O)drawing.o: drawing.c $(CONFIG_H)
$(O)dungeon.o: dungeon.c $(HACK_H) $(INCL)/dgn_file.h $(INCL)/dlb.h
$(O)eat.o: eat.c $(HACK_H)
$(O)end.o: end.c $(HACK_H) $(INCL)/dlb.h
$(O)engrave.o: engrave.c $(HACK_H)
$(O)exper.o: exper.c $(HACK_H)
$(O)explode.o: explode.c $(HACK_H)
$(O)extralev.o: extralev.c $(HACK_H)
$(O)files.o: files.c $(HACK_H) $(INCL)/dlb.h
$(O)fountain.o: fountain.c $(HACK_H)
$(O)hack.o: hack.c $(HACK_H)
$(O)hacklib.o: hacklib.c $(HACK_H)
$(O)insight.o: insight.c $(HACK_H)
$(O)invent.o: invent.c $(HACK_H)
$(O)light.o: light.c $(HACK_H)
$(O)lock.o: lock.c $(HACK_H)
$(O)mail.o: mail.c $(HACK_H) $(INCL)/mail.h
$(O)makemon.o: makemon.c $(HACK_H)
$(O)mapglyph.o: mapglyph.c $(HACK_H)
$(O)mcastu.o: mcastu.c $(HACK_H)
$(O)mhitm.o: mhitm.c $(HACK_H) $(INCL)/artifact.h
$(O)mhitu.o: mhitu.c $(HACK_H) $(INCL)/artifact.h
$(O)minion.o: minion.c $(HACK_H)
$(O)mklev.o: mklev.c $(HACK_H)
$(O)mkmap.o: mkmap.c $(HACK_H) $(INCL)/sp_lev.h
$(O)mkmaze.o: mkmaze.c $(HACK_H) $(INCL)/sp_lev.h
$(O)mkobj.o: mkobj.c $(HACK_H)
$(O)mkroom.o: mkroom.c $(HACK_H)
$(O)mon.o: mon.c $(HACK_H) $(INCL)/mfndpos.h
$(O)mondata.o: mondata.c $(HACK_H)
$(O)monmove.o: monmove.c $(HACK_H) $(INCL)/mfndpos.h $(INCL)/artifact.h
$(O)monst.o: monst.c $(CONFIG_H) $(INCL)/permonst.h $(INCL)/align.h \
$(INCL)/monattk.h $(INCL)/monflag.h $(INCL)/monsym.h \
$(INCL)/color.h
$(O)mplayer.o: mplayer.c $(HACK_H)
$(O)mthrowu.o: mthrowu.c $(HACK_H)
$(O)muse.o: muse.c $(HACK_H)
$(O)music.o: music.c $(HACK_H) #interp.c
$(O)nhlua.o: nhlua.c $(HACK_H)
$(O)nhlsel.o: nhlsel.c $(HACK_H)
$(O)nhlobj.o: nhlobj.c $(HACK_H)
$(O)o_init.o: o_init.c $(HACK_H)
$(O)objects.o: objects.c $(CONFIG_H) $(INCL)/obj.h $(INCL)/objclass.h \
$(INCL)/prop.h $(INCL)/skills.h $(INCL)/color.h
$(O)objnam.o: objnam.c $(HACK_H)
$(O)options.o: options.c $(CONFIG_H) $(INCL)/objclass.h $(INCL)/flag.h \
$(HACK_H) $(INCL)/tcap.h
$(O)pager.o: pager.c $(HACK_H) $(INCL)/dlb.h
$(O)pickup.o: pickup.c $(HACK_H)
$(O)pline.o: pline.c $(HACK_H)
$(O)polyself.o: polyself.c $(HACK_H)
$(O)potion.o: potion.c $(HACK_H)
$(O)pray.o: pray.c $(HACK_H)
$(O)priest.o: priest.c $(HACK_H) $(INCL)/mfndpos.h
$(O)quest.o: quest.c $(HACK_H)
$(O)questpgr.o: questpgr.c $(HACK_H) $(INCL)/dlb.h
$(O)read.o: read.c $(HACK_H)
$(O)rect.o: rect.c $(HACK_H)
$(O)region.o: region.c $(HACK_H)
$(O)restore.o: restore.c $(HACK_H) $(INCL)/tcap.h
$(O)rip.o: rip.c $(HACK_H)
$(O)rnd.o: rnd.c $(HACK_H)
$(O)role.o: role.c $(HACK_H)
$(O)rumors.o: rumors.c $(HACK_H) $(INCL)/dlb.h
$(O)save.o: save.c $(HACK_H)
$(O)shk.o: shk.c $(HACK_H)
$(O)shknam.o: shknam.c $(HACK_H)
$(O)sit.o: sit.c $(HACK_H) $(INCL)/artifact.h
$(O)sounds.o: sounds.c $(HACK_H)
$(O)sp_lev.o: sp_lev.c $(HACK_H) $(INCL)/dlb.h $(INCL)/sp_lev.h
$(O)spell.o: spell.c $(HACK_H)
$(O)steal.o: steal.c $(HACK_H)
$(O)steed.o: steed.c $(HACK_H)
$(O)symbols.o: symbols.c $(HACK_H) $(INCL)/tcap.h
$(O)sys.o: sys.c $(HACK_H)
$(O)teleport.o: teleport.c $(HACK_H)
$(O)timeout.o: timeout.c $(HACK_H)
$(O)topten.o: topten.c $(HACK_H) $(INCL)/dlb.h $(PATCHLEV_H)
$(O)track.o: track.c $(HACK_H)
$(O)trap.o: trap.c $(HACK_H)
$(O)u_init.o: u_init.c $(HACK_H)
$(O)uhitm.o: uhitm.c $(HACK_H)
$(O)vault.o: vault.c $(HACK_H)
$(O)version.o: version.c $(HACK_H) $(INCL)/date.h $(PATCHLEV_H)
$(O)vision.o: vision.c $(HACK_H) $(INCL)/vis_tab.h
$(O)weapon.o: weapon.c $(HACK_H)
$(O)were.o: were.c $(HACK_H)
$(O)wield.o: wield.c $(HACK_H)
$(O)windows.o: windows.c $(HACK_H) $(INCL)/wingem.h $(INCL)/winGnome.h
$(O)wizard.o: wizard.c $(HACK_H)
$(O)worm.o: worm.c $(HACK_H)
$(O)worn.o: worn.c $(HACK_H)
$(O)write.o: write.c $(HACK_H)
$(O)zap.o: zap.c $(HACK_H)
$(O)pmatchre.o: $(SSHR)/pmatchre.c $(HACK_H)
$(O)tileset.o: $(WSHR)/tileset.c $(HACK_H)
$(O)bmptiles.o: $(WSHR)/bmptiles.c $(INCL)/config.h $(INCL)/tileset.h $(INCL)/integer.h
$(O)giftiles.o: $(WSHR)/giftiles.c $(INCL)/config.h $(INCL)/tileset.h $(INCL)/integer.h
#end of file