1579 lines
44 KiB
Makefile
1579 lines
44 KiB
Makefile
# NetHack Makefile.
|
|
# Copyright (c) Kenneth Lorber, Bethesda, Maryland, 1991,1992,1993,1996.
|
|
# NetHack may be freely redistributed. See license for details.
|
|
|
|
###
|
|
### INTRODUCTION
|
|
###
|
|
|
|
# This makefile is arranged for compiling for the Amiga with SAS/C 6.51 but
|
|
# can be configured for compiling with Manx C 5 or commercial DICE with
|
|
# simple changes. The appropriate changes are identified by #[compiler]
|
|
# where compiler is one of: SAS6, MANX, or DICE; the options in this
|
|
# makefile as should be set according to the compiler being used. (But see
|
|
# note 3 below.)
|
|
|
|
# Note: When using the Manx compiler, an alternate make utility is
|
|
# required. The bundled Aztec make is just too damaged.
|
|
|
|
# Note 2: The #SFD_xxx lines are used with mkdmake to generate a DMake-
|
|
# compatible makefile (DMakefile) from this file. Any line beginning with
|
|
# #SFD_INSTEAD replaces, in DMakefile, the following line from Makefile.ami.
|
|
# #SFD_BEGIN, #SFD_ELSE, and #SFD_END bracket multi-line sections for the two
|
|
# makefile formats.
|
|
# When changing this file, #SFD_INSTEAD lines will need to be inserted for
|
|
# the following cases:
|
|
# - Dependencies with different numbers of filenames (both > 1) on
|
|
# either side. The #SFD_INSTEAD line should immediately precede
|
|
# the line with the colon, and should contain a double colon "::"
|
|
# instead of a single colon.
|
|
# - Special command lists that override the default. A line containing
|
|
# "#SFD_INSTEAD #none" should precede such a rule. If the rule is
|
|
# more than one line long, precede it with "#SFD_BEGIN" and
|
|
# "#SFD_ELSE", and follow it with "#SFD_END".
|
|
# - Files not in the src, sys/amiga, sys/share, or win/tty directories
|
|
# that rely on the default ".c.o" rule. Following the dependency
|
|
# should be "#SFD_INSTEAD <default>" with the filename inserted
|
|
# into the default rule where appropriate, then a line contianing
|
|
# "#none".
|
|
# In any SFD_BEGIN/ELSE/END block added, put a '##' before every line
|
|
# between the BEGIN and ELSE. Any line that's really a comment needs three
|
|
# '#'s, e.g. "### DICE comment".
|
|
|
|
# Note 2A: Whenever an SFD line/block is added, the appropriate repeat count
|
|
# in mkdmake must be changed. (The repeat count "0" meaning "repeat
|
|
# until end of file" doesn't work as advertised.)
|
|
|
|
# Note 3: mkdmake will automatically substitute DICE flags, etc. for SAS
|
|
# where appropriate. Since the makefile is already set up for SAS,
|
|
# the only people who end up having to make changes here are Manx
|
|
# users (or people who want to change the defaults).
|
|
|
|
###
|
|
### DIRECTORY STRUCTURE
|
|
###
|
|
|
|
NH = NH:
|
|
SBIN = $(NH)sbin/
|
|
SLIB = $(NH)slib/
|
|
NETHACK = $(NH)NetHack/
|
|
HACKEXE = $(NH)HackExe/
|
|
AMI = $(NH)sys/amiga/
|
|
DAT = $(NH)dat/
|
|
DOC = $(NH)doc/
|
|
I = $(NH)include/
|
|
SHARE = $(NH)sys/share/
|
|
NHS = $(NH)src/
|
|
TTY = $(NH)win/tty/
|
|
WSHARE = $(NH)win/share/
|
|
UTIL = $(NH)util/
|
|
O = $(NH)obj/
|
|
OO = $(NH)objo/
|
|
# NB: O and OO MUST be different directories
|
|
|
|
###
|
|
### INVOCATION
|
|
###
|
|
|
|
#[SAS6]
|
|
#MAKE = smake
|
|
#[MANX]
|
|
#MAKE = make
|
|
#[DICE]
|
|
#MAKE = dmake
|
|
|
|
# Startup makefile with:
|
|
#
|
|
#[SAS6]
|
|
#[MANX]
|
|
# $(MAKE) -f $(AMI)Makefile.ami
|
|
# $(MAKE) -f $(AMI)Makefile.ami install
|
|
#
|
|
#[DICE]
|
|
# $(MAKE) -f $(AMI)DMakefile
|
|
# $(MAKE) -f $(AMI)DMakefile install
|
|
#
|
|
#
|
|
# You may use following targets on $(MAKE) command lines:
|
|
# all do it all (default)
|
|
# link just create binary from object files
|
|
# obj just create common object files
|
|
# obja just create amiga object files
|
|
# objs just create shared object files
|
|
# clean deletes the object files
|
|
# spotless deletes the object files, main binary, and more
|
|
#
|
|
# Note: We do not build the Guidebook here since it needs tbl
|
|
# (See the file sys/unix/Makefile.doc for more information)
|
|
|
|
#X# Precompiled header files:
|
|
#X# $(HDEP) should appear in any dependency list for an object file where
|
|
#X# we would want to make use of the precompiled version of $(I)hack.h,
|
|
#X# while $(CSYM) should appear in the C compiler command line that creates
|
|
#X# any such object file. (Changes made here should agree with the $(HDEP):
|
|
#X# target that appears later in this makefile.)
|
|
#X#
|
|
|
|
#SFD_BEGIN
|
|
##
|
|
###[DICE]
|
|
### If we were compiling with DICE and wanted to use the symbol table
|
|
### pre-loading feature, we would uncomment these following two lines.
|
|
##
|
|
##HDEP = $(I)hack.sym
|
|
##CSYM = -H$(I)hack.sym=hack.h
|
|
##
|
|
#SFD_ELSE
|
|
|
|
#[SAS5]
|
|
# If we were to use the precompiled header file feature in a newer version
|
|
# of SAS/C, we would comment out these following two lines.
|
|
# If we don't use precompiled header files, we uncomment it as well.
|
|
|
|
HDEP = $(I)hack.h $(I)pm.h $(I)onames.h
|
|
CSYM =
|
|
|
|
#[MANX]
|
|
# If we were compiling with Aztec, and wanted to use the symbol table
|
|
# pre-loading feature, we would uncomment these following two lines.
|
|
|
|
#HDEP = Ram:hack.sym
|
|
#CSYM = +IRam:hack.sym
|
|
|
|
#SFD_END
|
|
|
|
#Pathname for uudecode program:
|
|
UUDEC = uudecode
|
|
|
|
# Flex/Bison command assignments -- Useful only if you have flex/bison
|
|
FLEX = flex
|
|
BISON = bison
|
|
# FBFIL and FBLIB may be used, if required by your version of flex or bison,
|
|
# to specify additional files or libraries to be linked with
|
|
FBFIL =
|
|
FBLIB = #lib lib:compat.lib
|
|
|
|
# If you're compiling this on a 1.3 system, you'll have to uncomment the
|
|
# following (for use with the ifchange script below). Also useful instead of
|
|
# "protect ifchange +s"
|
|
EXECUTE = execute
|
|
|
|
# Headers we depend on
|
|
AMDEP = $(AMI)winproto.h $(AMI)winext.h $(AMI)windefs.h $(I)winami.h
|
|
|
|
# Pathname for the C compiler being used.
|
|
|
|
#SFD_BEGIN
|
|
##
|
|
###[DICE]
|
|
##CC = dcc
|
|
##ASM = das
|
|
##
|
|
#SFD_ELSE
|
|
|
|
#[SAS6]
|
|
CC = sc
|
|
ASM = asm
|
|
|
|
#[MANX]
|
|
#CC = cc
|
|
|
|
#SFD_END
|
|
|
|
# Compilation flags for selected C Compiler:
|
|
# $(CFLAGS) should appear before filename arguments of $(CC) command line.
|
|
|
|
#SFD_BEGIN
|
|
##
|
|
###[DICE]
|
|
##CFLAGS = -c -I$(I) -mC -mD -ms -//
|
|
##CFLAGS2 =
|
|
##WBCFLAGS = -c -I$(I) -mC -mD -ms -//
|
|
##WBC2FLAGS = -DCLI
|
|
##SPLFLAGS = -DSPLIT
|
|
##
|
|
#SFD_ELSE
|
|
|
|
#[SAS6]
|
|
# Note: make sure your CLI stack size is large (at least 50K) or lev_comp
|
|
# and makedefs may fail terribly - stack checking is disabled.
|
|
#
|
|
# **** WARNING **** GST support is not fool proof. You must make makedefs
|
|
# without a GST first so that the generated headers
|
|
# that are part of the GST can be made.
|
|
#
|
|
#GSTSRC=$(AMI)gst.c
|
|
#
|
|
#GSTHEAD=$(I)hack.h $(I)pm.h $(I)trap.h $(I)onames.h \
|
|
# $(AMI)winami.p $(AMI)amidos.p $(AMI)amiwind.p
|
|
#
|
|
#GSTFILE=$(O)NetHack.gst
|
|
# undefine this to not compile with GSTs
|
|
#GST=gst=$(GSTFILE)
|
|
#
|
|
DEBUG=debug=symbol
|
|
CPU=cpu=68000
|
|
#OPTFLAGS=opt opttime optpeep optgo optinl optsched optcomp=10 optdep=5 optrdep=5 #optalias +OPTTIME -OPTSIZE
|
|
CFLAGS = data=far nominc $(DEBUG) idir=$(I) $(CPU) nostkchk nover \
|
|
codename=nhcode dataname=nhdata strmerge $(OPTFLAGS) $(TILES) $(SAVEDS) \
|
|
afp $(ERRREXX) $(GST)
|
|
# for files that are too large for the standard flags:
|
|
CFLAGS2 = code=far strmerge $(SAVEDS)
|
|
WBCFLAGS = ignore=217,62 data=far ansi nminc code=far idir=$(I) $(CPU) afp \
|
|
$(DEBUG) $(ERRREXX) define=AMIGA $(GST)
|
|
XXX = data=far ansi nminc idir=$(I) $(CPU) afp opt optinline optinlocal \
|
|
optloop opttime
|
|
WBC2FLAGS = define=CLI
|
|
SPLFLAGS = define=SPLIT #dollarok
|
|
#for amistack.c
|
|
CFLAGS3 = data=near dataname=__MERGED nominc $(DEBUG) idir=$(I) $(CPU) nover nostkchk \
|
|
codename=nhcode strmerge $(OPTFLAGS) $(TILES) $(SAVEDS) \
|
|
afp $(ERRREXX) $(GST)
|
|
|
|
#[MANX]
|
|
#CFLAGS = -i$(I) -mc -md -ms -pa -ps -bs -wo -qq
|
|
#WBCFLAGS = -mc -md -ms -pa -ps -bs -wo -qq -pp
|
|
|
|
#SFD_END
|
|
|
|
# Assembly flags:
|
|
|
|
#SFD_BEGIN
|
|
##
|
|
###[DICE]
|
|
##AFLAGS =
|
|
##AOBJSPEC = -o
|
|
##
|
|
#SFD_ELSE
|
|
|
|
#[SAS6]
|
|
AFLAGS = #what to put here?
|
|
AOBJSPEC = -o
|
|
|
|
#SFD_END
|
|
|
|
# Components of various link command lines:
|
|
# $(LINK) should be the pathname of the linker being used (with any options
|
|
# that should appear at the beginning of the command line). The name of the
|
|
# output file should appear immediately after $(LNSPEC). $(LIN) should
|
|
# appear before the list of object files in each link command. $(LLINK)
|
|
# should appear as the list of object files in the link command line that
|
|
# creates the NetHack executable. $(LLIB) should appear at the end of each
|
|
# link command line.
|
|
|
|
# Note: amiga.lib added due to missing prototypes/pragmas.
|
|
# Should be deleted when this is resolved.
|
|
|
|
#SFD_BEGIN
|
|
##
|
|
###[DICE]
|
|
### If you have flex/bison libraries, use the second definition of FLLIB
|
|
### instead of the first.
|
|
##
|
|
##LINK = dcc -mD
|
|
##LIN =
|
|
##LLINK = @$(AMI)ami.lnk
|
|
##LLIB =
|
|
##FLLIB =
|
|
###FLLIB = -l$(FBLIB)
|
|
##OBJSPEC = -o
|
|
##PNSPEC = -o
|
|
##LNSPEC = -o
|
|
##CCLINK = dcc
|
|
##CLFLAGS = -I$(I) -mC -mD -ms -//
|
|
##INCLSPEC = -I
|
|
##DEFSPEC = -D
|
|
##IGNSPEC = -j
|
|
##
|
|
#SFD_ELSE
|
|
|
|
#[SAS6]
|
|
|
|
LINK = slink noicons verbose maxhunk 262144 stripdebug
|
|
LIN = from lib:catch.o
|
|
LLINK = with $(AMI)ami.lnk
|
|
LLIB = lib lib:scnb.lib BATCH #lib lib:amiga.lib BATCH #scnb.lib or sc.lib
|
|
FLLIB = $(FBLIB) lib Lib:sc.lib BATCH
|
|
OBJSPEC = objname=
|
|
PNSPEC = noicons to #pname=
|
|
LNSPEC = to
|
|
CCLINK = sc link
|
|
INCLSPEC = idir=
|
|
DEFSPEC = define=
|
|
IGNSPEC = ignore=
|
|
COMPACT_HEADERS=$(GSTFILE)
|
|
|
|
#[MANX]
|
|
|
|
#LINK = ln -g +q +ss -o
|
|
#LIN =
|
|
#LLINK = -f $(AMI)ami.lnk
|
|
#LLIB = -lcl16
|
|
#FLLIB = -lcl16
|
|
#OBJSPEC = -o
|
|
#PNSPEC = -o
|
|
#LNSPEC = -o
|
|
#CCLINK = cc
|
|
#INCLSPEC = -i
|
|
#DEFSPEC = -d
|
|
#IGNSPEC = -j
|
|
|
|
#SFD_END
|
|
|
|
###
|
|
### FILE LISTS
|
|
###
|
|
|
|
# A more reasonable random number generator (recommended for the Amiga):
|
|
|
|
RANDOBJ = $(O)random.o
|
|
|
|
#SFD_INSTEAD #none
|
|
.PRECIOUS: $(I)config.h $(I)decl.h $(I)hack.h $(I)permonst.h $(I)you.h
|
|
|
|
# Almost nothing below this line should have to be changed.
|
|
# (Exceptions are marked by [SAS6], [MANX], etc.)
|
|
#
|
|
# Other things that have to be reconfigured are in config.h,
|
|
# (amiconf.h, pcconf.h), and possibly system.h, tradstdc.h.
|
|
|
|
# Object files for makedefs:
|
|
|
|
MAKEOBJS = \
|
|
$(OO)makedefs.o $(O)monst.o $(O)objects.o
|
|
|
|
# Object files for special levels compiler:
|
|
|
|
SPLEVOBJS = \
|
|
$(OO)lev_yacc.o $(OO)lev_lex.o $(OO)lev_main.o \
|
|
$(O)decl.o $(O)drawing.o $(O)monst.o \
|
|
$(O)objects.o $(OO)panic.o
|
|
|
|
# Object files for dungeon compiler
|
|
|
|
DGNCOMPOBJS = \
|
|
$(OO)dgn_yacc.o $(OO)dgn_lex.o $(OO)dgn_main.o $(O)alloc.o $(OO)panic.o
|
|
|
|
# Object files for NetHack:
|
|
|
|
COMMOBJ = \
|
|
$(O)allmain.o $(O)alloc.o $(O)apply.o $(O)artifact.o \
|
|
$(O)attrib.o $(O)ball.o $(O)bones.o $(O)botl.o \
|
|
$(O)cmd.o $(O)dbridge.o $(O)decl.o $(O)detect.o \
|
|
$(O)dig.o $(O)display.o $(O)dlb.o $(O)do.o \
|
|
$(O)do_name.o $(O)do_wear.o $(O)dog.o $(O)dogmove.o \
|
|
$(O)dokick.o $(O)dothrow.o $(O)drawing.o $(O)dungeon.o \
|
|
$(O)eat.o $(O)end.o $(O)engrave.o $(O)exper.o \
|
|
$(O)explode.o $(O)extralev.o $(O)files.o $(O)fountain.o \
|
|
$(O)hack.o $(O)hacklib.o $(O)invent.o $(O)light.o \
|
|
$(O)lock.o $(O)mail.o $(O)makemon.o $(O)mapglyph.o \
|
|
$(O)mcastu.o $(O)mhitm.o $(O)mhitu.o $(O)minion.o \
|
|
$(O)mklev.o $(O)mkmap.o $(O)mkmaze.o $(O)mkobj.o \
|
|
$(O)mkroom.o $(O)mon.o $(O)mondata.o $(O)monmove.o \
|
|
$(O)monst.o $(O)mplayer.o $(O)mthrowu.o $(O)muse.o \
|
|
$(O)music.o $(O)o_init.o $(O)objects.o $(O)objnam.o \
|
|
$(O)options.o $(O)pager.o $(O)pickup.o $(O)pline.o \
|
|
$(O)polyself.o $(O)potion.o $(O)pray.o $(O)priest.o \
|
|
$(O)quest.o $(O)questpgr.o $(O)read.o $(O)rect.o \
|
|
$(O)region.o $(O)restore.o $(O)rnd.o $(O)role.o \
|
|
$(O)rumors.o $(O)save.o $(O)shk.o $(O)shknam.o \
|
|
$(O)sit.o $(O)sounds.o $(O)sp_lev.o $(O)spell.o \
|
|
$(O)steal.o $(O)steed.o $(O)sys.o $(O)teleport.o \
|
|
$(O)timeout.o $(O)topten.o $(O)track.o $(O)trap.o \
|
|
$(O)u_init.o $(O)uhitm.o $(O)vault.o $(O)version.o \
|
|
(O)vision.o $(O)weapon.o $(O)were.o $(O)wield.o \
|
|
$(O)windows.o $(O)wizard.o $(O)worm.o $(O)worn.o \
|
|
$(O)write.o $(O)zap.o
|
|
|
|
MAKEDEFOBJ = \
|
|
$(O)monstr.o
|
|
|
|
AMIGAOBJ = \
|
|
$(O)amidos.o $(O)amirip.o $(O)amistack.o \
|
|
$(O)amiwind.o $(O)winami.o $(O)winchar.o $(O)winfuncs.o \
|
|
$(O)winkey.o $(O)winamenu.o $(O)winreq.o $(O)winstr.o
|
|
|
|
# Objects from assembly sources (because DMake can't handle default rules)
|
|
AMIGAOBJ2 = \
|
|
# $(O)dispmap.o
|
|
|
|
SHAREOBJ = \
|
|
$(O)pcmain.o $(RANDOBJ)
|
|
|
|
TTYOBJ = \
|
|
$(O)getline.o $(O)termcap.o $(O)topl.o $(O)wintty.o $(O)amitty.o \
|
|
$(O)rip.o
|
|
|
|
# Yuck yuck yuck. Have to tell DMake where these are, since they're not
|
|
# all in the same place.
|
|
TTYSRC = \
|
|
$(TTY)getline.c $(TTY)termcap.c $(TTY)topl.c $(TTY)wintty.c \
|
|
$(AMI)amitty.c $(NHS)rip.c
|
|
|
|
# All the object files for NetHack:
|
|
|
|
HOBJ = $(COMMOBJ) $(AMIGAOBJ) $(AMIGAOBJ2) $(SHAREOBJ) $(MAKEDEFOBJ) $(TTYOBJ)
|
|
|
|
###
|
|
### DATA FILES
|
|
###
|
|
|
|
# quest files
|
|
ADFILES1= $(SLIB)Arc-fila.lev $(SLIB)Arc-filb.lev $(SLIB)Arc-loca.lev \
|
|
$(SLIB)Arc-strt.lev
|
|
ADFILES= $(SLIB)Arc-goal.lev $(ADFILES1)
|
|
|
|
BDFILES1= $(SLIB)Bar-fila.lev $(SLIB)Bar-filb.lev $(SLIB)Bar-loca.lev \
|
|
$(SLIB)Bar-strt.lev
|
|
BDFILES= $(SLIB)Bar-goal.lev $(BDFILES1)
|
|
|
|
CDFILES1= $(SLIB)Cav-fila.lev $(SLIB)Cav-filb.lev $(SLIB)Cav-loca.lev \
|
|
$(SLIB)Cav-strt.lev
|
|
CDFILES= $(SLIB)Cav-goal.lev $(CDFILES1)
|
|
|
|
HDFILES1= $(SLIB)Hea-fila.lev $(SLIB)Hea-filb.lev $(SLIB)Hea-loca.lev \
|
|
$(SLIB)Hea-strt.lev
|
|
HDFILES= $(SLIB)Hea-goal.lev $(HDFILES1)
|
|
|
|
KDFILES1= $(SLIB)Kni-fila.lev $(SLIB)Kni-filb.lev $(SLIB)Kni-loca.lev \
|
|
$(SLIB)Kni-strt.lev
|
|
KDFILES= $(SLIB)Kni-goal.lev $(KDFILES1)
|
|
|
|
MDFILES1= $(SLIB)Mon-fila.lev $(SLIB)Mon-filb.lev $(SLIB)Mon-loca.lev \
|
|
$(SLIB)Mon-strt.lev
|
|
MDFILES= $(SLIB)Mon-goal.lev $(MDFILES1)
|
|
|
|
PDFILES1= $(SLIB)Pri-fila.lev $(SLIB)Pri-filb.lev $(SLIB)Pri-loca.lev \
|
|
$(SLIB)Pri-strt.lev
|
|
PDFILES= $(SLIB)Pri-goal.lev $(PDFILES1)
|
|
|
|
RDFILES1= $(SLIB)Rog-fila.lev $(SLIB)Rog-filb.lev $(SLIB)Rog-loca.lev \
|
|
$(SLIB)Rog-strt.lev
|
|
RDFILES= $(SLIB)Rog-goal.lev $(RDFILES1)
|
|
|
|
RANFILES1= $(SLIB)Ran-fila.lev $(SLIB)Ran-filb.lev $(SLIB)Ran-loca.lev \
|
|
$(SLIB)Ran-strt.lev
|
|
RANFILES= $(SLIB)Ran-goal.lev $(RANFILES1)
|
|
|
|
SDFILES1= $(SLIB)Sam-fila.lev $(SLIB)Sam-filb.lev $(SLIB)Sam-loca.lev \
|
|
$(SLIB)Sam-strt.lev
|
|
SDFILES= $(SLIB)Sam-goal.lev $(SDFILES1)
|
|
|
|
TDFILES1= $(SLIB)Tou-fila.lev $(SLIB)Tou-filb.lev $(SLIB)Tou-loca.lev \
|
|
$(SLIB)Tou-strt.lev
|
|
TDFILES= $(SLIB)Tou-goal.lev $(TDFILES1)
|
|
|
|
VDFILES1= $(SLIB)Val-fila.lev $(SLIB)Val-filb.lev $(SLIB)Val-loca.lev \
|
|
$(SLIB)Val-strt.lev
|
|
VDFILES= $(SLIB)Val-goal.lev $(VDFILES1)
|
|
|
|
WDFILES1= $(SLIB)Wiz-fila.lev $(SLIB)Wiz-filb.lev $(SLIB)Wiz-loca.lev \
|
|
$(SLIB)Wiz-strt.lev
|
|
WDFILES= $(SLIB)Wiz-goal.lev $(WDFILES1)
|
|
|
|
XDFILES= $(ADFILES) $(BDFILES) $(CDFILES) $(HDFILES) $(KDFILES) \
|
|
$(MDFILES) $(PDFILES) $(RDFILES) $(RANFILES) $(SDFILES) $(TDFILES) \
|
|
$(VDFILES) $(WDFILES)
|
|
|
|
TILEFILES= \
|
|
$(SBIN)txt2iff \
|
|
$(NETHACK)tiles \
|
|
$(NETHACK)tiles/objects.iff \
|
|
$(NETHACK)tiles/monsters.iff \
|
|
$(NETHACK)tiles/other.iff
|
|
|
|
INSTDUNGEONFILES1= \
|
|
$(SLIB)air.lev $(SLIB)asmodeus.lev $(SLIB)astral.lev \
|
|
$(SLIB)baalz.lev $(SLIB)bigrm-1.lev $(SLIB)bigrm-2.lev \
|
|
$(SLIB)bigrm-3.lev $(SLIB)bigrm-4.lev $(SLIB)bigrm-5.lev \
|
|
$(SLIB)castle.lev $(SLIB)dungeon $(SLIB)earth.lev \
|
|
$(SLIB)fakewiz1.lev $(SLIB)fakewiz2.lev $(SLIB)fire.lev \
|
|
$(SLIB)juiblex.lev $(SLIB)knox.lev $(SLIB)medusa-1.lev \
|
|
$(SLIB)medusa-2.lev $(SLIB)minend-1.lev $(SLIB)minend-2.lev \
|
|
$(SLIB)minetn-1.lev $(SLIB)minetn-2.lev $(SLIB)minefill.lev \
|
|
$(SLIB)options $(SLIB)oracle.lev $(SLIB)orcus.lev \
|
|
$(SLIB)sanctum.lev $(SLIB)soko1-1.lev $(SLIB)soko1-2.lev \
|
|
$(SLIB)soko2-1.lev $(SLIB)soko2-2.lev $(SLIB)soko3-1.lev \
|
|
$(SLIB)soko3-2.lev $(SLIB)soko4-1.lev $(SLIB)soko4-2.lev \
|
|
$(SLIB)tower1.lev $(SLIB)tower2.lev $(SLIB)tower3.lev \
|
|
$(SLIB)valley.lev $(SLIB)water.lev $(SLIB)wizard1.lev \
|
|
$(SLIB)wizard2.lev $(SLIB)wizard3.lev \
|
|
$(XDFILES)
|
|
|
|
INSTDUNGEONFILES= $(NETHACK)NetHack.cnf $(INSTDUNGEONFILES1)
|
|
|
|
|
|
INSTDATAFILES= \
|
|
$(NETHACK)license $(NETHACK)logfile $(NETHACK)record \
|
|
$(NETHACK)tomb.iff $(NETHACK)amii.hlp $(NETHACK)Recover.txt \
|
|
$(NETHACK)GuideBook.txt $(NETHACK)NetHack.txt $(NETHACK)Install.ami
|
|
|
|
LIBFILES= \
|
|
$(INSTDUNGEONFILES1) \
|
|
$(SLIB)cmdhelp $(SLIB)data $(SLIB)dungeon \
|
|
$(SLIB)help $(SLIB)hh $(SLIB)history \
|
|
$(SLIB)opthelp $(SLIB)oracles $(SLIB)rumors \
|
|
$(SLIB)quest.dat $(SLIB)wizhelp
|
|
|
|
###
|
|
### Getting down to business:
|
|
###
|
|
|
|
#SFD_INSTEAD all: $(SBIN)lev_comp $(SBIN)dgn_comp $(SBIN)NetHack \
|
|
all: $(COMPACT_HEADERS) $(SBIN)lev_comp $(SBIN)dgn_comp $(SBIN)NetHack \
|
|
$(SBIN)dlb $(NETHACK)recover
|
|
|
|
install: all inst-data inst-dungeon inst-fonts inst-tiles \
|
|
$(NETHACK)nhdat $(NETHACK)NetHack
|
|
|
|
$(SBIN)NetHack: $(HOBJ) $(AMI)ami.lnk
|
|
$(LINK) $(LNSPEC) $(SBIN)NetHack $(LIN) $(LLINK) $(LLIB)
|
|
|
|
$(NETHACK)NetHack: $(SBIN)NetHack
|
|
copy $(SBIN)NetHack $(NETHACK)NetHack
|
|
|
|
link:
|
|
$(LINK) $(LNSPEC) $(SBIN)NetHack $(LIN) $(LLINK) $(LLIB)
|
|
|
|
$(AMI)ami.lnk: $(AMI)Makefile.ami
|
|
list to $(AMI)ami.lnk lformat="$(O)%s" $(O)\#?.o QUICK NOHEAD
|
|
|
|
## dlb support
|
|
$(OO)dlb_main.o: $(UTIL)dlb_main.c $(HDEP) $(I)dlb.h $(I)date.h
|
|
$(CC) $(CFLAGS) $(OBJSPEC)$(OO)dlb_main.o $(UTIL)dlb_main.c
|
|
|
|
$(SBIN)dlb: $(OO)dlb_main.o $(O)dlb.o $(O)alloc.o $(OO)panic.o
|
|
$(LINK) $(PNSPEC) $(SBIN)dlb $(LIN) $(OO)dlb_main.o $(O)dlb.o \
|
|
$(O)alloc.o $(OO)panic.o $(LLIB)
|
|
|
|
obj: $(HOBJ)
|
|
|
|
obja: $(AMIGAOBJ)
|
|
|
|
objs: $(SHAREOBJ)
|
|
|
|
|
|
#SFD_BEGIN
|
|
#SFD_ELSE
|
|
SUFFIXES = .lev .des
|
|
.des.lev:
|
|
$(SBIN)lev_comp $<
|
|
#SFD_END
|
|
|
|
|
|
# The default method for creating object files:
|
|
|
|
#SFD_BEGIN
|
|
##
|
|
###[DICE]
|
|
##
|
|
##$(COMMOBJ): $(COMMOBJ:"$(O)*.o":"$(NHS)%1.c")
|
|
## $(CC) $(CFLAGS) $(CSYM) $(OBJSPEC)%(left) %(right)
|
|
##
|
|
##$(AMIGAOBJ): $(AMIGAOBJ:"$(O)*.o":"$(AMI)%1.c")
|
|
## $(CC) $(CFLAGS) $(CSYM) $(OBJSPEC)%(left) %(right)
|
|
##
|
|
##$(SHAREOBJ): $(SHAREOBJ:"$(O)*.o":"$(SHARE)%1.c")
|
|
## $(CC) $(CFLAGS) $(CSYM) $(OBJSPEC)%(left) %(right)
|
|
##
|
|
##$(TTYOBJ): $(TTYSRC)
|
|
## $(CC) $(CFLAGS) $(CSYM) $(OBJSPEC)%(left) %(right)
|
|
##
|
|
#SFD_ELSE
|
|
|
|
#[SAS6]
|
|
|
|
.c.o:
|
|
$(CC) $(CFLAGS) $(CSYM) $(OBJSPEC)$@ $<
|
|
|
|
#SFD_END
|
|
|
|
|
|
clean:
|
|
-delete $(O)\#?.o $(OO)\#?.o
|
|
|
|
spotless: clean
|
|
-delete $(SBIN)NetHack $(SBIN)lev_comp $(SBIN)makedefs $(SBIN)dgn_comp
|
|
-delete $(SBIN)dlb $(SBIN)txt2iff $(SBIN)splitter
|
|
-delete $(SBIN)tilemap
|
|
-delete $(SLIB)data $(SLIB)rumors
|
|
-delete $(SLIB)\#?.lev
|
|
-delete $(SLIB)dungeon
|
|
-delete $(SLIB)cmdhelp $(SLIB)help $(SLIB)hh $(SLIB)history
|
|
-delete $(SLIB)opthelp $(SLIB)options $(SLIB)oracles
|
|
-delete $(SLIB)quest.dat $(SLIB)wizhelp
|
|
# -delete $(SLIB)earth.lev $(SLIB)air.lev $(SLIB)fire.lev
|
|
# -delete $(SLIB)water.lev $(SLIB)astral.lev
|
|
# -delete $(SLIB)tower1.lev $(SLIB)tower2.lev $(SLIB)tower3.lev
|
|
# -delete $(SLIB)fakewiz1.lev $(SLIB)fakewiz2.lev
|
|
# -delete $(SLIB)medusa-1.lev $(SLIB)medusa-2.lev
|
|
# -delete $(SLIB)oracle.lev $(SLIB)wizard1.lev $(SLIB)wizard2.lev
|
|
# -delete $(SLIB)wizard3.lev $(DAT)dungeon.pdf $(SLIB)valley.lev
|
|
# -delete $(SLIB)minefill.lev
|
|
# -delete $(SLIB)minetn-1 $(SLIB)minetn-2 $(SLIB)minend-1 $(SLIB)minend-2
|
|
# -delete $(SLIB)soko1-1.lev $(SLIB)soko1-2.lev $(SLIB)soko2-1.lev
|
|
# -delete $(SLIB)soko2-2.lev $(SLIB)soko3-1.lev $(SLIB)soko3-2.lev
|
|
# -delete $(SLIB)soko4-1.lev $(SLIB)soko4-2.lev
|
|
# -delete $(ADFILES)
|
|
# -delete $(BDFILES)
|
|
# -delete $(CDFILES)
|
|
# -delete $(HDFILES)
|
|
# -delete $(KDFILES)
|
|
# -delete $(MDFILES)
|
|
# -delete $(PDFILES)
|
|
# -delete $(RDFILES)
|
|
# -delete $(RANFILES)
|
|
# -delete $(SDFILES)
|
|
# -delete $(TDFILES)
|
|
# -delete $(VDFILES)
|
|
# -delete $(WDFILES)
|
|
-delete $(I)onames.h $(I)pm.h $(I)date.h
|
|
-delete $(NHS)tile.c $(NHS)monstr.c
|
|
-delete $(I)tile.h
|
|
# -echo to $(I)onames.h "" noline
|
|
# -wait 2
|
|
# -echo to $(I)pm.h "" noline
|
|
# -wait 2
|
|
# -setdate $(UTIL)makedefs.c
|
|
# -wait 2
|
|
|
|
# Creating precompiled version of $(I)hack.h to save disk I/O.
|
|
|
|
#SFD_BEGIN
|
|
##
|
|
###[DICE]
|
|
### If we were compiling with DICE and wanted to use the symbol table
|
|
### pre-loading feature, we would technically not need a rule to make the
|
|
### precompiled header file, because DCC handles this automatically;
|
|
### however, we must delete the precompiled header file if any of the
|
|
### includes change, and we need to create it manually because the
|
|
### sys/amiga sources, compiled first, define things differently than the
|
|
### main sources want them.
|
|
##
|
|
##$(HDEP): $(I)hack.h $(I)pm.h $(I)onames.h
|
|
## -delete $(I)hack.sym
|
|
## echo to Ram:hackincl.c "#include <hack.h>"
|
|
## $(CC) $(CFLAGS) $(CSYM) $(OBJSPEC)Ram:hackincl.o Ram:hackincl.c
|
|
## -delete Ram:hackincl.c Ram:hackincl.o
|
|
##
|
|
#SFD_ELSE
|
|
|
|
#X#[SAS5]
|
|
#X# If we were to use the precompiled header file feature of SAS/C, we
|
|
#X# would uncomment the following lines. (Also see defines for HDEP and
|
|
#X# CSYM near the beginning of this file, as these should be appropriately
|
|
#X# defined.)
|
|
|
|
#X#$(HDEP): $(I)hack.h $(SBIN)makedefs
|
|
#X# echo to Ram:hackincl.c "#include <$(I)hack.h>"
|
|
#X# $(CC) $(CFLAGS) -ph $(OBJSPEC)$@ Ram:hackincl.c
|
|
#X# -delete Ram:hackincl.c
|
|
|
|
#[MANX]
|
|
# If we were compiling with Aztec, and wanted to use the symbol table
|
|
# pre-loading feature, we would uncomment these following two lines.
|
|
|
|
#$(HDEP): $(I)hack.h $(SBIN)makedefs
|
|
# $(CC) $(CFLAGS) -a $(OBJSPEC)Ram:hack.asm +h$@ $(I)hack.h
|
|
# -delete Ram:hack.asm
|
|
|
|
#SFD_END
|
|
|
|
#
|
|
# Please note: The dependency lines for the modules here are
|
|
# deliberately incorrect. Including "hack.h" in
|
|
# the dependency list would cause a dependency
|
|
# loop.
|
|
#
|
|
|
|
$(SBIN)makedefs: $(MAKEOBJS)
|
|
$(LINK) $(LNSPEC) $(SBIN)makedefs $(LIN) $(MAKEOBJS) $(LLIB)
|
|
|
|
$(OO)makedefs.o: $(UTIL)makedefs.c $(I)config.h $(I)permonst.h $(I)monsym.h \
|
|
$(I)objclass.h $(I)patchlevel.h $(I)artilist.h
|
|
$(CC) $(DEFSPEC)MAKEDEFS_C $(CFLAGS) $(OBJSPEC)$@ $(UTIL)makedefs.c
|
|
|
|
$(SBIN)lev_comp: $(SPLEVOBJS)
|
|
$(LINK) $(LNSPEC) $(SBIN)lev_comp $(LIN) $(SPLEVOBJS) $(FBFIL) $(FLLIB)
|
|
|
|
$(SBIN)dgn_comp: $(DGNCOMPOBJS)
|
|
$(LINK) $(LNSPEC) $(SBIN)dgn_comp $(LIN) $(DGNCOMPOBJS) $(FBFIL) $(FLLIB)
|
|
|
|
$(OO)lev_yacc.o: $(UTIL)lev_yacc.c $(HDEP) $(I)sp_lev.h $(I)pm.h $(I)onames.h
|
|
# setdate $(UTIL)lev_yacc.c
|
|
$(CC) $(DEFSPEC)LEV_LEX_C $(DEFSPEC)PREFIX="NH:slib/" $(CFLAGS) \
|
|
$(DEFSPEC)alloca=malloc $(OBJSPEC)$@ $(UTIL)lev_yacc.c
|
|
|
|
$(OO)lev_lex.o: $(UTIL)lev_lex.c $(HDEP) $(I)lev_comp.h $(I)sp_lev.h
|
|
$(CC) $(DEFSPEC)LEV_LEX_C $(CFLAGS) $(OBJSPEC)$@ $(UTIL)lev_lex.c
|
|
|
|
$(OO)lev_main.o: $(UTIL)lev_main.c $(HDEP) $(I)pm.h $(I)onames.h $(I)date.h
|
|
$(CC) $(DEFSPEC)LEV_LEX_C $(DEFSPEC)AMIGA $(CFLAGS) $(OBJSPEC)$@ \
|
|
$(UTIL)lev_main.c
|
|
|
|
$(OO)dgn_yacc.o: $(UTIL)dgn_yacc.c $(HDEP) $(I)dgn_file.h $(I)patchlevel.h
|
|
$(CC) $(DEFSPEC)LEV_LEX_C $(CFLAGS) $(DEFSPEC)alloca=malloc \
|
|
$(OBJSPEC)$@ $(UTIL)dgn_yacc.c
|
|
|
|
$(OO)dgn_lex.o: $(UTIL)dgn_lex.c $(I)config.h $(I)dgn_comp.h $(I)dgn_file.h
|
|
$(CC) $(DEFSPEC)LEV_LEX_C $(CFLAGS) $(OBJSPEC)$@ $(UTIL)dgn_lex.c
|
|
|
|
$(OO)dgn_main.o: $(UTIL)dgn_main.c $(I)config.h $(I)date.h
|
|
$(CC) $(DEFSPEC)LEV_LEX_C $(DEFSPEC)AMIGA $(CFLAGS) $(OBJSPEC)$@ \
|
|
$(UTIL)dgn_main.c
|
|
|
|
$(OO)panic.o: $(UTIL)panic.c $(HDEP)
|
|
#SFD_INSTEAD $(CC) $(CFLAGS) $(OBJSPEC)%(left) $(UTIL)panic.c
|
|
#none
|
|
|
|
$(OO)recover.o: $(UTIL)recover.c $(I)config.h $(I)date.h
|
|
$(CC) $(DEFSPEC)LEV_LEX_C $(DEFSPEC)AMIGA $(CFLAGS) $(OBJSPEC)$@ \
|
|
$(UTIL)recover.c
|
|
|
|
$(NETHACK)recover: $(OO)recover.o
|
|
$(LINK) $(LNSPEC) $(NETHACK)recover $(LIN) $(OO)recover.o $(LLIB)
|
|
|
|
# [OPTION] -- If you have flex/bison, leave these uncommented. Otherwise,
|
|
# comment them out and be careful! (You're not guaranteed to have the most
|
|
# up to date *_comp.c, *_comp.h and *_lex.c)
|
|
|
|
$(I)lev_comp.h: $(UTIL)lev_yacc.c $(I)patchlevel.h
|
|
|
|
$(UTIL)lev_yacc.c: $(UTIL)lev_comp.y $(I)patchlevel.h
|
|
$(BISON) -d $(UTIL)lev_comp.y
|
|
# copy y.tab.c $(UTIL)lev_yacc.c
|
|
# copy y.tab.h $(I)lev_comp.h
|
|
copy $(UTIL)lev_comp.tab.c $(UTIL)lev_yacc.c
|
|
copy $(UTIL)lev_comp.tab.h $(I)lev_comp.h
|
|
# delete y.tab.c
|
|
# delete y.tab.h
|
|
delete $(UTIL)lev_comp.tab.c
|
|
delete $(UTIL)lev_comp.tab.h
|
|
|
|
$(UTIL)lev_lex.c: $(UTIL)lev_comp.l $(I)patchlevel.h
|
|
$(FLEX) $(UTIL)lev_comp.l
|
|
copy lex.yy.c $(UTIL)lev_lex.c
|
|
delete lex.yy.c
|
|
|
|
$(I)dgn_comp.h: $(UTIL)dgn_yacc.c $(I)patchlevel.h
|
|
|
|
$(UTIL)dgn_yacc.c: $(UTIL)dgn_comp.y $(I)patchlevel.h
|
|
$(BISON) -d $(UTIL)dgn_comp.y
|
|
# copy y.tab.c $(UTIL)dgn_yacc.c
|
|
# copy y.tab.h $(I)dgn_comp.h
|
|
copy $(UTIL)dgn_comp.tab.c $(UTIL)dgn_yacc.c
|
|
copy $(UTIL)dgn_comp.tab.h $(I)dgn_comp.h
|
|
# delete y.tab.c
|
|
# delete y.tab.h
|
|
delete $(UTIL)dgn_comp.tab.c
|
|
delete $(UTIL)dgn_comp.tab.h
|
|
|
|
$(UTIL)dgn_lex.c: $(UTIL)dgn_comp.l $(I)patchlevel.h
|
|
$(FLEX) $(UTIL)dgn_comp.l
|
|
copy lex.yy.c $(UTIL)dgn_lex.c
|
|
delete lex.yy.c
|
|
|
|
#
|
|
# The following include files depend on makedefs to be created.
|
|
# As a result, they are not defined in HACKINCL, instead, their
|
|
# dependencies are explicitly outlined here.
|
|
#
|
|
|
|
#
|
|
# 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.
|
|
#
|
|
|
|
#SFD_INSTEAD $(I)date.h $(DAT)options:: $(HDEP) $(SBIN)makedefs $(AMIGAOBJ)
|
|
$(I)date.h $(DAT)options: $(HDEP) $(SBIN)makedefs $(AMIGAOBJ) $(I)patchlevel.h
|
|
$(SBIN)makedefs -v
|
|
$(EXECUTE) $(AMI)ifchange MOVE $(I)t.date.h $(I)date.h
|
|
-wait 2
|
|
|
|
$(I)onames.h: $(SBIN)makedefs
|
|
$(SBIN)makedefs -o
|
|
$(EXECUTE) $(AMI)ifchange TOUCH $(I)t.onames.h $(I)onames.h $(I)decl.h
|
|
$(EXECUTE) $(AMI)ifchange MOVE $(I)t.onames.h $(I)onames.h
|
|
-wait 2
|
|
|
|
$(I)pm.h: $(SBIN)makedefs
|
|
$(SBIN)makedefs -p
|
|
$(EXECUTE) $(AMI)ifchange TOUCH $(I)t.pm.h $(I)pm.h $(I)decl.h $(I)youprop.h
|
|
$(EXECUTE) $(AMI)ifchange MOVE $(I)t.pm.h $(I)pm.h
|
|
-wait 2
|
|
|
|
$(SLIB)quest.dat: $(DAT)quest.txt $(SBIN)makedefs
|
|
$(SBIN)makedefs -q
|
|
|
|
$(NHS)monstr.c: $(HDEP) $(SBIN)makedefs
|
|
$(SBIN)makedefs -m
|
|
-wait 2
|
|
|
|
$(SLIB)oracles: $(DAT)oracles.txt $(SBIN)makedefs
|
|
$(SBIN)makedefs -h
|
|
-wait 2
|
|
|
|
#
|
|
# The following programs vary depending on what OS you are using.
|
|
# As a result, they are not defined in HACKSRC and their dependencies
|
|
# are explicitly outlined here.
|
|
#
|
|
|
|
$(O)amidos.o: $(AMI)amidos.c $(HDEP)
|
|
|
|
$(O)amirip.o: $(AMI)amirip.c $(HDEP)
|
|
|
|
$(O)aglue.o: $(AMI)aglue.a
|
|
$(ASM) $(AFLAGS) $(AOBJSPEC)$(O)aglue.o $(AMI)aglue.a
|
|
|
|
$(O)winchar.o: $(AMI)winchar.c $(NHS)tile.c $(HDEP)
|
|
|
|
$(NHS)tile.c: $(WSHARE)tilemap.c
|
|
#SFD_INSTEAD $(CCLINK) $(CLFLAGS) $(PNSPEC) $(SBIN)tilemap $(WSHARE)tilemap.c
|
|
$(CCLINK) $(CFLAGS) $(PNSPEC) $(SBIN)tilemap $(WSHARE)tilemap.c
|
|
$(SBIN)tilemap
|
|
|
|
$(O)winstr.o: $(AMI)winstr.c $(HDEP) $(AMDEP)
|
|
|
|
$(O)winreq.o: $(AMI)winreq.c $(HDEP) $(AMDEP) $(AMI)colorwin.c $(AMI)clipwin.c
|
|
|
|
$(O)winfuncs.o: $(AMI)winfuncs.c $(HDEP) $(AMDEP) $(I)patchlevel.h
|
|
|
|
$(O)winkey.o: $(AMI)winkey.c $(HDEP) $(AMDEP)
|
|
|
|
$(O)winamenu.o: $(AMI)winamenu.c $(HDEP) $(AMDEP)
|
|
|
|
$(O)winami.o: $(AMI)winami.c $(HDEP) $(AMDEP) #$(AMI)char.c $(AMI)randwin.c
|
|
|
|
#$(O)amilib.o: $(AMI)amilib.c $(HDEP) $(AMDEP)
|
|
|
|
$(O)amiwind.o: $(AMI)amiwind.c $(AMI)amimenu.c $(HDEP) $(AMDEP)
|
|
|
|
$(O)amiwbench.o: $(AMI)amiwbench.c $(HDEP)
|
|
|
|
$(O)random.o: $(SHARE)random.c
|
|
|
|
$(O)pcmain.o: $(SHARE)pcmain.c $(HDEP) $(I)dlb.h
|
|
|
|
$(O)dispmap.o: $(AMI)dispmap.s
|
|
$(ASM) $(AFLAGS) $(AOBJSPEC)$@ $<
|
|
|
|
# Stuff to build the front ends
|
|
$(NETHACK)HackWB: $(OO)wb.o $(OO)wbx.o $(OO)loader.o $(OO)multi.o
|
|
$(LINK) $(LNSPEC) $(NETHACK)HackWB $(LIN) $(OO)wb.o $(OO)wbx.o \
|
|
$(OO)loader.o $(OO)multi.o $(LLIB)
|
|
|
|
$(NETHACK)HackCli: $(OO)cli.o $(OO)loader.o $(OO)multi.o
|
|
$(LINK) $(LNSPEC) $(NETHACK)HackCli $(LIN) $(OO)cli.o $(OO)loader.o \
|
|
$(OO)multi.o $(LLIB)
|
|
|
|
# This needs to exist to eliminate the HackWB startup message
|
|
#SFD_INSTEAD $(NETHACK)WBDefaults.def: $(NETHACK)WBDefaults.def
|
|
$(NETHACK)WBDefaults.def:
|
|
echo to $(NETHACK)WBDefaults.def
|
|
|
|
WBH = $(AMI)wbdefs.h $(AMI)wbstruct.h $(AMI)wbprotos.h
|
|
ASP = $(AMI)splitter
|
|
$(OO)wb.o: $(WBH) $(AMI)wb.c $(AMI)wbwin.c $(AMI)wbdata.c $(AMI)wbgads.c \
|
|
$(I)patchlevel.h
|
|
$(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)$(OO)wb.o $(AMI)wb.c
|
|
|
|
$(OO)wbx.o: $(WBH) $(AMI)wbcli.c $(AMI)wbwin.c $(AMI)wbdata.c \
|
|
$(I)patchlevel.h $(I)date.h
|
|
$(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)$(OO)wbx.o $(AMI)wbcli.c
|
|
|
|
$(OO)loader.o: $(ASP)/loader.c $(ASP)/split.h $(ASP)/amiout.h $(ASP)/multi.h
|
|
$(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)$(OO)loader.o $(ASP)/loader.c
|
|
|
|
$(OO)multi.o: $(ASP)/multi.c $(ASP)/multi.h
|
|
$(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)$(OO)multi.o $(ASP)/multi.c
|
|
|
|
$(OO)cli.o: $(WBH) $(AMI)wbcli.c $(I)patchlevel.h $(I)date.h
|
|
$(CC) $(WBCFLAGS) $(WBC2FLAGS) $(SPLFLAGS) $(OBJSPEC)$(OO)cli.o \
|
|
$(AMI)wbcli.c
|
|
|
|
####
|
|
# splitter support
|
|
$(SBIN)splitter: $(OO)splitter.o $(OO)arg.o
|
|
$(LINK) $(LNSPEC) $(SBIN)splitter $(LIN) $(OO)splitter.o $(OO)arg.o \
|
|
$(LLIB)
|
|
|
|
$(NETHACK)NetHack.dir: $(SBIN)splitter $(SBIN)NetHack
|
|
$(SBIN)splitter $(SBIN)NetHack
|
|
|
|
$(OO)splitter.o: $(ASP)/splitter.c $(ASP)/split.h $(ASP)/amiout.h $(ASP)/arg.h
|
|
$(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)$(OO)splitter.o \
|
|
$(ASP)/splitter.c
|
|
|
|
$(OO)arg.o: $(ASP)/arg.c $(ASP)/arg.h
|
|
$(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)$(OO)arg.o $(ASP)/arg.c
|
|
|
|
# Create/copy other stuff into NetHack: directory:
|
|
|
|
$(NETHACK)tomb.iff: $(SBIN)xpm2iff $(AMI)grave16.xpm
|
|
$(SBIN)xpm2iff $(AMI)grave16.xpm $(NETHACK)tomb.iff
|
|
|
|
$(OO)xpm2iff.o: $(AMI)xpm2iff.c
|
|
$(CC) $(CFLAGS) $(INCLSPEC)$(WSHARE) $(OBJSPEC)$@ $(AMI)xpm2iff.c
|
|
|
|
$(SBIN)xpm2iff: $(OO)xpm2iff.o
|
|
$(LINK) $(LNSPEC) $@ $(LIN) $(OO)xpm2iff.o $(FLLIB)
|
|
|
|
# Tile installation for the tile version of the game
|
|
inst-tiles: $(TILEFILES)
|
|
|
|
#SFD_INSTEAD $(NETHACK)tiles: $(NETHACK)tiles
|
|
$(NETHACK)tiles:
|
|
-makedir $(NETHACK)tiles
|
|
|
|
$(OO)txt2iff.o: $(AMI)txt2iff.c
|
|
$(CC) $(CFLAGS) $(CSYM) $(INCLSPEC)$(WSHARE) $(OBJSPEC)$@ \
|
|
$(AMI)txt2iff.c
|
|
|
|
$(OO)ppmwrite.o: $(WSHARE)ppmwrite.c
|
|
$(CC) $(CFLAGS) $(CSYM) $(INCLSPEC)$(WSHARE) $(OBJSPEC)$@ $(WSHARE)ppmwrite.c
|
|
|
|
$(OO)tiletext.o: $(WSHARE)tiletext.c $(I)config.h $(WSHARE)tile.h
|
|
$(CC) $(CFLAGS) $(CSYM) $(INCLSPEC)$(WSHARE) $(OBJSPEC)$@ $(WSHARE)tiletext.c
|
|
|
|
$(OO)tiletxt.o: $(WSHARE)tilemap.c $(I)hack.h
|
|
$(CC) $(CFLAGS) $(CSYM) $(DEFSPEC)TILETEXT $(INCLSPEC)$(WSHARE) $(OBJSPEC)$@ $(WSHARE)tilemap.c
|
|
|
|
NAMEOBJS = $(O)drawing.o $(O)decl.o $(O)monst.o $(O)objects.o
|
|
|
|
$(SBIN)txt2ppm: $(OO)ppmwrite.o $(NAMEOBJS) $(O)alloc.o $(OO)panic.o $(OO)tiletext.o $(OO)tiletxt.o
|
|
$(LINK) $(LNSPEC) $@ $(LIN) $(OO)ppmwrite.o $(NAMEOBJS) $(OO)tiletext.o $(OO)tiletxt.o $(O)alloc.o $(OO)panic.o $(FLLIB)
|
|
|
|
$(SBIN)txt2iff: $(OO)txt2iff.o $(NAMEOBJS) $(OO)tiletext.o $(OO)tiletxt.o
|
|
$(LINK) $(LNSPEC) $@ $(LIN) $(OO)txt2iff.o $(NAMEOBJS) $(OO)tiletext.o \
|
|
$(OO)tiletxt.o $(FLLIB)
|
|
|
|
$(NETHACK)tiles/objects.iff: $(WSHARE)objects.txt $(SBIN)txt2iff
|
|
$(SBIN)txt2iff $(WSHARE)objects.txt $(NETHACK)tiles/objects.iff
|
|
|
|
$(NETHACK)tiles/monsters.iff: $(WSHARE)monsters.txt $(SBIN)txt2iff
|
|
$(SBIN)txt2iff $(WSHARE)monsters.txt $(NETHACK)tiles/monsters.iff
|
|
|
|
$(NETHACK)tiles/other.iff: $(WSHARE)other.txt $(SBIN)txt2iff
|
|
$(SBIN)txt2iff $(WSHARE)other.txt $(NETHACK)tiles/other.iff
|
|
|
|
inst-dungeon: $(INSTDUNGEONFILES)
|
|
|
|
$(NETHACK)options : $(DAT)options
|
|
copy $(DAT)options $@
|
|
|
|
# Create compiled dungeon files
|
|
BGM= $(SLIB)bigrm-2.lev $(SLIB)bigrm-3.lev $(SLIB)bigrm-4.lev $(SLIB)bigrm-5.lev
|
|
$(BGM): $(SLIB)bigrm-1.lev
|
|
|
|
$(SLIB)bigrm-1.lev: $(DAT)bigroom.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)bigroom.des
|
|
#none
|
|
|
|
$(SLIB)castle.lev: $(DAT)castle.des $(SBIN)lev_comp
|
|
|
|
ENDGAME1= $(SLIB)air.lev $(SLIB)earth.lev $(SLIB)fire.lev $(SLIB)water.lev
|
|
$(ENDGAME1): $(SLIB)astral.lev
|
|
|
|
$(SLIB)astral.lev: $(DAT)endgame.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)endgame.des
|
|
#none
|
|
|
|
GEHENNOM1= $(SLIB)asmodeus.lev $(SLIB)baalz.lev $(SLIB)juiblex.lev \
|
|
$(SLIB)orcus.lev $(SLIB)sanctum.lev
|
|
$(GEHENNOM1): $(SLIB)valley.lev
|
|
|
|
$(SLIB)valley.lev: $(DAT)gehennom.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)gehennom.des
|
|
#none
|
|
|
|
$(SLIB)knox.lev: $(DAT)knox.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)knox.des
|
|
#none
|
|
|
|
MINES1= $(SLIB)minend-1.lev $(SLIB)minend-2.lev $(SLIB)minetn-1.lev $(SLIB)minetn-2.lev
|
|
$(MINES1): $(SLIB)minefill.lev
|
|
|
|
$(SLIB)minefill.lev: $(DAT)mines.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)mines.des
|
|
#none
|
|
|
|
$(SLIB)oracle.lev: $(DAT)oracle.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)oracle.des
|
|
#none
|
|
|
|
TOWER1= $(SLIB)tower1.lev $(SLIB)tower2.lev
|
|
$(TOWER1): $(SLIB)tower3.lev
|
|
|
|
$(SLIB)tower3.lev: $(DAT)tower.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)tower.des
|
|
#none
|
|
|
|
WIZARD1= $(SLIB)wizard1.lev $(SLIB)wizard2.lev $(SLIB)wizard3.lev \
|
|
$(SLIB)fakewiz1.lev
|
|
$(WIZARD1): $(SLIB)fakewiz2.lev
|
|
|
|
$(SLIB)fakewiz2.lev: $(DAT)yendor.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)yendor.des
|
|
#none
|
|
|
|
MEDUSA1= $(SLIB)medusa-1.lev
|
|
$(MEDUSA1): $(SLIB)medusa-2.lev
|
|
|
|
$(SLIB)medusa-2.lev: $(DAT)medusa.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)medusa.des
|
|
#none
|
|
|
|
SOKOBAN1= $(SLIB)soko1-1.lev $(SLIB)soko1-2.lev $(SLIB)soko2-1.lev \
|
|
$(SLIB)soko2-2.lev $(SLIB)soko3-1.lev $(SLIB)soko3-2.lev \
|
|
$(SLIB)soko4-1.lev
|
|
$(SOKOBAN1): $(SLIB)soko4-2.lev
|
|
|
|
$(SLIB)soko4-2.lev: $(DAT)sokoban.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)sokoban.des
|
|
#none
|
|
|
|
$(ADFILES1): $(SLIB)Arc-goal.lev
|
|
|
|
$(SLIB)Arc-goal.lev: $(DAT)Arch.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)Arch.des
|
|
#none
|
|
|
|
$(BDFILES1): $(SLIB)Bar-goal.lev
|
|
|
|
$(SLIB)Bar-goal.lev: $(DAT)Barb.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)Barb.des
|
|
#none
|
|
|
|
$(CDFILES1): $(SLIB)Cav-goal.lev
|
|
|
|
$(SLIB)Cav-goal.lev: $(DAT)Caveman.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)Caveman.des
|
|
#none
|
|
|
|
$(HDFILES1): $(SLIB)Hea-goal.lev
|
|
|
|
$(SLIB)Hea-goal.lev: $(DAT)Healer.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)Healer.des
|
|
#none
|
|
|
|
$(KDFILES1): $(SLIB)Kni-goal.lev
|
|
|
|
$(SLIB)Kni-goal.lev: $(DAT)Knight.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)Knight.des
|
|
#none
|
|
|
|
$(MDFILES1): $(SLIB)Mon-goal.lev
|
|
|
|
$(SLIB)Mon-goal.lev: $(DAT)Monk.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)Monk.des
|
|
#none
|
|
|
|
$(PDFILES1): $(SLIB)Pri-goal.lev
|
|
|
|
$(SLIB)Pri-goal.lev: $(DAT)Priest.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)Priest.des
|
|
#none
|
|
|
|
$(RDFILES1): $(SLIB)Rog-goal.lev
|
|
|
|
$(SLIB)Rog-goal.lev: $(DAT)Rogue.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)Rogue.des
|
|
#none
|
|
|
|
$(RANFILES1): $(SLIB)Ran-goal.lev
|
|
|
|
$(SLIB)Ran-goal.lev: $(DAT)Ranger.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)Ranger.des
|
|
#none
|
|
|
|
$(SDFILES1): $(SLIB)Sam-goal.lev
|
|
|
|
$(SLIB)Sam-goal.lev: $(DAT)Samurai.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)Samurai.des
|
|
#none
|
|
|
|
$(TDFILES1): $(SLIB)Tou-goal.lev
|
|
|
|
$(SLIB)Tou-goal.lev: $(DAT)Tourist.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)Tourist.des
|
|
#none
|
|
|
|
$(VDFILES1): $(SLIB)Val-goal.lev
|
|
|
|
$(SLIB)Val-goal.lev: $(DAT)Valkyrie.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)Valkyrie.des
|
|
#none
|
|
|
|
$(WDFILES1): $(SLIB)Wiz-goal.lev
|
|
|
|
$(SLIB)Wiz-goal.lev: $(DAT)Wizard.des $(SBIN)lev_comp
|
|
#SFD_INSTEAD $(SBIN)lev_comp $(DAT)Wizard.des
|
|
#none
|
|
|
|
$(SLIB)dungeon: $(DAT)dungeon.def $(SBIN)makedefs $(SBIN)dgn_comp
|
|
$(SBIN)makedefs -e
|
|
$(SBIN)dgn_comp $(DAT)dungeon.pdf
|
|
copy $(DAT)dungeon $(SLIB)dungeon
|
|
delete $(DAT)dungeon
|
|
|
|
inst-data: $(INSTDATAFILES)
|
|
|
|
$(NETHACK)amii.hlp: $(AMI)amii.hlp
|
|
copy $(AMI)amii.hlp $@
|
|
|
|
#$(NETHACK)data: $(DAT)data
|
|
# copy $(DAT)data $@
|
|
|
|
$(SLIB)data: $(DAT)data.base $(I)config.h $(SBIN)makedefs
|
|
$(SBIN)makedefs -d
|
|
|
|
#$(NETHACK)rumors: $(DAT)rumors
|
|
# copy $(DAT)rumors $@
|
|
|
|
$(SLIB)rumors: $(DAT)rumors.tru $(DAT)rumors.fal $(SBIN)makedefs
|
|
$(SBIN)makedefs -r
|
|
|
|
$(SLIB)cmdhelp: $(DAT)cmdhelp
|
|
copy $(DAT)cmdhelp $@
|
|
|
|
$(SLIB)help: $(DAT)help
|
|
copy $(DAT)help $@
|
|
|
|
$(SLIB)hh: $(DAT)hh
|
|
copy $(DAT)hh $@
|
|
|
|
$(NETHACK)HackWB.hlp: $(AMI)HackWB.hlp
|
|
copy $(AMI)HackWB.hlp $@
|
|
|
|
$(SLIB)history: $(DAT)history
|
|
copy $(DAT)history $@
|
|
|
|
$(NETHACK)license: $(DAT)license
|
|
copy $(DAT)license $@
|
|
|
|
$(SLIB)opthelp: $(DAT)opthelp
|
|
copy $(DAT)opthelp $@
|
|
|
|
$(NETHACK)Recover.txt: $(DOC)Recover.txt
|
|
copy $(DOC)Recover.txt $@
|
|
|
|
$(NETHACK)GuideBook.txt: $(DOC)GuideBook.txt
|
|
copy $(DOC)GuideBook.txt $@
|
|
|
|
$(NETHACK)NetHack.txt: $(DOC)NetHack.txt
|
|
copy $(DOC)NetHack.txt $@
|
|
|
|
$(NETHACK)Install.ami: $(AMI)Install.ami
|
|
copy $(AMI)Install.ami $@
|
|
|
|
#SFD_INSTEAD $(NETHACK)logfile: $(NETHACK)logfile
|
|
$(NETHACK)logfile:
|
|
echo to $@
|
|
|
|
#SFD_INSTEAD $(NETHACK)record: $(NETHACK)record
|
|
$(NETHACK)record:
|
|
echo to $@
|
|
|
|
$(SLIB)wizhelp: $(DAT)wizhelp
|
|
copy $(DAT)wizhelp $@
|
|
|
|
# Create the directories here because NetHack.cnf puts them there by default
|
|
$(NETHACK)NetHack.cnf: $(AMI)NetHack.cnf
|
|
copy $(AMI)NetHack.cnf $@
|
|
-makedir $(NETHACK)save
|
|
-makedir $(NETHACK)levels
|
|
|
|
#SFD_BEGIN
|
|
#SFD_ELSE
|
|
$(O)NetHack.gst: $(GSTSRC) $(I)hack.h
|
|
sc makegst=$(GSTFILE) $(CFLAGS) $(GSTSRC)
|
|
#SFD_END
|
|
|
|
# Unpack and install fonts
|
|
|
|
INSTFONTFILES= $(NETHACK)hack.font $(NETHACK)hack $(NETHACK)hack/8
|
|
|
|
inst-fonts: $(INSTFONTFILES)
|
|
|
|
$(NETHACK)hack/8: $(AMI)amifont8.uu $(NETHACK)hack
|
|
$(UUDEC) $(AMI)amifont8.uu
|
|
copy 8 $(NETHACK)hack/8
|
|
delete 8
|
|
|
|
$(NETHACK)hack.font: $(AMI)amifont.uu
|
|
$(UUDEC) $(AMI)amifont.uu
|
|
copy hack.font $(NETHACK)hack.font
|
|
delete hack.font
|
|
|
|
#SFD_INSTEAD $(NETHACK)hack: $(NETHACK)hack
|
|
$(NETHACK)hack:
|
|
-makedir $@
|
|
|
|
INSTICONFILES= \
|
|
$(NETHACK)default.icon $(NETHACK)NetHack.info $(NETHACK)NewGame.info \
|
|
$(NETHACK)HackWB.info
|
|
|
|
inst-icons: $(INSTICONFILES)
|
|
|
|
# Unpack the icons into place
|
|
|
|
$(NETHACK)default.icon: $(AMI)dflticon.uu
|
|
$(UUDEC) $(AMI)dflticon.uu
|
|
# copy default.icon $(NETHACK)default.icon
|
|
# delete default.icon
|
|
|
|
$(NETHACK)NetHack.info: $(AMI)NHinfo.uu
|
|
$(UUDEC) $(AMI)NHinfo.uu
|
|
# copy NetHack.info $(NETHACK)NetHack.info
|
|
# delete NetHack.info
|
|
|
|
$(NETHACK)NewGame.info: $(AMI)NewGame.uu
|
|
$(UUDEC) $(AMI)NewGame.uu
|
|
# copy NewGame.info $(NETHACK)NewGame.info
|
|
# delete NewGame.info
|
|
|
|
$(NETHACK)HackWB.info: $(AMI)HackWB.uu
|
|
$(UUDEC) $(AMI)HackWB.uu
|
|
# copy HackWB.info $(NETHACK)HackWB.info
|
|
# delete HackWB.info
|
|
|
|
# If DLB is defined, create the nhdat library file in the playground
|
|
# directory. If not, move all the data files there.
|
|
$(NETHACK)nhdat: $(LIBFILES) $(SBIN)dlb
|
|
list to T:nhdat.lst $(SLIB) QUICK NOHEAD FILES
|
|
echo >T:make-nhdat $(SBIN)dlb cCfI $(SLIB) $(NETHACK)nhdat T:nhdat.lst
|
|
echo >>T:make-nhdat if not exists $(NETHACK)nhdat
|
|
echo >>T:make-nhdat copy $(SLIB)\#? $(NETHACK)
|
|
echo >>T:make-nhdat endif
|
|
execute T:make-nhdat
|
|
-delete T:make-nhdat
|
|
|
|
# DO NOT DELETE THIS LINE
|
|
|
|
$(O)allmain.o: $(NHS)allmain.c $(HDEP)
|
|
|
|
$(O)alloc.o: $(NHS)alloc.c $(I)config.h
|
|
|
|
$(O)apply.o: $(NHS)apply.c $(HDEP)
|
|
#SFD_INSTEAD #none
|
|
$(CC) $(CFLAGS) $(CFLAGS2) $(OBJSPEC)$@ $(NHS)apply.c
|
|
|
|
$(O)artifact.o: $(NHS)artifact.c $(HDEP) $(I)artifact.h $(I)artilist.h
|
|
|
|
$(O)attrib.o: $(NHS)attrib.c $(HDEP) $(I)artifact.h
|
|
|
|
$(O)ball.o: $(NHS)ball.c $(HDEP)
|
|
|
|
$(O)bones.o: $(NHS)bones.c $(HDEP)
|
|
|
|
$(O)botl.o: $(NHS)botl.c $(HDEP)
|
|
|
|
$(O)cmd.o: $(NHS)cmd.c $(HDEP) $(I)func_tab.h
|
|
|
|
$(O)dbridge.o: $(NHS)dbridge.c $(HDEP)
|
|
|
|
$(O)decl.o: $(NHS)decl.c $(HDEP) $(I)quest.h
|
|
|
|
$(O)detect.o: $(NHS)detect.c $(HDEP) $(I)artifact.h
|
|
|
|
$(O)dig.o: $(NHS)dig.c $(HDEP)
|
|
|
|
$(O)display.o: $(NHS)display.c $(HDEP)
|
|
|
|
$(O)dlb.o: $(NHS)dlb.c $(HDEP) $(I)dlb.h
|
|
|
|
$(O)do.o: $(NHS)do.c $(HDEP)
|
|
|
|
$(O)do_name.o: $(NHS)do_name.c $(HDEP)
|
|
|
|
$(O)do_wear.o: $(NHS)do_wear.c $(HDEP)
|
|
|
|
$(O)dog.o: $(NHS)dog.c $(HDEP)
|
|
|
|
$(O)dogmove.o: $(NHS)dogmove.c $(HDEP) $(I)mfndpos.h
|
|
|
|
$(O)dokick.o: $(NHS)dokick.c $(HDEP)
|
|
|
|
$(O)dothrow.o: $(NHS)dothrow.c $(HDEP)
|
|
|
|
$(O)drawing.o: $(NHS)drawing.c $(HDEP) $(I)tcap.h
|
|
$(CC) $(CFLAGS) $(CFLAGS2) $(OBJSPEC)$@ $(NHS)drawing.c
|
|
|
|
$(O)dungeon.o: $(NHS)dungeon.c $(HDEP) $(I)dgn_file.h $(I)dlb.h
|
|
|
|
$(O)eat.o: $(NHS)eat.c $(HDEP)
|
|
|
|
$(O)end.o: $(NHS)end.c $(HDEP) $(I)dlb.h
|
|
|
|
$(O)engrave.o: $(NHS)engrave.c $(HDEP)
|
|
|
|
$(O)exper.o: $(NHS)exper.c $(HDEP)
|
|
|
|
$(O)explode.o: $(NHS)explode.c $(HDEP)
|
|
|
|
$(O)extralev.o: $(NHS)extralev.c $(HDEP)
|
|
|
|
$(O)files.o: $(NHS)files.c $(HDEP) $(I)dlb.h $(I)date.h
|
|
|
|
$(O)fountain.o: $(NHS)fountain.c $(HDEP)
|
|
|
|
$(O)hack.o: $(NHS)hack.c $(HDEP)
|
|
|
|
$(O)hacklib.o: $(NHS)hacklib.c $(HDEP)
|
|
|
|
$(O)invent.o: $(NHS)invent.c $(HDEP) $(I)artifact.h
|
|
|
|
$(O)light.o: $(NHS)light.c $(HDEP)
|
|
|
|
$(O)lock.o: $(NHS)lock.c $(HDEP)
|
|
|
|
$(O)mail.o: $(NHS)mail.c $(HDEP) $(I)mail.h
|
|
|
|
$(O)makemon.o: $(NHS)makemon.c $(HDEP)
|
|
|
|
$(O)mapglyph.o: $(NHS)mapglyph.c $(HDEP)
|
|
|
|
$(O)mcastu.o: $(NHS)mcastu.c $(HDEP)
|
|
|
|
$(O)mhitm.o: $(NHS)mhitm.c $(HDEP) $(I)artifact.h
|
|
|
|
$(O)mhitu.o: $(NHS)mhitu.c $(HDEP) $(I)artifact.h
|
|
$(CC) $(CFLAGS) $(CFLAGS2) $(OBJSPEC)$@ $(NHS)mhitu.c
|
|
|
|
$(O)minion.o: $(NHS)minion.c $(HDEP)
|
|
|
|
$(O)mklev.o: $(NHS)mklev.c $(HDEP)
|
|
|
|
$(O)mkmap.o: $(NHS)mkmap.c $(HDEP) $(I)sp_lev.h
|
|
|
|
$(O)mkmaze.o: $(NHS)mkmaze.c $(HDEP) $(I)sp_lev.h
|
|
|
|
$(O)mkobj.o: $(NHS)mkobj.c $(HDEP) $(I)artifact.h $(I)prop.h
|
|
|
|
$(O)mkroom.o: $(NHS)mkroom.c $(HDEP)
|
|
|
|
$(O)mon.o: $(NHS)mon.c $(HDEP) $(I)mfndpos.h
|
|
|
|
$(O)mondata.o: $(NHS)mondata.c $(HDEP)
|
|
|
|
$(O)monmove.o: $(NHS)monmove.c $(HDEP) $(I)mfndpos.h $(I)artifact.h
|
|
|
|
$(O)monst.o: $(NHS)monst.c $(I)config.h $(I)permonst.h $(I)monsym.h $(I)color.h
|
|
|
|
$(O)monstr.o: $(NHS)monstr.c $(HDEP)
|
|
#SFD_INSTEAD $(CC) $(CFLAGS) $(OBJSPEC)%(left) $(NHS)monstr.c
|
|
#none
|
|
|
|
$(O)mplayer.o: $(NHS)mplayer.c $(HDEP)
|
|
|
|
$(O)mthrowu.o: $(NHS)mthrowu.c $(HDEP)
|
|
|
|
$(O)muse.o: $(NHS)muse.c $(HDEP)
|
|
$(CC) $(CFLAGS) $(CFLAGS2) $(OBJSPEC)$@ $(NHS)muse.c
|
|
|
|
$(O)music.o: $(NHS)music.c $(HDEP) #interp.c
|
|
|
|
$(O)o_init.o: $(NHS)o_init.c $(HDEP)
|
|
|
|
$(O)objects.o: $(NHS)objects.c $(I)config.h $(I)obj.h $(I)objclass.h \
|
|
$(I)prop.h $(I)skills.h $(I)color.h
|
|
#SFD_INSTEAD #none
|
|
$(CC) $(CFLAGS) $(INCLSPEC)$(NHS) $(OBJSPEC)$@ $(NHS)objects.c
|
|
|
|
$(O)objnam.o: $(NHS)objnam.c $(HDEP)
|
|
|
|
$(O)options.o: $(NHS)options.c $(HDEP) $(I)tcap.h $(I)config.h \
|
|
$(I)objclass.h $(I)flag.h
|
|
|
|
$(O)pager.o: $(NHS)pager.c $(HDEP) $(I)dlb.h
|
|
|
|
$(O)pickup.o: $(NHS)pickup.c $(HDEP)
|
|
|
|
$(O)pline.o: $(NHS)pline.c $(HDEP)
|
|
|
|
$(O)polyself.o: $(NHS)polyself.c $(HDEP)
|
|
|
|
$(O)potion.o: $(NHS)potion.c $(HDEP)
|
|
|
|
$(O)pray.o: $(NHS)pray.c $(HDEP)
|
|
|
|
$(O)priest.o: $(NHS)priest.c $(HDEP) $(I)mfndpos.h
|
|
|
|
$(O)quest.o: $(NHS)quest.c $(HDEP) $(I)quest.h
|
|
|
|
$(O)questpgr.o: $(NHS)questpgr.c $(HDEP) $(I)dlb.h
|
|
|
|
$(O)read.o: $(NHS)read.c $(HDEP)
|
|
|
|
$(O)rect.o: $(NHS)rect.c $(HDEP)
|
|
|
|
$(O)region.o: $(NHS)region.c $(HDEP)
|
|
|
|
$(O)restore.o: $(NHS)restore.c $(HDEP) $(I)tcap.h $(I)quest.h
|
|
|
|
$(O)rnd.o: $(NHS)rnd.c $(HDEP)
|
|
|
|
$(O)role.o: $(NHS)role.c $(HDEP)
|
|
|
|
$(O)rumors.o: $(NHS)rumors.c $(HDEP) $(I)dlb.h
|
|
|
|
$(O)save.o: $(NHS)save.c $(HDEP) $(I)quest.h
|
|
|
|
$(O)shk.o: $(NHS)shk.c $(HDEP)
|
|
#SFD_INSTEAD #none
|
|
$(CC) $(CFLAGS) $(CFLAGS2) $(OBJSPEC)$@ $(NHS)shk.c
|
|
|
|
$(O)shknam.o: $(NHS)shknam.c $(HDEP)
|
|
|
|
$(O)sit.o: $(NHS)sit.c $(HDEP) $(I)artifact.h
|
|
|
|
$(O)sounds.o: $(NHS)sounds.c $(HDEP)
|
|
|
|
$(O)sp_lev.o: $(NHS)sp_lev.c $(HDEP) $(I)sp_lev.h $(I)rect.h $(I)dlb.h
|
|
|
|
$(O)spell.o: $(NHS)spell.c $(HDEP)
|
|
|
|
$(O)steal.o: $(NHS)steal.c $(HDEP)
|
|
|
|
$(O)steed.o: $(NHS)steed.c $(HDEP)
|
|
|
|
$(O)sys.o: $(NHS)sys.c $(HDEP)
|
|
|
|
$(O)teleport.o: $(NHS)teleport.c $(HDEP)
|
|
|
|
$(O)timeout.o: $(NHS)timeout.c $(HDEP)
|
|
|
|
$(O)topten.o: $(NHS)topten.c $(HDEP) $(I)dlb.h
|
|
|
|
$(O)track.o: $(NHS)track.c $(HDEP)
|
|
|
|
$(O)trap.o: $(NHS)trap.c $(HDEP)
|
|
#SFD_INSTEAD #none
|
|
$(CC) $(CFLAGS) $(CFLAGS2) $(OBJSPEC)$@ $(NHS)trap.c
|
|
|
|
$(O)u_init.o: $(NHS)u_init.c $(HDEP)
|
|
|
|
$(O)uhitm.o: $(NHS)uhitm.c $(HDEP)
|
|
$(CC) $(CFLAGS) $(CFLAGS2) $(OBJSPEC)$@ $(NHS)uhitm.c
|
|
|
|
$(O)vault.o: $(NHS)vault.c $(HDEP)
|
|
|
|
$(O)version.o: $(NHS)version.c $(HDEP) $(I)date.h $(I)patchlevel.h
|
|
|
|
# DMake doesn't grok mid-line comments
|
|
#SFD_INSTEAD $(O)vision.o: $(NHS)vision.c $(HDEP)
|
|
$(O)vision.o: $(NHS)vision.c $(HDEP) #$(I)vis_tab.h
|
|
|
|
$(O)weapon.o: $(NHS)weapon.c $(HDEP)
|
|
|
|
$(O)were.o: $(NHS)were.c $(HDEP)
|
|
|
|
$(O)wield.o: $(NHS)wield.c $(HDEP)
|
|
|
|
$(O)windows.o: $(NHS)windows.c $(HDEP) $(I)wintty.h
|
|
|
|
$(O)wizard.o: $(NHS)wizard.c $(HDEP)
|
|
|
|
$(O)worm.o: $(NHS)worm.c $(HDEP)
|
|
|
|
$(O)worn.o: $(NHS)worn.c $(HDEP)
|
|
|
|
$(O)write.o: $(NHS)write.c $(HDEP)
|
|
|
|
$(O)zap.o: $(NHS)zap.c $(HDEP)
|
|
$(CC) $(CFLAGS) $(CFLAGS2) $(OBJSPEC)$@ $(NHS)zap.c
|
|
|
|
$(O)getline.o: $(TTY)getline.c $(HDEP) $(I)wintty.h
|
|
|
|
$(O)termcap.o: $(TTY)termcap.c $(HDEP) $(I)wintty.h $(I)tcap.h
|
|
|
|
$(O)topl.o: $(TTY)topl.c $(HDEP) $(I)wintty.h $(I)tcap.h
|
|
|
|
$(O)wintty.o: $(TTY)wintty.c $(HDEP) $(I)wintty.h $(I)tcap.h \
|
|
$(I)date.h $(I)patchlevel.h
|
|
|
|
$(O)amitty.o: $(AMI)amitty.c $(HDEP)
|
|
|
|
$(O)amistack.o: $(AMI)amistack.c
|
|
$(CC) $(CFLAGS3) $(CSYM) $(OBJSPEC)$@ $(AMI)amistack.c
|
|
|
|
$(O)rip.o: $(NHS)rip.c $(HDEP)
|
|
|
|
|
|
$(I)config.h: $(I)config1.h $(I)tradstdc.h $(I)global.h
|
|
-setdate $(I)config.h
|
|
-wait 2
|
|
|
|
# onames.h handled at onames.h target, pm.h
|
|
|
|
$(I)decl.h: $(I)quest.h $(I)spell.h $(I)color.h $(I)obj.h $(I)you.h
|
|
-setdate $(I)decl.h
|
|
-wait 2
|
|
|
|
$(I)global.h: $(I)coord.h $(I)pcconf.h $(I)amiconf.h
|
|
-setdate $(I)global.h
|
|
-wait 2
|
|
|
|
$(I)hack.h: $(I)config.h $(I)context.h $(I)trap.h $(I)decl.h $(I)dungeon.h \
|
|
$(I)monsym.h $(I)mkroom.h $(I)objclass.h $(I)flag.h $(I)rm.h \
|
|
$(I)vision.h $(I)display.h $(I)wintype.h $(I)engrave.h \
|
|
$(I)rect.h $(I)region.h $(I)sys.h
|
|
-setdate $(I)hack.h
|
|
-wait 2
|
|
|
|
$(I)permonst.h: $(I)monattk.h $(I)monflag.h $(I)align.h
|
|
-setdate $(I)permonst.h
|
|
-wait 2
|
|
|
|
$(I)you.h: $(I)align.h $(I)attrib.h $(I)monst.h $(I)mextra.h $(I)youprop.h $(I)skills.h
|
|
-setdate $(I)you.h
|
|
-wait 2
|
|
|
|
# pm.h handled at target
|
|
|
|
$(I)youprop.h: $(I)prop.h $(I)permonst.h $(I)mondata.h
|
|
-setdate $(I)youprop.h
|
|
-wait 2
|
|
|
|
$(I)display.h: $(I)vision.h $(I)mondata.h
|
|
-setdate $(I)display.h
|
|
-wait 2
|
|
|
|
$(I)dungeon.h: $(I)align.h
|
|
-setdate $(I)dungeon.h
|
|
-wait 2
|
|
|
|
$(I)engrave.h: $(I)rect.h
|
|
-setdate $(I)engrave.h
|
|
-wait 2
|
|
|
|
$(I)mextra.h: $(I)align.h
|
|
-setdate $(I)mextra.h
|
|
-wait 2
|
|
|
|
$(I)mondata.h: $(I)align.h
|
|
-setdate $(I)mondata.h
|
|
-wait 2
|
|
|
|
$(I)monst.h: $(I)align.h $(I)mextra.h
|
|
-setdate $(I)monst.h
|
|
-wait 2
|
|
|
|
$(I)pcconf.h: $(I)micro.h $(I)system.h
|
|
-setdate $(I)pcconf.h
|
|
-wait 2
|
|
|
|
$(I)rm.h: $(I)align.h
|
|
-setdate $(I)rm.h
|
|
-wait 2
|
|
|
|
|
|
#notes
|
|
# install keeps doing re-install because it keeps rebuilding lev_comp???
|
|
# fixed(?) - deleted setdate
|
|
# make nhdat rebuils sys/amiga objects
|