1#	NetHack Makefile.
2#	SCCS Id: @(#)Makefile.src	3.4	2002/03/02
3
4# newer makes predefine $(MAKE) to 'make' and do smarter processing of
5# recursive make calls if $(MAKE) is used
6# these makes allow $(MAKE) to be overridden by the environment if someone
7# wants to (or has to) use something other than the standard make, so we do
8# not want to unconditionally set $(MAKE) here
9#
10# unfortunately, some older makes do not predefine $(MAKE); if you have one of
11# these, uncomment the following line
12# (you will know that you have one if you get complaints about being unable
13# to find 'makedefs')
14# MAKE = make
15
16# This makefile replaces the previous Makefile.unix, Makefile.xenix,
17# Makefile.3B2, Makefile.att, and Makefile.tos.
18# Set SYSTEM to one of:
19#	'Sysunix'	-- generic UNIX
20#	'Sys3B2'	-- AT&T 3B2, 3B5, etc.
21#	'Sysatt'	-- AT&T UNIXPC, 7300, 3B1
22#	'SysV-AT'	-- Microport 286 UNIX (put -DDUMB in CFLAGS)
23#	'Systos'	-- Atari
24#	'SysBe'		-- BeOS
25SYSTEM = Sysunix
26
27#
28# Make sure that your bourne shell is specified here, as you have to spawn
29# some of the commands (eg. depend) in bourne shell for them to work.
30#
31# For Systos users compiling on the ST, you'll either need a bourne shell
32# clone or you'll need to do make depend, etc. by hand. In either case,
33# the line below probably needs changing
34SHELL=/bin/sh
35# for Atari
36# SHELL=E:/GEMINI2/MUPFEL.TTP
37
38# Normally, the C compiler driver is used for linking:
39LINK=$(CC)
40
41# Pick the SYSSRC and SYSOBJ lines corresponding to your desired operating
42# system.
43#
44# for UNIX systems
45SYSSRC = ../sys/share/ioctl.c ../sys/share/unixtty.c ../sys/unix/unixmain.c \
46	../sys/unix/unixunix.c ../sys/unix/unixres.c
47SYSOBJ = ioctl.o unixmain.o unixtty.o unixunix.o unixres.o
48#
49# for Systos
50# SYSSRC = ../sys/atari/tos.c ../sys/share/pcmain.c ../sys/share/pcsys.c \
51#	../sys/share/pctty.c ../sys/share/pcunix.c
52# SYSOBJ = tos.o pcmain.o pcsys.o pctty.o pcunix.o
53#
54# for BeOS
55#SYSSRC = ../sys/be/bemain.c ../sys/share/unixtty.c ../sys/share/ioctl.c
56#SYSOBJ = bemain.o unixtty.o ioctl.o
57
58
59# if you are using gcc as your compiler:
60#	uncomment the CC definition below if it's not in your environment
61#	if you get setcgtty() warnings during execution, you are feeding gcc
62#		a non-ANSI <sys/ioctl.h> -- either run fixincludes on it or use
63#		-traditional in CFLAGS
64# CC = gcc
65#
66#	For Bull DPX/2 systems at B.O.S. 2.0 or higher use the following:
67#
68# CC = gcc -ansi -D_BULL_SOURCE -D_XOPEN_SOURCE -D_POSIX_SOURCE
69#
70#	If you are using GCC 2.2.2 or higher on a DPX/2, just use:
71#
72# CC = gcc -ansi
73#
74#	For HP/UX 10.20 with GCC:
75# CC = gcc -D_POSIX_SOURCE
76#
77#	For cross-compiling, eg. with gcc on Linux (see also CXX further down):
78# CC = arm-linux-gcc
79#
80#
81# if you're debugging and want gcc to check as much as possible, use:
82# CC = gcc -W -Wimplicit -Wreturn-type -Wunused -Wformat -Wswitch -Wshadow -Wcast-qual -Wwrite-strings -DGCC_WARN
83
84# flags may have to be changed as required
85# flags for 286 Xenix:
86# CFLAGS = -Ml2t16 -O -LARGE -I../include
87# LFLAGS = -Ml -F 4000 -SEG 512
88
89# flags for 286 Microport SysV-AT
90# CFLAGS = -DDUMB -Ml -I../include
91# LFLAGS = -Ml
92
93# flags for Atari gcc (3.2.1)
94# CFLAGS = -O -I../include
95# LFLAGS = -s
96# flags for Atari gcc (3.3)
97# CFLAGS = -mshort -O2 -fomit-frame-pointer -I../include
98# LFLAGS = -mshort -s
99
100# flags for AIX 3.1 cc on IBM RS/6000 to define
101# a suitable subset of standard libraries
102# (note that there is more info regarding the "-qchars=signed"
103# switch in file Install.unx note 8)
104# CFLAGS = -D_NO_PROTO -D_XOPEN_SOURCE -O -I../include -qchars=signed
105#
106# Some of our subroutines are complex enough that this is required for full
107# optimization under AIX 3.2 (I don't know about 3.1).
108#
109# CFLAGS = -D_NO_PROTO -D_XOPEN_SOURCE -D_ALL_SOURCE -O -I../include -qchars=signed -qmaxmem=5000
110
111# flags for A/UX 2.01 using native cc or c89
112# gcc predefines AUX so that's not needed there
113# Remember to use -lcurses for WINLIB below !
114# CFLAGS = -ZS -D_POSIX_SOURCE -O -I../include -DAUX
115
116# flags for IRIX 4.0.x using native cc
117# The include files are __STDC__, but have bugs involving const
118# CFLAGS = -O -I../include -D__STDC__ -Dconst= -woff 100,293
119# LFLAGS = -s
120
121# flags for BSD/OS 2.0
122# CFLAGS = -O -I../include -I/usr/X11/include
123# LFLAGS = -L/usr/X11/lib
124
125# flags for Linux
126#   compile normally
127# CFLAGS = -O2 -fomit-frame-pointer -I../include
128# LFLAGS = -L/usr/X11R6/lib
129#   OR compile backwards compatible a.out format
130# CFLAGS = -O2 -b i486-linuxaout -fomit-frame-pointer -I../include
131# LFLAGS = -b i486-linuxaout -L/usr/X11R6/lib
132
133# flags for BeOS
134#   on a Mac/BeBox:
135#CC = mwcc
136#CFLAGS = -r -I../include
137#LINK = mwld
138#LFLAGS = -map nethack.xMAP
139#   on Intel:
140#CFLAGS = -O -I../include
141#LINK = gcc
142#LFLAGS = -Xlinker -soname=_APP_
143
144
145# flags for debugging:
146# CFLAGS = -g -I../include
147
148# VULTURECFLAGS will be passed to the sub-makefile for vulture
149OS = $(shell uname -s)
150ifeq ($(OS),FreeBSD)
151        SDL_CONFIG = sdl11-config
152        SDLMAIN = -lSDLmain-1.1
153else
154        SDL_CONFIG = sdl-config
155        SDLMAIN = -lSDLmain
156endif
157VULTURECFLAGS = -Wall -O -g
158CFLAGS = -g -O -I../include -I ../win/vulture $(shell $(SDL_CONFIG) --cflags)
159LFLAGS =
160
161# Only used for the Gnome interface.
162# When including the Gnome interface, you need to include gnome specific
163# directories.  The ones given below is the usual spot for linux systems.
164# The paths are for glibconfig.h and gnomesupport.h respectively.
165#
166#GNOMEINC=-I/usr/lib/glib/include -I/usr/lib/gnome-libs/include -I../win/gnome
167GNOMEINC=`gnome-config gnome --cflags` -I../win/gnome
168
169# QT windowing system
170# Gentoo
171# QTDIR = /usr/qt/2
172# SuSE 6.1
173# QTDIR = /usr/lib/qt
174# RedHat 6.1
175# QTDIR = /usr/lib/qt-2.0.1
176#
177QTLIBDIR=$(QTDIR)/lib
178QTINCDIR=$(QTDIR)/include
179QTBINDIR=$(QTDIR)/bin
180# SuSE 6.1
181# KDELIBDIR=/opt/kde/lib
182# KDEINCDIR=/opt/kde/include
183# RedHat 6.1
184KDELIBDIR=/usr/lib
185KDEINCDIR=/usr/include/kde
186# CFLAGS = -O -I../include
187# LFLAGS = -L/usr/X11/lib -L$(QTLIBDIR) -L$(KDELIBDIR)
188
189# The Qt and Be window systems are written in C++, while the rest of
190# NetHack is standard C.  If using Qt, uncomment the LINK line here to get
191# the C++ libraries linked in.
192CXXFLAGS = $(CFLAGS) -I. -I$(QTINCDIR)
193# Qt is C++, so define the compiler and linker thus required:
194CXX=g++
195#LINK=g++
196#	For cross-compiling, eg. with gcc on Linux (see also CC further up):
197#CXX=arm-linux-g++
198#LINK=arm-linux-gcc
199
200# GTK windowing system
201WINGTKCONFIG=PKG_CONFIG_PATH=/usr/devel/lib/pkgconfig pkg-config gtk+-2.0
202WINGTKCFLAGS=`$(WINGTKCONFIG) --cflags`
203
204# Set the WINSRC, WINOBJ, and WINLIB lines to correspond to your desired
205# combination of windowing systems.  Also set windowing systems in config.h.
206#
207# files for a straight tty port using no native windowing system
208WINTTYSRC = ../win/tty/getline.c ../win/tty/termcap.c ../win/tty/topl.c \
209	../win/tty/wintty.c
210WINTTYOBJ = getline.o termcap.o topl.o wintty.o
211#
212
213WINVULTURESRC =
214WINVULTUREOBJ = ../win/vulture/build_slashem/vulture.o tile.o
215
216#
217# files for an X11 port
218# (tile.c is included in the defn. for WINCSRC, below)
219WINX11SRC = ../win/X11/Window.c ../win/X11/dialogs.c ../win/X11/winX.c \
220	../win/X11/winmap.c  ../win/X11/winmenu.c ../win/X11/winmesg.c \
221	../win/X11/winmisc.c ../win/X11/winstat.c ../win/X11/wintext.c \
222	../win/X11/winval.c
223WINX11OBJ = Window.o dialogs.o winX.o winmap.o winmenu.o winmesg.o \
224	winmisc.o winstat.o wintext.o winval.o nhwin.a
225#
226# Files for a Qt port
227#
228WINQTSRC = ../win/Qt/qt_win.cpp ../win/Qt/qt_clust.cpp ../win/Qt/qttableview.cpp
229WINQTOBJ = qt_win.o qt_clust.o qttableview.o nhwin.a
230#
231# files for a GTK port
232#
233WINGTKSRC = ../win/gtk/gtk.c ../win/gtk/gtkgetlin.c \
234	../win/gtk/gtkstatus.c ../win/gtk/gtkmenu.c ../win/gtk/gtkyn.c \
235	../win/gtk/gtkextcmd.c ../win/gtk/gtkmap.c ../win/gtk/gtkmessage.c \
236	../win/gtk/gtkmisc.c ../win/gtk/gtktile.c ../win/gtk/xshmmap.c \
237	../win/gtk/gtkhackrc.c ../win/gtk/gtkprefs.c ../win/gtk/gtkprogress.c \
238	../win/gtk/gtkext.c ../win/gtk/gtkint.c
239WINGTKOBJ = gtk.o gtkgetlin.o gtkstatus.o gtkmenu.o gtkyn.o gtkextcmd.o \
240 	gtkmap.o gtktile.o gtkmessage.o gtkmisc.o xshmmap.o gtkhackrc.o \
241	gtkprefs.o gtkprogress.o gtkext.o gtkint.o nhwin.a
242#
243# Files for a Gnome port
244#
245WINGNOMESRC = ../win/gnome/gnaskstr.c ../win/gnome/gnbind.c \
246      ../win/gnome/gnglyph.c ../win/gnome/gnmain.c ../win/gnome/gnmap.c \
247      ../win/gnome/gnmenu.c ../win/gnome/gnmesg.c ../win/gnome/gnopts.c \
248      ../win/gnome/gnplayer.c ../win/gnome/gnsignal.c \
249      ../win/gnome/gnstatus.c ../win/gnome/gntext.c ../win/gnome/gnyesno.c \
250      ../win/gnome/gnworn.c
251WINGNOMEOBJ = gnaskstr.o gnbind.o gnglyph.o gnmain.o gnmap.o gnmenu.o \
252      gnmesg.o gnopts.o gnplayer.o gnsignal.o gnstatus.o gntext.o \
253      gnyesno.o gnworn.o nhwin.a
254#
255# Files for a Gem port
256WINGEMSRC = ../win/gem/wingem.c ../win/gem/wingem1.c ../win/gem/load_img.c \
257	../win/gem/gr_rect.c
258WINGEMOBJ = wingem.o wingem1.o load_img.o gr_rect.o nhwin.a
259#
260# Files for a BeOS InterfaceKit port -- not ready for prime time
261WINBESRC =
262WINBEOBJ =
263#WINBESRC = ../win/BeOS/winbe.cpp ../win/BeOS/NHWindow.cpp \
264#     ../win/BeOS/NHMenuWindow.cpp ../win/BeOS/NHMapWindow.cpp
265#WINBEOBJ = winbe.o NHWindow.o NHMenuWindow.o NHMapWindow.o nhwin.a
266#
267# Files for a proxy interface
268WINPROXYSRC = ../win/proxy/winproxy.c ../win/proxy/callback.c
269WINPROXYOBJ = winproxy.o callback.o nhwin.a
270#
271# Common files for proxy window interface and plug-in window interfaces.
272PROXYCOMSRC = ../win/proxy/nhext.c ../win/proxy/nhxdr.c \
273	../win/proxy/nhextxdr.c ../win/proxy/nhextio.c ../win/proxy/nhextnb.c \
274	../win/proxy/compxdr.c
275PROXYCOMOBJ = nhext.o nhxdr.o nhextxdr.o nhextio.o nhextnb.o compxdr.o
276#
277# Common files that are also shared with non-proxy window interfaces
278PROXYSHRSRC = ../win/proxy/md5.c
279PROXYSHROBJ = md5.o
280#
281# Files for the proxy utility modules. These are provided for use with window
282# ports that support the proxy interface. The GTK window interface needs
283# these files regardless of whether proxy support is enabled or not.
284PROXYUTLSRC = ../win/proxy/dlbh.c ../win/proxy/mapid.c \
285	../win/proxy/riputil.c ../win/proxy/getopt.c ../win/proxy/glyphmap.c
286PROXYUTLOBJ = dlbh.o mapid.o riputil.o getopt.o glyphmap.o
287#
288# Files for plug-in window interfaces. These are needed to support external
289# window ports and provide the interface to the game executable.  Currently,
290# only the GTK window interface supports plug-in window interfaces.
291PROXYCLNTSRC = ../win/proxy/proxysvc.c ../win/proxy/proxycb.c \
292	../win/proxy/prxymap.c ../win/proxy/prxychar.c ../win/proxy/prxytile.c \
293	../win/proxy/prxyconn.c
294PROXYCLNTOBJ = proxysvc.o proxycb.o prxymap.o prxychar.o prxytile.o prxyconn.o
295#
296# Files for the SDL/GL window port
297WINGLSRC = ../win/gl/gl_conf.c ../win/gl/gl_emul.c  \
298    ../win/gl/gl_font.c ../win/gl/gl_hardw.c ../win/gl/gl_image.c  \
299    ../win/gl/gl_main.c ../win/gl/gl_map.c ../win/gl/gl_menu.c  \
300    ../win/gl/gl_opt.c ../win/gl/gl_role.c ../win/gl/gl_rendu.c  \
301    ../win/gl/gl_softw.c ../win/gl/gl_stat.c ../win/gl/gl_text.c  \
302    ../win/gl/gl_tile.c  ../win/gl/gl_unit.c ../win/gl/gl_win.c
303WINGLOBJ = gl_conf.o gl_emul.o gl_font.o gl_hardw.o \
304    gl_image.o gl_main.o gl_map.o gl_menu.o gl_opt.o \
305    gl_rendu.o gl_role.o gl_softw.o gl_stat.o \
306    gl_text.o gl_tile.o gl_unit.o gl_win.o nhwin.a
307SDLGL_CFLAGS = `sdl-config --cflags`
308
309# Use these declarations if you only want to support the TTY windowing system
310WINSRC = $(WINVULTURESRC)
311WINOBJ = $(WINVULTUREOBJ)
312# Use these declarations if you want to support the X11 windowing system
313# WINSRC = $(WINTTYSRC) $(WINX11SRC)
314# WINOBJ = $(WINTTYOBJ) $(WINX11OBJ)
315# Use these declarations if you want to support the Qt windowing system
316# WINSRC = $(WINTTYSRC) $(WINQTSRC)
317# WINOBJ = $(WINTTYOBJ) $(WINQTOBJ)
318# Use these declarations if you want to support a conventional
319# GTK windowing system (only useful if not installing setuid or setgid)
320# WINSRC = $(WINTTYSRC) $(WINGTKSRC) $(PROXYUTLSRC)
321# WINOBJ = $(WINTTYOBJ) $(WINGTKOBJ) $(PROXYUTLOBJ)
322# Use these declarations if you want to support external windowing systems
323# and a proxified GTK windowing system (see Install.GTK)
324# WINSRC = $(WINTTYSRC) $(WINGTKSRC) \
325#	$(WINPROXYSRC) $(PROXYUTLSRC) $(PROXYCOMSRC) $(PROXYCLNTSRC)
326# WINOBJ = $(WINTTYOBJ) $(WINGTKOBJ) \
327#	$(WINPROXYOBJ) $(PROXYUTLOBJ) $(PROXYCOMOBJ) $(PROXYCLNTOBJ)
328# Use these declarations to only support the SDL/GL windowing systems
329# WINSRC = $(WINGLSRC)
330# WINOBJ = $(WINGLOBJ)
331# Use these declarations if you want to support external windowing systems
332# WINSRC = $(WINTTYSRC) $(WINPROXYSRC) $(PROXYUTLSRC) $(PROXYCOMSRC)
333# WINOBJ = $(WINTTYOBJ) $(WINPROXYOBJ) $(PROXYUTLOBJ) $(PROXYCOMOBJ)
334# Use these declarations if you want to support all standard windowing systems
335# WINSRC = $(WINTTYSRC) $(WINPROXYSRC) $(PROXYUTLSRC) $(PROXYCOMSRC) \
336#	$(WINX11SRC) $(WINQTSRC) $(WINGTKSRC) $(WINGLSRC) $(WINGNOMESRC)
337# WINOBJ = $(WINTTYOBJ) $(WINPROXYOBJ) $(PROXYUTLOBJ) $(PROXYCOMOBJ) \
338#	$(WINX11OBJ) $(WINQTOBJ) $(WINGTKOBJ) $(WINGLOBJ) $(WINGNOMEOBJ)
339#
340# You must also change the definition of WINLIB (below) to match these
341
342# on some systems the termcap library is in -ltermcap or -lcurses
343# on 386 Xenix, the -ltermlib tputs() seems not to work; use -lcurses instead
344# Sysatt uses shared library in lieu of this option
345# Systos needs -lcurses16 if you use -mshort
346# AIX 3.1 on RS/6000 likes -lcurses if TERMINFO defined in unixconf.h
347# and -ltermcap otherwise
348# Linux uses -lncurses (newer) or -ltermcap (older)
349# Be uses -ltermcap
350#
351# libraries for tty ports
352# WINTTYLIB = -ltermcap
353# WINTTYLIB = -lcurses
354# WINTTYLIB = -lcurses16
355# WINTTYLIB = -lncurses
356# WINTTYLIB = -ltermlib
357
358ifeq ($(OS),Darwin)
359  WINTTYLIB = -ltermcap
360else
361  WINTTYLIB = -ltermlib
362endif
363
364# SDL libraries for Vulture's Claw
365# Only used for the Vulture's Claw interface.
366# When including the Vulture's Claw interface, you need to include the SDL
367# directories. You should have sdl-config in your path; it gives the
368# necessary compile and link flags.
369#
370OS = $(shell uname -s)
371ifeq ($(OS),FreeBSD)
372	SDL = sdl11-config
373else
374	SDL = sdl-config
375endif
376WINVULTURELIB = `$(SDL) --libs` $(SDLMAIN) -lSDL_mixer -lSDL_ttf -lpng -lz
377
378ifeq ($(OS),Darwin)
379	WINVULTURELIB += -lstdc++
380endif
381
382
383#
384# libraries for X11
385# If USE_XPM is defined in config.h, you will also need -lXpm here.
386WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11
387# WINX11LIB = -lXaw -lXmu -lXt -lX11
388# WINX11LIB = -lXaw -lXmu -lXext -lXt -lXpm -lX11 -lm
389# WINX11LIB = -lXaw -lXmu -lXpm -lXext -lXt -lX11 -lSM -lICE -lm # BSD/OS 2.0
390#
391# libraries for Qt
392WINQTLIB = -L$(QTLIBDIR) -lqt
393#
394# libraries for KDE (with Qt)
395WINKDELIB = -lkdecore -lkdeui -lXext
396#
397# libraries for GTK
398WINGTKLIB = `$(WINGTKCONFIG) --libs`
399#
400# libraries for Gnome
401WINGNOMELIB = -lgnomeui -lgnome -lart_lgpl -lgtk -lgdk -lpopt
402#
403# libraries for Gem port
404WINGEMLIB = -le_gem -lgem
405#
406# libraries for BeOS
407WINBELIB = -lbe
408#
409# libraries for SDL/GL window port
410WINSDLLIB = `sdl-config --libs` -lz -lpng
411WINGLLIB = -lGL
412#
413# libraries for proxy
414WINPROXYLIB = -lpthread
415
416# Use this declaration if you only want to support the vulture windowing system
417WINLIB = $(WINVULTURELIB)
418# Use this declaration if you only want to support the TTY windowing system
419# WINLIB = $(WINTTYLIB)
420# Use this declaration if you want to support the X11 windowing system
421# WINLIB = $(WINTTYLIB) $(WINX11LIB)
422# Use this declaration if you want to support the Qt windowing system
423# WINLIB = $(WINTTYLIB) $(WINQTLIB)
424# Use this declaration if you want to support a conventional
425# GTK windowing system (only useful if not installing setuid or setgid)
426# WINLIB = $(WINTTYLIB) $(WINGTKLIB)
427# Use this declaration if you want to support external windowing systems
428# and a proxified GTK windowing system (see Install.GTK)
429# WINLIB = $(WINTTYLIB) $(WINGTKLIB) $(WINPROXYLIB)
430# Use this declaration to only support the SDL/GL windowing system
431# WINLIB = $(WINGLLIB)
432# Use this declaration if you want to support external windowing systems
433# WINLIB = $(WINTTYLIB) $(WINPROXYLIB)
434# Use this declaration if you want to support all standard windowing systems
435# WINLIB = $(WINTTYLIB) $(WINPROXYLIB) $(WINGTKLIB) \
436#	$(WINX11LIB) $(WINQTLIB) $(WINGNOMELIB) $(WINSDLLIB) $(WINGLLIB)
437
438# any other strange libraries your system needs (for Sysunix only -- the more
439# specialized targets should already be right)
440#
441# on HP-UX 8.x, the malloc(3x) routines in libmalloc.a seem to align things
442# better than the malloc(3) ones in libc.a
443# LIBS = -lmalloc
444#
445# DPX/2's also use the malloc(3x) routines.  In addition, if you are building
446# for X11, you must include libinet.a.
447# LIBS = -lmalloc -linet
448#
449# Linux NetHack uses some bsd style ioctl functions, thus it is necessary to
450# use the bsd libs.  (Only if still compiling as BSD in unixconf.h; recent
451# versions compile fine using SYSV without this.)
452# LIBS = -lbsd
453#
454# for CYGWIN32 aka cygwin 1.1.1
455# LIBS = -lcygwin
456#
457# Solaris 2.x seems to work with the following
458# LIBS = -lsocket -lnsl
459#
460# IRIX 4.0.x needs -lsun if NIS (YP) is being used for passwd file lookup
461# LIBS = -lsun
462#
463LIBS =
464
465# make NetHack
466GAME     = vulture-slashem
467# GAME     = slashem.prg
468
469# if you defined RANDOM in unixconf.h/tosconf.h since your system did not come
470# with a reasonable random number generator
471# RANDOBJ = random.o
472RANDOBJ =
473
474
475# used by `make depend' to reconstruct this Makefile; you shouldn't need this
476AWK	= nawk
477
478# ----------------------------------------
479#
480# Nothing below this line should have to be changed.
481#
482# Other things that have to be reconfigured are in config.h,
483# {unixconf.h, pcconf.h, tosconf.h}, and possibly system.h
484
485MAKEDEFS = ../util/makedefs
486
487# timestamp files to reduce `make' overhead and shorten .o dependency lists
488CONFIG_H = ../src/config.h-t
489HACK_H	= ../src/hack.h-t
490
491# all .c that are part of the main NetHack program and are not operating- or
492# windowing-system specific
493HACKCSRC = allmain.c alloc.c apply.c artifact.c attrib.c ball.c bones.c \
494	   botl.c cmd.c dbridge.c decl.c detect.c dig.c display.c dlb.c do.c \
495	   do_name.c do_wear.c dog.c dogmove.c dokick.c dothrow.c drawing.c \
496	   dungeon.c eat.c end.c engrave.c exper.c explode.c extralev.c \
497	   files.c fountain.c hack.c hacklib.c invent.c light.c lock.c \
498	   mail.c makemon.c mapglyph.c mcastu.c mhitm.c mhitu.c minion.c \
499	   mklev.c mkmap.c \
500	   mkmaze.c mkobj.c mkroom.c mon.c mondata.c monmove.c monst.c \
501	   mplayer.c mthrowu.c muse.c music.c o_init.c objects.c objnam.c \
502	   options.c pager.c pickup.c pline.c polyself.c potion.c pray.c \
503	   priest.c quest.c questpgr.c read.c rect.c region.c restore.c rip.c \
504	   rnd.c role.c rumors.c save.c shk.c shknam.c sit.c sounds.c sp_lev.c \
505	   spell.c steal.c steed.c teleport.c timeout.c topten.c track.c trap.c \
506	   u_init.c uhitm.c vault.c version.c vision.c weapon.c were.c wield.c \
507	   windows.c wizard.c worm.c worn.c write.c zap.c \
508	   gypsy.c tech.c
509
510# all operating-system-dependent .c (for dependencies and such)
511SYSCSRC = ../sys/atari/tos.c ../sys/share/pcmain.c ../sys/share/pcsys.c \
512	../sys/share/pctty.c ../sys/share/pcunix.c ../sys/share/random.c \
513	../sys/share/ioctl.c ../sys/share/unixtty.c ../sys/unix/unixmain.c \
514	../sys/unix/unixunix.c ../sys/unix/unixres.c ../sys/be/bemain.c
515
516# generated source files (tile.c is handled separately)
517GENCSRC = monstr.c vis_tab.c  #tile.c
518
519# all windowing-system-dependent .c (for dependencies and such)
520WINCSRC = $(WINTTYSRC) $(WINX11SRC) $(WINGTKSRC) $(WINGNOMESRC) $(WINGEMSRC) \
521	$(WINPROXYSRC) $(PROXYUTLSRC) $(PROXYCLNTSRC) $(PROXYCOMSRC) \
522	$(PROXYSHRSRC) $(WINGLSRC) tile.c
523# all windowing-system-dependent .cpp (for dependencies and such)
524WINCXXSRC = $(WINQTSRC) $(WINBESRC)
525
526# .c files for this version (for date.h)
527VERSOURCES = $(HACKCSRC) $(SYSSRC) $(WINSRC) $(GENCSRC)
528
529# .c files for all versions using this Makefile (for lint and tags)
530CSOURCES = $(HACKCSRC) $(SYSSRC) $(WINCSRC) $(GENCSRC)
531
532
533# all .h files except date.h, onames.h, pm.h, and vis_tab.h which would
534# cause dependency loops if run through "make depend"
535# and dgn_comp.h, dgn_file.h, lev_comp.h, special level & dungeon files.
536#
537HACKINCL = align.h amiconf.h artifact.h artilist.h attrib.h beconf.h color.h \
538	config.h config1.h coord.h decl.h def_os2.h display.h dlb.h dungeon.h \
539	edog.h emin.h engrave.h epri.h eshk.h extern.h flag.h func_tab.h \
540	global.h hack.h lev.h macconf.h mfndpos.h micro.h mkroom.h \
541	monattk.h mondata.h monflag.h monst.h monsym.h obj.h objclass.h \
542	os2conf.h patchlevel.h pcconf.h permonst.h prop.h rect.h region.h rm.h \
543	sp_lev.h spell.h system.h tcap.h timeout.h tosconf.h tradstdc.h \
544	trampoli.h trap.h unixconf.h vault.h vision.h vmsconf.h wintty.h \
545	winX.h winprocs.h wintype.h you.h youprop.h vulture_version.h
546
547HSOURCES = $(HACKINCL) date.h onames.h pm.h vis_tab.h\
548		lev_comp.h dgn_comp.h dgn_file.h
549
550# the following .o's _must_ be made before any others (for makedefs)
551FIRSTOBJ = monst.o objects.o alloc.o
552
553HOBJ = $(FIRSTOBJ) allmain.o apply.o artifact.o attrib.o ball.o \
554	bones.o botl.o cmd.o dbridge.o decl.o detect.o dig.o display.o dlb.o \
555	do.o do_name.o do_wear.o dog.o dogmove.o dokick.o dothrow.o \
556	drawing.o dungeon.o eat.o end.o engrave.o exper.o explode.o \
557	extralev.o files.o fountain.o hack.o hacklib.o invent.o light.o \
558	lock.o mail.o makemon.o mapglyph.o mcastu.o mhitm.o mhitu.o \
559	minion.o mklev.o mkmap.o \
560	mkmaze.o mkobj.o mkroom.o mon.o mondata.o monmove.o monstr.o \
561	mplayer.o mthrowu.o muse.o music.o o_init.o objnam.o options.o \
562	pager.o pickup.o pline.o polyself.o potion.o pray.o priest.o \
563	quest.o questpgr.o read.o rect.o region.o restore.o rip.o rnd.o \
564	role.o rumors.o save.o shk.o shknam.o sit.o sounds.o sp_lev.o spell.o \
565	steal.o steed.o teleport.o timeout.o topten.o track.o trap.o u_init.o \
566	uhitm.o vault.o vision.o vis_tab.o weapon.o were.o wield.o windows.o \
567	wizard.o worm.o worn.o write.o zap.o \
568	gypsy.o tech.o \
569	$(RANDOBJ) $(SYSOBJ) $(WINOBJ) version.o
570# the .o files from the HACKCSRC, SYSSRC, and WINSRC lists
571
572$(GAME):	$(SYSTEM)
573	@echo "$(GAME) is up to date."
574
575Sysunix:	$(HOBJ) Makefile
576	@echo "Loading ..."
577	@$(LINK) $(LFLAGS) -o $(GAME) $(HOBJ) $(WINLIB) $(LIBS)
578	@touch Sysunix
579
580Sys3B2:	$(HOBJ) Makefile
581	@echo "Loading ..."
582	@$(LINK) $(LFLAGS) -o $(GAME) $(HOBJ) $(WINLIB) -lmalloc
583	@touch Sys3B2
584
585Sysatt:	$(HOBJ) Makefile
586	@echo "Loading ..."
587	@$(LD) $(LFLAGS) /lib/crt0s.o /lib/shlib.ifile -o $(GAME) $(HOBJ)
588	@touch Sysatt
589
590Systos:	$(HOBJ) Makefile
591	@echo "Loading ..."
592	@$(LINK) $(LFLAGS) -o $(GAME) $(HOBJ) $(WINLIB)
593	@touch Systos
594
595SysV-AT:	DUMB.Setup $(HOBJ) Makefile
596	@echo "Loading ..."
597	@$(LINK) $(LFLAGS) -o $(GAME) $(HOBJ) $(WINLIB)
598	@touch SysV-AT
599
600SysBe: $(HOBJ) Makefile
601	@echo "Loading ..."
602	@$(LINK) $(LFLAGS) -o $(GAME) $(HOBJ) $(WINLIB) $(LIBS)
603	@xres -o $(GAME) ../win/BeOS/nethack.rsrc
604	@mimeset -f $(GAME)
605	@touch SysBe
606
607DUMB.Setup:	../include/extern.h
608	cp ../include/extern.h ../include/extern.h.BAK
609	cat ../include/extern.h | \
610		sed -e '/^E\ int\ /!b' \
611			-e '/[^;/ 	]$$/N' \
612			-e '/[(][*]occupation[)]/b' \
613			-e '/[(][*]afternmv[)]/b' \
614			-e '/float_down/b' \
615			-e '/done1/b' \
616			-e '/identify/b' \
617			-e '/Hear_again/b' \
618			-e '/hangup/b' \
619			-e 's/^\(.*\)$$/\/\* \1 \/\*\*\//' | \
620		sed -e '/^E\ void\ /!b' \
621			-e '/[^;/ 	]$$/N' \
622			-e 's/^\(.*\)$$/\/\* \1 \/\*\*\//' \
623				>../include/extern.DUMB
624	cp ../include/extern.DUMB ../include/extern.h
625	@touch DUMB.Setup
626
627all:	$(GAME)
628
629#	dependencies for makedefs and its outputs, which the util
630#	Makefile is responsible for keeping up to date
631#
632
633# special rules, to force update of makedefs, real dependencies should be
634# below in the 'make depend' output.
635monst.o:
636	$(CC) $(CFLAGS) -c monst.c
637	@rm -f $(MAKEDEFS)
638
639objects.o:
640	$(CC) $(CFLAGS) -c objects.c
641	@rm -f $(MAKEDEFS)
642
643../include/filename.h: $(MAKEDEFS)
644	../util/makedefs -f
645
646../win/vulture/build_slashem/vulture.o: objects.o monst.o ../include/date.h ../win/vulture/*
647	@$(MAKE) -C ../win/vulture/ BUILD=slashem BASECFLAGS="$(VULTURECFLAGS)"
648
649# Qt windowport meta-object-compiler output
650qt_kde0.moc: ../include/qt_kde0.h
651	$(QTBINDIR)/moc -o qt_kde0.moc ../include/qt_kde0.h
652
653qt_win.moc: ../include/qt_win.h
654	$(QTBINDIR)/moc -o qt_win.moc ../include/qt_win.h
655
656qttableview.moc: ../include/qttableview.h
657	$(QTDIR)/bin/moc -o qttableview.moc ../include/qttableview.h
658
659# NetHack windows library for modules needed by more than one windows
660# interface.
661nhwin.a:	tile.o $(PROXYSHROBJ)
662	$(AR) cr nhwin.a tile.o $(PROXYSHROBJ)
663
664# NetHack proxy library for external window interfaces.
665nhproxy.a:      $(PROXYCLNTOBJ) $(PROXYCOMOBJ) $(PROXYSHROBJ)
666	$(AR) cr nhproxy.a $(PROXYCLNTOBJ) $(PROXYCOMOBJ) $(PROXYSHROBJ)
667
668$(MAKEDEFS): ../util/makedefs.c  $(CONFIG_H) ../include/permonst.h \
669		../include/objclass.h ../include/monsym.h \
670		../include/artilist.h ../include/dungeon.h ../include/obj.h \
671		../include/monst.h ../include/you.h ../include/flag.h \
672		../include/dlb.h ../include/patchlevel.h ../include/qtext.h
673	@( cd ../util ; $(MAKE) makedefs)
674
675../include/onames.h: $(MAKEDEFS)
676	@( cd ../util ; $(MAKE) ../include/onames.h )
677../include/pm.h: $(MAKEDEFS)
678	@( cd ../util ; $(MAKE) ../include/pm.h )
679monstr.c: $(MAKEDEFS)
680	@( cd ../util ; $(MAKE) ../src/monstr.c )
681../include/vis_tab.h: $(MAKEDEFS)
682	@( cd ../util ; $(MAKE) ../include/vis_tab.h )
683# makedefs -z makes both vis_tab.h and vis_tab.c, but writes the .h first
684vis_tab.c: ../include/vis_tab.h
685tile.c: ../win/share/tilemap.c $(HACK_H)
686	@( cd ../util ; $(MAKE) ../src/tile.c )
687
688../win/gnome/gn_rip.h: ../win/X11/rip.xpm
689	cp ../win/X11/rip.xpm ../win/gnome/gn_rip.h
690
691#	date.h should be remade any time any of the source or include code
692#	is modified.  Unfortunately, this would make the contents of this
693#	file far more complex.  Since "hack.h" depends on most of the include
694#	files, we kludge around this by making date.h dependent on hack.h,
695#	even though it doesn't include this file.
696#
697#	hack.h depends on makedefs' output, so we know makedefs will be
698#	up to date before being executed
699../include/date.h:	$(VERSOURCES) $(HACK_H)
700	../util/makedefs -v
701
702
703lint:
704# lint cannot have -p here because (i) capitals are meaningful:
705# [Ww]izard, (ii) identifiers may coincide in the first six places:
706# doweararm() versus dowearring().
707# _flsbuf comes from <stdio.h>, a bug in the system libraries.
708	@echo lint -axbh -DLINT ...
709	@lint -axbh -I../include -DLINT $(CSOURCES) | sed '/_flsbuf/d'
710
711
712tags: $(CSOURCES)
713	@echo ctags -tw ...
714	@ctags -tw $(CSOURCES)
715	@( cd ../include ; ctags -tw $(HSOURCES) )
716	@( cd ../util ; $(MAKE) tags )
717
718clean:
719	-rm -f *.o nhwin.a $(HACK_H) $(CONFIG_H)
720	$(MAKE) -C ../win/vulture clean
721
722spotless: clean
723	-rm -f a.out core $(GAME) Sys*
724	-rm -f ../include/date.h ../include/onames.h ../include/pm.h
725	-rm -f monstr.c ../include/vis_tab.h vis_tab.c tile.c *.moc
726	-rm -f ../win/gnome/gn_rip.h
727	-rm -f ../include/filename.h
728
729depend: ../sys/unix/depend.awk \
730		$(SYSCSRC) $(WINCSRC) $(WINCXXSRC) $(GENCSRC) $(HACKCSRC)
731	$(AWK) -f ../sys/unix/depend.awk ../include/*.h \
732		$(SYSCSRC) $(WINCSRC) $(WINCXXSRC) $(GENCSRC) $(HACKCSRC) >makedep
733	@echo '/^# DO NOT DELETE THIS LINE OR CHANGE ANYTHING BEYOND IT/+2,$$d' >eddep
734	@echo '$$r makedep' >>eddep
735	@echo 'w' >>eddep
736	@cp Makefile Makefile.bak
737	ed - Makefile < eddep
738	@rm -f eddep makedep
739	@echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile
740	@echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile
741	@echo '# see make depend above' >> Makefile
742	- diff Makefile.bak Makefile
743	@rm -f Makefile.bak
744
745# DO NOT DELETE THIS LINE OR CHANGE ANYTHING BEYOND IT
746
747# config.h timestamp
748$(CONFIG_H): ../include/config.h ../include/config1.h ../include/tradstdc.h \
749		../include/global.h ../include/coord.h ../include/vmsconf.h \
750		../include/system.h ../include/unixconf.h ../include/os2conf.h \
751		../include/micro.h ../include/pcconf.h ../include/tosconf.h \
752		../include/amiconf.h ../include/macconf.h ../include/beconf.h \
753		../include/wceconf.h ../include/ntconf.h ../include/nhlan.h
754	touch $(CONFIG_H)
755# hack.h timestamp
756$(HACK_H): ../include/hack.h $(CONFIG_H) ../include/align.h \
757		../include/dungeon.h ../include/monsym.h ../include/mkroom.h \
758		../include/objclass.h ../include/youprop.h ../include/prop.h \
759		../include/permonst.h ../include/monattk.h \
760		../include/monflag.h ../include/mondata.h ../include/pm.h \
761		../include/wintype.h ../include/decl.h ../include/quest.h \
762		../include/obj.h ../include/spell.h ../include/tech.h \
763		../include/you.h ../include/attrib.h ../include/monst.h \
764		../include/skills.h ../include/onames.h ../include/color.h \
765		../include/timeout.h ../include/trap.h ../include/flag.h \
766		../include/rm.h ../include/vision.h ../include/display.h \
767		../include/engrave.h ../include/rect.h ../include/region.h \
768		../include/winprocs.h ../include/wintty.h ../include/trampoli.h
769	touch $(HACK_H)
770#
771tos.o: ../sys/atari/tos.c $(HACK_H) ../include/tcap.h
772	$(CC) $(CFLAGS) -c ../sys/atari/tos.c
773pcmain.o: ../sys/share/pcmain.c $(HACK_H) ../include/dlb.h \
774		../include/patchlevel.h #../include/win32api.h
775	$(CC) $(CFLAGS) -c ../sys/share/pcmain.c
776pcsys.o: ../sys/share/pcsys.c $(HACK_H)
777	$(CC) $(CFLAGS) -c ../sys/share/pcsys.c
778pctty.o: ../sys/share/pctty.c $(HACK_H)
779	$(CC) $(CFLAGS) -c ../sys/share/pctty.c
780pcunix.o: ../sys/share/pcunix.c $(HACK_H)
781	$(CC) $(CFLAGS) -c ../sys/share/pcunix.c
782random.o: ../sys/share/random.c $(HACK_H)
783	$(CC) $(CFLAGS) -c ../sys/share/random.c
784ioctl.o: ../sys/share/ioctl.c $(HACK_H) ../include/tcap.h
785	$(CC) $(CFLAGS) -c ../sys/share/ioctl.c
786unixtty.o: ../sys/share/unixtty.c $(HACK_H)
787	$(CC) $(CFLAGS) -c ../sys/share/unixtty.c
788unixmain.o: ../sys/unix/unixmain.c $(HACK_H) ../include/dlb.h
789	$(CC) $(CFLAGS) -c ../sys/unix/unixmain.c
790unixunix.o: ../sys/unix/unixunix.c $(HACK_H)
791	$(CC) $(CFLAGS) -c ../sys/unix/unixunix.c
792unixres.o: ../sys/unix/unixres.c $(CONFIG_H)
793	$(CC) $(CFLAGS) -c ../sys/unix/unixres.c
794bemain.o: ../sys/be/bemain.c $(HACK_H) ../include/dlb.h
795	$(CC) $(CFLAGS) -c ../sys/be/bemain.c
796getline.o: ../win/tty/getline.c $(HACK_H) ../include/func_tab.h
797	$(CC) $(CFLAGS) -c ../win/tty/getline.c
798termcap.o: ../win/tty/termcap.c $(HACK_H) ../include/tcap.h
799	$(CC) $(CFLAGS) -c ../win/tty/termcap.c
800topl.o: ../win/tty/topl.c $(HACK_H) ../include/tcap.h
801	$(CC) $(CFLAGS) -c ../win/tty/topl.c
802wintty.o: ../win/tty/wintty.c $(HACK_H) ../include/dlb.h \
803		../include/patchlevel.h ../include/tcap.h
804	$(CC) $(CFLAGS) -c ../win/tty/wintty.c
805Window.o: ../win/X11/Window.c ../include/xwindowp.h ../include/xwindow.h \
806		$(CONFIG_H)
807	$(CC) $(CFLAGS) -c ../win/X11/Window.c
808dialogs.o: ../win/X11/dialogs.c $(CONFIG_H)
809	$(CC) $(CFLAGS) -c ../win/X11/dialogs.c
810winX.o: ../win/X11/winX.c $(HACK_H) ../include/winX.h ../include/dlb.h \
811		../include/patchlevel.h ../win/X11/nh72icon \
812		../win/X11/nh56icon ../win/X11/nh32icon
813	$(CC) $(CFLAGS) -c ../win/X11/winX.c
814winmap.o: ../win/X11/winmap.c ../include/xwindow.h $(HACK_H) ../include/dlb.h \
815		../include/winX.h ../include/patchlevel.h ../include/tile2x11.h
816	$(CC) $(CFLAGS) -c ../win/X11/winmap.c
817winmenu.o: ../win/X11/winmenu.c $(HACK_H) ../include/winX.h
818	$(CC) $(CFLAGS) -c ../win/X11/winmenu.c
819winmesg.o: ../win/X11/winmesg.c ../include/xwindow.h $(HACK_H) ../include/winX.h
820	$(CC) $(CFLAGS) -c ../win/X11/winmesg.c
821winmisc.o: ../win/X11/winmisc.c $(HACK_H) ../include/func_tab.h \
822		../include/winX.h
823	$(CC) $(CFLAGS) -c ../win/X11/winmisc.c
824winstat.o: ../win/X11/winstat.c $(HACK_H) ../include/winX.h
825	$(CC) $(CFLAGS) -c ../win/X11/winstat.c
826wintext.o: ../win/X11/wintext.c $(HACK_H) ../include/winX.h ../include/xwindow.h
827	$(CC) $(CFLAGS) -c ../win/X11/wintext.c
828winval.o: ../win/X11/winval.c $(HACK_H) ../include/winX.h
829	$(CC) $(CFLAGS) -c ../win/X11/winval.c
830gtk.o: ../win/gtk/gtk.c ../include/md5.h ../include/winGTK.h $(HACK_H) \
831		../include/nhxdr.h ../include/proxycom.h ../include/func_tab.h \
832		../include/dlb.h ../include/patchlevel.h ../include/proxycb.h \
833		../include/prxyclnt.h
834	$(CC) $(CFLAGS) $(WINGTKCFLAGS) -c ../win/gtk/gtk.c
835gtkgetlin.o: ../win/gtk/gtkgetlin.c ../include/winGTK.h $(HACK_H) \
836		../include/nhxdr.h ../include/proxycom.h
837	$(CC) $(CFLAGS) $(WINGTKCFLAGS) -c ../win/gtk/gtkgetlin.c
838gtkstatus.o: ../win/gtk/gtkstatus.c ../include/winGTK.h $(HACK_H) \
839		../include/nhxdr.h ../include/proxycom.h
840	$(CC) $(CFLAGS) $(WINGTKCFLAGS) -c ../win/gtk/gtkstatus.c
841gtkmenu.o: ../win/gtk/gtkmenu.c ../include/winGTK.h $(HACK_H) \
842		../include/nhxdr.h ../include/proxycom.h ../include/patchlevel.h
843	$(CC) $(CFLAGS) $(WINGTKCFLAGS) -c ../win/gtk/gtkmenu.c
844gtkyn.o: ../win/gtk/gtkyn.c ../include/winGTK.h $(HACK_H) ../include/nhxdr.h \
845		../include/proxycom.h
846	$(CC) $(CFLAGS) $(WINGTKCFLAGS) -c ../win/gtk/gtkyn.c
847gtkextcmd.o: ../win/gtk/gtkextcmd.c ../include/winGTK.h $(HACK_H) \
848		../include/nhxdr.h ../include/proxycom.h ../include/proxycb.h \
849		../include/func_tab.h
850	$(CC) $(CFLAGS) $(WINGTKCFLAGS) -c ../win/gtk/gtkextcmd.c
851gtkmap.o: ../win/gtk/gtkmap.c ../include/winGTK.h $(HACK_H) ../include/nhxdr.h \
852		../include/proxycom.h ../include/dlb.h ../include/patchlevel.h \
853		../include/proxycb.h ../include/prxyclnt.h \
854		../win/gtk/gtkprogress.h
855	$(CC) $(CFLAGS) $(WINGTKCFLAGS) -c ../win/gtk/gtkmap.c
856gtkmessage.o: ../win/gtk/gtkmessage.c ../include/winGTK.h $(HACK_H) \
857		../include/nhxdr.h ../include/proxycom.h
858	$(CC) $(CFLAGS) $(WINGTKCFLAGS) -c ../win/gtk/gtkmessage.c
859gtkmisc.o: ../win/gtk/gtkmisc.c ../include/winGTK.h $(HACK_H) \
860		../include/nhxdr.h ../include/proxycom.h ../include/proxycb.h
861	$(CC) $(CFLAGS) $(WINGTKCFLAGS) -c ../win/gtk/gtkmisc.c
862gtktile.o: ../win/gtk/gtktile.c ../include/winGTK.h $(HACK_H) \
863		../include/nhxdr.h ../include/proxycom.h ../include/dlb.h \
864		../include/proxycb.h ../include/prxyclnt.h \
865		../win/gtk/gtkprogress.h
866	$(CC) $(CFLAGS) $(WINGTKCFLAGS) -c ../win/gtk/gtktile.c
867xshmmap.o: ../win/gtk/xshmmap.c ../include/winGTK.h $(HACK_H) \
868		../include/nhxdr.h ../include/proxycom.h
869	$(CC) $(CFLAGS) $(WINGTKCFLAGS) -c ../win/gtk/xshmmap.c
870gtkhackrc.o: ../win/gtk/gtkhackrc.c ../include/winGTK.h $(HACK_H) \
871		../include/nhxdr.h ../include/proxycom.h ../include/prxyclnt.h
872	$(CC) $(CFLAGS) $(WINGTKCFLAGS) -c ../win/gtk/gtkhackrc.c
873gtkprefs.o: ../win/gtk/gtkprefs.c ../include/winGTK.h $(HACK_H) \
874		../include/nhxdr.h ../include/proxycom.h ../include/patchlevel.h
875	$(CC) $(CFLAGS) $(WINGTKCFLAGS) -c ../win/gtk/gtkprefs.c
876gtkprogress.o: ../win/gtk/gtkprogress.c ../include/winGTK.h $(HACK_H) \
877		../include/nhxdr.h ../include/proxycom.h \
878		../win/gtk/gtkprogress.h
879	$(CC) $(CFLAGS) $(WINGTKCFLAGS) -c ../win/gtk/gtkprogress.c
880gtkext.o: ../win/gtk/gtkext.c ../include/winGTK.h $(HACK_H) ../include/nhxdr.h \
881		../include/proxycom.h ../include/prxyclnt.h
882	$(CC) $(CFLAGS) $(WINGTKCFLAGS) -c ../win/gtk/gtkext.c
883gtkint.o: ../win/gtk/gtkint.c ../include/winGTK.h $(HACK_H) ../include/nhxdr.h \
884		../include/proxycom.h ../include/prxyclnt.h \
885		../include/func_tab.h ../include/dlb.h ../include/patchlevel.h
886	$(CC) $(CFLAGS) $(WINGTKCFLAGS) -c ../win/gtk/gtkint.c
887gnaskstr.o: ../win/gnome/gnaskstr.c ../win/gnome/gnaskstr.h \
888		../win/gnome/gnmain.h
889	$(CC) $(CFLAGS) $(GNOMEINC) -c ../win/gnome/gnaskstr.c
890gnbind.o: ../win/gnome/gnbind.c ../win/gnome/gnbind.h ../win/gnome/gnmain.h \
891		../win/gnome/gnmenu.h ../win/gnome/gnaskstr.h \
892		../win/gnome/gnyesno.h
893	$(CC) $(CFLAGS) $(GNOMEINC) -c ../win/gnome/gnbind.c
894gnglyph.o: ../win/gnome/gnglyph.c ../win/gnome/gnglyph.h
895	$(CC) $(CFLAGS) $(GNOMEINC) -c ../win/gnome/gnglyph.c
896gnmain.o: ../win/gnome/gnmain.c ../win/gnome/gnmain.h ../win/gnome/gnsignal.h \
897		../win/gnome/gnbind.h ../win/gnome/gnopts.h $(HACK_H) \
898		../include/date.h
899	$(CC) $(CFLAGS) $(GNOMEINC) -c ../win/gnome/gnmain.c
900gnmap.o: ../win/gnome/gnmap.c ../win/gnome/gnmap.h ../win/gnome/gnglyph.h \
901		../win/gnome/gnsignal.h $(HACK_H)
902	$(CC) $(CFLAGS) $(GNOMEINC) -c ../win/gnome/gnmap.c
903gnmenu.o: ../win/gnome/gnmenu.c ../win/gnome/gnmenu.h ../win/gnome/gnmain.h \
904		../win/gnome/gnbind.h ../include/func_tab.h
905	$(CC) $(CFLAGS) $(GNOMEINC) -c ../win/gnome/gnmenu.c
906gnmesg.o: ../win/gnome/gnmesg.c ../win/gnome/gnmesg.h ../win/gnome/gnsignal.h
907	$(CC) $(CFLAGS) $(GNOMEINC) -c ../win/gnome/gnmesg.c
908gnopts.o: ../win/gnome/gnopts.c ../win/gnome/gnopts.h ../win/gnome/gnglyph.h \
909		../win/gnome/gnmain.h ../win/gnome/gnmap.h $(HACK_H)
910	$(CC) $(CFLAGS) $(GNOMEINC) -c ../win/gnome/gnopts.c
911gnplayer.o: ../win/gnome/gnplayer.c ../win/gnome/gnplayer.h \
912		../win/gnome/gnmain.h $(HACK_H)
913	$(CC) $(CFLAGS) $(GNOMEINC) -c ../win/gnome/gnplayer.c
914gnsignal.o: ../win/gnome/gnsignal.c ../win/gnome/gnsignal.h \
915		../win/gnome/gnmain.h
916	$(CC) $(CFLAGS) $(GNOMEINC) -c ../win/gnome/gnsignal.c
917gnstatus.o: ../win/gnome/gnstatus.c ../win/gnome/gnstatus.h \
918		../win/gnome/gnsignal.h ../win/gnome/gn_xpms.h \
919		../win/gnome/gnomeprv.h
920	$(CC) $(CFLAGS) $(GNOMEINC) -c ../win/gnome/gnstatus.c
921gntext.o: ../win/gnome/gntext.c ../win/gnome/gntext.h ../win/gnome/gnmain.h \
922		../win/gnome/gn_rip.h
923	$(CC) $(CFLAGS) $(GNOMEINC) -c ../win/gnome/gntext.c
924gnyesno.o: ../win/gnome/gnyesno.c ../win/gnome/gnbind.h ../win/gnome/gnyesno.h
925	$(CC) $(CFLAGS) $(GNOMEINC) -c ../win/gnome/gnyesno.c
926gnworn.o: ../win/gnome/gnworn.c ../win/gnome/gnworn.h ../win/gnome/gnglyph.h \
927		../win/gnome/gnsignal.h ../win/gnome/gnomeprv.h
928	$(CC) $(CFLAGS) $(GNOMEINC) -c ../win/gnome/gnworn.c
929wingem.o: ../win/gem/wingem.c $(HACK_H) ../include/func_tab.h ../include/dlb.h \
930		../include/patchlevel.h ../include/wingem.h
931	$(CC) $(CFLAGS) -c ../win/gem/wingem.c
932wingem1.o: ../win/gem/wingem1.c ../include/gem_rsc.h ../include/load_img.h \
933		../include/gr_rect.h ../include/wintype.h ../include/wingem.h
934	$(CC) $(CFLAGS) -c ../win/gem/wingem1.c
935load_img.o: ../win/gem/load_img.c ../include/load_img.h
936	$(CC) $(CFLAGS) -c ../win/gem/load_img.c
937gr_rect.o: ../win/gem/gr_rect.c ../include/gr_rect.h
938	$(CC) $(CFLAGS) -c ../win/gem/gr_rect.c
939winproxy.o: ../win/proxy/winproxy.c $(HACK_H) ../include/patchlevel.h \
940		../include/date.h ../include/nhxdr.h ../include/proxycom.h \
941		../include/winproxy.h #../include/win32api.h
942	$(CC) $(CFLAGS) -c ../win/proxy/winproxy.c
943callback.o: ../win/proxy/callback.c $(HACK_H) ../include/func_tab.h \
944		../include/md5.h ../include/nhxdr.h ../include/proxycom.h \
945		../include/winproxy.h
946	$(CC) $(CFLAGS) -c ../win/proxy/callback.c
947dlbh.o: ../win/proxy/dlbh.c $(HACK_H) ../include/dlb.h
948	$(CC) $(CFLAGS) -c ../win/proxy/dlbh.c
949mapid.o: ../win/proxy/mapid.c $(HACK_H) ../include/nhxdr.h ../include/winproxy.h
950	$(CC) $(CFLAGS) -c ../win/proxy/mapid.c
951riputil.o: ../win/proxy/riputil.c $(HACK_H)
952	$(CC) $(CFLAGS) -c ../win/proxy/riputil.c
953getopt.o: ../win/proxy/getopt.c $(HACK_H)
954	$(CC) $(CFLAGS) -c ../win/proxy/getopt.c
955glyphmap.o: ../win/proxy/glyphmap.c $(HACK_H) ../include/nhxdr.h \
956		../include/proxycom.h ../include/winproxy.h
957	$(CC) $(CFLAGS) -c ../win/proxy/glyphmap.c
958proxysvc.o: ../win/proxy/proxysvc.c ../include/nhxdr.h ../include/proxycom.h \
959		../include/proxycb.h ../include/prxyclnt.h
960	$(CC) $(CFLAGS) -c ../win/proxy/proxysvc.c
961proxycb.o: ../win/proxy/proxycb.c ../include/nhxdr.h ../include/proxycom.h \
962		../include/proxycb.h
963	$(CC) $(CFLAGS) -c ../win/proxy/proxycb.c
964prxymap.o: ../win/proxy/prxymap.c ../include/nhxdr.h ../include/proxycom.h \
965		../include/prxyclnt.h
966	$(CC) $(CFLAGS) -c ../win/proxy/prxymap.c
967prxychar.o: ../win/proxy/prxychar.c ../include/nhxdr.h ../include/proxycom.h \
968		../include/prxyclnt.h
969	$(CC) $(CFLAGS) -c ../win/proxy/prxychar.c
970prxytile.o: ../win/proxy/prxytile.c ../include/nhxdr.h ../include/proxycom.h \
971		../include/prxyclnt.h ../include/proxycb.h
972	$(CC) $(CFLAGS) -c ../win/proxy/prxytile.c
973prxyconn.o: ../win/proxy/prxyconn.c ../include/nhxdr.h ../include/proxycom.h \
974		../include/prxyclnt.h
975	$(CC) $(CFLAGS) -c ../win/proxy/prxyconn.c
976nhext.o: ../win/proxy/nhext.c ../include/nhxdr.h ../include/proxycom.h
977	$(CC) $(CFLAGS) -c ../win/proxy/nhext.c
978nhxdr.o: ../win/proxy/nhxdr.c ../include/nhxdr.h
979	$(CC) $(CFLAGS) -c ../win/proxy/nhxdr.c
980nhextxdr.o: ../win/proxy/nhextxdr.c ../include/nhxdr.h
981	$(CC) $(CFLAGS) -c ../win/proxy/nhextxdr.c
982nhextio.o: ../win/proxy/nhextio.c ../include/nhxdr.h
983	$(CC) $(CFLAGS) -c ../win/proxy/nhextio.c
984nhextnb.o: ../win/proxy/nhextnb.c ../include/nhxdr.h
985	$(CC) $(CFLAGS) -c ../win/proxy/nhextnb.c
986compxdr.o: ../win/proxy/compxdr.c ../include/nhxdr.h ../include/proxycom.h
987	$(CC) $(CFLAGS) -c ../win/proxy/compxdr.c
988md5.o: ../win/proxy/md5.c ../include/md5.h
989	$(CC) $(CFLAGS) -c ../win/proxy/md5.c
990gl_conf.o: ../win/gl/gl_conf.c $(HACK_H) ../include/dlb.h \
991		../include/patchlevel.h ../include/winGL.h
992	$(CC) $(CFLAGS) $(SDLGL_CFLAGS) -c ../win/gl/gl_conf.c
993gl_emul.o: ../win/gl/gl_emul.c $(HACK_H) ../include/winGL.h \
994		../include/func_tab.h
995	$(CC) $(CFLAGS) $(SDLGL_CFLAGS) -c ../win/gl/gl_emul.c
996gl_font.o: ../win/gl/gl_font.c $(HACK_H) ../include/patchlevel.h \
997		../include/winGL.h
998	$(CC) $(CFLAGS) $(SDLGL_CFLAGS) -c ../win/gl/gl_font.c
999gl_hardw.o: ../win/gl/gl_hardw.c $(HACK_H) ../include/patchlevel.h \
1000		../include/winGL.h
1001	$(CC) $(CFLAGS) $(SDLGL_CFLAGS) -c ../win/gl/gl_hardw.c
1002gl_image.o: ../win/gl/gl_image.c $(HACK_H) ../include/patchlevel.h \
1003		../include/dlb.h ../include/winGL.h
1004	$(CC) $(CFLAGS) $(SDLGL_CFLAGS) -c ../win/gl/gl_image.c
1005gl_main.o: ../win/gl/gl_main.c $(HACK_H) ../include/dlb.h \
1006		../include/patchlevel.h ../include/winGL.h
1007	$(CC) $(CFLAGS) $(SDLGL_CFLAGS) -c ../win/gl/gl_main.c
1008gl_map.o: ../win/gl/gl_map.c $(HACK_H) ../include/patchlevel.h \
1009		../include/winGL.h
1010	$(CC) $(CFLAGS) $(SDLGL_CFLAGS) -c ../win/gl/gl_map.c
1011gl_menu.o: ../win/gl/gl_menu.c $(HACK_H) ../include/dlb.h \
1012		../include/patchlevel.h ../include/winGL.h
1013	$(CC) $(CFLAGS) $(SDLGL_CFLAGS) -c ../win/gl/gl_menu.c
1014gl_opt.o: ../win/gl/gl_opt.c $(HACK_H) ../include/dlb.h \
1015		../include/patchlevel.h ../include/date.h ../include/winGL.h
1016	$(CC) $(CFLAGS) $(SDLGL_CFLAGS) -c ../win/gl/gl_opt.c
1017gl_role.o: ../win/gl/gl_role.c $(HACK_H) ../include/dlb.h \
1018		../include/patchlevel.h ../include/winGL.h
1019	$(CC) $(CFLAGS) $(SDLGL_CFLAGS) -c ../win/gl/gl_role.c
1020gl_rendu.o: ../win/gl/gl_rendu.c $(HACK_H) ../include/patchlevel.h \
1021		../include/winGL.h
1022	$(CC) $(CFLAGS) $(SDLGL_CFLAGS) -c ../win/gl/gl_rendu.c
1023gl_softw.o: ../win/gl/gl_softw.c $(HACK_H) ../include/patchlevel.h \
1024		../include/winGL.h
1025	$(CC) $(CFLAGS) $(SDLGL_CFLAGS) -c ../win/gl/gl_softw.c
1026gl_stat.o: ../win/gl/gl_stat.c $(HACK_H) ../include/winGL.h
1027	$(CC) $(CFLAGS) $(SDLGL_CFLAGS) -c ../win/gl/gl_stat.c
1028gl_text.o: ../win/gl/gl_text.c $(HACK_H) ../include/dlb.h \
1029		../include/patchlevel.h ../include/winGL.h
1030	$(CC) $(CFLAGS) $(SDLGL_CFLAGS) -c ../win/gl/gl_text.c
1031gl_tile.o: ../win/gl/gl_tile.c $(HACK_H) ../include/patchlevel.h \
1032		../include/winGL.h
1033	$(CC) $(CFLAGS) $(SDLGL_CFLAGS) -c ../win/gl/gl_tile.c
1034gl_unit.o: ../win/gl/gl_unit.c $(HACK_H) ../include/winGL.h
1035	$(CC) $(CFLAGS) $(SDLGL_CFLAGS) -c ../win/gl/gl_unit.c
1036gl_win.o: ../win/gl/gl_win.c $(HACK_H) ../include/dlb.h \
1037		../include/patchlevel.h ../include/winGL.h
1038	$(CC) $(CFLAGS) $(SDLGL_CFLAGS) -c ../win/gl/gl_win.c
1039tile.o: tile.c $(HACK_H)
1040qt_win.o: ../win/Qt/qt_win.cpp $(HACK_H) ../include/func_tab.h \
1041		../include/dlb.h ../include/date.h ../include/patchlevel.h \
1042		../include/tile2x11.h ../include/qt_win.h \
1043		../include/qt_clust.h ../include/qt_kde0.h \
1044		../include/qt_xpms.h qt_win.moc qt_kde0.moc qttableview.moc
1045	$(CXX) $(CXXFLAGS) -c ../win/Qt/qt_win.cpp
1046qt_clust.o: ../win/Qt/qt_clust.cpp ../include/qt_clust.h
1047	$(CXX) $(CXXFLAGS) -c ../win/Qt/qt_clust.cpp
1048qttableview.o: ../win/Qt/qttableview.cpp ../include/qttableview.h
1049	$(CXX) $(CXXFLAGS) -c ../win/Qt/qttableview.cpp
1050monstr.o: monstr.c $(CONFIG_H)
1051vis_tab.o: vis_tab.c $(CONFIG_H) ../include/vis_tab.h
1052allmain.o: allmain.c $(HACK_H) ../include/patchlevel.h
1053alloc.o: alloc.c $(CONFIG_H)
1054apply.o: apply.c $(HACK_H) ../include/edog.h
1055artifact.o: artifact.c $(HACK_H) ../include/artifact.h ../include/artilist.h
1056attrib.o: attrib.c $(HACK_H)
1057ball.o: ball.c $(HACK_H)
1058bones.o: bones.c $(HACK_H) ../include/lev.h
1059botl.o: botl.c $(HACK_H)
1060cmd.o: cmd.c $(HACK_H) ../include/func_tab.h
1061dbridge.o: dbridge.c $(HACK_H)
1062decl.o: decl.c $(HACK_H)
1063detect.o: detect.c $(HACK_H) ../include/artifact.h
1064dig.o: dig.c $(HACK_H) ../include/edog.h
1065display.o: display.c $(HACK_H)
1066dlb.o: dlb.c $(CONFIG_H) ../include/dlb.h
1067do.o: do.c $(HACK_H) ../include/lev.h
1068do_name.o: do_name.c $(HACK_H)
1069do_wear.o: do_wear.c $(HACK_H)
1070dog.o: dog.c $(HACK_H) ../include/edog.h ../include/emin.h ../include/epri.h
1071dogmove.o: dogmove.c $(HACK_H) ../include/mfndpos.h ../include/edog.h \
1072		../include/emin.h ../include/epri.h
1073dokick.o: dokick.c $(HACK_H) ../include/eshk.h
1074dothrow.o: dothrow.c $(HACK_H) ../include/edog.h
1075drawing.o: drawing.c $(HACK_H) ../include/tcap.h
1076dungeon.o: dungeon.c $(HACK_H) ../include/dgn_file.h ../include/dlb.h
1077eat.o: eat.c $(HACK_H)
1078end.o: end.c $(HACK_H) ../include/eshk.h ../include/dlb.h
1079engrave.o: engrave.c $(HACK_H) ../include/lev.h
1080exper.o: exper.c $(HACK_H)
1081explode.o: explode.c $(HACK_H)
1082extralev.o: extralev.c $(HACK_H)
1083files.o: files.c $(HACK_H) ../include/dlb.h ../include/filename.h \
1084		../include/winGL.h ../include/winproxy.h
1085fountain.o: fountain.c $(HACK_H)
1086hack.o: hack.c $(HACK_H)
1087hacklib.o: hacklib.c $(HACK_H)
1088invent.o: invent.c $(HACK_H)
1089light.o: light.c $(HACK_H) ../include/lev.h
1090lock.o: lock.c $(HACK_H)
1091mail.o: mail.c $(HACK_H) ../include/mail.h
1092makemon.o: makemon.c $(HACK_H) ../include/epri.h ../include/emin.h \
1093		../include/edog.h
1094mapglyph.o: mapglyph.c $(HACK_H)
1095mcastu.o: mcastu.c $(HACK_H)
1096mhitm.o: mhitm.c $(HACK_H) ../include/artifact.h ../include/edog.h
1097mhitu.o: mhitu.c $(HACK_H) ../include/artifact.h ../include/edog.h
1098minion.o: minion.c $(HACK_H) ../include/emin.h ../include/epri.h
1099mklev.o: mklev.c $(HACK_H)
1100mkmap.o: mkmap.c $(HACK_H) ../include/sp_lev.h
1101mkmaze.o: mkmaze.c $(HACK_H) ../include/sp_lev.h ../include/lev.h
1102mkobj.o: mkobj.c $(HACK_H)
1103mkroom.o: mkroom.c $(HACK_H)
1104mon.o: mon.c $(HACK_H) ../include/mfndpos.h ../include/edog.h \
1105		../include/artifact.h
1106mondata.o: mondata.c $(HACK_H) ../include/eshk.h ../include/epri.h
1107monmove.o: monmove.c $(HACK_H) ../include/mfndpos.h ../include/artifact.h \
1108		../include/epri.h
1109monst.o: monst.c $(CONFIG_H) ../include/permonst.h ../include/align.h \
1110		../include/monattk.h ../include/monflag.h ../include/monsym.h \
1111		../include/dungeon.h ../include/eshk.h ../include/vault.h \
1112		../include/epri.h ../include/egyp.h ../include/color.h
1113mplayer.o: mplayer.c $(HACK_H)
1114mthrowu.o: mthrowu.c $(HACK_H)
1115muse.o: muse.c $(HACK_H) ../include/edog.h
1116music.o: music.c $(HACK_H) #interp.c
1117o_init.o: o_init.c $(HACK_H) ../include/lev.h
1118objects.o: objects.c $(CONFIG_H) ../include/obj.h ../include/objclass.h \
1119		../include/prop.h ../include/skills.h ../include/color.h
1120objnam.o: objnam.c $(HACK_H)
1121options.o: options.c $(CONFIG_H) ../include/objclass.h ../include/flag.h \
1122		$(HACK_H) ../include/tcap.h ../include/winGL.h \
1123		../include/filename.h
1124pager.o: pager.c $(HACK_H) ../include/dlb.h
1125pickup.o: pickup.c $(HACK_H)
1126pline.o: pline.c $(HACK_H) ../include/epri.h ../include/edog.h
1127polyself.o: polyself.c $(HACK_H)
1128potion.o: potion.c $(HACK_H)
1129pray.o: pray.c $(HACK_H) ../include/epri.h
1130priest.o: priest.c $(HACK_H) ../include/mfndpos.h ../include/eshk.h \
1131		../include/epri.h ../include/emin.h
1132quest.o: quest.c $(HACK_H) ../include/qtext.h
1133questpgr.o: questpgr.c $(HACK_H) ../include/dlb.h ../include/qtext.h
1134read.o: read.c $(HACK_H)
1135rect.o: rect.c $(HACK_H)
1136region.o: region.c $(HACK_H) ../include/lev.h
1137restore.o: restore.c $(HACK_H) ../include/lev.h ../include/tcap.h
1138rip.o: rip.c $(HACK_H)
1139rnd.o: rnd.c $(HACK_H)
1140role.o: role.c $(HACK_H)
1141rumors.o: rumors.c $(HACK_H) ../include/lev.h ../include/dlb.h
1142save.o: save.c $(HACK_H) ../include/lev.h
1143shk.o: shk.c $(HACK_H) ../include/eshk.h
1144shknam.o: shknam.c $(HACK_H) ../include/eshk.h
1145sit.o: sit.c $(HACK_H) ../include/artifact.h
1146sounds.o: sounds.c $(HACK_H) ../include/edog.h
1147sp_lev.o: sp_lev.c $(HACK_H) ../include/dlb.h ../include/sp_lev.h
1148spell.o: spell.c $(HACK_H) ../include/edog.h
1149steal.o: steal.c $(HACK_H)
1150steed.o: steed.c $(HACK_H)
1151teleport.o: teleport.c $(HACK_H)
1152timeout.o: timeout.c $(HACK_H) ../include/lev.h
1153topten.o: topten.c $(HACK_H) ../include/dlb.h ../include/patchlevel.h
1154track.o: track.c $(HACK_H)
1155trap.o: trap.c $(HACK_H)
1156u_init.o: u_init.c $(HACK_H)
1157uhitm.o: uhitm.c $(HACK_H)
1158vault.o: vault.c $(HACK_H) ../include/vault.h
1159version.o: version.c $(HACK_H) ../include/date.h ../include/patchlevel.h
1160vision.o: vision.c $(HACK_H) ../include/vis_tab.h
1161weapon.o: weapon.c $(HACK_H)
1162were.o: were.c $(HACK_H)
1163wield.o: wield.c $(HACK_H)
1164windows.o: windows.c $(HACK_H) ../include/wingem.h ../include/winGnome.h \
1165		../include/winGL.h ../include/winproxy.h
1166wizard.o: wizard.c $(HACK_H) ../include/qtext.h ../include/epri.h
1167worm.o: worm.c $(HACK_H) ../include/lev.h
1168worn.o: worn.c $(HACK_H)
1169write.o: write.c $(HACK_H)
1170zap.o: zap.c $(HACK_H)
1171gypsy.o: gypsy.c $(HACK_H) ../include/egyp.h ../include/qtext.h
1172tech.o: tech.c $(HACK_H)
1173# DEPENDENCIES MUST END AT END OF FILE
1174# IF YOU PUT STUFF HERE IT WILL GO AWAY
1175# see make depend above
1176