Files
nethack/sys/unix/Makefile.src
PatR bc6ca2b821 Qt 5 vs 6 'moc'
This is an attempt to address the issue of switching from Qt 5 to
Qt 6 or vice versa on Unix without running 'make spotless'.  Various
*.h files (but not all of them) in win/Qt/ are run through a program
called 'moc' to create new files *.moc that are included by *.cpp.
The problem is that the constructed files use the same names for Qt
5 or 6 but their contents apparently aren't compatible.  This adds
rules (specific to GNU make) that use a pair of timestamp files to
track which version of moc made src/*.moc and to destroy them when
switching Qt versions in order to force their re-creation.

As it stands, a hints file which includes hints/include/compiler.370
is now required in order to build the Qt interface with the Unix
Makefiles.  There's no change for platforms that don't use those and
I've no idea whether something comparable could be done for macOS
Xcode IDE.

The first time make is run with WANT_WIN_QT=1 after this is in place,
all the .moc files will be rebuilt and the subset of .cpp files which
include them will be recompiled.  After that, the .moc files will be
rebuilt as needed--and only as needed--just like any other constructed
files.
2022-02-01 13:50:12 -08:00

1168 lines
49 KiB
Makefile

# NetHack Makefile.
# NetHack 3.7 Makefile.src $NHDT-Date: 1626967328 2021/07/22 15:22:08 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.128 $
# Copyright (c) 2018 by Pasi Kallinen
# NetHack may be freely redistributed. See license for details.
# Root of source tree:
NHSROOT=..
# newer makes predefine $(MAKE) to 'make' and do smarter processing of
# recursive make calls if $(MAKE) is used
# these makes allow $(MAKE) to be overridden by the environment if someone
# wants to (or has to) use something other than the standard make, so we do
# not want to unconditionally set $(MAKE) here
#
# unfortunately, some older makes do not predefine $(MAKE); if you have one of
# these, uncomment the following line
# (you will know that you have one if you get complaints about being unable
# to find 'makedefs')
# MAKE = make
# This makefile replaces the previous Makefile.unix, Makefile.xenix,
# Makefile.3B2, Makefile.att, and Makefile.tos.
# Set SYSTEM to one of:
# 'Sysunix' -- generic UNIX
# 'Sys3B2' -- AT&T 3B2, 3B5, etc.
# 'Sysatt' -- AT&T UNIXPC, 7300, 3B1
# 'SysV-AT' -- Microport 286 UNIX (put -DDUMB in CFLAGS)
# 'Systos' -- Atari
# 'SysBe' -- BeOS
SYSTEM = Sysunix
#
# Make sure that your bourne shell is specified here, as you have to spawn
# some of the commands (eg. depend) in bourne shell for them to work.
#
# For Systos users compiling on the ST, you'll either need a bourne shell
# clone or you'll need to do make depend, etc. by hand. In either case,
# the line below probably needs changing
SHELL=/bin/sh
# for Atari
# SHELL=E:/GEMINI2/MUPFEL.TTP
# Usually, the C compiler driver is used for linking:
#LINK=$(CC)
# If we're cross-compiling, a hints file will override this
# to a uniq target directory, but otherwise it just goes in
# ../src
TARGETPFX=
# Pick the SYSSRC and SYSOBJ lines corresponding to your desired operating
# system.
#
# for UNIX systems
SYSSRC = ../sys/share/ioctl.c ../sys/share/unixtty.c ../sys/unix/unixmain.c \
../sys/unix/unixunix.c ../sys/unix/unixres.c
SYSOBJ = $(TARGETPFX)ioctl.o $(TARGETPFX)unixmain.o $(TARGETPFX)unixtty.o \
$(TARGETPFX)unixunix.o $(TARGETPFX)unixres.o
#
# for Systos
# SYSSRC = ../sys/atari/tos.c ../sys/share/pcmain.c ../sys/share/pcsys.c \
# ../sys/share/pctty.c ../sys/share/pcunix.c
# SYSOBJ = $(TARGETPFX)tos.o $(TARGETPFX)pcmain.o $(TARGETPFX)pcsys.o \
# $(TARGETPFX)pctty.o $(TARGETPFX)pcunix.o
#
# for BeOS
#SYSSRC = ../sys/be/bemain.c ../sys/share/unixtty.c ../sys/share/ioctl.c
#SYSOBJ = $(TARGETPFX)bemain.o $(TARGETPFX)unixtty.o $(TARGETPFX)ioctl.o
# if you are using gcc as your compiler:
# uncomment the CC definition below if it's not in your environment
# if you get setcgtty() warnings during execution, you are feeding gcc
# a non-ANSI <sys/ioctl.h> -- either run fixincludes on it or use
# -traditional in CFLAGS
# CC = gcc
#
# For Bull DPX/2 systems at B.O.S. 2.0 or higher use the following:
#
# CC = gcc -ansi -D_BULL_SOURCE -D_XOPEN_SOURCE -D_POSIX_SOURCE
#
# If you are using GCC 2.2.2 or higher on a DPX/2, just use:
#
# CC = gcc -ansi
#
# For HP/UX 10.20 with GCC:
# CC = gcc -D_POSIX_SOURCE
#
# For cross-compiling, eg. with gcc on Linux (see also CXX further down):
# CC = arm-linux-gcc
#
#
# if you're debugging and want gcc to check as much as possible, use:
# CC = gcc -W -Wimplicit -Wreturn-type -Wunused -Wformat -Wswitch -Wshadow -Wcast-qual -Wwrite-strings -DGCC_WARN
# flags may have to be changed as required
# flags for 286 Xenix:
# CFLAGS = -Ml2t16 -O -LARGE -I../include
# LFLAGS = -Ml -F 4000 -SEG 512
# flags for 286 Microport SysV-AT
# CFLAGS = -DDUMB -Ml -I../include
# LFLAGS = -Ml
# flags for Atari gcc (3.2.1)
# CFLAGS = -O -I../include
# LFLAGS = -s
# flags for Atari gcc (3.3)
# CFLAGS = -mshort -O2 -fomit-frame-pointer -I../include
# LFLAGS = -mshort -s
# flags for AIX 3.1 cc on IBM RS/6000 to define
# a suitable subset of standard libraries
# (note that there is more info regarding the "-qchars=signed"
# switch in file Install.unx note 8)
# CFLAGS = -D_NO_PROTO -D_XOPEN_SOURCE -O -I../include -qchars=signed
#
# Some of our subroutines are complex enough that this is required for full
# optimization under AIX 3.2 (I don't know about 3.1).
#
# CFLAGS = -D_NO_PROTO -D_XOPEN_SOURCE -D_ALL_SOURCE -O -I../include -qchars=signed -qmaxmem=5000
# flags for A/UX 2.01 using native cc or c89
# gcc predefines AUX so that's not needed there
# Remember to use -lcurses for WINLIB below !
# CFLAGS = -ZS -D_POSIX_SOURCE -O -I../include -DAUX
# flags for IRIX 4.0.x using native cc
# The include files are __STDC__, but have bugs involving const
# CFLAGS = -O -I../include -D__STDC__ -Dconst= -woff 100,293
# LFLAGS = -s
# flags for BSD/OS 2.0
# CFLAGS = -O -I../include -I/usr/X11/include
# LFLAGS = -L/usr/X11/lib
# flags for Linux
# compile normally
# CFLAGS = -O2 -fomit-frame-pointer -I../include
# LFLAGS = -L/usr/X11R6/lib
# OR compile backwards compatible a.out format
# CFLAGS = -O2 -b i486-linuxaout -fomit-frame-pointer -I../include
# LFLAGS = -b i486-linuxaout -L/usr/X11R6/lib
# flags for BeOS
# on a Mac/BeBox:
#CC = mwcc
#CFLAGS = -r -I../include
#LINK = mwld
#LFLAGS = -map nethack.xMAP
# on Intel:
#CFLAGS = -O -I../include
#LINK = gcc
#LFLAGS = -Xlinker -soname=_APP_
# Compile with PDCurses installed in a separate directory that doesn't
# conflict with the system curses/ncurses library
#CFLAGS = -O -I../include -I/usr/local/include/pdcurses
# Same as above, but for XCurses
#CFLAGS = -O -DXCURSES -I../include -I/usr/local/include/pdcurses
# Compile against system curses library, such as ncurses
#CFLAGS = -O -I../include
#
# files in ../win/X11 (relative to src) are passed $(CFLAGS) $(X11CFLAGS)
# and by default will find <X11/foo.h> in /usr/include/X11/foo.h;
# can be overridden via hints; post-10.7 OSX with XQuartz uses
# X11CFLAGS=-I/opt/X11/include to find <X11/foo.h> in /opt/X11/include/X11/foo.h
#X11CFLAGS=
# flags for debugging:
# CFLAGS = -g -I../include
#CFLAGS = -O -I../include
#LFLAGS =
# The Qt and Be window systems are written in C++, while the rest of
# NetHack is standard C. If using Qt, uncomment the LINK line here to get
# the C++ libraries linked in.
CXXFLAGS = $(CCXXFLAGS) -I. -I$(QTDIR)/include $(QTCXXFLAGS)
CXX ?= g++
MOC ?= moc
MOCPATH ?= $(QTDIR)/bin/$(MOC)
#LINK=g++
# The default is for the TARGET_* variables to match the defaults.
# If we're cross-compiling these will get overridden elsewhere, likely via
# a hints file. TARGETPFX was set above earlier.
TARGET_CC = $(CC)
TARGET_CFLAGS = $(CFLAGS)
TARGET_LINK = $(LINK)
TARGET_LFLAGS = $(LFLAGS)
TARGET_CXX = $(CXX)
TARGET_CXXFLAGS = $(CXXFLAGS)
TARGET_LIBS = $(LIBS)
# we specify C preprocessor flags via CFLAGS; files built with default rules
# might include $(CPPFLAGS) which could get a value from user's environment;
# we avoid that by forcing it empty rather than by overriding default rules
CPPFLAGS =
# file for regular expression matching
REGEXOBJ = $(TARGETPFX)posixregex.o
#REGEXOBJ = $(TARGETPFX)pmatchregex.o
#REGEXOBJ = $(TARGETPFX)cppregex.o
# Set the WINSRC, WINOBJ, and WINLIB lines to correspond to your desired
# combination of windowing systems. Also set windowing systems in config.h.
# Note that if you are including multiple tiled window systems, you don't
# want two copies of tile.o, so comment out all but the first.
#
# files for a straight tty port using no native windowing system
WINTTYSRC = ../win/tty/getline.c ../win/tty/termcap.c ../win/tty/topl.c \
../win/tty/wintty.c
WINTTYOBJ = $(TARGETPFX)getline.o $(TARGETPFX)termcap.o $(TARGETPFX)topl.o \
$(TARGETPFX)wintty.o
#
# Files for curses interface
WINCURSESSRC = ../win/curses/cursmain.c ../win/curses/curswins.c \
../win/curses/cursmisc.c ../win/curses/cursdial.c \
../win/curses/cursstat.c ../win/curses/cursinit.c \
../win/curses/cursmesg.c ../win/curses/cursinvt.c
WINCURSESOBJ = $(TARGETPFX)cursmain.o $(TARGETPFX)curswins.o \
$(TARGETPFX)cursmisc.o $(TARGETPFX)cursdial.o \
$(TARGETPFX)cursstat.o $(TARGETPFX)cursinit.o \
$(TARGETPFX)cursmesg.o $(TARGETPFX)cursinvt.o
#
# files for an X11 port
# (tile.c is a generated source file)
WINX11SRC = ../win/X11/Window.c ../win/X11/dialogs.c ../win/X11/winX.c \
../win/X11/winmap.c ../win/X11/winmenu.c ../win/X11/winmesg.c \
../win/X11/winmisc.c ../win/X11/winstat.c ../win/X11/wintext.c \
../win/X11/winval.c tile.c
WINX11OBJ = $(TARGETPFX)Window.o $(TARGETPFX)dialogs.o $(TARGETPFX)winX.o \
$(TARGETPFX)winmap.o $(TARGETPFX)winmenu.o $(TARGETPFX)winmesg.o \
$(TARGETPFX)winmisc.o $(TARGETPFX)winstat.o $(TARGETPFX)wintext.o \
$(TARGETPFX)winval.o $(TARGETPFX)tile.o
#
# Files for a Qt 3 port (renamed since nethack 3.6.x)
#
#WINQT3SRC = ../win/Qt3/qt3_win.cpp ../win/Qt3/qt3_clust.cpp \
# ../win/Qt3/qt3tableview.cpp
#WINQT3OBJ = $(TARGETPFX)qt3_win.o $(TARGETPFX)qt3_clust.o \
$(TARGETPFX)qt3tableview.o $(TARGETPFX)tile.o
# empty values for 'make depend'
WINQT3SRC =
WINQT3OBJ =
#
# Files for a Qt 4 or 5 port
#
WINQTSRC = ../win/Qt/qt_bind.cpp ../win/Qt/qt_click.cpp \
../win/Qt/qt_clust.cpp ../win/Qt/qt_delay.cpp \
../win/Qt/qt_glyph.cpp ../win/Qt/qt_icon.cpp ../win/Qt/qt_inv.cpp \
../win/Qt/qt_key.cpp ../win/Qt/qt_line.cpp ../win/Qt/qt_main.cpp \
../win/Qt/qt_map.cpp ../win/Qt/qt_menu.cpp ../win/Qt/qt_msg.cpp \
../win/Qt/qt_plsel.cpp ../win/Qt/qt_rip.cpp ../win/Qt/qt_set.cpp \
../win/Qt/qt_stat.cpp ../win/Qt/qt_str.cpp ../win/Qt/qt_streq.cpp \
../win/Qt/qt_svsel.cpp ../win/Qt/qt_win.cpp ../win/Qt/qt_xcmd.cpp \
../win/Qt/qt_yndlg.cpp
WINQTOBJ = $(TARGETPFX)qt_bind.o $(TARGETPFX)qt_click.o \
$(TARGETPFX)qt_clust.o $(TARGETPFX)qt_delay.o \
$(TARGETPFX)qt_glyph.o $(TARGETPFX)qt_icon.o \
$(TARGETPFX)qt_inv.o $(TARGETPFX)qt_key.o $(TARGETPFX)qt_line.o \
$(TARGETPFX)qt_main.o $(TARGETPFX)qt_map.o $(TARGETPFX)qt_menu.o \
$(TARGETPFX)qt_msg.o $(TARGETPFX)qt_plsel.o $(TARGETPFX)qt_rip.o \
$(TARGETPFX)qt_set.o $(TARGETPFX)qt_stat.o $(TARGETPFX)qt_str.o \
$(TARGETPFX)qt_streq.o $(TARGETPFX)qt_svsel.o $(TARGETPFX)qt_win.o \
$(TARGETPFX)qt_xcmd.o $(TARGETPFX)qt_yndlg.o $(TARGETPFX)tile.o
# Files for Shim windowing interface for libnh -- doesn't do anything,
# just passes along the API calls to the library
#
WINSHIMSRC = ../win/shim/winshim.c
WINSHIMOBJ = winshim.o
#
# Files for a BeOS InterfaceKit port -- not ready for prime time
WINBESRC =
WINBEOBJ =
#WINBESRC = ../win/BeOS/winbe.cpp ../win/BeOS/NHWindow.cpp \
# ../win/BeOS/NHMenuWindow.cpp ../win/BeOS/NHMapWindow.cpp tile.c
#WINBEOBJ = $(TARGETPFX)winbe.o $(TARGETPFX)NHWindow.o \
# $(TARGETPFX)NHMenuWindow.o $(TARGETPFX)NHMapWindow.o \
# $(TARGETPFX)tile.o
#
#
#WINSRC = $(WINTTYSRC)
#WINOBJ = $(WINTTYOBJ)
#
# Curses - Karl Garrison, Tangles
#WINSRC = $(WINCURSESSRC)
#WINOBJ = $(WINCURSESOBJ)
#
# on some systems the termcap library is in -ltermcap or -lcurses
# on 386 Xenix, the -ltermlib tputs() seems not to work; use -lcurses instead
# Sysatt uses shared library in lieu of this option
# Systos needs -lcurses16 if you use -mshort
# AIX 3.1 on RS/6000 likes -lcurses if TERMINFO defined in unixconf.h
# and -ltermcap otherwise
# Linux uses -lncurses (newer) or -ltermcap (older)
# Be uses -ltermcap
#
# libraries for tty ports
# WINTTYLIB = -ltermcap
# WINTTYLIB = -lcurses
# WINTTYLIB = -lcurses16
# WINTTYLIB = -lncurses
#WINTTYLIB = -ltermlib
#
# libraries for X11
# If USE_XPM is defined in config.h, you will also need -lXpm here.
#WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11
# WINX11LIB = -lXaw -lXmu -lXt -lX11
# WINX11LIB = -lXaw -lXmu -lXext -lXt -lXpm -lX11 -lm
# WINX11LIB = -lXaw -lXmu -lXpm -lXext -lXt -lX11 -lSM -lICE -lm # BSD/OS 2.0
#
#
# libraries for Qt 3
WINQT3LIB = -L$(QTDIR)/lib -lqt
#
# libraries for Qt 4
WINQT4LIB = `pkg-config QtGui --libs`
#
# libraries for Qt 5 (use with WINQTSRC and WINQTOBJ)
WINQT5LIB = `pkg-config Qt5Gui Qt5Widgets Qt5Multimedia --libs`
#
# libraries for KDE (with Qt)
WINKDELIB = -lkdecore -lkdeui -lXext
#
# libraries for BeOS
WINBELIB = -lbe
#
# libraries for curses port
# link with ncurses
WINCURSESLIB = -lncurses
# link with pdcurses for SDL, installed in a separate directory
#WINCURSESLIB = -L/usr/local/lib/pdcurses -lpdcurses -lSDL
# same as above, for XCurses
#WINCURSESLIB = -L/usr/local/lib/pdcurses -lXCurses -lXawM -lXmu -lXext -lXt -lX11
#
#WINLIB = $(WINTTYLIB)
#
# For Curses
#WINLIB = $(WINCURSESLIB)
#
# some platforms need to build the support libraries
# BUILDMORE = $(TARGETPFX)pdcurses.a
# any other strange libraries your system needs (for Sysunix only -- the more
# specialized targets should already be right)
#
# on HP-UX 8.x, the malloc(3x) routines in libmalloc.a seem to align things
# better than the malloc(3) ones in libc.a
# LIBS = -lmalloc
#
# DPX/2's also use the malloc(3x) routines. In addition, if you are building
# for X11, you must include libinet.a.
# LIBS = -lmalloc -linet
#
# Linux NetHack uses some bsd style ioctl functions, thus it is necessary to
# use the bsd libs. (Only if still compiling as BSD in unixconf.h; recent
# versions compile fine using SYSV without this.)
# LIBS = -lbsd
#
# for CYGWIN32 aka cygwin 1.1.1
# LIBS = -lcygwin
#
# Solaris 2.x seems to work with the following
# LIBS = -lsocket -lnsl
#
# IRIX 4.0.x needs -lsun if NIS (YP) is being used for passwd file lookup
# LIBS = -lsun
#
# If ZLIB_COMP is defined in config.h this is necessary to link with zlib.
# LIBS = -lz
#
# LIBS =
# make NetHack
GAME = nethack
# GAME = nethack.prg
GAMEBIN = $(GAME)
# if you defined RANDOM in unixconf.h since your system did not come
# with a reasonable random number generator
# RANDOBJ = $(TARGETPFX)random.o
RANDOBJ =
# used by `make depend' to reconstruct this Makefile; you shouldn't need this
# at all but can override with 'make AWK=nawk' or 'make AWK=gawk' if necessary
AWK = awk
# when using 'makedefs -v', also force dat/gitinfo.txt to be up to date;
# changing this to 0 will change the behavior to only make that file if
# it doesn't already exist; to skip it completely, create an empty file
# of that name and also set this to 0; there shouldn't be any need to
# skip it--if nethack's sources don't reside in a git repository than
# the script which creates that file will fail benignly and 'makedefs -v'
# will proceed without it
GITINFO=1
# if you change this to 1, feedback while building will omit -Dthis -Wthat
# -Isomewhere so that each file being compiled is listed on one short line;
# it requires support for '$<' in rules with more than one prerequisite
# (rather than just in suffix default rule), such as is implemented by
# gnu make and others which have picked up its extensions;
# allowed values are 0, 1, and empty (which behaves like 0)
QUIETCC=0
# ----------------------------------------
#
# Nothing below this line should have to be changed.
#
# Other things that have to be reconfigured are in config.h,
# {unixconf.h, pcconf.h}, and possibly system.h
# Add rule for possible cross-compiler
$(TARGETPFX)%.o : %.c
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ $<
# Verbosity definitions, begin
# Set QUIETCC=1 above to output less feedback while building.
# CC and CXX obey verbosity, LD and LINK don't.
# AT is @ when not verbose, empty otherwise
ACTUAL_CC := $(CC)
ACTUAL_CXX := $(CXX)
ACTUAL_LD := $(LD)
ACTUAL_LINK := $(LINK)
CC_V0 = $(ACTUAL_CC)
CC_V = $(CC_V0)
CC_V1 = @echo "[CC] $<"; $(ACTUAL_CC)
CC = $(CC_V$(QUIETCC))
CXX_V0 = $(ACTUAL_CXX)
CXX_V = $(CXX_V0)
CXX_V1 = @echo "[CXX] $<"; $(ACTUAL_CXX)
CXX = $(CXX_V$(QUIETCC))
# LD and LINK might be based on invoking CC and may not be able to substitute
# for QUIETCC, so feedback from them is handled differently (via $AT)
LD = $(ACTUAL_LD)
LINK = $(ACTUAL_LINK)
AT_V0 :=
AT_V := $(AT_V0)
AT_V1 := @
AT = $(AT_V$(QUIETCC))
# Verbosity, end
# verbosity-adjacent; these will already have 'real' values if hints have
# set up cross-compiling, in which case these assignments will be no-ops
PREGAME=@true
CLEANMORE=@true
PACKAGE=@true
MAKEDEFS = ../util/makedefs
# -lm required by lua
LUALIB = ../lib/lua/liblua.a -lm
# timestamp files to reduce `make' overhead and shorten .o dependency lists
CONFIG_H = ../src/config.h-t
HACK_H = ../src/hack.h-t
# all .c that are part of the main NetHack program and are not operating- or
# windowing-system specific. Do not include date.c in this list.
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
# all operating-system-dependent .c (for dependencies and such)
SYSCSRC = ../sys/share/pcmain.c ../sys/share/pcsys.c \
../sys/share/pctty.c ../sys/share/pcunix.c \
../sys/share/pmatchregex.c ../sys/share/posixregex.c \
../sys/share/random.c \
../sys/share/ioctl.c ../sys/share/unixtty.c ../sys/unix/unixmain.c \
../sys/unix/unixunix.c ../sys/unix/unixres.c
SYSCXXSRC = ../sys/share/cppregex.cpp
# generated source files (tile.c is handled separately via WINxxxSRC)
GENCSRC = #tile.c
# all windowing-system-dependent .c (for dependencies and such)
WINCSRC = $(WINTTYSRC) $(WINCURSESSRC) $(WINX11SRC) $(WINSHIMSRC)
# all windowing-system-dependent .cpp (for dependencies and such)
WINCXXSRC = $(WINQTSRC) $(WINQT3SRC) $(WINBESRC)
# Files for window system chaining. Requires SYSCF; include via HINTSRC/HINTOBJ
CHAINSRC = ../win/chain/wc_chainin.c ../win/chain/wc_chainout.c \
../win/chain/wc_trace.c
CHAINOBJ = $(TARGETPFX)wc_chainin.o $(TARGETPFX)wc_chainout.o \
$(TARGETPFX)wc_trace.o
# .c files for this version (for date.h)
VERSOURCES = $(HACKCSRC) $(SYSSRC) $(WINSRC) $(CHAINSRC) $(GENCSRC)
# .c files for all versions using this Makefile (for lint and tags)
CSOURCES = $(HACKCSRC) $(SYSCSRC) $(WINCSRC) $(CHAINSRC) $(GENCSRC)
# all .h files except date.h, which would
# cause dependency loops if run through "make depend"
# and dgn_file.h, special level & dungeon files.
#
HACKINCL = align.h artifact.h artilist.h attrib.h botl.h \
color.h config.h config1.h context.h coord.h decl.h \
display.h dlb.h dungeon.h engrave.h extern.h flag.h fnamesiz.h \
func_tab.h global.h warnings.h hack.h lint.h mextra.h mfndpos.h \
micro.h mkroom.h monattk.h mondata.h monflag.h monst.h monsters.h \
obj.h objects.h objclass.h optlist.h patchlevel.h pcconf.h \
permonst.h prop.h rect.h region.h sym.h defsym.h rm.h sp_lev.h \
spell.h sys.h system.h tcap.h timeout.h tradstdc.h trap.h unixconf.h \
vision.h vmsconf.h wintty.h wincurs.h winX.h winprocs.h wintype.h \
you.h youprop.h
HSOURCES = $(HACKINCL) dgn_file.h
# the following .o's _must_ be made before any others (for makedefs)
FIRSTOBJ = monst.o objects.o
HOSTOBJ = $(FIRSTOBJ) alloc.o drawing.o
#
# $(TARGETPFX)date.o is not included in this list
#
HOBJ = $(TARGETPFX)allmain.o $(TARGETPFX)alloc.o \
$(TARGETPFX)apply.o $(TARGETPFX)artifact.o $(TARGETPFX)attrib.o \
$(TARGETPFX)ball.o $(TARGETPFX)bones.o $(TARGETPFX)botl.o \
$(TARGETPFX)cmd.o $(TARGETPFX)dbridge.o $(TARGETPFX)decl.o \
$(TARGETPFX)detect.o $(TARGETPFX)dig.o $(TARGETPFX)display.o \
$(TARGETPFX)dlb.o $(TARGETPFX)do.o $(TARGETPFX)do_name.o \
$(TARGETPFX)do_wear.o $(TARGETPFX)dog.o $(TARGETPFX)dogmove.o \
$(TARGETPFX)dokick.o $(TARGETPFX)dothrow.o $(TARGETPFX)drawing.o \
$(TARGETPFX)dungeon.o $(TARGETPFX)eat.o $(TARGETPFX)end.o \
$(TARGETPFX)engrave.o $(TARGETPFX)exper.o $(TARGETPFX)explode.o \
$(TARGETPFX)extralev.o $(TARGETPFX)files.o $(TARGETPFX)fountain.o \
$(TARGETPFX)hack.o $(TARGETPFX)hacklib.o $(TARGETPFX)insight.o \
$(TARGETPFX)invent.o $(TARGETPFX)isaac64.o $(TARGETPFX)light.o \
$(TARGETPFX)lock.o $(TARGETPFX)mail.o $(TARGETPFX)makemon.o \
$(TARGETPFX)mcastu.o $(TARGETPFX)mdlib.o \
$(TARGETPFX)mhitm.o $(TARGETPFX)mhitu.o $(TARGETPFX)minion.o \
$(TARGETPFX)mklev.o $(TARGETPFX)mkmap.o $(TARGETPFX)mkmaze.o \
$(TARGETPFX)mkobj.o $(TARGETPFX)mkroom.o $(TARGETPFX)mon.o \
$(TARGETPFX)mondata.o $(TARGETPFX)monmove.o $(TARGETPFX)monst.o \
$(TARGETPFX)mplayer.o $(TARGETPFX)mthrowu.o $(TARGETPFX)muse.o \
$(TARGETPFX)music.o $(TARGETPFX)nhlua.o $(TARGETPFX)nhlsel.o \
$(TARGETPFX)nhlobj.o $(TARGETPFX)objects.o $(TARGETPFX)o_init.o \
$(TARGETPFX)objnam.o $(TARGETPFX)options.o $(TARGETPFX)pager.o \
$(TARGETPFX)pickup.o $(TARGETPFX)pline.o $(TARGETPFX)polyself.o \
$(TARGETPFX)potion.o $(TARGETPFX)pray.o $(TARGETPFX)priest.o \
$(TARGETPFX)quest.o $(TARGETPFX)questpgr.o $(TARGETPFX)read.o \
$(TARGETPFX)rect.o $(TARGETPFX)region.o $(TARGETPFX)restore.o \
$(TARGETPFX)rip.o $(TARGETPFX)rnd.o $(TARGETPFX)role.o \
$(TARGETPFX)rumors.o $(TARGETPFX)save.o $(TARGETPFX)sfstruct.o \
$(TARGETPFX)shk.o $(TARGETPFX)shknam.o $(TARGETPFX)sit.o \
$(TARGETPFX)sounds.o $(TARGETPFX)sp_lev.o $(TARGETPFX)spell.o \
$(TARGETPFX)symbols.o $(TARGETPFX)sys.o $(TARGETPFX)steal.o \
$(TARGETPFX)steed.o $(TARGETPFX)teleport.o $(TARGETPFX)timeout.o \
$(TARGETPFX)topten.o $(TARGETPFX)track.o $(TARGETPFX)trap.o \
$(TARGETPFX)u_init.o $(TARGETPFX)uhitm.o $(TARGETPFX)vault.o \
$(TARGETPFX)vision.o $(TARGETPFX)weapon.o \
$(TARGETPFX)were.o $(TARGETPFX)wield.o $(TARGETPFX)windows.o \
$(TARGETPFX)wizard.o $(TARGETPFX)worm.o $(TARGETPFX)worn.o \
$(TARGETPFX)write.o $(TARGETPFX)zap.o \
$(REGEXOBJ) $(RANDOBJ) $(SYSOBJ) $(WINOBJ) $(HINTOBJ) \
$(TARGETPFX)version.o
#
DATE_O = $(TARGETPFX)date.o
# the .o files from the HACKCSRC, SYSSRC, and WINSRC lists
# first target is also the default target for 'make' without any arguments
all: $(GAME)
@echo ""
pregame:
$(PREGAME)
$(GAME): pregame $(SYSTEM)
@echo "$(GAME) is up to date."
Sysunix: $(HOSTOBJ) $(HOBJ) $(DATE_O) $(BUILDMORE) Makefile
@echo "Linking $(GAME)."
$(AT)$(TARGET_LINK) $(TARGET_LFLAGS) -o $(GAMEBIN) \
$(HOBJ) $(DATE_O) $(WINLIB) $(TARGET_LIBS) $(LUALIB)
@touch Sysunix
Sys3B2: $(HOSTOBJ) $(HOBJ) $(DATE_O) $(BUILDMORE) Makefile
@echo "Linking $(GAME)."
$(AT)$(TARGET_LINK) $(TARGET_LFLAGS) -o $(GAMEBIN) \
$(HOBJ) $(DATE_O) $(WINLIB) $(LUALIB) -lmalloc
@touch Sys3B2
Sysatt: $(HOSTOBJ) $(HOBJ) $(DATE_O) $(BUILDMORE) Makefile
@echo "Loading $(GAME)."
$(AT)$(LD) $(TARGET_LFLAGS) /lib/crt0s.o /lib/shlib.ifile -o $(GAMEBIN) \
$(HOSTOBJ) $(HOBJ) $(DATE_O) $(LUALIB)
@touch Sysatt
Systos: $(HOSTOBJ) $(HOBJ) $(DATE_O) $(BUILDMORE) Makefile
@echo "Linking $(GAME)."
$(AT)$(TARGET_LINK) $(TARGET_LFLAGS) -o $(GAMEBIN) \
$(HOBJ) $(DATE_O) $(WINLIB) $(LUALIB)
@touch Systos
SysV-AT: DUMB.Setup $(HOSTOBJ) $(HOBJ) $(DATE_O) $(BUILDMORE) Makefile
@echo "Linking $(GAME)."
$(AT)$(TARGET_LINK) $(TARGET_LFLAGS) -o $(GAMEBIN) \
$(HOBJ) $(DATE_O) $(WINLIB) $(LUALIB)
@touch SysV-AT
SysBe: $(HOSTOBJ) $(HOBJ) $(DATE_O) $(BUILDMORE) Makefile
@echo "Linking $(GAME)."
$(AT)$(TARGET_LINK) $(TARGET_LFLAGS) -o $(GAME) \
$(HOBJ) $(DATE_O) $(WINLIB) $(TARGET_LIBS) $(LUALIB)
@xres -o $(GAME) ../win/BeOS/nethack.rsrc
@mimeset -f $(GAME)
@touch SysBe
DUMB.Setup: ../include/extern.h
cp ../include/extern.h ../include/extern.h.BAK
cat ../include/extern.h | \
sed -e '/^E\ int\ /!b' \
-e '/[^;/ ]$$/N' \
-e '/[(][*]occupation[)]/b' \
-e '/[(][*]afternmv[)]/b' \
-e '/float_down/b' \
-e '/done1/b' \
-e '/identify/b' \
-e '/Hear_again/b' \
-e '/hangup/b' \
-e 's/^\(.*\)$$/\/\* \1 \/\*\*\//' | \
sed -e '/^E\ void\ /!b' \
-e '/[^;/ ]$$/N' \
-e 's/^\(.*\)$$/\/\* \1 \/\*\*\//' \
>../include/extern.DUMB
cp ../include/extern.DUMB ../include/extern.h
@touch DUMB.Setup
../lib/lua/liblua.a ../include/nhlua.h:
@( cd .. ; $(MAKE) lua_support )
# dependencies for makedefs and its outputs, which the util
# Makefile is responsible for keeping up to date
#
# special rules, to force update of makedefs, real dependencies should be
# below in the 'make depend' output.
monst.o:
$(CC) $(CFLAGS) -c -o $@ monst.c
@rm -f $(MAKEDEFS)
objects.o:
$(CC) $(CFLAGS) -c -o $@ objects.c
@rm -f $(MAKEDEFS)
# outdated Qt 3 windowport meta-object-compiler output
qt3_kde0.moc: ../win/Qt3/qt3_kde0.h
$(QTDIR)/bin/moc -o qt3kde0.moc ../win/Qt3/qt3_kde0.h
qt3_win.moc: ../win/Qt3/qt3_win.h
$(QTDIR)/bin/moc -o qt3win.moc ../win/Qt3/qt3_win.h
qt3tableview.moc: ../win/Qt3/qt3tableview.h
$(QTDIR)/bin/moc -o qt3tableview.moc ../win/Qt3/qt3tableview.h
# for Qt 5 and 6, template rules to build qt_xyz.moc from corresponding
# ../win/Qt/qt_xyz.h are in sys/unix/hints/compiler.370 and get added
# to src/Makefile if the appropriate hints file gets used with setup.sh;
# so, build support for the Qt interface requires the use of hints...
# build monst.o and objects.o before executing '$(MAKE) makedefs'
$(MAKEDEFS): $(FIRSTOBJ) \
../util/makedefs.c ../src/mdlib.c $(CONFIG_H) \
../include/permonst.h ../include/monsters.h \
../include/objclass.h ../include/objects.h ../include/sym.h \
../include/defsym.h ../include/artilist.h \
../include/dungeon.h ../include/obj.h ../include/monst.h \
../include/you.h ../include/flag.h ../include/dlb.h \
../include/patchlevel.h
@( cd ../util ; $(MAKE) makedefs )
# Source files formerly created by 'makedefs' at build time
# but no longer used.
# Each is given an artificial dependency upon the one before
# so that parallel makes will have to build them sequentially.
# (More for documentation than effect; 'make' should know not
# to try to build $(MAKEDEFS) for bar.h while it is in the
# process of building it for foo.h.)
../include/onames.h: $(MAKEDEFS)
@( cd ../util ; $(MAKE) ../include/onames.h )
../include/pm.h: $(MAKEDEFS)
@( cd ../util ; $(MAKE) ../include/pm.h )
# Created at build time for configurations which support tiles,
# but not by makedefs so not connected to the others.
tile.c: ../win/share/tilemap.c $(HACK_H)
@( cd ../util ; $(MAKE) ../src/tile.c )
../win/gnome/gn_rip.h: ../win/X11/rip.xpm
cp ../win/X11/rip.xpm ../win/gnome/gn_rip.h
$(TARGETPFX)sfstruct.o: sfstruct.c $(HACK_H)
# date.c should be recompiled any time any of the source or include code
# is modified.
$(TARGETPFX)date.o: date.c $(HACK_H) $(HACKCSRC) $(HOBJ)
$(TARGET_CC) $(TARGET_CFLAGS) $(GITHASH) $(GITBRANCH) -c -o $@ date.c
# date.h should be remade any time any of the source or include code
# is modified. Unfortunately, this would make the contents of this
# file far more complex. Since "hack.h" depends on most of the include
# files, we kludge around this by making date.h dependent on hack.h,
# even though it doesn't include this file.
# Do NOT include ../dat/gitinfo.txt as either a prerequisite or target.
# 'makedefs -v' processes it when present and ignores it if not.
#
../include/date.h: ../util/makedefs $(VERSOURCES) $(HACK_H)
-$(SHELL) ../sys/unix/gitinfo.sh $(GITINFO) #before 'makedefs -v'
../util/makedefs -v
lint:
# lint cannot have -p here because (i) capitals are meaningful:
# [Ww]izard, (ii) identifiers may coincide in the first six places:
# doweararm() versus dowearring().
# _flsbuf comes from <stdio.h>, a bug in the system libraries.
@echo lint -axbh -DLINT ...
@lint -axbh -I../include -DLINT $(CSOURCES) | sed '/_flsbuf/d'
tags: $(CSOURCES)
@echo ctags -tw ...
@ctags -tw $(CSOURCES)
@( cd ../include ; ctags -tw $(HSOURCES) )
@( cd ../util ; $(MAKE) tags )
clean:
-rm -f *.o $(HACK_H) $(CONFIG_H)
-rm -f monstr.c vis_tab.c ../include/vis_tab.h #obsolete generated files
$(CLEANMORE)
spotless: clean
-rm -f a.out core $(GAMEBIN) Sys*
-rm -f ../include/nhlua.h
-rm -f ../include/date.h #created but no longer used, at least by core
-rm -f ../include/onames.h ../include/pm.h #obsolete generated files
-rm -f tile.c *.moc moc.qt*
-rm -f ../win/gnome/gn_rip.h
package:
$(PACKAGE)
@echo packaging complete.
depend: ../sys/unix/depend.awk \
$(SYSCSRC) $(WINCSRC) $(SYSCXXSRC) $(WINCXXSRC) \
$(CHAINSRC) $(GENCSRC) $(HACKCSRC)
$(AWK) -f ../sys/unix/depend.awk ../include/*.h ../win/*/*.h \
$(SYSCSRC) $(WINCSRC) $(SYSCXXSRC) $(WINCXXSRC) \
$(CHAINSRC) $(GENCSRC) $(HACKCSRC) >makedep
@echo '/^# DO NOT DELETE THIS LINE OR CHANGE ANYTHING BEYOND IT/+2,$$d' >eddep
@echo '$$r makedep' >>eddep
@echo 'w' >>eddep
@cp Makefile Makefile.bak
ed - Makefile < eddep
@rm -f eddep makedep
@echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile
@echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile
@echo '# see make depend above' >> Makefile
- diff Makefile.bak Makefile
@rm -f Makefile.bak
# DO NOT DELETE THIS LINE OR CHANGE ANYTHING BEYOND IT
# config.h timestamp
$(CONFIG_H): ../include/config.h ../include/config1.h ../include/patchlevel.h \
../include/tradstdc.h ../include/global.h ../include/coord.h \
../include/vmsconf.h ../include/system.h ../include/nhlua.h \
../include/unixconf.h ../include/pcconf.h ../include/micro.h \
../include/windconf.h ../include/warnings.h \
../include/fnamesiz.h
touch $(CONFIG_H)
# hack.h timestamp
$(HACK_H): ../include/hack.h $(CONFIG_H) ../include/lint.h ../include/align.h \
../include/dungeon.h ../include/sym.h ../include/defsym.h \
../include/mkroom.h ../include/artilist.h \
../include/objclass.h ../include/objects.h \
../include/youprop.h ../include/prop.h ../include/permonst.h \
../include/monattk.h ../include/monflag.h \
../include/monsters.h ../include/mondata.h \
../include/wintype.h ../include/context.h ../include/rm.h \
../include/botl.h ../include/rect.h ../include/region.h \
../include/decl.h ../include/quest.h ../include/spell.h \
../include/color.h ../include/obj.h ../include/engrave.h \
../include/you.h ../include/attrib.h ../include/monst.h \
../include/mextra.h ../include/skills.h ../include/timeout.h \
../include/trap.h ../include/flag.h ../include/vision.h \
../include/display.h ../include/winprocs.h ../include/sys.h
touch $(HACK_H)
#
$(TARGETPFX)pcmain.o: ../sys/share/pcmain.c $(HACK_H) ../include/dlb.h
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../sys/share/pcmain.c
$(TARGETPFX)pcsys.o: ../sys/share/pcsys.c $(HACK_H) ../include/wintty.h
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../sys/share/pcsys.c
$(TARGETPFX)pctty.o: ../sys/share/pctty.c $(HACK_H) ../include/wintty.h
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../sys/share/pctty.c
$(TARGETPFX)pcunix.o: ../sys/share/pcunix.c $(HACK_H) ../include/wintty.h
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../sys/share/pcunix.c
$(TARGETPFX)pmatchregex.o: ../sys/share/pmatchregex.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../sys/share/pmatchregex.c
$(TARGETPFX)posixregex.o: ../sys/share/posixregex.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../sys/share/posixregex.c
$(TARGETPFX)random.o: ../sys/share/random.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../sys/share/random.c
$(TARGETPFX)ioctl.o: ../sys/share/ioctl.c $(HACK_H) ../include/tcap.h
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../sys/share/ioctl.c
$(TARGETPFX)unixtty.o: ../sys/share/unixtty.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../sys/share/unixtty.c
$(TARGETPFX)unixmain.o: ../sys/unix/unixmain.c $(HACK_H) ../include/dlb.h
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../sys/unix/unixmain.c
$(TARGETPFX)unixunix.o: ../sys/unix/unixunix.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../sys/unix/unixunix.c
$(TARGETPFX)unixres.o: ../sys/unix/unixres.c $(CONFIG_H)
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../sys/unix/unixres.c
$(TARGETPFX)getline.o: ../win/tty/getline.c $(HACK_H) ../include/wintty.h \
../include/func_tab.h
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../win/tty/getline.c
$(TARGETPFX)termcap.o: ../win/tty/termcap.c $(HACK_H) ../include/wintty.h \
../include/tcap.h
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../win/tty/termcap.c
$(TARGETPFX)topl.o: ../win/tty/topl.c $(HACK_H) ../include/tcap.h \
../include/wintty.h
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../win/tty/topl.c
$(TARGETPFX)wintty.o: ../win/tty/wintty.c $(HACK_H) ../include/dlb.h \
../include/tcap.h ../include/wintty.h
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../win/tty/wintty.c
$(TARGETPFX)cursmain.o: ../win/curses/cursmain.c $(HACK_H) ../include/wincurs.h
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../win/curses/cursmain.c
$(TARGETPFX)curswins.o: ../win/curses/curswins.c $(HACK_H) \
../include/wincurs.h ../win/curses/curswins.h
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../win/curses/curswins.c
$(TARGETPFX)cursmisc.o: ../win/curses/cursmisc.c $(HACK_H) \
../include/wincurs.h ../win/curses/cursmisc.h \
../include/func_tab.h ../include/dlb.h
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../win/curses/cursmisc.c
$(TARGETPFX)cursdial.o: ../win/curses/cursdial.c $(HACK_H) \
../include/wincurs.h ../win/curses/cursdial.h \
../include/func_tab.h
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../win/curses/cursdial.c
$(TARGETPFX)cursstat.o: ../win/curses/cursstat.c $(HACK_H) \
../include/wincurs.h ../win/curses/cursstat.h
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../win/curses/cursstat.c
$(TARGETPFX)cursinit.o: ../win/curses/cursinit.c $(HACK_H) \
../include/wincurs.h ../win/curses/cursinit.h
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../win/curses/cursinit.c
$(TARGETPFX)cursmesg.o: ../win/curses/cursmesg.c $(HACK_H) \
../include/wincurs.h ../win/curses/cursmesg.h
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../win/curses/cursmesg.c
$(TARGETPFX)cursinvt.o: ../win/curses/cursinvt.c $(HACK_H) \
../include/wincurs.h ../win/curses/cursinvt.h
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../win/curses/cursinvt.c
$(TARGETPFX)Window.o: ../win/X11/Window.c ../include/xwindowp.h \
../include/xwindow.h $(CONFIG_H) ../include/lint.h \
../include/winX.h ../include/color.h ../include/wintype.h
$(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -c -o $@ ../win/X11/Window.c
$(TARGETPFX)dialogs.o: ../win/X11/dialogs.c $(CONFIG_H) ../include/lint.h \
../include/winX.h ../include/color.h ../include/wintype.h
$(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -c -o $@ ../win/X11/dialogs.c
$(TARGETPFX)winX.o: ../win/X11/winX.c $(HACK_H) ../include/winX.h \
../include/dlb.h ../include/xwindow.h ../win/X11/nh72icon \
../win/X11/nh56icon ../win/X11/nh32icon
$(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -c -o $@ ../win/X11/winX.c
$(TARGETPFX)winmap.o: ../win/X11/winmap.c ../include/xwindow.h $(HACK_H) \
../include/dlb.h ../include/winX.h ../include/tile2x11.h
$(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -c -o $@ ../win/X11/winmap.c
$(TARGETPFX)winmenu.o: ../win/X11/winmenu.c $(HACK_H) ../include/winX.h
$(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -c -o $@ ../win/X11/winmenu.c
$(TARGETPFX)winmesg.o: ../win/X11/winmesg.c ../include/xwindow.h $(HACK_H) \
../include/winX.h
$(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -c -o $@ ../win/X11/winmesg.c
$(TARGETPFX)winmisc.o: ../win/X11/winmisc.c $(HACK_H) ../include/func_tab.h \
../include/winX.h
$(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -c -o $@ ../win/X11/winmisc.c
$(TARGETPFX)winstat.o: ../win/X11/winstat.c $(HACK_H) ../include/winX.h \
../include/xwindow.h
$(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -c -o $@ ../win/X11/winstat.c
$(TARGETPFX)wintext.o: ../win/X11/wintext.c $(HACK_H) ../include/winX.h \
../include/xwindow.h
$(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -c -o $@ ../win/X11/wintext.c
$(TARGETPFX)winval.o: ../win/X11/winval.c $(HACK_H) ../include/winX.h
$(TARGET_CC) $(TARGET_CFLAGS) $(X11CFLAGS) -c -o $@ ../win/X11/winval.c
$(TARGETPFX)tile.o: tile.c $(HACK_H)
$(TARGETPFX)winshim.o: ../win/shim/winshim.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../win/shim/winshim.c
$(TARGETPFX)cppregex.o: ../sys/share/cppregex.cpp
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../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 ../include/dlb.h
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../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
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../win/Qt/qt_click.cpp
$(TARGETPFX)qt_clust.o: ../win/Qt/qt_clust.cpp ../win/Qt/qt_clust.h
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../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
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../win/Qt/qt_delay.cpp
$(TARGETPFX)qt_glyph.o: ../win/Qt/qt_glyph.cpp $(HACK_H) ../include/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
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../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
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../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
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../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
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../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
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../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
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../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
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../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
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../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
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../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
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../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
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../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
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../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
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../win/Qt/qt_stat.cpp
$(TARGETPFX)qt_str.o: ../win/Qt/qt_str.cpp ../win/Qt/qt_str.h
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../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
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../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
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../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
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../win/Qt/qt_win.cpp
$(TARGETPFX)qt_xcmd.o: ../win/Qt/qt_xcmd.cpp $(HACK_H) ../include/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
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../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
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $@ ../win/Qt/qt_yndlg.cpp
$(TARGETPFX)wc_chainin.o: ../win/chain/wc_chainin.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../win/chain/wc_chainin.c
$(TARGETPFX)wc_chainout.o: ../win/chain/wc_chainout.c $(HACK_H)
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../win/chain/wc_chainout.c
$(TARGETPFX)wc_trace.o: ../win/chain/wc_trace.c $(HACK_H) ../include/wintty.h \
../include/func_tab.h
$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ ../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) ../include/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) ../include/func_tab.h
$(TARGETPFX)dbridge.o: dbridge.c $(HACK_H)
$(TARGETPFX)decl.o: decl.c $(HACK_H)
$(TARGETPFX)detect.o: detect.c $(HACK_H) ../include/artifact.h
$(TARGETPFX)dig.o: dig.c $(HACK_H)
$(TARGETPFX)display.o: display.c $(HACK_H)
$(TARGETPFX)dlb.o: dlb.c $(CONFIG_H) ../include/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) ../include/mfndpos.h
$(TARGETPFX)dokick.o: dokick.c $(HACK_H)
$(TARGETPFX)dothrow.o: dothrow.c $(HACK_H)
$(TARGETPFX)drawing.o: drawing.c $(CONFIG_H) ../include/color.h \
../include/rm.h ../include/objclass.h ../include/defsym.h \
../include/objects.h ../include/sym.h
$(TARGETPFX)dungeon.o: dungeon.c $(HACK_H) ../include/dgn_file.h \
../include/dlb.h
$(TARGETPFX)eat.o: eat.c $(HACK_H)
$(TARGETPFX)end.o: end.c $(HACK_H) ../include/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) ../include/dlb.h ../include/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) ../include/isaac64.h
$(TARGETPFX)light.o: light.c $(HACK_H)
$(TARGETPFX)lock.o: lock.c $(HACK_H)
$(TARGETPFX)mail.o: mail.c $(HACK_H) ../include/mail.h
$(TARGETPFX)makemon.o: makemon.c $(HACK_H)
$(TARGETPFX)mcastu.o: mcastu.c $(HACK_H)
$(TARGETPFX)mdlib.o: mdlib.c $(CONFIG_H) ../include/permonst.h \
../include/align.h ../include/monattk.h ../include/monflag.h \
../include/monsters.h ../include/objclass.h \
../include/defsym.h ../include/objects.h ../include/sym.h \
../include/artilist.h ../include/dungeon.h ../include/obj.h \
../include/monst.h ../include/mextra.h ../include/you.h \
../include/attrib.h ../include/prop.h ../include/skills.h \
../include/context.h ../include/flag.h ../include/dlb.h
$(TARGETPFX)mhitm.o: mhitm.c $(HACK_H) ../include/artifact.h
$(TARGETPFX)mhitu.o: mhitu.c $(HACK_H) ../include/artifact.h
$(TARGETPFX)minion.o: minion.c $(HACK_H)
$(TARGETPFX)mklev.o: mklev.c $(HACK_H)
$(TARGETPFX)mkmap.o: mkmap.c $(HACK_H) ../include/sp_lev.h
$(TARGETPFX)mkmaze.o: mkmaze.c $(HACK_H) ../include/sp_lev.h
$(TARGETPFX)mkobj.o: mkobj.c $(HACK_H)
$(TARGETPFX)mkroom.o: mkroom.c $(HACK_H)
$(TARGETPFX)mon.o: mon.c $(HACK_H) ../include/mfndpos.h
$(TARGETPFX)mondata.o: mondata.c $(HACK_H)
$(TARGETPFX)monmove.o: monmove.c $(HACK_H) ../include/mfndpos.h \
../include/artifact.h
$(TARGETPFX)monst.o: monst.c $(CONFIG_H) ../include/permonst.h \
../include/align.h ../include/monattk.h ../include/monflag.h \
../include/monsters.h ../include/sym.h ../include/defsym.h \
../include/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) ../include/dlb.h
$(TARGETPFX)nhlsel.o: nhlsel.c $(HACK_H) ../include/sp_lev.h
$(TARGETPFX)nhlobj.o: nhlobj.c $(HACK_H) ../include/sp_lev.h
$(TARGETPFX)o_init.o: o_init.c $(HACK_H)
$(TARGETPFX)objects.o: objects.c $(CONFIG_H) ../include/obj.h \
../include/prop.h ../include/skills.h ../include/color.h \
../include/objclass.h ../include/defsym.h ../include/objects.h
$(TARGETPFX)objnam.o: objnam.c $(HACK_H)
$(TARGETPFX)options.o: options.c $(CONFIG_H) ../include/objclass.h \
../include/defsym.h ../include/objects.h ../include/flag.h \
$(HACK_H) ../include/tcap.h ../include/optlist.h
$(TARGETPFX)pager.o: pager.c $(HACK_H) ../include/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) ../include/mfndpos.h
$(TARGETPFX)quest.o: quest.c $(HACK_H)
$(TARGETPFX)questpgr.o: questpgr.c $(HACK_H) ../include/dlb.h \
../include/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) ../include/tcap.h
$(TARGETPFX)rip.o: rip.c $(HACK_H)
$(TARGETPFX)rnd.o: rnd.c $(HACK_H) ../include/isaac64.h
$(TARGETPFX)role.o: role.c $(HACK_H)
$(TARGETPFX)rumors.o: rumors.c $(HACK_H) ../include/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) ../include/artifact.h
$(TARGETPFX)sounds.o: sounds.c $(HACK_H)
$(TARGETPFX)sp_lev.o: sp_lev.c $(HACK_H) ../include/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) ../include/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) ../include/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) ../include/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) ../include/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
# IF YOU PUT STUFF HERE IT WILL GO AWAY
# see make depend above