2252 lines
83 KiB
Makefile
2252 lines
83 KiB
Makefile
# NetHack 3.7 Makefile.msc
|
||
# Copyright (c) NetHack Development Team 1993-2022
|
||
#
|
||
#==============================================================================
|
||
# Build Tools Environment
|
||
#
|
||
# NetHack 3.7 Work-in-progress Makefile for
|
||
# MS Visual Studio Visual C++ compiler
|
||
#
|
||
# Visual Studio Compilers Tested:
|
||
# - Microsoft Visual Studio 2017 Community Edition v 15.9.46
|
||
# - Microsoft Visual Studio 2019 Community Edition v 16.11.12
|
||
# - Microsoft Visual Studio 2022 Community Edition v 17.1.4
|
||
#
|
||
#==============================================================================
|
||
# This is used for building two distinct executables of NetHack:
|
||
#
|
||
# A tty port utilizing the Win32 Console I/O subsystem, Console
|
||
# NetHack.exe
|
||
#
|
||
# A Win32 native port built on the Windows API, Graphical NetHack or
|
||
# NetHackW.exe
|
||
#
|
||
# If you have any questions about building NetHack for the Windows platform
|
||
# please read sys/windows/Install.windows file included in the distribution.
|
||
#
|
||
#==============================================================================
|
||
#
|
||
# The default make target (so just typing 'nmake' is useful).
|
||
#
|
||
|
||
default : install
|
||
|
||
#
|
||
#------------------------------------------------------------------------------
|
||
# Where do you want the game to be built (which folder)?
|
||
#
|
||
|
||
GAMEDIR = ..\binary # Default game build directory
|
||
|
||
#
|
||
#------------------------------------------------------------------------------
|
||
# Do you want debug information available to the executable?
|
||
#
|
||
|
||
DEBUGINFO = Y
|
||
|
||
#------------------------------------------------------------------------------
|
||
#
|
||
#
|
||
# Do you have a connection to the internet available that you want
|
||
# to utilize for obtaining prerequisite Lua source code and pdcurses source code?
|
||
#
|
||
|
||
INTERNET_AVAILABLE = N
|
||
|
||
#------------------------------------------------------------------------------
|
||
#
|
||
# Do you have git commands available and NetHack in a git repository?
|
||
|
||
GIT_AVAILABLE = N
|
||
|
||
# If not, because you obtained the NetHack sources in a zip file download,
|
||
# set GIT_AVAILABLE = N
|
||
# You can override INTERNET_AVAILABLE and GIT_AVAILABLE on the nmake command
|
||
# line by adding GIT=1
|
||
# for example:
|
||
# nmake GIT=1 install
|
||
#
|
||
#------------------------------------------------------------------------------
|
||
# This Makefile will attempt to auto-detect your selected target architecture
|
||
# based on Visual Studio command prompt configuration settins etc.
|
||
# However, if you want to manually override generation of a
|
||
# 32-bit or 64-bit build target, you can uncomment the apppropriate
|
||
# TARGET_CPU line below.
|
||
#
|
||
|
||
#TARGET_CPU=x64
|
||
#TARGET_CPU=x86
|
||
|
||
#==============================================================================
|
||
#======================== End of Modification Section =========================
|
||
#==============================================================================
|
||
#
|
||
# #################################################
|
||
# # #
|
||
# # Nothing below here should have to be changed. #
|
||
# # #
|
||
# #################################################
|
||
#
|
||
#==============================================================================
|
||
|
||
SKIP_NETHACKW = N
|
||
|
||
!IFNDEF LUA_VERSION
|
||
LUAVER=5.4.4
|
||
!ELSE
|
||
LUAVER=$(LUA_VERSION)
|
||
!ENDIF
|
||
|
||
# if GIT=1 is passed on the make command, allow use of git and internet
|
||
!IF "$(GIT)" == "1"
|
||
INTERNET_AVAILABLE=Y
|
||
GIT_AVAILABLE=Y
|
||
!ENDIF
|
||
!IF "$(git)" == "1"
|
||
INTERNET_AVAILABLE=Y
|
||
GIT_AVAILABLE=Y
|
||
!ENDIF
|
||
|
||
#==============================================================================
|
||
#
|
||
# The version of the game this Makefile was designed for
|
||
NETHACK_VERSION="3.7.0"
|
||
|
||
# A brief version for use in macros
|
||
NHV=$(NETHACK_VERSION:.=)
|
||
NHV=$(NHV:"=)
|
||
|
||
#
|
||
# Source directories. Makedefs hardcodes these, don't change them.
|
||
#
|
||
|
||
INCL = ..\include # NetHack include files
|
||
DAT = ..\dat # NetHack data files
|
||
DOC = ..\doc # NetHack documentation files
|
||
UTIL = ..\util # Utility source
|
||
SRC = ..\src # Main source
|
||
SSYS = ..\sys\share # Shared system files
|
||
MSWSYS = ..\sys\windows # MS windows specific files
|
||
TTY = ..\win\tty # window port files (tty)
|
||
MSWIN = ..\win\win32 # window port files (win32)
|
||
WCURSES = ..\win\curses # window port files (curses)
|
||
WSHR = ..\win\share # Tile support files
|
||
QT = ..\win\Qt # QT support files
|
||
X11 = ..\win\X11 # X11 support files
|
||
LIBDIR = ..\lib # libraries and external bits
|
||
SUBM = ..\submodules # NetHack git submodules
|
||
|
||
#==============================================================================
|
||
# Sanity checks for prerequisite Lua and pdcurses
|
||
#
|
||
LUA_MAY_PROCEED=N
|
||
ADD_CURSES=N
|
||
|
||
# First, Lua
|
||
!IF "$(INTERNET_AVAILABLE)" == "Y"
|
||
!IF "$(GIT_AVAILABLE)" == "Y"
|
||
LUATOP=$(SUBM)\lua
|
||
LUASRC=$(LUATOP)
|
||
LUA_MAY_PROCEED=Y
|
||
!ELSE # GIT_AVAILABLE
|
||
LUATOP = $(LIBDIR)\lua-$(LUAVER)
|
||
LUASRC = $(LUATOP)\src
|
||
LUA_MAY_PROCEED=Y
|
||
!ENDIF # GIT_AVAILABLE
|
||
!ELSE # INTERNET_AVAILABLE is not Y below
|
||
# The internet is not available for obtaining Lua using either
|
||
# method (git or download). Check to see if it is available already, with
|
||
# precedence given to ../submodules, then ../lib.
|
||
#
|
||
!IF EXIST("$(SUBM)\lua\lua.h")
|
||
LUATOP=$(SUBM)\lua
|
||
LUASRC=$(LUATOP)
|
||
LUA_MAY_PROCEED=Y
|
||
!ELSEIF EXIST("$(LIBDIR)\lua-$(LUAVER)\src\lua.h")
|
||
LUATOP = $(LIBDIR)\lua-$(LUAVER)
|
||
LUASRC = $(LUATOP)\src
|
||
LUA_MAY_PROCEED=Y
|
||
!ENDIF # Lua sources
|
||
!IF "$(LUA_MAY_PROCEED)" == "Y"
|
||
!MESSAGE No internet connection was authorized in the Makefile,
|
||
!MESSAGE but a copy of lua-$(LUAVER) was found in $(LUATOP), so that will be used.
|
||
!ENDIF # LUA_MAY_PROCEED
|
||
!ENDIF # INTERNET_AVAILABLE
|
||
|
||
!IF "$(LUA_MAY_PROCEED)" != "Y"
|
||
!IF "$(INTERNET_AVAILABLE)" != "Y"
|
||
!MESSAGE Your Makefile settings do not allow use of the internet to obtain Lua
|
||
!ENDIF # INTERNET_AVAILABLE
|
||
!MESSAGE and no copy of Lua was found in either $(SUBM)\lua or $(LIBDIR)\lua-$(LUAVER).
|
||
!MESSAGE Change your nmake command line to include:
|
||
!MESSAGE GIT=1
|
||
!MESSAGE or modify your Makefile to set the following:
|
||
!MESSAGE INTERNET_AVAILABLE=Y
|
||
!MESSAGE GIT_AVAILABLE=Y
|
||
!ERROR Stopping because NetHack 3.7 requires Lua for its build.
|
||
!ENDIF # LUA_MAY_PROCEED
|
||
|
||
# Now, pdcurses
|
||
!IF "$(INTERNET_AVAILABLE)" == "Y"
|
||
!IF "$(GIT_AVAILABLE)" == "Y"
|
||
PDCURSES_TOP=$(SUBM)\pdcurses
|
||
ADD_CURSES=Y
|
||
!ELSE # GIT_AVAILABLE
|
||
PDCURSES_TOP=$(LIBDIR)\pdcurses
|
||
ADD_CURSES=Y
|
||
!ENDIF # GIT_AVAILABLE
|
||
!ELSE # INTERNET_AVAILABLE is not Y below
|
||
# Your Makefile settings do not allow pdcurses to be obtained by
|
||
# git or by download. Check to see if it is available at one of
|
||
# the expected locations already, with precedence given to ../submodules,
|
||
# then ../lib.
|
||
#
|
||
!IF EXIST("$(SUBM)\pdcurses\curses.h")
|
||
PDCURSES_TOP=$(SUBM)\pdcurses
|
||
ADD_CURSES=Y
|
||
!ELSEIF EXIST("$(LIBDIR)\pdcurses\curses.h")
|
||
PDCURSES_TOP=$(LIBDIR)\pdcurses
|
||
ADD_CURSES=Y
|
||
!ENDIF # pdcurses sources available somewhere
|
||
!IF "$(ADD_CURSES)" == "Y"
|
||
!MESSAGE Your Makefile settings do not allow pdcurses to be obtained by
|
||
!MESSAGE git or by download, but a copy of pdcurses was found in $(PDCURSES_TOP),
|
||
!MESSAGE so that will be used.
|
||
!ENDIF # ADD_CURSES == Y
|
||
!ENDIF # INTERNET_AVAILABLE
|
||
|
||
!IF "$(ADD_CURSES)" != "Y"
|
||
!MESSAGE NetHack 3.7 will be built without support for the curses window-port.
|
||
!ENDIF
|
||
|
||
#These will be in the environment variables with one of the Visual Studio
|
||
#developer command prompts.
|
||
#VSCMD_ARG_HOST_ARCH=x64
|
||
#VSCMD_ARG_TGT_ARCH=x86
|
||
|
||
# We need to do this here, so some output files can
|
||
# incorporate TARGET_CPU into their names.
|
||
#
|
||
!IFDEF VSCMD_ARG_HOST_ARCH
|
||
!MESSAGE Host architecture is $(VSCMD_ARG_HOST_ARCH)
|
||
!MESSAGE Target architecture is $(VSCMD_ARG_TGT_ARCH)
|
||
! IFNDEF TARGET_CPU
|
||
! IF "$(VSCMD_ARG_TGT_ARCH)"=="x64"
|
||
TARGET_CPU=x64
|
||
! ELSE
|
||
TARGET_CPU=x86
|
||
! ENDIF
|
||
! ENDIF
|
||
!ENDIF
|
||
|
||
!IF "$(TARGET_CPU)" == ""
|
||
TARGET_CPU=x86
|
||
!ENDIF
|
||
|
||
#TEST_CROSSCOMPILE=Y
|
||
|
||
#
|
||
#==========================================
|
||
# Exe File Info.
|
||
#==========================================
|
||
|
||
#
|
||
# Optional high-quality BSD random number generation routines
|
||
# (see pcconf.h). Set to nothing if not used.
|
||
#
|
||
|
||
RANDOM = $(OBJ)\random.o
|
||
#RANDOM =
|
||
BCRYPT=bcrypt.lib
|
||
WINPFLAG= -DTILES -DMSWIN_GRAPHICS -DWIN32CON
|
||
|
||
# To store all the level files,
|
||
# help files, etc. in a single library file.
|
||
# USE_DLB = Y is left uncommented
|
||
|
||
USE_DLB = Y
|
||
|
||
! IF ("$(USE_DLB)"=="Y")
|
||
DLBDEF = -DDLB
|
||
! ELSE
|
||
DLBDEF =
|
||
! ENDIF
|
||
|
||
#
|
||
# If you defined ZLIB_COMP in include/config.h and you need
|
||
# to link with the zlib.lib library, uncomment the line below.
|
||
# If necessary, prefix explicit path information to the file name
|
||
# otherwise it assumes the NetHack src directory.
|
||
#
|
||
|
||
#ZLIB = zlib.lib
|
||
|
||
|
||
#==========================================
|
||
#================ MACROS ==================
|
||
#==========================================
|
||
# This section creates shorthand macros for many objects
|
||
# referenced later on in the Makefile.
|
||
#
|
||
#
|
||
# Object directory.
|
||
#
|
||
|
||
OBJ = o\$(TARGET_CPU)
|
||
|
||
#
|
||
# Shorten up the location for some files
|
||
#
|
||
|
||
O = $(OBJ)^\
|
||
|
||
U = $(UTIL)^\
|
||
|
||
!IFDEF TEST_CROSSCOMPILE
|
||
HOST=_host
|
||
CROSSCOMPILE_TARGET= -DCROSSCOMPILE_TARGET
|
||
CROSSCOMPILE= -DCROSSCOMPILE
|
||
!ELSE
|
||
HOST=
|
||
CROSSCOMPILE_TARGET=
|
||
CROSSCOMPILE=
|
||
!ENDIF
|
||
|
||
#===============-=================================================
|
||
# LUA library
|
||
# Official source for Lua is http://www.lua.org/ftp/lua-5.4.4.tar.gz
|
||
#
|
||
# Source for the NetHack repository submodule in ../submodules/lua
|
||
# is https://github.com/lua/lua.git
|
||
#=================================================================
|
||
#
|
||
# Location of LUA
|
||
#
|
||
# Original source needs to be obtained from:
|
||
# http://www.lua.org/ftp/lua-5.4.4.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. You cannot build a functional
|
||
# version of NetHack-3.7 Work-in-progress without including Lua.
|
||
#
|
||
|
||
!IFNDEF LUAVER
|
||
LUAVER=5.4.4
|
||
!ENDIF
|
||
|
||
LUALIB = $(LIBDIR)\lua$(LUAVER)-$(TARGET_CPU)-static.lib
|
||
LUADLL = $(LIBDIR)\lua$(LUAVER)-$(TARGET_CPU).dll
|
||
LUAINCL = /I$(LUASRC)
|
||
LUATARGETS = lua.exe $(LUADLL) $(LUALIB)
|
||
|
||
LUASRCFILES = lapi.c lauxlib.c lbaselib.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
|
||
|
||
LUAOBJFILES = $(O)lapi.o $(O)lauxlib.o $(O)lbaselib.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
|
||
|
||
!IF "$(LUAVER)" == "5.3.5"
|
||
LUASRCFILES = $(LUASRCFILES) lbitlib.c
|
||
LUAOBJFILES = $(LUAOBJFILES) $(O)lbitlib.o
|
||
!ELSE
|
||
# 5.4.0 added header files ljumptab.h and lopnames.h
|
||
# and removes lbitlib.c
|
||
!ENDIF
|
||
#===============-=================================================
|
||
# PDCurses build macros
|
||
# Source for the NetHack repository submodule in ../submodules/PDCurses
|
||
# is https://github.com/wmcbrine/PDCurses.git
|
||
#=================================================================
|
||
!IF "$(ADD_CURSES)" == "Y"
|
||
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
|
||
PDCWINCON = $(PDCURSES_TOP)\wincon
|
||
PDCDEP = $(PDCURSES_TOP)\curses.h
|
||
|
||
PDCLIBOBJS = $(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 $(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 $(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 $(O)touch.o $(O)util.o $(O)window.o $(O)debug.o
|
||
|
||
PDCOBJS = $(O)pdcclip.o $(O)pdcdisp.o $(O)pdcgetsc.o $(O)pdckbd.o $(O)pdcscrn.o \
|
||
$(O)pdcsetsc.o $(O)pdcutil.o
|
||
|
||
PDCLIB = $(LIBDIR)\pdcurses-$(TARGET_CPU).lib
|
||
|
||
PDCINCL = /I$(PDCURSES_TOP) /I$(PDCSRC) /I$(PDCWINCON)
|
||
|
||
!ELSE
|
||
PDCLIB =
|
||
PDCDEP =
|
||
!ENDIF
|
||
|
||
HACKINCL = $(INCL)\align.h $(INCL)\artifact.h $(INCL)\artilist.h \
|
||
$(INCL)\attrib.h $(INCL)\botl.h $(INCL)\color.h $(INCL)\config.h \
|
||
$(INCL)\config1.h $(INCL)\context.h $(INCL)\coord.h $(INCL)\decl.h \
|
||
$(INCL)\display.h $(INCL)\dlb.h $(INCL)\dungeon.h $(INCL)\engrave.h \
|
||
$(INCL)\extern.h $(INCL)\flag.h $(INCL)\fnamesiz.h $(INCL)\func_tab.h \
|
||
$(INCL)\global.h $(INCL)\warnings.h $(INCL)\hack.h $(INCL)\lint.h \
|
||
$(INCL)\mextra.h $(INCL)\mfndpos.h $(INCL)\micro.h $(INCL)\mkroom.h \
|
||
$(INCL)\monattk.h $(INCL)\mondata.h $(INCL)\monflag.h $(INCL)\monst.h \
|
||
$(INCL)\monsters.h $(INCL)\obj.h $(INCL)\objects.h $(INCL)\objclass.h \
|
||
$(INCL)\optlist.h $(INCL)\patchlevel.h $(INCL)\pcconf.h \
|
||
$(INCL)\permonst.h $(INCL)\prop.h $(INCL)\rect.h $(INCL)\region.h \
|
||
$(INCL)\sym.h $(INCL)\defsym.h $(INCL)\rm.h $(INCL)\sp_lev.h \
|
||
$(INCL)\spell.h $(INCL)\sys.h $(INCL)\system.h $(INCL)\tcap.h \
|
||
$(INCL)\timeout.h $(INCL)\tradstdc.h $(INCL)\trap.h \
|
||
$(INCL)\unixconf.h $(INCL)\vision.h $(INCL)\vmsconf.h \
|
||
$(INCL)\wintty.h $(INCL)\wincurs.h $(INCL)\winX.h \
|
||
$(INCL)\winprocs.h $(INCL)\wintype.h $(INCL)\you.h \
|
||
$(INCL)\youprop.h
|
||
|
||
# all .c that are part of the main NetHack program and are not operating- or
|
||
# windowing-system specific
|
||
HACKCSRC = allmain.c alloc.c apply.c artifact.c attrib.c ball.c bones.c \
|
||
botl.c cmd.c dbridge.c decl.c detect.c dig.c display.c dlb.c do.c \
|
||
do_name.c do_wear.c dog.c dogmove.c dokick.c dothrow.c drawing.c \
|
||
dungeon.c eat.c end.c engrave.c exper.c explode.c extralev.c \
|
||
files.c fountain.c hack.c hacklib.c \
|
||
insight.c invent.c isaac64.c light.c \
|
||
lock.c mail.c makemon.c mcastu.c mdlib.c mhitm.c \
|
||
mhitu.c minion.c mklev.c mkmap.c mkmaze.c mkobj.c mkroom.c mon.c \
|
||
mondata.c monmove.c monst.c mplayer.c mthrowu.c muse.c music.c \
|
||
nhlua.c nhlsel.c nhlobj.c o_init.c objects.c objnam.c \
|
||
options.c pager.c pickup.c pline.c polyself.c potion.c pray.c \
|
||
priest.c quest.c questpgr.c read.c rect.c region.c restore.c \
|
||
rip.c rnd.c role.c rumors.c save.c sfstruct.c \
|
||
shk.c shknam.c sit.c sounds.c \
|
||
sp_lev.c spell.c steal.c steed.c symbols.c sys.c teleport.c \
|
||
timeout.c topten.c track.c trap.c u_init.c \
|
||
uhitm.c vault.c version.c vision.c weapon.c were.c wield.c \
|
||
windows.c wizard.c worm.c worn.c write.c zap.c
|
||
|
||
|
||
#
|
||
# Utility Objects.
|
||
#
|
||
|
||
MAKESRC = $(U)makedefs.c
|
||
|
||
MAKEDEFSOBJS = $(O)makedefs.o $(O)monst$(HOST).o $(O)objects$(HOST).o \
|
||
$(O)date.o $(O)alloc.o $(O)panic.o
|
||
|
||
RECOVOBJS = $(O)recover.o
|
||
|
||
TILEFILES = $(WSHR)\monsters.txt $(WSHR)\objects.txt $(WSHR)\other.txt
|
||
|
||
#
|
||
# These are not invoked during a normal game build in 3.4
|
||
#
|
||
|
||
TEXT_IO = $(O)tiletext.o $(O)tiletxt.o $(O)drawing$(HOST).o \
|
||
$(O)monst$(HOST).o $(O)objects$(HOST).o
|
||
|
||
TEXT_IO32 = $(O)tilete32.o $(O)tiletx32.o $(O)drawing$(HOST).o \
|
||
$(O)monst$(HOST).o $(O)objects$(HOST).o
|
||
|
||
GIFREADERS_HOST = $(O)gifread.o $(O)alloc$(HOST).o $(O)panic$(HOST).o
|
||
GIFREADERS32_HOST = $(O)gifrd32.o $(O)alloc$(HOST).o $(O)panic$(HOST).o
|
||
|
||
PPMWRITERS = $(O)ppmwrite.o $(O)alloc$(HOST).o $(O)panic$(HOST).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)dig.o $(O)display.o $(O)do.o $(O)do_name.o
|
||
VOBJ05 = $(O)do_wear.o $(O)dog.o $(O)dogmove.o $(O)dokick.o
|
||
VOBJ06 = $(O)dothrow.o $(O)drawing.o $(O)dungeon.o $(O)eat.o
|
||
VOBJ07 = $(O)end.o $(O)engrave.o $(O)exper.o $(O)explode.o
|
||
VOBJ08 = $(O)extralev.o $(O)files.o $(O)fountain.o $(O)hack.o
|
||
VOBJ09 = $(O)hacklib.o $(O)insight.o $(O)invent.o $(O)isaac64.o
|
||
VOBJ10 = $(O)light.o $(O)lock.o $(O)mail.o $(O)makemon.o
|
||
VOBJ11 = $(O)mcastu.o $(O)mhitm.o $(O)mhitu.o $(O)minion.o
|
||
VOBJ12 = $(O)mklev.o $(O)mkmap.o $(O)mkmaze.o $(O)mkobj.o
|
||
VOBJ13 = $(O)mkroom.o $(O)mon.o $(O)mondata.o $(O)monmove.o
|
||
VOBJ14 = $(O)monst.o $(O)mplayer.o $(O)mthrowu.o $(O)muse.o
|
||
VOBJ15 = $(O)music.o $(O)o_init.o $(O)objects.o $(O)objnam.o
|
||
VOBJ16 = $(O)options.o $(O)pager.o $(O)pickup.o $(O)pline.o
|
||
VOBJ17 = $(O)polyself.o $(O)potion.o $(O)pray.o $(O)priest.o
|
||
VOBJ18 = $(O)quest.o $(O)questpgr.o $(RANDOM) $(O)read.o
|
||
VOBJ19 = $(O)rect.o $(O)region.o $(O)restore.o $(O)rip.o
|
||
VOBJ20 = $(O)rnd.o $(O)role.o $(O)rumors.o $(O)save.o
|
||
VOBJ21 = $(O)sfstruct.o $(O)shk.o $(O)shknam.o $(O)sit.o
|
||
VOBJ22 = $(O)sounds.o $(O)sp_lev.o $(O)spell.o $(O)steal.o
|
||
VOBJ23 = $(O)steed.o $(O)symbols.o $(O)sys.o $(O)teleport.o
|
||
VOBJ24 = $(O)timeout.o $(O)topten.o $(O)track.o $(O)trap.o
|
||
VOBJ25 = $(O)u_init.o $(O)uhitm.o $(O)vault.o $(O)vision.o
|
||
VOBJ26 = $(O)weapon.o $(O)were.o $(O)wield.o $(O)windows.o
|
||
VOBJ27 = $(O)wizard.o $(O)worm.o $(O)worn.o $(O)write.o
|
||
VOBJ28 = $(O)zap.o
|
||
|
||
LUAOBJ = $(O)nhlua.o $(O)nhlsel.o $(O)nhlobj.o
|
||
|
||
!IFDEF TEST_CROSSCOMPILE
|
||
DLBOBJ_HOST = $(O)dlb$(HOST).o
|
||
!ENDIF
|
||
DLBOBJ = $(O)dlb.o
|
||
|
||
REGEX = $(O)cppregex.o
|
||
|
||
TTYOBJ = $(O)topl.o $(O)getline.o $(O)wintty.o
|
||
|
||
MDLIB = $(O)mdlib.o
|
||
|
||
!IFDEF GIT_HASH
|
||
GITHASH = -DNETHACK_GIT_SHA=\"$(GIT_HASH)\"
|
||
!ENDIF
|
||
|
||
!IFDEF GIT_BRANCH
|
||
GITBRANCH = -DNETHACK_GIT_BRANCH=\"$(GIT_BRANCH)\"
|
||
!ENDIF
|
||
|
||
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
|
||
|
||
SOBJ = $(O)windmain.o $(O)windsys.o $(O)win10.o \
|
||
$(O)safeproc.o $(SOUND)
|
||
|
||
OBJS = $(MDLIB) \
|
||
$(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) \
|
||
$(REGEX)
|
||
|
||
WINDHDR = $(MSWSYS)\win10.h $(MSWSYS)\winos.h $(MSWSYS)\win32api.h
|
||
|
||
GUIOBJ = $(O)mhaskyn.o $(O)mhdlg.o \
|
||
$(O)mhfont.o $(O)mhinput.o $(O)mhmain.o $(O)mhmap.o \
|
||
$(O)mhmenu.o $(O)mhmsgwnd.o $(O)mhrip.o $(O)mhsplash.o \
|
||
$(O)mhstatus.o $(O)mhtext.o $(O)mswproc.o $(O)NetHackW.o
|
||
|
||
ALL_GUIHDR = $(MSWIN)\mhaskyn.h $(MSWIN)\mhdlg.h $(MSWIN)\mhfont.h \
|
||
$(MSWIN)\mhinput.h $(MSWIN)\mhmain.h $(MSWIN)\mhmap.h $(MSWIN)\mhmenu.h \
|
||
$(MSWIN)\mhmsg.h $(MSWIN)\mhmsgwnd.h $(MSWIN)\mhrip.h \
|
||
$(MSWIN)\mhsplash.h $(MSWIN)\mhstatus.h \
|
||
$(MSWIN)\mhtext.h $(MSWIN)\resource.h $(MSWIN)\winMS.h
|
||
|
||
COMCTRL = comctl32.lib
|
||
|
||
SOUND = $(OBJ)\ntsound.o
|
||
|
||
VVOBJ = $(O)version.o
|
||
|
||
ALLOBJ = $(SOBJ) $(DLBOBJ) $(WOBJ) $(OBJS) $(VVOBJ) $(LUAOBJ)
|
||
|
||
OPTIONS_FILE = $(DAT)\options
|
||
|
||
#==========================================
|
||
# Header file macros
|
||
#==========================================
|
||
|
||
CONFIG_H = $(INCL)\config.h $(INCL)\config1.h $(INCL)\patchlevel.h \
|
||
$(INCL)\tradstdc.h $(INCL)\global.h $(INCL)\coord.h \
|
||
$(INCL)\vmsconf.h $(INCL)\system.h $(INCL)\nhlua.h \
|
||
$(INCL)\unixconf.h $(INCL)\pcconf.h $(INCL)\micro.h \
|
||
$(INCL)\windconf.h $(INCL)\warnings.h \
|
||
$(INCL)\fnamesiz.h
|
||
|
||
HACK_H = $(INCL)\hack.h $(CONFIG_H) $(INCL)\lint.h $(INCL)\align.h \
|
||
$(INCL)\dungeon.h $(INCL)\sym.h $(INCL)\defsym.h \
|
||
$(INCL)\mkroom.h $(INCL)\artilist.h \
|
||
$(INCL)\objclass.h $(INCL)\objects.h \
|
||
$(INCL)\youprop.h $(INCL)\prop.h $(INCL)\permonst.h \
|
||
$(INCL)\monattk.h $(INCL)\monflag.h \
|
||
$(INCL)\monsters.h $(INCL)\mondata.h \
|
||
$(INCL)\wintype.h $(INCL)\context.h $(INCL)\rm.h \
|
||
$(INCL)\botl.h $(INCL)\rect.h $(INCL)\region.h \
|
||
$(INCL)\display.h $(INCL)\vision.h $(INCL)\color.h \
|
||
$(INCL)\decl.h $(INCL)\quest.h $(INCL)\spell.h \
|
||
$(INCL)\obj.h $(INCL)\engrave.h $(INCL)\you.h \
|
||
$(INCL)\attrib.h $(INCL)\monst.h $(INCL)\mextra.h \
|
||
$(INCL)\skills.h $(INCL)\timeout.h $(INCL)\trap.h \
|
||
$(INCL)\flag.h $(INCL)\winprocs.h $(INCL)\sys.h
|
||
|
||
TILE_H = ..\win\share\tile.h
|
||
|
||
#==========================================
|
||
# Miscellaneous
|
||
#==========================================
|
||
|
||
DATABASE = $(DAT)\data.base
|
||
|
||
#==========================================
|
||
#==========================================
|
||
# Setting up the compiler and linker
|
||
#==========================================
|
||
#==========================================
|
||
|
||
#
|
||
# ctags options
|
||
#
|
||
#CTAGSCMD=ctags-orig.exe
|
||
!IF "$(CI_BUILD_DIR)" != ""
|
||
CTAGSCMD=$(LIBDIR)\ctags\ctags.exe
|
||
!ELSE
|
||
CTAGSCMD=..\..\..\ctags\ctags.exe
|
||
!ENDIF
|
||
|
||
CTAGSOPT =--language-force=c --sort=no -D"Bitfield(x,n)=unsigned x : n" --excmd=pattern
|
||
#
|
||
# ctags wants unix-style pathnames
|
||
#
|
||
TINC = $(INCL:\=/)
|
||
TSRC = $(SRC:\=/)
|
||
|
||
cc=cl.exe
|
||
cpp=cpp.exe
|
||
link=link.exe
|
||
librarian=lib.exe
|
||
rc=Rc.exe
|
||
|
||
# Before we get started, this section is used to determine the version of
|
||
# Visual Studio we are using. We set VSVER to 0000 to flag any version that
|
||
# is too old or untested.
|
||
#
|
||
# Recently tested versions:
|
||
#NMAKE version 1416270470 from latest VS 2017 (Apr 12, 2022 version 15.9.46)
|
||
#NMAKE version 1429301421 from latest VS 2019 (Apr 12, 2022 version 16.11.12)
|
||
#NMAKE version 1431311062 from latest VS 2022 (Apr 12, 2022 version 17.1.4)
|
||
|
||
#!MESSAGE $(MAKEFLAGS)
|
||
#!MESSAGE $(MAKEDIR)
|
||
#!MESSAGE $(MAKE)
|
||
|
||
MAKEVERSION=$(_NMAKE_VER:.= )
|
||
MAKEVERSION=$(MAKEVERSION: =)
|
||
#!MESSAGE $(_NMAKE_VER)
|
||
#!MESSAGE $(MAKEVERSION)
|
||
|
||
VSSPECIAL=
|
||
VSNEWEST=2022
|
||
!IF ($(MAKEVERSION) < 1000000000)
|
||
VSVER=0000 #untested ancient version
|
||
!ELSEIF ($(MAKEVERSION) > 1000000000) && ($(MAKEVERSION) < 1100000000)
|
||
VSVER=2010
|
||
!ELSEIF ($(MAKEVERSION) > 1100000000) && ($(MAKEVERSION) < 1200000000)
|
||
VSVER=2012
|
||
!ELSEIF ($(MAKEVERSION) > 1200000000) && ($(MAKEVERSION) < 1400000000)
|
||
VSVER=2013
|
||
!ELSEIF ($(MAKEVERSION) > 1400000000) && ($(MAKEVERSION) < 1411000000)
|
||
VSVER=2015
|
||
!ELSEIF ($(MAKEVERSION) > 1411000000) && ($(MAKEVERSION) < 1416270471)
|
||
VSVER=2017
|
||
!ELSEIF ($(MAKEVERSION) > 1416270470) && ($(MAKEVERSION) < 1429301422)
|
||
VSVER=2019
|
||
!ELSEIF ($(MAKEVERSION) > 1429301421) && ($(MAKEVERSION) < 1431311063)
|
||
VSVER=2022
|
||
!ELSEIF ($(MAKEVERSION) > 1431311062)
|
||
VSVER=2999 #untested future version
|
||
!ENDIF
|
||
|
||
!IF ($(VSVER) >= 2012)
|
||
!IF ($(VSVER) <= $(VSNEWEST))
|
||
!MESSAGE Autodetected Visual Studio $(VSVER) $(VSSPECIAL)
|
||
!ENDIF
|
||
!ENDIF
|
||
!IF ($(VSVER) == 2999)
|
||
!MESSAGE The NMAKE version of this Visual Studio $(_NMAKE_VER) is newer than the
|
||
!MESSAGE most recent at the time this Makefile was crafted (Visual Studio $(VSNEWEST)).
|
||
!MESSAGE Because it is newer we'll proceed expecting that the VS$(VSNEWEST) processing
|
||
!MESSAGE will still work.
|
||
!ELSEIF ($(VSVER) == 0000)
|
||
!MESSAGE The version of Visual Studio appears to be quite old, older
|
||
!MESSAGE than VS2010 which is the oldest supported version by this
|
||
!MESSAGE Makefile, so we'll stop now.
|
||
!ERROR Untested old Visual Studio version with NMAKE $(_NMAKE_VER).
|
||
!ENDIF
|
||
|
||
!IF ($(VSVER) == 2010)
|
||
# For VS2010 use "setenv /x86" or "setenv /x64" before invoking make process
|
||
# DO NOT DELETE THE FOLLOWING LINE
|
||
!include <win32.mak>
|
||
! ENDIF
|
||
|
||
!IF ($(VSVER) == 2010)
|
||
CL_RECENT=
|
||
!ELSE
|
||
! IF ($(VSVER) > 2010)
|
||
CL_RECENT=-sdl
|
||
! ENDIF
|
||
!ENDIF
|
||
|
||
#==========================================
|
||
# More compiler setup post-macros
|
||
#==========================================
|
||
#----------------------------------------------------------------
|
||
|
||
!IF "$(ADD_CURSES)" == "Y"
|
||
CURSESDEF=-D"CURSES_GRAPHICS" -D"CURSES_BRIEF_INCLUDE" -DCHTYPE_32
|
||
!ELSE
|
||
!UNDEF CURSDEF=
|
||
!UNDEF CURSESLIB=
|
||
!ENDIF
|
||
|
||
ccommon= -c -nologo -D"_CONSOLE" -D"_CRT_NONSTDC_NO_DEPRECATE" -D"_CRT_SECURE_NO_DEPRECATE" \
|
||
-D"_LIB" -D"_SCL_SECURE_NO_DEPRECATE" -D"_VC80_UPGRADE=0x0600" -D"_MBCS" \
|
||
-DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -D"NDEBUG" -D"YY_NO_UNISTD_H" \
|
||
-DHAS_STDINT_H -DHAS_INLINE $(CURSESDEF) $(RUNTIMEOPTDEF) \
|
||
-EHsc -fp:precise -Gd -GF -GS -Gy \
|
||
$(CL_RECENT) -WX- -Zc:forScope -Zc:wchar_t -Zi
|
||
cdebug= -analyze- -D"_DEBUG" -MTd -RTC1 -Od
|
||
crelease= -analyze- -D"_MBCS" -errorReport:prompt -MT -O2 -Ot -Ox -Oy
|
||
|
||
lcommon= /NOLOGO /INCREMENTAL:NO
|
||
|
||
!IF "$(DEBUGINFO)" == "Y"
|
||
ldebug = /DEBUG
|
||
ctmpflags1=$(ccommon) $(cdebug)
|
||
lflags1=$(lcommon) $(ldebug)
|
||
!ELSE
|
||
ldebug= /DEBUG
|
||
ctmpflags1=$(ccommon) $(crelease)
|
||
lflags1=$(lcommon) $(ldebug)
|
||
!ENDIF
|
||
|
||
lflags= $(lflags1)
|
||
|
||
!IF "$(TARGET_CPU)" == "x86"
|
||
ctmpflags = $(ctmpflags1) -D_X86_=1 -DWIN32 -D_WIN32 -W3
|
||
scall = -Gz
|
||
|
||
!ELSEIF "$(TARGET_CPU)" == "x64"
|
||
ctmpflags = $(ctmpflags1) -D_AMD64_=1 -DWIN64 -D_WIN64 -DWIN32 -D_WIN32 -W4
|
||
scall =
|
||
!ENDIF
|
||
|
||
!IF ($(VSVER) >= 2012)
|
||
#cflags = $(cflags:-W4=-W3)
|
||
# 4100 unreferenced formal parameter
|
||
# 4131 old-style declarator
|
||
# 4244 conversion possible loss of data
|
||
# 4245 conversion from 'char' to 'uchar', signed/unsigned mismatch
|
||
# 4310 a constant value is cast to a smaller type
|
||
# 4706 assignment within conditional
|
||
# 4774 format string is not a string literal (default is off at W4)
|
||
# 4777 format string requires an argument of type <20>type<70>,
|
||
# but variadic argument <20>position<6F> has type <20>type<70>
|
||
# 4820 padding in struct
|
||
ctmpflags = $(ctmpflags:-W3=-W4) -wd4100 -wd4244 -wd4245 -wd4310 -wd4706 -w44777 -wd4820
|
||
cppflags = $(ctmpflags)
|
||
cflags = $(ctmpflags) -w44774
|
||
!ENDIF
|
||
|
||
#More verbose warning output options below
|
||
#cflags = $(cflags:-W4=-wd4131
|
||
#cflags = $(cflags:-W4=-Wall)
|
||
#cflags = $(cflags:-W3=-wd4131
|
||
#cflags = $(cflags:-W3=-Wall)
|
||
|
||
# declarations for use on Intel x86 systems
|
||
!IF "$(TARGET_CPU)" == "x86"
|
||
DLLENTRY = @12
|
||
EXEVER=5.01
|
||
MACHINE=/MACHINE:X86
|
||
!ENDIF
|
||
|
||
# declarations for use on AMD64 systems
|
||
!IF "$(TARGET_CPU)" == "x64"
|
||
DLLENTRY =
|
||
EXEVER=5.02
|
||
MACHINE=/MACHINE:X64
|
||
!ENDIF
|
||
|
||
# for Windows applications
|
||
conlflags = $(lflags) -subsystem:console,$(EXEVER)
|
||
guilflags = $(lflags) -subsystem:windows,$(EXEVER)
|
||
dlllflags = $(lflags) -entry:_DllMainCRTStartup$(DLLENTRY) -dll
|
||
|
||
# basic subsystem specific libraries, less the C Run-Time
|
||
baselibs = kernel32.lib $(optlibs) $(winsocklibs) advapi32.lib gdi32.lib \
|
||
ole32.lib Shell32.lib
|
||
winlibs = $(baselibs) user32.lib comdlg32.lib winspool.lib
|
||
|
||
# for Windows applications that use the C Run-Time libraries
|
||
conlibs = $(baselibs)
|
||
guilibs = $(winlibs)
|
||
#
|
||
|
||
INCLDIR= /I..\include /I..\sys\windows $(LUAINCL)
|
||
|
||
#==========================================
|
||
# Util builds
|
||
#==========================================
|
||
|
||
cflagsBuild = $(cflags) $(INCLDIR) $(WINPFLAG) $(DLBDEF) -DSAFEPROCS
|
||
cppflagsBuild = $(cppflags) $(INCLDIR) $(WINPFLAG) $(DLBDEF) -DSAFEPROCS
|
||
lflagsBuild = $(lflags) $(conlibs) $(MACHINE)
|
||
|
||
#==========================================
|
||
# - Game build
|
||
#==========================================
|
||
|
||
LIBS= user32.lib winmm.lib $(ZLIB) $(CURSESLIB)
|
||
|
||
! IF ("$(USE_DLB)"=="Y")
|
||
DLB = nhdat$(NHV)
|
||
! ELSE
|
||
DLB =
|
||
! ENDIF
|
||
|
||
#==========================================
|
||
#================ RULES ==================
|
||
#==========================================
|
||
|
||
.SUFFIXES: .exe .o .til .uu .c .y .l
|
||
|
||
#==========================================
|
||
# Rules for files in src
|
||
#==========================================
|
||
|
||
.c{$(OBJ)}.o:
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $<
|
||
|
||
{$(SRC)}.c{$(OBJ)}.o:
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $<
|
||
|
||
#==========================================
|
||
# Rules for files in sys\share
|
||
#==========================================
|
||
|
||
{$(SSYS)}.c{$(OBJ)}.o:
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $<
|
||
|
||
{$(SSYS)}.cpp{$(OBJ)}.o:
|
||
@$(cc) $(cppflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) /EHsc -Fo$@ $<
|
||
|
||
#==========================================
|
||
# Rules for files in sys\windows
|
||
#==========================================
|
||
|
||
{$(MSWSYS)}.c{$(OBJ)}.o:
|
||
@$(cc) $(cflagsBuild) -Fo$@ $<
|
||
|
||
{$(MSWSYS)}.h{$(INCL)}.h:
|
||
@copy $< $@
|
||
|
||
#==========================================
|
||
# Rules for files in util
|
||
#==========================================
|
||
|
||
{$(UTIL)}.c{$(OBJ)}.o:
|
||
@$(cc) $(cflagsBuild) -Fo$@ $<
|
||
|
||
#==========================================
|
||
# Rules for files in win\share
|
||
#==========================================
|
||
|
||
{$(WSHR)}.c{$(OBJ)}.o:
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $<
|
||
|
||
{$(WSHR)}.h{$(INCL)}.h:
|
||
@copy $< $@
|
||
|
||
#{$(WSHR)}.txt{$(DAT)}.txt:
|
||
# @copy $< $@
|
||
|
||
#==========================================
|
||
# Rules for files in win\tty
|
||
#==========================================
|
||
|
||
{$(TTY)}.c{$(OBJ)}.o:
|
||
@$(cc) $(cflagsBuild) -I$(MSWSYS) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $<
|
||
|
||
|
||
#==========================================
|
||
# Rules for files in win\win32
|
||
#==========================================
|
||
|
||
{$(MSWIN)}.c{$(OBJ)}.o:
|
||
@$(cc) $(cflagsBuild) -I$(MSWSYS) -I$(MSWIN) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $<
|
||
|
||
#==========================================
|
||
# Rules for files in win\curses
|
||
#==========================================
|
||
|
||
{$(WCURSES)}.c{$(OBJ)}.o:
|
||
@$(cc) -DPDC_NCMOUSE $(PDCINCL) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $<
|
||
|
||
#{$(WCURSES)}.txt{$(DAT)}.txt:
|
||
# @copy $< $@
|
||
|
||
#==========================================
|
||
# Rules for files in PDCurses
|
||
#==========================================
|
||
|
||
{$(PDCURSES_TOP)}.c{$(OBJ)}.o:
|
||
@$(cc) /wd4244 $(PDCINCL) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $<
|
||
|
||
{$(PDCSRC)}.c{$(OBJ)}.o:
|
||
@$(cc) /wd4244 $(PDCINCL) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $<
|
||
|
||
{$(PDCWINCON)}.c{$(OBJ)}.o:
|
||
@$(cc) /wd4244 $(PDCINCL) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $<
|
||
|
||
#==========================================
|
||
# Rules for LUA files
|
||
#==========================================
|
||
|
||
{$(LUASRC)}.c{$(OBJ)}.o:
|
||
@$(cc) $(cflagsBuild) -wd4701 -wd4702 -wd4774 $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $<
|
||
|
||
#==========================================
|
||
#=============== TARGETS ==================
|
||
#==========================================
|
||
|
||
#
|
||
# The game target.
|
||
#
|
||
#
|
||
# Everything
|
||
#
|
||
|
||
all : install
|
||
|
||
install: $(O)envchk.tag $(O)libdir.tag $(O)objdir.tag $(LUASRC)\lua.h $(PDCDEP) \
|
||
$(INCL)\nhlua.h $(O)utility.tag \
|
||
$(DAT)\data $(DAT)\rumors $(DAT)\oracles $(DAT)\engrave \
|
||
$(DAT)\epitaph $(DAT)\bogusmon $(GAMEDIR)\NetHack.exe \
|
||
$(GAMEDIR)\NetHackW.exe $(O)install.tag
|
||
@echo Done.
|
||
|
||
!IF "$(INTERNET_AVAILABLE)" == "Y"
|
||
!IF "$(GIT_AVAILABLE)" == "Y"
|
||
$(LUASRC)\lua.h:
|
||
git submodule init ../submodules/lua
|
||
git submodule update --remote ../submodules/lua
|
||
#
|
||
#aka PDCDEP
|
||
$(PDCURSES_TOP)\curses.h:
|
||
git submodule init ../submodules/pdcurses
|
||
git submodule update --remote ../submodules/pdcurses
|
||
|
||
!ELSE # GIT_AVAILABLE no
|
||
CURLLUASRC=http://www.lua.org/ftp/lua-5.4.4.tar.gz
|
||
CURLLUADST=lua-5.4.4.tar.gz
|
||
|
||
CURLPDCSRC=https://github.com/wmcbrine/PDCurses/archive/refs/tags/3.9.zip
|
||
CURLPDCDST=pdcurses.zip
|
||
|
||
$(LUASRC)\lua.h:
|
||
cd $(LIBDIR)
|
||
curl -L $(CURLLUASRC) -o $(CURLLUADST)
|
||
tar -xvf $(CURLLUADST)
|
||
cd ..\src
|
||
$(PDCURSES_TOP)\curses.h:
|
||
cd $(LIBDIR)
|
||
curl -L $(CURLPDCSRC) -o $(CURLPDCDST)
|
||
if not exist pdcurses\*.* mkdir pdcurses
|
||
tar -C pdcurses --strip-components=1 -xvf $(CURLPDCDST)
|
||
cd ..\src
|
||
!ENDIF # GIT_AVAILABLE
|
||
!ELSE # INTERNET_AVAILABLE
|
||
$(LUASRC)\lua.h:
|
||
$(PDCURSES_TOP)\curses.h:
|
||
!ENDIF # INTERNET_AVAILABLE
|
||
|
||
#==========================================
|
||
# Main game targets.
|
||
#==========================================
|
||
|
||
# The section for linking the NetHack image looks a little strange at
|
||
# first, especially if you are used to UNIX makes, or NDMAKE. It is
|
||
# Microsoft nmake specific, and it gets around the problem of the
|
||
# link command line being too long for the linker. An "in-line" linker
|
||
# response file is generated temporarily.
|
||
#
|
||
# It takes advantage of the following features of nmake:
|
||
#
|
||
# Inline files :
|
||
# Specifying the "<<" means to start an inline file.
|
||
# Another "<<" at the start of a line closes the
|
||
# inline file.
|
||
#
|
||
# Substitution within Macros:
|
||
# $(mymacro:string1=string2) replaces every
|
||
# occurrence of string1 with string2 in the
|
||
# macro mymacro. Special ascii key codes may be
|
||
# used in the substitution text by preceding it
|
||
# with ^ as we have done below. Every occurence
|
||
# of a <tab> in $(ALLOBJ) is replaced by
|
||
# <+><return><tab>.
|
||
|
||
GAMEOBJ=$(ALLOBJ:^ =^
|
||
)
|
||
GAMEOBJ=$(GAMEOBJ:^ =^
|
||
)
|
||
|
||
#
|
||
# DO NOT INDENT THE << below!
|
||
#
|
||
|
||
# NetHack
|
||
# full gui linkage libs:
|
||
# libs: $(LIBS) $(conlibs) $(guilibs) $(COMCTRL)
|
||
# objs: $(GAMEOBJ) $(TTYOBJ) $(O)consoletty.o $(O)tile.o $(GUIOBJ)
|
||
# otherwise:
|
||
# libs: $(LIBS) $(conlibs)
|
||
# objs: $(GAMEOBJ) $(TTYOBJ) $(O)tile.o $(O)guistub.o
|
||
|
||
|
||
$(GAMEDIR)\NetHack.exe : $(O)gamedir.tag $(O)tile.o $(O)consoletty.o $(O)guistub.o \
|
||
$(ALLOBJ) $(CURSESOBJ) $(TTYOBJ) $(O)date.o $(O)console.res \
|
||
$(LUALIB) $(PDCLIB)
|
||
@if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
|
||
@echo Linking $(@:\=/)
|
||
$(link) $(lflagsBuild) $(conlflags) /STACK:2048 /PDB:$(GAMEDIR)\$(@B).PDB /MAP:$(O)$(@B).MAP \
|
||
$(LIBS) $(PDCLIB) $(LUALIB) \
|
||
$(conlibs) $(BCRYPT) -out:$@ @<<$(@B).lnk
|
||
$(GAMEOBJ)
|
||
$(TTYOBJ)
|
||
$(CURSESOBJ)
|
||
$(O)consoletty.o
|
||
$(O)tile.o
|
||
$(O)guistub.o
|
||
$(O)date.o
|
||
$(O)console.res
|
||
<<
|
||
@if exist $(O)install.tag del $(O)install.tag
|
||
|
||
# NetHackW
|
||
# full tty linkage libs:
|
||
# libs: $(LIBS) $(PDCLIB) $(LUALIB) $(guilibs) $(COMCTRL)
|
||
# objs: $(GAMEOBJ) $(GUIOBJ) $(TTYOBJ) $(O)tile.o $(O)consoletty.o
|
||
# otherwise:
|
||
# libs: $(LIBS) $(PDCLIB) $(LUALIB) $(guilibs) $(COMCTRL)
|
||
# objs: $(GAMEOBJ) $(GUIOBJ) $(O)tile.o $(O)ttystub.o
|
||
|
||
$(GAMEDIR)\NetHackW.exe : $(O)gamedir.tag $(O)tile.o $(O)ttystub.o \
|
||
$(ALLOBJ) $(GUIOBJ) $(O)date.o $(O)NetHackW.res \
|
||
$(O)gamedir.tag \
|
||
$(LUALIB)
|
||
@if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
|
||
@echo Linking $(@:\=/)
|
||
$(link) $(lflagsBuild) $(guilflags) /STACK:2048 /PDB:$(GAMEDIR)\$(@B).PDB \
|
||
/MAP:$(O)$(@B).MAP $(LIBS) $(LUALIB) \
|
||
$(guilibs) $(COMCTRL) $(BCRYPT) -out:$@ @<<$(@B).lnk
|
||
$(GAMEOBJ)
|
||
$(GUIOBJ)
|
||
$(O)tile.o
|
||
$(O)ttystub.o
|
||
$(O)date.o
|
||
$(O)NetHackW.res
|
||
<<
|
||
|
||
$(O)gamedir.tag:
|
||
@if not exist $(GAMEDIR)\*.* echo creating directory $(GAMEDIR:\=/)
|
||
@if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
|
||
@echo directory created > $@
|
||
|
||
$(O)install.tag: $(DAT)\data $(DAT)\rumors $(DAT)\oracles \
|
||
$(DLB)
|
||
! IF ("$(USE_DLB)"=="Y")
|
||
copy nhdat$(NHV) $(GAMEDIR)
|
||
copy $(DAT)\license $(GAMEDIR)
|
||
copy $(DAT)\opthelp $(GAMEDIR)
|
||
! ELSE
|
||
copy $(DAT)\bogusmon $(GAMEDIR)
|
||
copy $(DAT)\cmdhelp $(GAMEDIR)
|
||
copy $(DAT)\data $(GAMEDIR)
|
||
copy $(DAT)\dungeon $(GAMEDIR)
|
||
copy $(DAT)\engrave $(GAMEDIR)
|
||
copy $(DAT)\epitaph $(GAMEDIR)
|
||
copy $(DAT)\help $(GAMEDIR)
|
||
copy $(DAT)\hh $(GAMDEDIR)
|
||
copy $(DAT)\history $(GAMEDIR)
|
||
copy $(DAT)\license $(GAMEDIR)
|
||
copy $(DAT)\optmenu $(GAMEDIR)
|
||
copy $(DAT)\oracles $(GAMEDIR)
|
||
copy $(DAT)\rumors $(GAMEDIR)
|
||
copy $(DAT)\symbols $(GAMEDIR)
|
||
copy $(DAT)\tribute $(GAMEDIR)
|
||
copy $(DAT)\wizhelp $(GAMEDIR)
|
||
copy $(DAT)\*.lua $(GAMEDIR)
|
||
if exist $(DAT)\guioptions copy $(DAT)\guioptions $(GAMEDIR)
|
||
if exist $(DAT)\keyhelp copy $(DAT)\keyhelp $(GAMEDIR)
|
||
if exist $(DAT)\opthelp copy $(DAT)\opthelp $(GAMEDIR)
|
||
if exist $(DAT)\options copy $(DAT)\options $(GAMEDIR)
|
||
if exist $(DAT)\porthelp copy $(DAT)\porthelp $(GAMEDIR)
|
||
if exist $(DAT)\ttyoptions copy $(DAT)\ttyoptions $(GAMEDIR)
|
||
! ENDIF
|
||
if exist $(MSWSYS)\sysconf.template copy $(MSWSYS)\sysconf.template $(GAMEDIR)
|
||
if exist $(DAT)\symbols copy $(DAT)\symbols $(GAMEDIR)\symbols
|
||
if exist $(DOC)\guidebook.txt copy $(DOC)\guidebook.txt $(GAMEDIR)\Guidebook.txt
|
||
if exist $(DOC)\nethack.txt copy $(DOC)\nethack.txt $(GAMEDIR)\NetHack.txt
|
||
@if exist $(GAMEDIR)\NetHack.PDB echo NOTE: You may want to remove $(GAMEDIR:\=/)/NetHack.PDB to conserve space
|
||
@if exist $(GAMEDIR)\NetHackW.PDB echo NOTE: You may want to remove $(GAMEDIR:\=/)/NetHackW.PDB to conserve space
|
||
-if exist $(MSWSYS)\.nethackrc.template copy $(MSWSYS)\.nethackrc.template $(GAMEDIR)
|
||
-if not exist $(GAMEDIR)\record. goto>$(GAMEDIR)\record.
|
||
echo install done > $@
|
||
|
||
# copy $(MSWSYS)\windsyshlp $(GAMEDIR)
|
||
|
||
recover: $(U)recover.exe
|
||
if exist $(U)recover.exe copy $(U)recover.exe $(GAMEDIR)
|
||
if exist $(DOC)\recover.txt copy $(DOC)\recover.txt $(GAMEDIR)\recover.txt
|
||
|
||
$(O)utility.tag: $(INCL)\nhlua.h $(U)tile2bmp.exe $(U)makedefs.exe
|
||
@echo utilities made >$@
|
||
@echo utilities made.
|
||
|
||
$(INCL)\nhlua.h:
|
||
@echo /* nhlua.h - generated by Makefile from Makefile.msc */ > $@
|
||
@echo #include "lua.h" >> $@
|
||
@echo LUA_API int (lua_error) (lua_State *L) NORETURN; >> $@
|
||
@echo #include "lualib.h" >> $@
|
||
@echo #include "lauxlib.h" >> $@
|
||
@echo /*nhlua.h*/ >> $@
|
||
|
||
tileutil: $(U)gif2txt.exe $(U)gif2tx32.exe $(U)txt2ppm.exe
|
||
@echo Optional tile development utilities are up to date.
|
||
|
||
$(O)NetHackW.res: $(SRC)\tiles.bmp $(MSWIN)\NetHackW.rc \
|
||
$(MSWIN)\mnsel.bmp \
|
||
$(MSWIN)\mnselcnt.bmp $(MSWIN)\mnunsel.bmp \
|
||
$(MSWIN)\petmark.bmp $(MSWIN)\pilemark.bmp $(MSWIN)\NetHack.ico \
|
||
$(MSWIN)\rip.bmp $(MSWIN)\splash.bmp
|
||
@echo Building resource file $@ from $**
|
||
@$(rc) -nologo -r -fo$@ -i$(MSWIN) -dNDEBUG $(MSWIN)\NetHackW.rc
|
||
|
||
$(O)console.res: $(MSWSYS)\console.rc $(MSWSYS)\NetHack.ico
|
||
@echo Building resource file $@ from $**
|
||
@$(rc) -nologo -r -fo$@ -i$(MSWSYS) -dNDEBUG $(MSWSYS)\console.rc
|
||
|
||
#
|
||
# Secondary Targets.
|
||
#
|
||
|
||
#==========================================
|
||
# Makedefs Stuff
|
||
#==========================================
|
||
$(U)nhsizes3.exe: $(O)nhsizes3.o
|
||
@echo Linking $(@:\=/)
|
||
@$(link) $(lflagsBuild) -out:$@ $(O)nhsizes.o $(O)panic$(HOST).o $(O)alloc$(HOST).o
|
||
|
||
$(O)nhsizes3.o: $(CONFIG_H) nhsizes3.c
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -Fo$@ nhsizes3.c
|
||
|
||
$(U)makedefs.exe: $(MAKEDEFSOBJS)
|
||
@echo Linking $(@:\=/)
|
||
@$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(MAKEDEFSOBJS)
|
||
|
||
$(O)makedefs.o: $(U)makedefs.c $(SRC)\mdlib.c $(CONFIG_H) $(INCL)\permonst.h \
|
||
$(INCL)\objclass.h $(INCL)\sym.h $(INCL)\defsym.h \
|
||
$(INCL)\artilist.h $(INCL)\dungeon.h $(INCL)\obj.h \
|
||
$(INCL)\monst.h $(INCL)\you.h $(INCL)\flag.h \
|
||
$(INCL)\dlb.h
|
||
@if not exist $(OBJ)\*.* echo creating directory $(OBJ:\=/)
|
||
@if not exist $(OBJ)\*.* mkdir $(OBJ)
|
||
@$(cc) -DENUM_PM $(cflagsBuild) $(CROSSCOMPILE) -Fo$@ $(U)makedefs.c
|
||
# @$(cc) -DENUM_PM $(cflagsBuild) $(CROSSCOMPILE) /EP -Fo$@ $(U)makedefs.c >makedefs.c.preprocessed
|
||
|
||
#
|
||
# This is awful, but it allows the GITHASH and GITBRANCH macros to be
|
||
# defined and utilized, using only build-in Windows and nmake commands,
|
||
# as well as the necessary git commands.
|
||
#
|
||
# We build a temporary Makefile on-the-fly for compiling date.c and
|
||
# invoke nmake again.
|
||
#
|
||
$(O)date.o: $(HACKINCL) $(HACKSRC) $(HACKOBJ) $(ALLOBJ) $(CURSESOBJ)
|
||
!IF "$(GIT_AVAILABLE)" == "1"
|
||
@git rev-parse --verify HEAD 2>&1 >$(O)date1.tmp
|
||
@git rev-parse --abbrev-ref HEAD 2>&1 >$(O)date2.tmp
|
||
@echo.>date.nmk
|
||
@echo OBJ = $(OBJ)>>date.nmk
|
||
@echo O = ^$(OBJ)^^^\>>date.nmk
|
||
@echo cc = $(cc)>>date.nmk
|
||
@echo cflagsBuild = $(cflagsBuild) ^\>>date.nmk
|
||
@for /F "usebackq" %%A IN ("$(O)date1.tmp") DO @echo. -DNETHACK_GIT_SHA=\"%%A\" ^\>>date.nmk
|
||
@for /F "usebackq" %%A IN ("$(O)date2.tmp") DO @echo. -DNETHACK_GIT_BRANCH=\"%%A\">>date.nmk
|
||
@echo.>>date.nmk
|
||
@echo default: ^$(O)date.o>>date.nmk
|
||
@echo.>>date.nmk
|
||
@echo ^$(O)date.o: >>date.nmk
|
||
@echo. ^$(cc) ^$(cflagsBuild) -Fo^$@ date.c>>date.nmk
|
||
@echo.>>date.nmk
|
||
@$(MAKE) /NOLOGO /A -f date.nmk
|
||
!ENDIF
|
||
|
||
#
|
||
# date.h is not used with NetHack 3.7
|
||
# onames.h is not used with NetHack 3.7
|
||
# pm.h is not used with NetHack 3.7
|
||
|
||
$(INCL)\date.h $(OPTIONS_FILE) : $(U)makedefs.exe
|
||
$(U)makedefs -v
|
||
|
||
$(INCL)\onames.h : $(U)makedefs.exe
|
||
$(U)makedefs -o
|
||
|
||
$(INCL)\pm.h : $(U)makedefs.exe
|
||
$(U)makedefs -p
|
||
|
||
#==========================================
|
||
# uudecode utility and uuencoded targets
|
||
#==========================================
|
||
|
||
$(U)uudecode.exe: $(O)uudecode.o
|
||
@echo Linking $(@:\=/)
|
||
@$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(O)uudecode.o
|
||
|
||
$(O)uudecode.o: $(SSYS)\uudecode.c
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) /D_CRT_SECURE_NO_DEPRECATE -Fo$@ $(SSYS)\uudecode.c
|
||
|
||
$(MSWSYS)\NetHack.ico : $(U)uudecode.exe $(MSWSYS)\nhico.uu
|
||
@chdir $(MSWSYS)
|
||
@..\..\util\uudecode.exe nhico.uu
|
||
@chdir ..\..\src
|
||
|
||
$(MSWIN)\NetHack.ico : $(U)uudecode.exe $(MSWSYS)\nhico.uu
|
||
@chdir $(MSWIN)
|
||
@..\..\util\uudecode.exe ../../sys/windows/nhico.uu
|
||
@chdir ..\..\src
|
||
|
||
$(MSWIN)\mnsel.bmp: $(U)uudecode.exe $(MSWIN)\mnsel.uu
|
||
@chdir $(MSWIN)
|
||
@..\..\util\uudecode.exe mnsel.uu
|
||
@chdir ..\..\src
|
||
|
||
$(MSWIN)\mnselcnt.bmp: $(U)uudecode.exe $(MSWIN)\mnselcnt.uu
|
||
@chdir $(MSWIN)
|
||
@..\..\util\uudecode.exe mnselcnt.uu
|
||
@chdir ..\..\src
|
||
|
||
$(MSWIN)\mnunsel.bmp: $(U)uudecode.exe $(MSWIN)\mnunsel.uu
|
||
@chdir $(MSWIN)
|
||
@..\..\util\uudecode.exe mnunsel.uu
|
||
@chdir ..\..\src
|
||
|
||
$(MSWIN)\petmark.bmp: $(U)uudecode.exe $(MSWIN)\petmark.uu
|
||
@chdir $(MSWIN)
|
||
@..\..\util\uudecode.exe petmark.uu
|
||
@chdir ..\..\src
|
||
|
||
$(MSWIN)\pilemark.bmp: $(U)uudecode.exe $(MSWIN)\pilemark.uu
|
||
@chdir $(MSWIN)
|
||
@..\..\util\uudecode.exe pilemark.uu
|
||
@chdir ..\..\src
|
||
|
||
$(MSWIN)\rip.bmp: $(U)uudecode.exe $(MSWIN)\rip.uu
|
||
@chdir $(MSWIN)
|
||
@..\..\util\uudecode.exe rip.uu
|
||
@chdir ..\..\src
|
||
|
||
$(MSWIN)\splash.bmp: $(U)uudecode.exe $(MSWIN)\splash.uu
|
||
@chdir $(MSWIN)
|
||
@..\..\util\uudecode.exe splash.uu
|
||
@chdir ..\..\src
|
||
|
||
#=================================================
|
||
# Create directory for holding object files
|
||
#=================================================
|
||
|
||
$(O)objdir.tag:
|
||
@if not exist $(OBJ)\*.* echo creating directory $(OBJ:\=/)
|
||
@if not exist $(OBJ)\*.* mkdir $(OBJ)
|
||
@echo directory created >$@
|
||
|
||
#==================================================================
|
||
# Create directory for holding built libraries (among other things)
|
||
#==================================================================
|
||
|
||
$(O)libdir.tag:
|
||
@if not exist $(LIBDIR)\*.* echo creating directory $(LIB:\=/)
|
||
@if not exist $(LIBDIR)\*.* mkdir $(LIBDIR)
|
||
@echo directory created >$@
|
||
|
||
#==========================================
|
||
# Notify of any CL environment variables
|
||
# in effect since they change the compiler
|
||
# options.
|
||
#==========================================
|
||
|
||
$(O)envchk.tag: $(O)objdir.tag
|
||
! IF "$(TARGET_CPU)"=="x64"
|
||
@echo Windows x64 64-bit target build
|
||
! ELSE
|
||
@echo Windows x86 32-bit target build
|
||
! ENDIF
|
||
!IFDEF TTYOBJ
|
||
@echo tty window support included
|
||
! IF "$(ADD_CURSES)"=="Y"
|
||
@echo curses window support also included
|
||
! ENDIF
|
||
!ENDIF
|
||
! IF "$(CL)"!=""
|
||
# @echo Warning, the CL Environment variable is defined:
|
||
# @echo CL=$(CL)
|
||
! ENDIF
|
||
@echo "cflags=$(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET)"
|
||
@echo envchk >$@
|
||
|
||
#==========================================
|
||
#=========== SECONDARY TARGETS ============
|
||
#==========================================
|
||
fetch-lua: fetch-actual-Lua
|
||
|
||
fetch-Lua: fetch-actual-Lua
|
||
|
||
fetch-actual-Lua:
|
||
@if not exist $(LIBDIR)\*.* mkdir $(LIBDIR)
|
||
cd $(LIBDIR)
|
||
curl -R -O http://www.lua.org/ftp/lua-$(LUAVER).tar.gz
|
||
tar zxf lua-$(LUAVER).tar.gz
|
||
if exist lua-$(LUAVER).tar.gz del lua-$(LUAVER).tar.gz
|
||
if exist lua-$(LUAVER).tar del lua-$(LUAVER).tar
|
||
cd ..\src
|
||
@echo Lua has been fetched into $(LIBDIR)\lua-$(LUAVER)
|
||
|
||
fetch-pdcurses:
|
||
@if not exist $(LIBDIR)\*.* mkdir $(LIBDIR)
|
||
cd $(LIBDIR)
|
||
curl -L -R https://codeload.github.com/wmcbrine/PDCurses/zip/master -o pdcurses.zip
|
||
powershell -command "Expand-Archive -Path .\pdcurses.zip -DestinationPath ./pdcurses-temp"
|
||
if exist .\pdcurses\* rd .\pdcurses /s /Q
|
||
move .\pdcurses-temp\PDCurses-master .
|
||
ren PDCurses-master pdcurses
|
||
if exist .\pdcurses-temp\* rd .\pdcurses-temp /s /Q
|
||
if exist .\pdcurses.zip del .\pdcurses.zip
|
||
cd ..\src
|
||
@echo pdcurses has been fetched into $(LIBDIR)\pdcurses
|
||
|
||
#==========================================
|
||
# DLB utility and nhdatNNN file creation
|
||
#==========================================
|
||
|
||
$(U)dlb.exe: $(DLBOBJ_HOST) $(O)dlb$(HOST).o
|
||
@echo Linking $(@:\=/)
|
||
@$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
|
||
$(O)dlb_main$(HOST).o
|
||
$(O)dlb$(HOST).o
|
||
$(O)alloc$(HOST).o
|
||
$(O)panic$(HOST).o
|
||
<<
|
||
|
||
!IFDEF TEST_CROSSCOMPILE
|
||
$(O)dlb$(HOST).o: $(O)dlb_main$(HOST).o $(O)alloc$(HOST).o $(O)panic$(HOST).o $(INCL)\dlb.h
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) /Fo$@ $(SRC)\dlb.c
|
||
!ENDIF
|
||
|
||
$(O)dlb.o: $(O)dlb_main.o $(O)alloc.o $(O)panic.o $(INCL)\dlb.h
|
||
@$(cc) $(cflagsBuild) /Fo$@ $(SRC)\dlb.c
|
||
|
||
!IFDEF TEST_CROSSCOMPILE
|
||
$(O)dlb_main$(HOST).o: $(UTIL)\dlb_main.c $(INCL)\config.h $(INCL)\dlb.h
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) /Fo$@ $(UTIL)\dlb_main.c
|
||
!ENDIF
|
||
|
||
$(O)dlb_main.o: $(UTIL)\dlb_main.c $(INCL)\config.h $(INCL)\dlb.h
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) /Fo$@ $(UTIL)\dlb_main.c
|
||
|
||
$(DAT)\porthelp: $(MSWSYS)\porthelp
|
||
@copy $(MSWSYS)\porthelp $@ >nul
|
||
|
||
nhdat$(NHV): $(U)dlb.exe $(DAT)\data $(DAT)\oracles $(OPTIONS_FILE) $(DAT)\quest.lua \
|
||
$(DAT)\rumors $(DAT)\help $(DAT)\hh $(DAT)\cmdhelp $(DAT)\keyhelp \
|
||
$(DAT)\history $(DAT)\opthelp $(DAT)\optmenu $(DAT)\wizhelp $(DAT)\porthelp \
|
||
$(DAT)\license $(DAT)\engrave $(DAT)\epitaph $(DAT)\bogusmon $(DAT)\tribute
|
||
@echo Building $@
|
||
@cd $(DAT)
|
||
@echo data >dlb.lst
|
||
@echo oracles >>dlb.lst
|
||
@if exist options @echo options >>dlb.lst
|
||
@if exist ttyoptions @echo ttyoptions >>dlb.lst
|
||
@if exist guioptions @echo guioptions >>dlb.lst
|
||
@if exist porthelp @echo porthelp >>dlb.lst
|
||
@echo rumors >>dlb.lst
|
||
@echo help >>dlb.lst
|
||
@echo hh >>dlb.lst
|
||
@echo cmdhelp >>dlb.lst
|
||
@echo keyhelp >>dlb.lst
|
||
@echo history >>dlb.lst
|
||
@echo opthelp >>dlb.lst
|
||
@echo optmenu >>dlb.lst
|
||
@echo wizhelp >>dlb.lst
|
||
@echo license >>dlb.lst
|
||
@echo engrave >>dlb.lst
|
||
@echo epitaph >>dlb.lst
|
||
@echo bogusmon >>dlb.lst
|
||
@echo tribute >>dlb.lst
|
||
@for %%N in (*.lua) do @echo %%N >>dlb.lst
|
||
@$(U)dlb cIf dlb.lst $(SRC)\nhdat
|
||
@cd $(SRC)
|
||
|
||
#==========================================
|
||
# Recover Utility
|
||
#==========================================
|
||
|
||
$(U)recover.exe: $(RECOVOBJS)
|
||
@echo Linking $(@:\=/)
|
||
@$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(RECOVOBJS)
|
||
|
||
$(O)recover.o: $(CONFIG_H) $(U)recover.c $(MSWSYS)\win32api.h
|
||
@$(cc) $(cflagsBuild) -Fo$@ $(U)recover.c
|
||
|
||
#==========================================
|
||
# Tile Mapping
|
||
#==========================================
|
||
|
||
$(SRC)\tile.c: $(U)tilemap.exe
|
||
@$(U)tilemap
|
||
@echo A new $(@:\=/) has been created
|
||
|
||
$(U)tilemap.exe: $(O)tilemap.o $(O)monst.o $(O)objects.o $(O)drawing.o
|
||
@echo Linking $(@:\=/)
|
||
@$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ \
|
||
$(O)tilemap.o $(O)monst.o $(O)objects.o $(O)drawing.o
|
||
|
||
$(O)tilemap.o: $(WSHR)\tilemap.c $(HACK_H)
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -Fo$@ $(WSHR)\tilemap.c
|
||
|
||
$(O)tiletx32.o: $(WSHR)\tilemap.c $(HACK_H)
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) /DTILETEXT /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\tilemap.c
|
||
|
||
$(O)tiletxt.o: $(WSHR)\tilemap.c $(HACK_H)
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) /DTILETEXT -Fo$@ $(WSHR)\tilemap.c
|
||
|
||
$(O)gifread.o: $(WSHR)\gifread.c $(CONFIG_H) $(TILE_H)
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) -Fo$@ $(WSHR)\gifread.c
|
||
|
||
$(O)gifrd32.o: $(WSHR)\gifread.c $(CONFIG_H) $(TILE_H)
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\gifread.c
|
||
|
||
$(O)ppmwrite.o: $(WSHR)\ppmwrite.c $(CONFIG_H) $(TILE_H)
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) -Fo$@ $(WSHR)\ppmwrite.c
|
||
|
||
$(O)tiletext.o: $(WSHR)\tiletext.c $(CONFIG_H) $(TILE_H)
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) -Fo$@ $(WSHR)\tiletext.c
|
||
|
||
$(O)tilete32.o: $(WSHR)\tiletext.c $(CONFIG_H) $(TILE_H)
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\tiletext.c
|
||
|
||
#==========================================
|
||
# Optional Tile Utilities
|
||
#==========================================
|
||
|
||
$(U)gif2txt.exe: $(GIFREADERS_HOST) $(TEXT_IO)
|
||
@echo Linking $(@:\=/)
|
||
@$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
|
||
$(GIFREADERS_HOST:^ =^
|
||
)
|
||
$(TEXT_IO:^ =^
|
||
)
|
||
<<
|
||
|
||
$(U)gif2tx32.exe: $(GIFREADERS32_HOST) $(TEXT_IO32)
|
||
@echo Linking $(@:\=/)
|
||
@$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
|
||
$(GIFREADERS32_HOST:^ =^
|
||
)
|
||
$(TEXT_IO32:^ =^
|
||
)
|
||
<<
|
||
|
||
$(U)txt2ppm.exe: $(PPMWRITERS) $(TEXT_IO)
|
||
@echo Linking $(@:\=/)
|
||
@$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
|
||
$(PPMWRITERS:^ =^
|
||
)
|
||
$(TEXT_IO:^ =^
|
||
)
|
||
<<
|
||
|
||
$(SRC)\tiles.bmp: $(U)tile2bmp.exe $(TILEFILES)
|
||
@echo Creating 16x16 binary tile files (this may take some time)
|
||
@$(U)tile2bmp $@
|
||
|
||
$(U)tile2bmp.exe: $(O)tile2bmp.o $(TEXT_IO)
|
||
@echo Linking $(@:\=/)
|
||
@$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
|
||
$(O)tile2bmp.o
|
||
$(TEXT_IO:^ =^
|
||
)
|
||
<<
|
||
|
||
$(U)til2bm32.exe: $(O)til2bm32.o $(TEXT_IO32)
|
||
@echo Linking $(@:\=/)
|
||
@$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
|
||
$(O)til2bm32.o
|
||
$(TEXT_IO32:^ =^
|
||
)
|
||
<<
|
||
|
||
$(O)tile2bmp.o: $(WSHR)\tile2bmp.c $(HACK_H) $(TILE_H) $(MSWSYS)\win32api.h
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) /DPACKED_FILE /Fo$@ $(WSHR)\tile2bmp.c
|
||
|
||
#$(O)til2bm32.o: $(WSHR)\tile2bmp.c $(HACK_H) $(TILE_H) $(MSWSYS)\win32api.h
|
||
# @$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) /DPACKED_FILE /DTILE_X=32 /DTILE_Y=32 /Fo$@ $(WSHR)\tile2bmp.c
|
||
|
||
$(U)tile2x11.exe: $(O)tile2x11.o $(O)tiletext.o $(O)tiletxt.o $(O)alloc.o \
|
||
$(O)panic.o $(O)monst.o $(O)objects.o
|
||
@echo Linking $(@:\=/)
|
||
@$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk
|
||
$(O)tile2x11.o
|
||
$(O)tiletext.o
|
||
$(O)tiletxt.o
|
||
$(O)drawing.o
|
||
$(O)monst.o
|
||
$(O)objects.o
|
||
$(O)alloc.o
|
||
$(O)panic.o
|
||
<<
|
||
|
||
$(O)tile2x11.o: $(X11)\tile2x11.c $(HACK_H) $(TILE_H) $(INCL)\tile2x11.h
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) /DPACKED_FILE /Fo$@ $(X11)\tile2x11.c
|
||
|
||
$(SRC)\x11tiles: $(U)tile2x11.exe $(WSHR)\monsters.txt $(WSHR)\objects.txt \
|
||
$(WSHR)\other.txt \
|
||
$(WSHR)\monsters.txt
|
||
$(U)tile2x11 $(WSHR)\monsters.txt $(WSHR)\objects.txt \
|
||
$(WSHR)\other.txt \
|
||
-grayscale $(WSHR)\monsters.txt
|
||
|
||
#===============================================================================
|
||
# PDCurses
|
||
#===============================================================================
|
||
|
||
$(LIBDIR)\pdcurses-$(TARGET_CPU).lib : $(PDCLIBOBJS) $(PDCOBJS)
|
||
@echo Building library $@ from $**
|
||
@$(librarian) -nologo /out:$@ $(PDCLIBOBJS) $(PDCOBJS)
|
||
|
||
$(O)pdcscrn.o : $(PDCURSES_HEADERS) $(PDCWINCON)\pdcscrn.c
|
||
@$(cc) $(PDCINCL) $(cflagsBuild) -wd4996 $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) \
|
||
-Fo$@ $(PDCWINCON)\pdcscrn.c
|
||
|
||
#===============================================================================
|
||
# LUA
|
||
#===============================================================================
|
||
|
||
lua.exe: $(O)lua.o $(LUALIB)
|
||
@echo Linking $(@:\=/)
|
||
@$(link) /OUT:$@ $(O)lua.o $(LUALIB)
|
||
|
||
#luac.exe: $(O)luac.o $(LUALIB)
|
||
# @echo Linking $(@:\=/)
|
||
# @$(link) /OUT:$@ $(O)luac.o $(LUALIB)
|
||
|
||
$(LIBDIR)\lua$(LUAVER)-$(TARGET_CPU).dll: $(LUAOBJFILES)
|
||
@echo Linking $(@:\=/)
|
||
@$(link) /DLL /IMPLIB:$(LIBDIR)\lua$(LUAVER).lib /OUT:$@ $(LUAOBJFILES)
|
||
|
||
$(LIBDIR)\lua$(LUAVER)-$(TARGET_CPU)-static.lib: $(LUAOBJFILES)
|
||
@echo Building library $@ from $**
|
||
@$(librarian) /OUT:$@ $(LUAOBJFILES)
|
||
|
||
$(O)lua.o: $(LUASRC)\lua.c
|
||
#$(O)luac.o: $(LUASRC)\luac.c
|
||
$(O)lapi.o: $(LUASRC)\lapi.c
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -wd4244 -wd4701 -wd4702 -Fo$@ $(LUASRC)\lapi.c
|
||
|
||
#===================================================================
|
||
# sys/windows dependencies
|
||
#===================================================================
|
||
|
||
$(O)consoletty.o: $(MSWSYS)\consoletty.c $(WINDHDR) $(HACK_H) $(TILE_H)
|
||
$(O)win10.o: $(MSWSYS)\win10.c $(WINDHDR) $(HACK_H)
|
||
$(O)windsys.o: $(MSWSYS)\windsys.c $(WINDHDR) $(HACK_H)
|
||
$(O)ntsound.o: $(MSWSYS)\ntsound.c $(WINDHDR) $(HACK_H)
|
||
$(O)windmain.o: $(MSWSYS)\windmain.c $(WINDHDR) $(HACK_H)
|
||
$(O)safeproc.o: $(WSHR)\safeproc.c $(WINDHDR) $(HACK_H)
|
||
|
||
#if you aren't linking in the full gui then
|
||
#include the following stub for proper linkage.
|
||
|
||
$(O)guistub.o: $(WINDHDR) $(HACK_H) $(MSWSYS)\stubs.c
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -DGUISTUB -Fo$@ $(MSWSYS)\stubs.c
|
||
|
||
#===================================================================
|
||
# win/win32 dependencies
|
||
#===================================================================
|
||
|
||
$(O)mhaskyn.o: $(MSWIN)\mhaskyn.c $(MSWIN)\$(@B).h $(WINDHDR) $(HACK_H)
|
||
$(O)mhdlg.o: $(MSWIN)\mhdlg.c $(MSWIN)\$(@B).h $(MSWIN)\resource.h $(WINDHDR) $(HACK_H)
|
||
$(O)mhfont.o: $(MSWIN)\mhfont.c $(MSWIN)\$(@B).h $(WINDHDR) $(HACK_H)
|
||
$(O)mhinput.o: $(MSWIN)\mhinput.c $(MSWIN)\$(@B).h $(MSWIN)\winMS.h $(WINDHDR) $(HACK_H)
|
||
$(O)mhmain.o: $(MSWIN)\mhmain.c $(ALL_GUIHDR) $(WINDHDR) $(HACK_H)
|
||
$(O)mhmap.o: $(MSWIN)\mhmap.c $(MSWIN)\$(@B).h $(MSWIN)\mhfont.h $(MSWIN)\mhinput.h \
|
||
$(MSWIN)\mhmsg.h $(MSWIN)\resource.h $(WINDHDR) $(HACK_H)
|
||
$(O)mhmenu.o: $(MSWIN)\mhmenu.c $(MSWIN)\$(@B).h $(MSWIN)\mhmain.h $(MSWIN)\mhmsg.h \
|
||
$(MSWIN)\mhfont.h $(MSWIN)\mhdlg.h $(MSWIN)\resource.h $(WINDHDR) $(HACK_H)
|
||
$(O)mhmsgwnd.o: $(MSWIN)\mhmsgwnd.c $(MSWIN)\$(@B).h $(MSWIN)\mhmsg.h $(MSWIN)\mhfont.h \
|
||
$(MSWIN)\winMS.h $(WINDHDR) $(HACK_H)
|
||
$(O)mhrip.o: $(MSWIN)\mhrip.c $(MSWIN)\$(@B).h $(MSWIN)\mhmsg.h $(MSWIN)\mhfont.h \
|
||
$(MSWIN)\resource.h $(WINDHDR) $(HACK_H)
|
||
$(O)mhsplash.o: $(MSWIN)\mhsplash.c $(MSWIN)\$(@B).h $(MSWIN)\mhmsg.h $(MSWIN)\mhfont.h \
|
||
$(MSWIN)\resource.h $(WINDHDR) $(HACK_H)
|
||
$(O)mhstatus.o: $(MSWIN)\mhstatus.c $(MSWIN)\$(@B).h $(MSWIN)\mhmsg.h $(MSWIN)\mhfont.h \
|
||
$(WINDHDR) $(HACK_H)
|
||
$(O)mhtext.o: $(MSWIN)\mhtext.c $(MSWIN)\$(@B).h $(MSWIN)\mhmsg.h $(MSWIN)\mhfont.h \
|
||
$(WINDHDR) $(HACK_H)
|
||
$(O)mswproc.o: $(MSWIN)\mswproc.c $(ALL_GUIHDR) $(MSWIN)\resource.h $(WINDHDR) $(HACK_H)
|
||
$(O)NetHackW.o: $(MSWIN)\NetHackW.c $(ALL_GUIHDR) $(MSWIN)\resource.h $(WINDHDR) $(HACK_H)
|
||
|
||
#if you aren't linking in the full tty then
|
||
#include the following stub for proper linkage.
|
||
|
||
$(O)ttystub.o: $(WINDHDR) $(HACK_H) $(MSWSYS)\stubs.c
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -DTTYSTUB -Fo$@ $(MSWSYS)\stubs.c
|
||
|
||
#===================================================================
|
||
# sys/share dependencies
|
||
#===================================================================
|
||
|
||
$(O)cppregex.o: $(SSYS)\cppregex.cpp $(HACK_H)
|
||
@$(CC) $(cppflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $(SSYS)\cppregex.cpp
|
||
|
||
#===================================================================
|
||
# curses window port dependencies
|
||
#===================================================================
|
||
|
||
#$(O)cursdial.o: $(WCURSES)\cursdial.c $(WCURSES)\cursdial.h $(INCL)\wincurs.h
|
||
#$(O)cursinit.o: $(WCURSES)\cursinit.c $(WCURSES)\cursinit.h $(INCL)\wincurs.h
|
||
#$(O)cursinvt.o: $(WCURSES)\cursinvt.c $(WCURSES)\cursinvt.h $(INCL)\wincurs.h
|
||
#$(O)cursmain.o: $(WCURSES)\cursmain.c $(INCL)\wincurs.h
|
||
#$(O)cursmesg.o: $(WCURSES)\cursmesg.c $(WCURSES)\cursmesg.h $(INCL)\wincurs.h
|
||
#$(O)cursmisc.o: $(WCURSES)\cursmisc.c $(WCURSES)\cursmisc.h $(INCL)\wincurs.h
|
||
#$(O)cursstat.o: $(WCURSES)\cursstat.c $(WCURSES)\cursstat.h $(INCL)\wincurs.h
|
||
#$(O)curswins.o: $(WCURSES)\curswins.c $(WCURSES)\curswins.h $(INCL)\wincurs.h
|
||
|
||
#===================================================================
|
||
# save dependencies
|
||
#===================================================================
|
||
|
||
$(O)sfstruct.o: $(HACK_H) $(SRC)\sfstruct.c
|
||
# @$(cc) $(cflagsBuild) -Fo$@ $(SRC)\sfstruct.c
|
||
|
||
|
||
#===============================================================================
|
||
# CROSSCOMPILE
|
||
#===============================================================================
|
||
|
||
# Under a cross-compile, some of the values stored statically into
|
||
# text files cannot be trusted as being representative of the
|
||
# settings and features used on the build of the target binaries.
|
||
#
|
||
# We move some of that stuff into the game run-time by separating
|
||
# out the functions into src\mdlib.c to get some of the required
|
||
# functionality at game runtime instead of from a previously written
|
||
# data file.
|
||
#
|
||
|
||
!IFDEF TEST_CROSSCOMPILE
|
||
$(O)mdlib$(HOST).o: $(SRC)\mdlib.c
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -Fo$@ $(SRC)\mdlib.c
|
||
!ENDIF
|
||
|
||
$(O)mdlib.o: $(SRC)\mdlib.c
|
||
@$(cc) $(cflagsBuild) -Fo$@ $(SRC)\mdlib.c
|
||
# @$(cc) $(cflagsBuild) /EP -Fo$@ $(SRC)\mdlib.c >mdlib.c.preprocessed
|
||
|
||
#============================================
|
||
# util dual-role CROSSCOMPILE dependencies
|
||
#============================================
|
||
#
|
||
# These have dual-roles and need to be build for host and target platforms.
|
||
#
|
||
$(O)panic_host.o: $(U)panic.c $(CONFIG_H)
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -Fo$@ $(U)panic.c
|
||
|
||
$(O)panic.o: $(U)panic.c $(CONFIG_H)
|
||
@$(cc) $(cflagsBuild) -Fo$@ $(U)panic.c
|
||
|
||
$(O)drawing_host.o: drawing.c $(CONFIG_H)
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -Fo$@ drawing.c
|
||
|
||
$(O)drawing.o: drawing.c $(CONFIG_H) $(INCL)\color.h \
|
||
$(INCL)\sym.h $(INCL)\defsym.h $(INCL)\rm.h \
|
||
$(INCL)\objclass.h
|
||
@$(cc) $(cflagsBuild) -Fo$@ drawing.c
|
||
|
||
$(O)monst_host.o: monst.c $(CONFIG_H) $(INCL)\permonst.h $(INCL)\align.h \
|
||
$(INCL)\monattk.h $(INCL)\monflag.h $(INCL)\sym.h \
|
||
$(INCL)\defsym.h $(INCL)\color.h
|
||
@$(cc) $(cflagsBuild) -Fo$@ monst.c
|
||
|
||
$(O)monst.o: monst.c $(CONFIG_H) $(INCL)\permonst.h $(INCL)\align.h \
|
||
$(INCL)\monattk.h $(INCL)\monflag.h $(INCL)\sym.h \
|
||
$(INCL)\defsym.h $(INCL)\color.h
|
||
@$(cc) $(cflagsBuild) -Fo$@ monst.c
|
||
|
||
$(O)objects_host.o: objects.c $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h \
|
||
$(INCL)\prop.h $(INCL)\skills.h $(INCL)\color.h
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) /EP $(@B).c > $(O)$(@B).c.preproc
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $(@B).c
|
||
|
||
$(O)objects.o: objects.c $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h \
|
||
$(INCL)\prop.h $(INCL)\skills.h $(INCL)\color.h
|
||
@$(cc) $(cflagsBuild) /EP $(@B).c > $(O)$(@B).c.preproc
|
||
@$(cc) $(cflagsBuild) -Fo$@ $(@B).c
|
||
|
||
$(O)alloc_host.o: alloc.c $(CONFIG_H)
|
||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ alloc.c
|
||
|
||
$(O)alloc.o: alloc.c $(CONFIG_H)
|
||
@$(cc) $(cflagsBuild) -Fo$@ alloc.c
|
||
|
||
#===================================================================
|
||
# DAT dependencies
|
||
#===================================================================
|
||
|
||
#
|
||
# dat dependencies
|
||
#
|
||
|
||
$(DAT)\data: $(U)makedefs.exe $(DATABASE)
|
||
$(U)makedefs -d
|
||
|
||
$(DAT)\rumors: $(U)makedefs.exe $(DAT)\rumors.tru $(DAT)\rumors.fal
|
||
$(U)makedefs -r
|
||
|
||
$(DAT)\oracles: $(U)makedefs.exe $(DAT)\oracles.txt
|
||
$(U)makedefs -h
|
||
|
||
$(DAT)\engrave: $(U)makedefs.exe $(DAT)\engrave.txt
|
||
$(U)makedefs -s
|
||
|
||
$(DAT)\epitaph: $(U)makedefs.exe $(DAT)\epitaph.txt
|
||
$(U)makedefs -s
|
||
|
||
$(DAT)\bogusmon: $(U)makedefs.exe $(DAT)\bogusmon.txt
|
||
$(U)makedefs -s
|
||
|
||
#===============================================================================
|
||
# Housekeeping
|
||
#===============================================================================
|
||
|
||
spotless: clean
|
||
! IF ("$(OBJ)"!="")
|
||
if exist $(OBJ)\* rmdir $(OBJ) /s /Q
|
||
if exist $(GAMEDIR)\NetHack.exe del $(GAMEDIR)\NetHack.exe
|
||
if exist $(GAMEDIR)\NetHack.pdb del $(GAMEDIR)\NetHack.pdb
|
||
if exist $(GAMEDIR)\nhdat$(NHV) del $(GAMEDIR)\nhdat$(NHV)
|
||
! ENDIF
|
||
if exist $(INCL)\date.h del $(INCL)\date.h
|
||
if exist $(INCL)\onames.h del $(INCL)\onames.h
|
||
if exist $(INCL)\pm.h del $(INCL)\pm.h
|
||
if exist $(U)*.lnk del $(U)*.lnk
|
||
if exist $(U)*.map del $(U)*.map
|
||
if exist $(DAT)\data del $(DAT)\data
|
||
if exist $(DAT)\rumors del $(DAT)\rumors
|
||
if exist $(DAT)\engrave del $(DAT)\engrave
|
||
if exist $(DAT)\epitaph del $(DAT)\epitaph
|
||
if exist $(DAT)\bogusmon del $(DAT)\bogusmon
|
||
if exist $(DAT)\porthelp del $(DAT)\porthelp
|
||
if exist nhdat$(NHV). del nhdat$(NHV).
|
||
if exist $(O)objdir.tag del $(O)objdir.tag
|
||
if exist $(O)libdir.tag del $(O)libdir.tag
|
||
if exist $(O)gamedir.tag del $(O)gamedir.tag
|
||
if exist $(O)nh*key.lib del $(O)nh*key.lib
|
||
if exist $(O)nh*key.exp del $(O)nh*key.exp
|
||
if exist $(MSWIN)\mnsel.bmp del $(MSWIN)\mnsel.bmp
|
||
if exist $(MSWIN)\mnselcnt.bmp del $(MSWIN)\mnselcnt.bmp
|
||
if exist $(MSWIN)\mnunsel.bmp del $(MSWIN)\mnunsel.bmp
|
||
if exist $(MSWIN)\petmark.bmp del $(MSWIN)\petmark.bmp
|
||
if exist $(MSWIN)\pilemark.bmp del $(MSWIN)\pilemark.bmp
|
||
if exist $(MSWIN)\rip.bmp del $(MSWIN)\rip.bmp
|
||
if exist $(MSWIN)\splash.bmp del $(MSWIN)\splash.bmp
|
||
if exist $(MSWIN)\nethack.ico del $(MSWIN)\nethack.ico
|
||
if exist $(MSWSYS)\nethack.ico del $(MSWSYS)\nethack.ico
|
||
if exist $(U)recover.exe del $(U)recover.exe
|
||
if exist $(U)tile2bmp.exe del $(U)tile2bmp.exe
|
||
if exist $(U)tilemap.exe del $(U)tilemap.exe
|
||
if exist $(U)uudecode.exe del $(U)uudecode.exe
|
||
if exist $(U)dlb.exe del $(U)dlb.exe
|
||
!IF "$(ADD_CURSES)" == "Y"
|
||
if exist $(PDCLIB) del $(PDCLIB)
|
||
!ENDIF
|
||
if exist $(LUALIB) del $(LUALIB)
|
||
if exist $(DAT)\oracles del $(DAT)\oracles
|
||
if exist $(DAT)\rumors del $(DAT)\rumors
|
||
if exist $(DAT)\options del $(DAT)\options
|
||
if exist $(DAT)\ttyoptions del $(DAT)\ttyoptions
|
||
if exist $(DAT)\guioptions del $(DAT)\guioptions
|
||
if exist $(DAT)\data del $(DAT)\data
|
||
|
||
clean:
|
||
if exist $(O)*.o del $(O)*.o
|
||
if exist $(SRC)\tile.c del $(SRC)\tile.c
|
||
if exist $(INCL)\nhlua.h del $(INCL)\nhlua.h
|
||
if exist $(O)utility.tag del $(O)utility.tag
|
||
if exist $(U)makedefs.exe del $(U)makedefs.exe
|
||
if exist $(SRC)\*.lnk del $(SRC)\*.lnk
|
||
if exist $(SRC)\*.map del $(SRC)\*.map
|
||
if exist $(O)install.tag del $(O)install.tag
|
||
if exist $(O)dlb.MAP del $(O)dlb.MAP
|
||
if exist $(DAT)\dlb.lst del $(DAT)\dlb.lst
|
||
if exist $(O)dlb.PDB del $(O)dlb.PDB
|
||
if exist $(O)gamedir.tag del $(O)gamedir.tag
|
||
if exist $(O)makedefs.MAP del $(O)makedefs.MAP
|
||
if exist $(O)makedefs.PDB del $(O)makedefs.PDB
|
||
if exist $(O)NetHack.MAP del $(O)NetHack.MAP
|
||
if exist $(O)envchk.tag del $(O)envchk.tag
|
||
if exist $(O)objdir.tag del $(O)objdir.tag
|
||
if exist $(O)sp_lev.tag del $(O)sp_lev.tag
|
||
if exist $(O)uudecode.MAP del $(O)uudecode.MAP
|
||
if exist $(O)uudecode.PDB del $(O)uudecode.PDB
|
||
if exist $(SRC)\tiles.bmp del $(SRC)\tiles.bmp
|
||
if exist $(O)console.res del $(O)console.res
|
||
if exist $(O)NetHack.res del $(O)NetHack.res
|
||
if exist $(O)NetHackW.res del $(O)NetHackW.res
|
||
|
||
#===================================================================
|
||
# OTHER DEPENDENCIES
|
||
#===================================================================
|
||
#
|
||
# The rest are stolen from sys/unix/Makefile.src,
|
||
# with the following changes:
|
||
# * the CONFIG_H and HACK_H sections comment out
|
||
# * ../include/ changed to $(INCL)\
|
||
# * slashes changed to back-slashes
|
||
# * -c (which is included in cflagsBuild) substituted with -Fo$@
|
||
# * "-o $@ " is removed
|
||
# * win/X11/Window.o commented due to conflict with pdcurses
|
||
# * commented out $(TARGETPFX)tile.o: tile.c $(HACK_H)
|
||
# * commented out the lines starting with
|
||
# $(TARGET_CC) so the rules in this Makefile will be used instead
|
||
# but otherwise untouched.
|
||
# That means that there is some irrelevant stuff
|
||
# in here, but maintenance should be easier.
|
||
#
|
||
TARGETPFX=$(O)
|
||
TARGET_CC=$(cc)
|
||
TARGET_CFLAGS=$(cflagsBuild)
|
||
TARGET_CXX=$(cc)
|
||
TARGET_CXXFLAGS=$(cppflagsBuild)
|
||
MOCPATH = moc.exe
|
||
#
|
||
# DO NOT DELETE THIS LINE OR CHANGE ANYTHING BEYOND IT
|
||
|
||
# config.h timestamp
|
||
#$(CONFIG_H): $(INCL)\config.h $(INCL)\config1.h $(INCL)\patchlevel.h \
|
||
# $(INCL)\tradstdc.h $(INCL)\global.h $(INCL)\coord.h \
|
||
# $(INCL)\vmsconf.h $(INCL)\system.h $(INCL)\nhlua.h \
|
||
# $(INCL)\unixconf.h $(INCL)\pcconf.h $(INCL)\micro.h \
|
||
# $(INCL)\windconf.h $(INCL)\warnings.h \
|
||
# $(INCL)\fnamesiz.h
|
||
# touch $(CONFIG_H)
|
||
# hack.h timestamp
|
||
#$(HACK_H): $(INCL)\hack.h $(CONFIG_H) $(INCL)\lint.h $(INCL)\align.h \
|
||
# $(INCL)\dungeon.h $(INCL)\sym.h $(INCL)\defsym.h \
|
||
# $(INCL)\mkroom.h $(INCL)\artilist.h \
|
||
# $(INCL)\objclass.h $(INCL)\objects.h \
|
||
# $(INCL)\youprop.h $(INCL)\prop.h $(INCL)\permonst.h \
|
||
# $(INCL)\monattk.h $(INCL)\monflag.h \
|
||
# $(INCL)\monsters.h $(INCL)\mondata.h \
|
||
# $(INCL)\wintype.h $(INCL)\context.h $(INCL)\rm.h \
|
||
# $(INCL)\botl.h $(INCL)\rect.h $(INCL)\region.h \
|
||
# $(INCL)\display.h $(INCL)\vision.h $(INCL)\color.h \
|
||
# $(INCL)\decl.h $(INCL)\quest.h $(INCL)\spell.h \
|
||
# $(INCL)\obj.h $(INCL)\engrave.h $(INCL)\you.h \
|
||
# $(INCL)\attrib.h $(INCL)\monst.h $(INCL)\mextra.h \
|
||
# $(INCL)\skills.h $(INCL)\timeout.h $(INCL)\trap.h \
|
||
# $(INCL)\flag.h $(INCL)\winprocs.h $(INCL)\sys.h
|
||
# touch $(HACK_H)
|
||
#
|
||
$(TARGETPFX)pcmain.o: ..\sys\share\pcmain.c $(HACK_H) $(INCL)\dlb.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\sys\share\pcmain.c
|
||
$(TARGETPFX)pcsys.o: ..\sys\share\pcsys.c $(HACK_H) $(INCL)\wintty.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\sys\share\pcsys.c
|
||
$(TARGETPFX)pctty.o: ..\sys\share\pctty.c $(HACK_H) $(INCL)\wintty.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\sys\share\pctty.c
|
||
$(TARGETPFX)pcunix.o: ..\sys\share\pcunix.c $(HACK_H) $(INCL)\wintty.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\sys\share\pcunix.c
|
||
$(TARGETPFX)pmatchregex.o: ..\sys\share\pmatchregex.c $(HACK_H)
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\sys\share\pmatchregex.c
|
||
$(TARGETPFX)posixregex.o: ..\sys\share\posixregex.c $(HACK_H)
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\sys\share\posixregex.c
|
||
$(TARGETPFX)random.o: ..\sys\share\random.c $(HACK_H)
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\sys\share\random.c
|
||
$(TARGETPFX)ioctl.o: ..\sys\share\ioctl.c $(HACK_H) $(INCL)\tcap.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\sys\share\ioctl.c
|
||
$(TARGETPFX)unixtty.o: ..\sys\share\unixtty.c $(HACK_H)
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\sys\share\unixtty.c
|
||
$(TARGETPFX)unixmain.o: ..\sys\unix\unixmain.c $(HACK_H) $(INCL)\dlb.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\sys\unix\unixmain.c
|
||
$(TARGETPFX)unixunix.o: ..\sys\unix\unixunix.c $(HACK_H)
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\sys\unix\unixunix.c
|
||
$(TARGETPFX)unixres.o: ..\sys\unix\unixres.c $(CONFIG_H)
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\sys\unix\unixres.c
|
||
$(TARGETPFX)getline.o: ..\win\tty\getline.c $(HACK_H) $(INCL)\wintty.h \
|
||
$(INCL)\func_tab.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\win\tty\getline.c
|
||
$(TARGETPFX)termcap.o: ..\win\tty\termcap.c $(HACK_H) $(INCL)\wintty.h \
|
||
$(INCL)\tcap.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\win\tty\termcap.c
|
||
$(TARGETPFX)topl.o: ..\win\tty\topl.c $(HACK_H) $(INCL)\tcap.h \
|
||
$(INCL)\wintty.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\win\tty\topl.c
|
||
$(TARGETPFX)wintty.o: ..\win\tty\wintty.c $(HACK_H) $(INCL)\dlb.h \
|
||
$(INCL)\tcap.h $(INCL)\wintty.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\win\tty\wintty.c
|
||
$(TARGETPFX)cursmain.o: ..\win\curses\cursmain.c $(HACK_H) $(INCL)\wincurs.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\win\curses\cursmain.c
|
||
$(TARGETPFX)curswins.o: ..\win\curses\curswins.c $(HACK_H) \
|
||
$(INCL)\wincurs.h ..\win\curses\curswins.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\win\curses\curswins.c
|
||
$(TARGETPFX)cursmisc.o: ..\win\curses\cursmisc.c $(HACK_H) \
|
||
$(INCL)\wincurs.h ..\win\curses\cursmisc.h \
|
||
$(INCL)\func_tab.h $(INCL)\dlb.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\win\curses\cursmisc.c
|
||
$(TARGETPFX)cursdial.o: ..\win\curses\cursdial.c $(HACK_H) \
|
||
$(INCL)\wincurs.h ..\win\curses\cursdial.h \
|
||
$(INCL)\func_tab.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\win\curses\cursdial.c
|
||
$(TARGETPFX)cursstat.o: ..\win\curses\cursstat.c $(HACK_H) \
|
||
$(INCL)\wincurs.h ..\win\curses\cursstat.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\win\curses\cursstat.c
|
||
$(TARGETPFX)cursinit.o: ..\win\curses\cursinit.c $(HACK_H) \
|
||
$(INCL)\wincurs.h ..\win\curses\cursinit.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\win\curses\cursinit.c
|
||
$(TARGETPFX)cursmesg.o: ..\win\curses\cursmesg.c $(HACK_H) \
|
||
$(INCL)\wincurs.h ..\win\curses\cursmesg.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\win\curses\cursmesg.c
|
||
$(TARGETPFX)cursinvt.o: ..\win\curses\cursinvt.c $(HACK_H) \
|
||
$(INCL)\wincurs.h ..\win\curses\cursinvt.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\win\curses\cursinvt.c
|
||
#$(TARGETPFX)Window.o: ..\win\X11\Window.c $(INCL)\xwindowp.h \
|
||
# $(INCL)\xwindow.h $(CONFIG_H) $(INCL)\lint.h \
|
||
# $(INCL)\winX.h $(INCL)\color.h $(INCL)\wintype.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -Fo$@ ..\win\X11\Window.c
|
||
$(TARGETPFX)dialogs.o: ..\win\X11\dialogs.c $(CONFIG_H) $(INCL)\lint.h \
|
||
$(INCL)\winX.h $(INCL)\color.h $(INCL)\wintype.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -Fo$@ ..\win\X11\dialogs.c
|
||
$(TARGETPFX)winX.o: ..\win\X11\winX.c $(HACK_H) $(INCL)\winX.h \
|
||
$(INCL)\dlb.h $(INCL)\xwindow.h ..\win\X11\nh72icon \
|
||
..\win\X11\nh56icon ..\win\X11\nh32icon
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -Fo$@ ..\win\X11\winX.c
|
||
$(TARGETPFX)winmap.o: ..\win\X11\winmap.c $(INCL)\xwindow.h $(HACK_H) \
|
||
$(INCL)\dlb.h $(INCL)\winX.h $(INCL)\tile2x11.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -Fo$@ ..\win\X11\winmap.c
|
||
$(TARGETPFX)winmenu.o: ..\win\X11\winmenu.c $(HACK_H) $(INCL)\winX.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -Fo$@ ..\win\X11\winmenu.c
|
||
$(TARGETPFX)winmesg.o: ..\win\X11\winmesg.c $(INCL)\xwindow.h $(HACK_H) \
|
||
$(INCL)\winX.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -Fo$@ ..\win\X11\winmesg.c
|
||
$(TARGETPFX)winmisc.o: ..\win\X11\winmisc.c $(HACK_H) $(INCL)\func_tab.h \
|
||
$(INCL)\winX.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -Fo$@ ..\win\X11\winmisc.c
|
||
$(TARGETPFX)winstat.o: ..\win\X11\winstat.c $(HACK_H) $(INCL)\winX.h \
|
||
$(INCL)\xwindow.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -Fo$@ ..\win\X11\winstat.c
|
||
$(TARGETPFX)wintext.o: ..\win\X11\wintext.c $(HACK_H) $(INCL)\winX.h \
|
||
$(INCL)\xwindow.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -Fo$@ ..\win\X11\wintext.c
|
||
$(TARGETPFX)winval.o: ..\win\X11\winval.c $(HACK_H) $(INCL)\winX.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -Fo$@ ..\win\X11\winval.c
|
||
#$(TARGETPFX)tile.o: tile.c $(HACK_H)
|
||
$(TARGETPFX)winshim.o: ..\win\shim\winshim.c $(HACK_H)
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\win\shim\winshim.c
|
||
#$(TARGETPFX)cppregex.o: ..\sys\share\cppregex.cpp
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\sys\share\cppregex.cpp
|
||
$(TARGETPFX)qt_bind.o: ..\win\Qt\qt_bind.cpp $(HACK_H) ..\win\Qt\qt_pre.h \
|
||
..\win\Qt\qt_post.h ..\win\Qt\qt_bind.h ..\win\Qt\qt_main.h \
|
||
..\win\Qt\qt_kde0.h ..\win\Qt\qt_click.h ..\win\Qt\qt_delay.h \
|
||
..\win\Qt\qt_xcmd.h ..\win\Qt\qt_key.h ..\win\Qt\qt_map.h \
|
||
..\win\Qt\qt_win.h ..\win\Qt\qt_clust.h ..\win\Qt\qt_menu.h \
|
||
..\win\Qt\qt_rip.h ..\win\Qt\qt_msg.h ..\win\Qt\qt_plsel.h \
|
||
..\win\Qt\qt_svsel.h ..\win\Qt\qt_set.h ..\win\Qt\qt_stat.h \
|
||
..\win\Qt\qt_icon.h ..\win\Qt\qt_streq.h ..\win\Qt\qt_line.h \
|
||
..\win\Qt\qt_yndlg.h ..\win\Qt\qt_str.h $(INCL)\dlb.h \
|
||
$(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_bind.cpp
|
||
$(TARGETPFX)qt_click.o: ..\win\Qt\qt_click.cpp $(HACK_H) ..\win\Qt\qt_pre.h \
|
||
..\win\Qt\qt_post.h ..\win\Qt\qt_click.h $(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_click.cpp
|
||
$(TARGETPFX)qt_clust.o: ..\win\Qt\qt_clust.cpp ..\win\Qt\qt_clust.h $(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_clust.cpp
|
||
$(TARGETPFX)qt_delay.o: ..\win\Qt\qt_delay.cpp $(HACK_H) ..\win\Qt\qt_pre.h \
|
||
..\win\Qt\qt_post.h ..\win\Qt\qt_delay.h $(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_delay.cpp
|
||
$(TARGETPFX)qt_glyph.o: ..\win\Qt\qt_glyph.cpp $(HACK_H) \
|
||
$(INCL)\tile2x11.h ..\win\Qt\qt_pre.h ..\win\Qt\qt_post.h \
|
||
..\win\Qt\qt_glyph.h ..\win\Qt\qt_bind.h ..\win\Qt\qt_main.h \
|
||
..\win\Qt\qt_kde0.h ..\win\Qt\qt_set.h ..\win\Qt\qt_inv.h \
|
||
..\win\Qt\qt_map.h ..\win\Qt\qt_win.h ..\win\Qt\qt_clust.h \
|
||
..\win\Qt\qt_str.h $(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_glyph.cpp
|
||
$(TARGETPFX)qt_icon.o: ..\win\Qt\qt_icon.cpp $(HACK_H) ..\win\Qt\qt_pre.h \
|
||
..\win\Qt\qt_post.h ..\win\Qt\qt_icon.h $(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_icon.cpp
|
||
$(TARGETPFX)qt_inv.o: ..\win\Qt\qt_inv.cpp $(HACK_H) ..\win\Qt\qt_pre.h \
|
||
..\win\Qt\qt_post.h ..\win\Qt\qt_inv.h ..\win\Qt\qt_glyph.h \
|
||
..\win\Qt\qt_main.h ..\win\Qt\qt_kde0.h ..\win\Qt\qt_set.h \
|
||
..\win\Qt\qt_bind.h $(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_inv.cpp
|
||
$(TARGETPFX)qt_key.o: ..\win\Qt\qt_key.cpp $(HACK_H) ..\win\Qt\qt_pre.h \
|
||
..\win\Qt\qt_post.h ..\win\Qt\qt_key.h $(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_key.cpp
|
||
$(TARGETPFX)qt_line.o: ..\win\Qt\qt_line.cpp $(HACK_H) ..\win\Qt\qt_pre.h \
|
||
..\win\Qt\qt_post.h ..\win\Qt\qt_line.h $(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_line.cpp
|
||
$(TARGETPFX)qt_main.o: ..\win\Qt\qt_main.cpp $(HACK_H) ..\win\Qt\qt_pre.h \
|
||
..\win\Qt\qt_post.h ..\win\Qt\qt_main.h ..\win\Qt\qt_kde0.h \
|
||
qt_main.moc ..\win\Qt\qt_bind.h ..\win\Qt\qt_glyph.h \
|
||
..\win\Qt\qt_inv.h ..\win\Qt\qt_key.h ..\win\Qt\qt_map.h \
|
||
..\win\Qt\qt_win.h ..\win\Qt\qt_clust.h ..\win\Qt\qt_msg.h \
|
||
..\win\Qt\qt_set.h ..\win\Qt\qt_stat.h ..\win\Qt\qt_icon.h \
|
||
..\win\Qt\qt_str.h qt_kde0.moc $(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_main.cpp
|
||
$(TARGETPFX)qt_map.o: ..\win\Qt\qt_map.cpp $(HACK_H) ..\win\Qt\qt_pre.h \
|
||
..\win\Qt\qt_post.h ..\win\Qt\qt_map.h ..\win\Qt\qt_win.h \
|
||
..\win\Qt\qt_clust.h qt_map.moc ..\win\Qt\qt_click.h \
|
||
..\win\Qt\qt_glyph.h ..\win\Qt\qt_set.h ..\win\Qt\qt_bind.h \
|
||
..\win\Qt\qt_main.h ..\win\Qt\qt_kde0.h ..\win\Qt\qt_str.h \
|
||
$(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_map.cpp
|
||
$(TARGETPFX)qt_menu.o: ..\win\Qt\qt_menu.cpp $(HACK_H) ..\win\Qt\qt_pre.h \
|
||
..\win\Qt\qt_post.h ..\win\Qt\qt_menu.h ..\win\Qt\qt_win.h \
|
||
..\win\Qt\qt_rip.h qt_menu.moc ..\win\Qt\qt_key.h \
|
||
..\win\Qt\qt_glyph.h ..\win\Qt\qt_set.h ..\win\Qt\qt_bind.h \
|
||
..\win\Qt\qt_main.h ..\win\Qt\qt_kde0.h ..\win\Qt\qt_streq.h \
|
||
..\win\Qt\qt_line.h ..\win\Qt\qt_str.h $(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_menu.cpp
|
||
$(TARGETPFX)qt_msg.o: ..\win\Qt\qt_msg.cpp $(HACK_H) ..\win\Qt\qt_pre.h \
|
||
..\win\Qt\qt_post.h ..\win\Qt\qt_msg.h ..\win\Qt\qt_win.h \
|
||
qt_msg.moc ..\win\Qt\qt_map.h ..\win\Qt\qt_clust.h \
|
||
..\win\Qt\qt_set.h ..\win\Qt\qt_bind.h ..\win\Qt\qt_main.h \
|
||
..\win\Qt\qt_kde0.h ..\win\Qt\qt_str.h $(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_msg.cpp
|
||
$(TARGETPFX)qt_plsel.o: ..\win\Qt\qt_plsel.cpp $(HACK_H) ..\win\Qt\qt_pre.h \
|
||
..\win\Qt\qt_post.h ..\win\Qt\qt_plsel.h qt_plsel.moc \
|
||
..\win\Qt\qt_bind.h ..\win\Qt\qt_main.h ..\win\Qt\qt_kde0.h \
|
||
..\win\Qt\qt_glyph.h ..\win\Qt\qt_set.h ..\win\Qt\qt_str.h \
|
||
$(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_plsel.cpp
|
||
$(TARGETPFX)qt_rip.o: ..\win\Qt\qt_rip.cpp $(HACK_H) ..\win\Qt\qt_pre.h \
|
||
..\win\Qt\qt_post.h ..\win\Qt\qt_rip.h ..\win\Qt\qt_bind.h \
|
||
..\win\Qt\qt_main.h ..\win\Qt\qt_kde0.h ..\win\Qt\qt_str.h \
|
||
$(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_rip.cpp
|
||
$(TARGETPFX)qt_set.o: ..\win\Qt\qt_set.cpp $(HACK_H) ..\win\Qt\qt_pre.h \
|
||
..\win\Qt\qt_post.h ..\win\Qt\qt_set.h ..\win\Qt\qt_bind.h \
|
||
..\win\Qt\qt_main.h ..\win\Qt\qt_kde0.h qt_set.moc \
|
||
..\win\Qt\qt_glyph.h ..\win\Qt\qt_xcmd.h ..\win\Qt\qt_str.h \
|
||
$(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_set.cpp
|
||
$(TARGETPFX)qt_stat.o: ..\win\Qt\qt_stat.cpp $(HACK_H) ..\win\Qt\qt_pre.h \
|
||
..\win\Qt\qt_post.h ..\win\Qt\qt_stat.h ..\win\Qt\qt_win.h \
|
||
..\win\Qt\qt_icon.h qt_stat.moc ..\win\Qt\qt_set.h \
|
||
..\win\Qt\qt_bind.h ..\win\Qt\qt_main.h ..\win\Qt\qt_kde0.h \
|
||
..\win\Qt\qt_str.h ..\win\Qt\qt_xpms.h $(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_stat.cpp
|
||
$(TARGETPFX)qt_str.o: ..\win\Qt\qt_str.cpp ..\win\Qt\qt_str.h $(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_str.cpp
|
||
$(TARGETPFX)qt_streq.o: ..\win\Qt\qt_streq.cpp $(HACK_H) ..\win\Qt\qt_pre.h \
|
||
..\win\Qt\qt_post.h ..\win\Qt\qt_streq.h ..\win\Qt\qt_line.h \
|
||
..\win\Qt\qt_str.h ..\win\Qt\qt_set.h ..\win\Qt\qt_bind.h \
|
||
..\win\Qt\qt_main.h ..\win\Qt\qt_kde0.h $(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_streq.cpp
|
||
$(TARGETPFX)qt_svsel.o: ..\win\Qt\qt_svsel.cpp $(HACK_H) ..\win\Qt\qt_pre.h \
|
||
..\win\Qt\qt_post.h ..\win\Qt\qt_svsel.h ..\win\Qt\qt_bind.h \
|
||
..\win\Qt\qt_main.h ..\win\Qt\qt_kde0.h ..\win\Qt\qt_str.h \
|
||
$(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_svsel.cpp
|
||
$(TARGETPFX)qt_win.o: ..\win\Qt\qt_win.cpp $(HACK_H) ..\win\Qt\qt_pre.h \
|
||
..\win\Qt\qt_post.h ..\win\Qt\qt_win.h ..\win\Qt\qt_bind.h \
|
||
..\win\Qt\qt_main.h ..\win\Qt\qt_kde0.h ..\win\Qt\qt_click.h \
|
||
..\win\Qt\qt_glyph.h ..\win\Qt\qt_inv.h ..\win\Qt\qt_key.h \
|
||
..\win\Qt\qt_icon.h ..\win\Qt\qt_map.h ..\win\Qt\qt_clust.h \
|
||
..\win\Qt\qt_menu.h ..\win\Qt\qt_rip.h ..\win\Qt\qt_msg.h \
|
||
..\win\Qt\qt_set.h $(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_win.cpp
|
||
$(TARGETPFX)qt_xcmd.o: ..\win\Qt\qt_xcmd.cpp $(HACK_H) $(INCL)\func_tab.h \
|
||
..\win\Qt\qt_pre.h ..\win\Qt\qt_post.h ..\win\Qt\qt_xcmd.h \
|
||
qt_xcmd.moc ..\win\Qt\qt_key.h ..\win\Qt\qt_bind.h \
|
||
..\win\Qt\qt_main.h ..\win\Qt\qt_kde0.h ..\win\Qt\qt_set.h \
|
||
..\win\Qt\qt_str.h $(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_xcmd.cpp
|
||
$(TARGETPFX)qt_yndlg.o: ..\win\Qt\qt_yndlg.cpp $(HACK_H) ..\win\Qt\qt_pre.h \
|
||
..\win\Qt\qt_post.h ..\win\Qt\qt_yndlg.h qt_yndlg.moc \
|
||
..\win\Qt\qt_key.h ..\win\Qt\qt_str.h $(QTn_H)
|
||
# $(TARGET_CXX) $(TARGET_CXXFLAGS) -Fo$@ ..\win\Qt\qt_yndlg.cpp
|
||
qt_kde0.moc: ..\win\Qt\qt_kde0.h $(QTn_H)
|
||
$(MOCPATH) ..\win\Qt\qt_kde0.h
|
||
qt_main.moc: ..\win\Qt\qt_main.h ..\win\Qt\qt_kde0.h $(QTn_H)
|
||
$(MOCPATH) ..\win\Qt\qt_main.h
|
||
qt_map.moc: ..\win\Qt\qt_map.h ..\win\Qt\qt_win.h ..\win\Qt\qt_clust.h $(QTn_H)
|
||
$(MOCPATH) ..\win\Qt\qt_map.h
|
||
qt_menu.moc: ..\win\Qt\qt_menu.h ..\win\Qt\qt_win.h ..\win\Qt\qt_rip.h $(QTn_H)
|
||
$(MOCPATH) ..\win\Qt\qt_menu.h
|
||
qt_msg.moc: ..\win\Qt\qt_msg.h ..\win\Qt\qt_win.h $(QTn_H)
|
||
$(MOCPATH) ..\win\Qt\qt_msg.h
|
||
qt_plsel.moc: ..\win\Qt\qt_plsel.h $(QTn_H)
|
||
$(MOCPATH) ..\win\Qt\qt_plsel.h
|
||
qt_set.moc: ..\win\Qt\qt_set.h ..\win\Qt\qt_bind.h ..\win\Qt\qt_main.h \
|
||
..\win\Qt\qt_kde0.h $(QTn_H)
|
||
$(MOCPATH) ..\win\Qt\qt_set.h
|
||
qt_stat.moc: ..\win\Qt\qt_stat.h ..\win\Qt\qt_win.h ..\win\Qt\qt_icon.h \
|
||
$(QTn_H)
|
||
$(MOCPATH) ..\win\Qt\qt_stat.h
|
||
qt_xcmd.moc: ..\win\Qt\qt_xcmd.h $(QTn_H)
|
||
$(MOCPATH) ..\win\Qt\qt_xcmd.h
|
||
qt_yndlg.moc: ..\win\Qt\qt_yndlg.h $(QTn_H)
|
||
$(MOCPATH) ..\win\Qt\qt_yndlg.h
|
||
$(TARGETPFX)wc_chainin.o: ..\win\chain\wc_chainin.c $(HACK_H)
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\win\chain\wc_chainin.c
|
||
$(TARGETPFX)wc_chainout.o: ..\win\chain\wc_chainout.c $(HACK_H)
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\win\chain\wc_chainout.c
|
||
$(TARGETPFX)wc_trace.o: ..\win\chain\wc_trace.c $(HACK_H) $(INCL)\wintty.h \
|
||
$(INCL)\func_tab.h
|
||
# $(TARGET_CC) $(TARGET_CFLAGS) -Fo$@ ..\win\chain\wc_trace.c
|
||
$(TARGETPFX)allmain.o: allmain.c $(HACK_H)
|
||
$(TARGETPFX)alloc.o: alloc.c $(CONFIG_H)
|
||
$(TARGETPFX)apply.o: apply.c $(HACK_H)
|
||
$(TARGETPFX)artifact.o: artifact.c $(HACK_H) $(INCL)\artifact.h
|
||
$(TARGETPFX)attrib.o: attrib.c $(HACK_H)
|
||
$(TARGETPFX)ball.o: ball.c $(HACK_H)
|
||
$(TARGETPFX)bones.o: bones.c $(HACK_H)
|
||
$(TARGETPFX)botl.o: botl.c $(HACK_H)
|
||
$(TARGETPFX)cmd.o: cmd.c $(HACK_H) $(INCL)\func_tab.h
|
||
$(TARGETPFX)dbridge.o: dbridge.c $(HACK_H)
|
||
$(TARGETPFX)decl.o: decl.c $(HACK_H)
|
||
$(TARGETPFX)detect.o: detect.c $(HACK_H) $(INCL)\artifact.h
|
||
$(TARGETPFX)dig.o: dig.c $(HACK_H)
|
||
$(TARGETPFX)display.o: display.c $(HACK_H)
|
||
$(TARGETPFX)dlb.o: dlb.c $(CONFIG_H) $(INCL)\dlb.h
|
||
$(TARGETPFX)do.o: do.c $(HACK_H)
|
||
$(TARGETPFX)do_name.o: do_name.c $(HACK_H)
|
||
$(TARGETPFX)do_wear.o: do_wear.c $(HACK_H)
|
||
$(TARGETPFX)dog.o: dog.c $(HACK_H)
|
||
$(TARGETPFX)dogmove.o: dogmove.c $(HACK_H) $(INCL)\mfndpos.h
|
||
$(TARGETPFX)dokick.o: dokick.c $(HACK_H)
|
||
$(TARGETPFX)dothrow.o: dothrow.c $(HACK_H)
|
||
$(TARGETPFX)drawing.o: drawing.c $(CONFIG_H) $(INCL)\color.h \
|
||
$(INCL)\rm.h $(INCL)\objclass.h $(INCL)\defsym.h \
|
||
$(INCL)\objects.h $(INCL)\sym.h
|
||
$(TARGETPFX)dungeon.o: dungeon.c $(HACK_H) $(INCL)\dgn_file.h \
|
||
$(INCL)\dlb.h
|
||
$(TARGETPFX)eat.o: eat.c $(HACK_H)
|
||
$(TARGETPFX)end.o: end.c $(HACK_H) $(INCL)\dlb.h
|
||
$(TARGETPFX)engrave.o: engrave.c $(HACK_H)
|
||
$(TARGETPFX)exper.o: exper.c $(HACK_H)
|
||
$(TARGETPFX)explode.o: explode.c $(HACK_H)
|
||
$(TARGETPFX)extralev.o: extralev.c $(HACK_H)
|
||
$(TARGETPFX)files.o: files.c $(HACK_H) $(INCL)\dlb.h $(INCL)\wintty.h \
|
||
#zlib.h
|
||
$(TARGETPFX)fountain.o: fountain.c $(HACK_H)
|
||
$(TARGETPFX)hack.o: hack.c $(HACK_H)
|
||
$(TARGETPFX)hacklib.o: hacklib.c $(HACK_H)
|
||
$(TARGETPFX)insight.o: insight.c $(HACK_H)
|
||
$(TARGETPFX)invent.o: invent.c $(HACK_H)
|
||
$(TARGETPFX)isaac64.o: isaac64.c $(CONFIG_H) $(INCL)\isaac64.h
|
||
$(TARGETPFX)light.o: light.c $(HACK_H)
|
||
$(TARGETPFX)lock.o: lock.c $(HACK_H)
|
||
$(TARGETPFX)mail.o: mail.c $(HACK_H) $(INCL)\mail.h
|
||
$(TARGETPFX)makemon.o: makemon.c $(HACK_H)
|
||
$(TARGETPFX)mcastu.o: mcastu.c $(HACK_H)
|
||
$(TARGETPFX)mdlib.o: mdlib.c $(CONFIG_H) $(INCL)\permonst.h \
|
||
$(INCL)\align.h $(INCL)\monattk.h $(INCL)\monflag.h \
|
||
$(INCL)\monsters.h $(INCL)\objclass.h \
|
||
$(INCL)\defsym.h $(INCL)\objects.h $(INCL)\sym.h \
|
||
$(INCL)\artilist.h $(INCL)\dungeon.h $(INCL)\obj.h \
|
||
$(INCL)\monst.h $(INCL)\mextra.h $(INCL)\you.h \
|
||
$(INCL)\attrib.h $(INCL)\prop.h $(INCL)\skills.h \
|
||
$(INCL)\context.h $(INCL)\flag.h $(INCL)\dlb.h
|
||
$(TARGETPFX)mhitm.o: mhitm.c $(HACK_H) $(INCL)\artifact.h
|
||
$(TARGETPFX)mhitu.o: mhitu.c $(HACK_H) $(INCL)\artifact.h
|
||
$(TARGETPFX)minion.o: minion.c $(HACK_H)
|
||
$(TARGETPFX)mklev.o: mklev.c $(HACK_H)
|
||
$(TARGETPFX)mkmap.o: mkmap.c $(HACK_H) $(INCL)\sp_lev.h
|
||
$(TARGETPFX)mkmaze.o: mkmaze.c $(HACK_H) $(INCL)\sp_lev.h
|
||
$(TARGETPFX)mkobj.o: mkobj.c $(HACK_H)
|
||
$(TARGETPFX)mkroom.o: mkroom.c $(HACK_H)
|
||
$(TARGETPFX)mon.o: mon.c $(HACK_H) $(INCL)\mfndpos.h
|
||
$(TARGETPFX)mondata.o: mondata.c $(HACK_H)
|
||
$(TARGETPFX)monmove.o: monmove.c $(HACK_H) $(INCL)\mfndpos.h \
|
||
$(INCL)\artifact.h
|
||
$(TARGETPFX)monst.o: monst.c $(CONFIG_H) $(INCL)\permonst.h \
|
||
$(INCL)\align.h $(INCL)\monattk.h $(INCL)\monflag.h \
|
||
$(INCL)\monsters.h $(INCL)\sym.h $(INCL)\defsym.h \
|
||
$(INCL)\color.h
|
||
$(TARGETPFX)mplayer.o: mplayer.c $(HACK_H)
|
||
$(TARGETPFX)mthrowu.o: mthrowu.c $(HACK_H)
|
||
$(TARGETPFX)muse.o: muse.c $(HACK_H)
|
||
$(TARGETPFX)music.o: music.c $(HACK_H)
|
||
$(TARGETPFX)nhlua.o: nhlua.c $(HACK_H) $(INCL)\dlb.h
|
||
$(TARGETPFX)nhlsel.o: nhlsel.c $(HACK_H) $(INCL)\sp_lev.h
|
||
$(TARGETPFX)nhlobj.o: nhlobj.c $(HACK_H) $(INCL)\sp_lev.h
|
||
$(TARGETPFX)o_init.o: o_init.c $(HACK_H)
|
||
$(TARGETPFX)objects.o: objects.c $(CONFIG_H) $(INCL)\obj.h \
|
||
$(INCL)\prop.h $(INCL)\skills.h $(INCL)\color.h \
|
||
$(INCL)\objclass.h $(INCL)\defsym.h $(INCL)\objects.h
|
||
$(TARGETPFX)objnam.o: objnam.c $(HACK_H)
|
||
$(TARGETPFX)options.o: options.c $(CONFIG_H) $(INCL)\objclass.h \
|
||
$(INCL)\defsym.h $(INCL)\objects.h $(INCL)\flag.h \
|
||
$(HACK_H) $(INCL)\tcap.h $(INCL)\optlist.h
|
||
$(TARGETPFX)pager.o: pager.c $(HACK_H) $(INCL)\dlb.h
|
||
$(TARGETPFX)pickup.o: pickup.c $(HACK_H)
|
||
$(TARGETPFX)pline.o: pline.c $(HACK_H)
|
||
$(TARGETPFX)polyself.o: polyself.c $(HACK_H)
|
||
$(TARGETPFX)potion.o: potion.c $(HACK_H)
|
||
$(TARGETPFX)pray.o: pray.c $(HACK_H)
|
||
$(TARGETPFX)priest.o: priest.c $(HACK_H) $(INCL)\mfndpos.h
|
||
$(TARGETPFX)quest.o: quest.c $(HACK_H)
|
||
$(TARGETPFX)questpgr.o: questpgr.c $(HACK_H) $(INCL)\dlb.h \
|
||
$(INCL)\wintty.h
|
||
$(TARGETPFX)read.o: read.c $(HACK_H)
|
||
$(TARGETPFX)rect.o: rect.c $(HACK_H)
|
||
$(TARGETPFX)region.o: region.c $(HACK_H)
|
||
$(TARGETPFX)restore.o: restore.c $(HACK_H) $(INCL)\tcap.h
|
||
$(TARGETPFX)rip.o: rip.c $(HACK_H)
|
||
$(TARGETPFX)rnd.o: rnd.c $(HACK_H) $(INCL)\isaac64.h
|
||
$(TARGETPFX)role.o: role.c $(HACK_H)
|
||
$(TARGETPFX)rumors.o: rumors.c $(HACK_H) $(INCL)\dlb.h
|
||
$(TARGETPFX)save.o: save.c $(HACK_H)
|
||
$(TARGETPFX)sfstruct.o: sfstruct.c $(HACK_H)
|
||
$(TARGETPFX)shk.o: shk.c $(HACK_H)
|
||
$(TARGETPFX)shknam.o: shknam.c $(HACK_H)
|
||
$(TARGETPFX)sit.o: sit.c $(HACK_H) $(INCL)\artifact.h
|
||
$(TARGETPFX)sounds.o: sounds.c $(HACK_H)
|
||
$(TARGETPFX)sp_lev.o: sp_lev.c $(HACK_H) $(INCL)\sp_lev.h
|
||
$(TARGETPFX)spell.o: spell.c $(HACK_H)
|
||
$(TARGETPFX)steal.o: steal.c $(HACK_H)
|
||
$(TARGETPFX)steed.o: steed.c $(HACK_H)
|
||
$(TARGETPFX)symbols.o: symbols.c $(HACK_H) $(INCL)\tcap.h
|
||
$(TARGETPFX)sys.o: sys.c $(HACK_H)
|
||
$(TARGETPFX)teleport.o: teleport.c $(HACK_H)
|
||
$(TARGETPFX)timeout.o: timeout.c $(HACK_H)
|
||
$(TARGETPFX)topten.o: topten.c $(HACK_H) $(INCL)\dlb.h
|
||
$(TARGETPFX)track.o: track.c $(HACK_H)
|
||
$(TARGETPFX)trap.o: trap.c $(HACK_H)
|
||
$(TARGETPFX)u_init.o: u_init.c $(HACK_H)
|
||
$(TARGETPFX)uhitm.o: uhitm.c $(HACK_H)
|
||
$(TARGETPFX)vault.o: vault.c $(HACK_H)
|
||
$(TARGETPFX)version.o: version.c $(HACK_H) $(INCL)\dlb.h
|
||
$(TARGETPFX)vision.o: vision.c $(HACK_H)
|
||
$(TARGETPFX)weapon.o: weapon.c $(HACK_H)
|
||
$(TARGETPFX)were.o: were.c $(HACK_H)
|
||
$(TARGETPFX)wield.o: wield.c $(HACK_H)
|
||
$(TARGETPFX)windows.o: windows.c $(HACK_H) $(INCL)\wintty.h
|
||
$(TARGETPFX)wizard.o: wizard.c $(HACK_H)
|
||
$(TARGETPFX)worm.o: worm.c $(HACK_H)
|
||
$(TARGETPFX)worn.o: worn.c $(HACK_H)
|
||
$(TARGETPFX)write.o: write.c $(HACK_H)
|
||
$(TARGETPFX)zap.o: zap.c $(HACK_H)
|
||
# DEPENDENCIES MUST END AT END OF FILE
|