#
# 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$(<:\=/)