lpmud/mudlib/
lpmud/mudlib/doc/
lpmud/mudlib/doc/LPC/
lpmud/mudlib/log/
lpmud/mudlib/players/
lpmud/mudlib/room/maze1/
lpmud/mudlib/room/sub/
#
# Whatever you put in for $(CC) must be able to grok ANSI C.
#
CC = cl
LD = cl
YACC = yacc
LEX = flex
WINZIP = C:\apps\Winzip\wzzip

# The suffix appended to executables.  
# This should be set for Cygwin and Windows.
EXE = .exe 
#EXE =

# Compiler directives for debugging
!ifdef DEBUG
DEBUG_CFLAGS = /MTd /ZI /Od /FD /GZ /D "DEBUG" 
DEBUG_LFLAGS = /DEBUG /PDBTYPE:SEPT 
LIBS= libcmtd.lib kernel32.lib ws2_32.lib 
!else
DEBUG_CFLAGS = /MT /Ot /Oy /Ob1 /Gs /Gy /D "NDEBUG" 
DEBUG_LFLAGS = 
LIBS= libcmt.lib kernel32.lib ws2_32.lib 
!endif

RAND=RANDOM
DEFS= /D "$(RAND)" /D "LEX" /D "WIN32" /D "WIN32_LEAN_AND_MEAN" /D "_CONSOLE" /D "_MBCS" /D "TRACE"
OPTIM= /nologo /GX /W1 $(DEBUG_CFLAGS) /G$(PROCESSOR_LEVEL) 
CFLAGS= $(OPTIM) $(DEFS)
LFLAGS = /link /NOLOGO /NODEFAULTLIB /SUBSYSTEM:CONSOLE $(DEBUG_LFLAGS) 

HDR = config.h wiz_list.h sent.h security.h regexp.h object.h lnode.h \
    interpret.h comm.h os.h telnet.h

SRC=lang.y lexical.l main.c lnode.c interpret.c simulate.c object.c backend.c \
    comm1.c ed.c regexp.c wiz_list.c swap.c string_space.c os.c

OBJ=lang.obj lexical.obj main.obj lnode.obj interpret.obj simulate.obj \
    object.obj backend.obj comm1.obj ed.obj regexp.obj wiz_list.obj \
    swap.obj string_space.obj os.obj

XTRA = README CHANGES.1.4.0-A CHANGES Copyright Makefile INSTALL_NOTES IDEA \
    makefile.bor makefile.vc restart_mud

MISCSRC = count_active.c 
MISCOBJ = $(MISCSRC:.c=.obj)

# OTHER = mudlib/* 

# Files in the standard distribution
DISTFILES = $(SRC) $(HDR) $(XTRA) $(OTHER) $(MISCSRC) 
PDIST = $(DISTFILES:%=lpmud\%)
!ifndef RELEASE
RELEASE = dist
!endif

# Dependency information
OBJDEPENDS = $(OBJ) $(MISCOBJ) 

TARGETS = parse$(EXE) count_active$(EXE)

all: $(TARGETS)

parse$(EXE) : $(OBJ) 
	$(LD) $(OBJ) $(LIBS) /Fe$@ $(LFLAGS)

count_active$(EXE) : $(MISCOBJ)
	$(LD) $(MISCOBJ) $(LIBS) /Fe$@ $(LFLAGS)

lang.c y.tab.h : lang.y 
	$(YACC) -d lang.y
	-move y.tab.c lang.c

lexical.c : lexical.l
	$(LEX) lexical.l
	-move lex.yy.c lexical.c

clean :
	-del *.pdb *.ilk $(TARGETS) lang.c y.tab.h lexical.c $(OBJDEPENDS) 

dist : $(DISTFILES)
	@echo "Building distribution..."
	@-md lpmud
	@!copy /y $** lpmud 1>NUL
	@echo .svn > ex.tmp
        @xcopy mudlib lpmud\mudlib /I /E /Y /Q /EXCLUDE:ex.tmp 
        @del ex.tmp
	@$(WINZIP) -Pr lpmud-$(RELEASE).zip lpmud 1>NUL 2>NUL
	@rd /s /q lpmud
	@echo "Done."

.c.obj:
	$(CC) $(CFLAGS) /c /Tc$(<:\=/)