#
# Whatever you put in for $(CC) must be able to grok ANSI C.
#
CC = dmc
WINZIP = C:\apps\Winzip\wzzip
OPTIM = -o -$(PROCESSOR_LEVEL) 
# 
# To log failed commands (HUH's) to stderr, include -DLOG_FAILED_COMMANDS
# To restricted object-creating commands to users with the BUILDER bit,
#   include -DRESTRICTED_BUILDING
# To log all commands, include -DLOG_COMMANDS
#
SYSDEFS = -DWIN32 -DWIN32_LEAN_AND_MEAN 
DEFS = $(SYSDEFS) -DLOG_FAILED_COMMANDS 
CFLAGS = $(OPTIM) $(DEFS) -w2 -w7

# Everything except interface.c --- allows for multiple interfaces
CFILES = create.c game.c help.c look.c match.c move.c player.c predicates.c \
	rob.c set.c speech.c stringutil.c utils.c wiz.c db.c 

# .obj versions of above
OFILES = create.obj game.obj help.obj look.obj match.obj move.obj player.obj predicates.obj \
	rob.obj set.obj speech.obj stringutil.obj utils.obj wiz.obj db.obj 

# .dependency info for OFILES
OFILESDEPS = create.dep game.dep help.dep look.dep match.dep move.dep player.dep predicates.dep \
	rob.dep set.dep speech.dep stringutil.dep utils.dep wiz.dep db.dep 

# Files in the standard distribution
DISTFILES = $(CFILES) config.h db.h externs.h interface.h match.h \
	interface.c dump.c sanity-check.c extract.c paths.c \
	help.txt small.db minimal.db restart-cmu README small.db.README \
	Makefile Makefile.bor Makefile.dgm Makefile.vc6 Makefile.lcc \
	copyright.h MANIFEST NOTES CHANGELOG

RELEASE = dist

OUTFILES = netmud.exe dump.exe paths.exe sanity-check.exe extract.exe

all: $(OUTFILES)

netmud.exe: interface.obj $(OFILES) 
	-@copy netmud.exe netmud~.exe 2>NUL
	$(CC) $(CFLAGS) -onetmud.exe interface.obj $(OFILES) wsock32.lib

dump.exe: dump.obj utils.obj db.obj
	$(CC) $(CFLAGS) -odump.exe dump.obj utils.obj db.obj

sanity-check.exe: sanity-check.obj utils.obj db.obj
	$(CC) $(CFLAGS) -osanity-check.exe sanity-check.obj utils.obj db.obj

extract.exe: extract.obj utils.obj db.obj
	$(CC) $(CFLAGS) -oextract.exe extract.obj utils.obj db.obj

paths.exe: paths.obj db.obj
	$(CC) $(CFLAGS) -opaths.exe paths.obj db.obj

clean:
	-@del *.obj *.dep *.map $(OUTFILES)

dist: $(DISTFILES)
	$(WINZIP) tinymud-1.4.1-$(RELEASE).zip $(DISTFILES) 

# compile and generate dependency info;
create.obj : $(create.dep) create.c
	$(CC) -c -d $(CFLAGS) create 

game.obj : $(game.dep) game.c
	$(CC) -c -d $(CFLAGS) game 

help.obj : $(help.dep) help.c
	$(CC) -c -d $(CFLAGS) help 

look.obj : $(look.dep) look.c
	$(CC) -c -d $(CFLAGS) look 

match.obj : $(match.dep) match.c
	$(CC) -c -d $(CFLAGS) match 

move.obj : $(move.dep) move.c
	$(CC) -c -d $(CFLAGS) move 

player.obj : $(player.dep) player.c
	$(CC) -c -d $(CFLAGS) player 

predicates.obj : $(predicates.dep) predicates.c
	$(CC) -c -d $(CFLAGS) predicates 

rob.obj : $(rob.dep) rob.c
	$(CC) -c -d $(CFLAGS) rob 

set.obj : $(set.dep) set.c
	$(CC) -c -d $(CFLAGS) set 

speech.obj : $(speech.dep) speech.c
	$(CC) -c -d $(CFLAGS) speech 

stringutil.obj : $(stringutil.dep) stringutil.c
	$(CC) -c -d $(CFLAGS) stringutil 

utils.obj : $(utils.dep) utils.c
	$(CC) -c -d $(CFLAGS) utils 

wiz.obj : $(wiz.dep) wiz.c
	$(CC) -c -d $(CFLAGS) wiz 

db.obj : $(db.dep) db.c
	$(CC) -c -d $(CFLAGS) db 

interface.obj : $(interface.dep) interface.c
	$(CC) -c -d $(CFLAGS) interface 

dump.obj : $(dump.dep) dump.c
	$(CC) -c -d $(CFLAGS) dump 

sanity-check.obj : $(sanity-check.dep) sanity-check.c
	$(CC) -c -d $(CFLAGS) sanity-check 

extract.obj : $(extract.dep) extract.c
	$(CC) -c -d $(CFLAGS) extract 

paths.obj : $(paths.dep) paths.c
	$(CC) -c -d $(CFLAGS) paths