#
# Whatever you put in for $(CC) must be able to grok ANSI C.
#
CC=lcc
LD=lcclnk
WINZIP=c:\apps\winzip\wzzip
OPTIM= -O -g2 
# 
# 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
#
DEFS= -DLOG_FAILED_COMMANDS
CFLAGS= $(OPTIM) $(DEFS)
LFLAGS= -s -subsystem console
LIBS= ws2_32.lib

# 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
 
# 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) 
	$(LD) $(LFLAGS) -o netmud.exe interface.obj $(OFILES) $(LIBS)

dump.exe: dump.obj utils.obj db.obj
	$(LD) $(LFLAGS) -o dump.exe dump.obj utils.obj db.obj

sanity-check.exe: sanity-check.obj utils.obj db.obj
	$(LD) $(LFLAGS) -o sanity-check.exe sanity-check.obj utils.obj db.obj

extract.exe: extract.obj utils.obj db.obj
	$(LD) $(LFLAGS) -o extract.exe extract.obj utils.obj db.obj

paths.exe: paths.obj db.obj
	$(LD) $(LFLAGS) -o paths.exe paths.obj db.obj

clean:
	-del *.obj $(OUTFILES)

dist : $(DISTFILES)
	@echo "Building distribution..."
	@-md tinymud-1.4.1
	@&copy /y $** tinymud-1.4.1 1>NUL
	@$(WINZIP) -Pr tinymud-1.4.1-$(RELEASE).zip tinymud-1.4.1 1>NUL 2>NUL
	@rd /s /q tinymud-1.4.1
	@echo "Done."