# # Whatever you put in for $(CC) must be able to grok ANSI C. # CC = cl LD = cl AR = link /LIB YACC = yacc YFLAGS = -l -d 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 DEFS= /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) # Include directories INCS = /I.\ /I.\U DBMLIBS = os.obj gdbm.lib ndbm.lib dbm.lib #if building with combat, include this #COMBAT= COMBAT = combat.c HDR = config.h mud.h comp.h vars.h look.h match.h cmd.h sbuf.h trans.h sym.h xact.h \ combat.h os.h SRC = mud.c $(COMBAT) cron.c net.c do_go.c do_look.c login.c trans.c version.c \ run.c sym.c activ.c vars.c cmd.c xact.c xmit.c cache.c bool.c util.c \ match.c obj.c sbuf.c list.c rot.c alloc.c errors.c misc2.c misc.c os.c # .obj versions of above OBJ = $(SRC:.c=.obj) XTRA = README README_2.0a README_COMBAT CHANGES COPYRIGHT Makefile INSTALL_NOTES \ untermud-2.4-orig.tar.gz makefile.bor makefile.vc \ bootup buildh buildd buildg bootup.cmd buildh.cmd buildd.cmd buildg.cmd CMDLIB = CMD\cmd.lib CMDSRC = CMD\_dump.c CMD\_echo.c CMD\_wall.c CMD\_force.c CMD\_if.c CMD\_mark.c \ CMD\_rand.c CMD\build.c CMD\destroy.c CMD\do.c CMD\drop.c CMD\examine.c \ CMD\go.c CMD\inv.c CMD\kill.c CMD\look.c CMD\news.c CMD\page.c \ CMD\passwd.c CMD\quit.c CMD\read.c CMD\say.c CMD\take.c CMD\use.c \ CMD\which.c CMD\telep.c CMD\wear.c CMD\whisper.c CMD\wizard.c CMDOBJ = $(CMDSRC:.c=.obj) CMDXTRA = CMD\README DBLIB = DB\db.lib DBSRC = DB\oif.c DB\expr.c DB\dbmchunk.c DB\dbmconf.c DB\gdbmchunk.c \ DB\gdbmconf.c DB\hashconf.c DB\hashdir.c DBOBJ = $(DBSRC:.c=.obj) DBXTRA = DB\README DB\dumpdb.c DB\loaddb.c DB\comp.c DB\bigrams.c \ DB\config DB\startup DB\minimal_db.oif DBUTIL = misc.obj alloc.obj obj.obj sbuf.obj list.obj ULIB = U\u.lib UHDR = U\u.h USRC = U\bltin.c U\uinterp.y U\u_util.c U\b_cmd.c U\b_echo.c U\b_err.c \ U\b_lst.c U\b_match.c U\b_misc.c U\b_int.c U\b_oid.c U\b_rnd.c \ U\b_time.c U\b_str.c UOBJ = U\bltin.obj U\uinterp.obj U\u_util.obj U\b_cmd.obj U\b_echo.obj U\b_err.obj U\b_lst.obj \ U\b_match.obj U\b_misc.obj U\b_int.obj U\b_oid.obj U\b_rnd.obj \ U\b_time.obj U\b_str.obj UXTRA = U\README MISCSRC = MISC\bonk.c MISC\oif2set.c MISCOBJ = $(MISCSRC:.c=.obj) MISCXTRA = $(MISCSRC:.c=.doc) MISCDBCHKSRC = MISC\dbchk\dbchk.c MISC\dbchk\dbchk_cache.c MISCDBCHKOBJ = $(MISCDBCHKSRC:.c=.obj) #if building without RWHO support, change RWHOLIB to nothing: #RWHOLIB = RWHOLIB = RWHO\rwho.lib RWHOHDR = RWHO\rwho.h RWHOSRC = RWHO\updat.c RWHO\clilib.c RWHOOBJ = $(RWHOSRC:.c=.obj) RWHOXTRA = RWHO\mudwho.c RWHO\mwhoforvm RWHO\HOW_TO RWHO\rwhodoc RWHO\README # RWHO daemon RWHOD = RWHO\rwhod RWHODSRC = $(RWHOD)\mwhod.c RWHODOBJ = $(RWHODSRC:.c=.obj) RWHODXTRA = $(RWHOD)\mwhod.doc $(RWHOD)\README # Files in the standard distribution DISTFILES = $(SRC) $(HDR) $(XTRA) !ifndef RELEASE RELEASE=dist !endif # Dependency information OBJDEPENDS = $(OBJ) $(CMDOBJ) $(DBOBJ) $(UOBJ) $(RWHOOBJ) \ DB\dumpdb.obj DB\loaddb.obj DB\comp.obj DB\bigrams.obj \ RWHO\mudwho.obj $(MISCOBJ) $(MISCDBCHKOBJ) $(RWHODOBJ) ALLLIBS = $(CMDLIB) $(DBLIB) $(ULIB) $(RWHOLIB) TARGETS = mud$(EXE) mudwho$(EXE) dumpdb$(EXE) loaddb$(EXE) bigrams$(EXE) \ comp$(EXE) bonk$(EXE) oif2set$(EXE) dbchk$(EXE) mwhod$(EXE) all: $(TARGETS) mud$(EXE) : $(OBJ) $(CMDLIB) $(DBLIB) $(ULIB) $(RWHOLIB) $(DBMLIBS) $(LD) $** $(LIBS) /Fe$@ $(LFLAGS) mudwho$(EXE) : RWHO\mudwho.obj getopt.lib $(LD) $** $(LIBS) /Fe$@ $(LFLAGS) dumpdb$(EXE) : DB\dumpdb.obj $(DBUTIL) $(DBLIB) getopt.lib $(DBMLIBS) $(LD) $** $(LIBS) /Fe$@ $(LFLAGS) loaddb$(EXE) : DB\loaddb.obj $(DBUTIL) $(DBLIB) getopt.lib $(DBMLIBS) $(LD) $** $(LIBS) /Fe$@ $(LFLAGS) comp$(EXE) : DB\comp.obj $(LD) $** $(LIBS) /Fe$@ $(LFLAGS) bigrams$(EXE) : DB\bigrams.obj $(LD) $** $(LIBS) /Fe$@ $(LFLAGS) $(CMDLIB) : $(CMDOBJ) @echo "making CMD library..." -@del $@ 2>NUL $(AR) /OUT:$@ $** $(DBLIB) : $(DBOBJ) @echo "making DB library..." -@del $@ 2>NUL $(AR) /OUT:$@ $** $(ULIB) : $(UOBJ) @echo "making U library..." -@del $@ 2>NUL $(AR) /OUT:$@ $** U\uinterp.c y.tab.h : U\uinterp.y $(YACC) $(YFLAGS) U\uinterp.y -move y.tab.c U\uinterp.c $(RWHOLIB) : $(RWHOOBJ) @echo "making RWHO library..." -@del $@ 2>NUL $(AR) /OUT:$@ $** mwhod$(EXE) : $(RWHODOBJ) getopt.lib $(LD) $** $(LIBS) /Fe$@ $(LFLAGS) bonk$(EXE) : MISC\bonk.obj $(LD) $** $(LIBS) /Fe$@ $(LFLAGS) oif2set$(EXE) : MISC\oif2set.obj $(LD) $** $(LIBS) /Fe$@ $(LFLAGS) dbchk$(EXE) : $(MISCDBCHKOBJ) $(DBUTIL) $(DBLIB) getopt.lib $(DBMLIBS) $(LD) $** $(LIBS) /Fe$@ $(LFLAGS) clean : @echo "Cleaning..." @-del *.pdb *.ilk *.idb $(TARGETS) $(ALLLIBS) DB\dumpdb.obj DB\loaddb.obj \ DB\comp.obj DB\bigrams.obj U\uinterp.c y.tab.h RWHO\mudwho.obj \ $(OBJDEPENDS) 2>NUL @echo "Done." dist : $(DISTFILES) @echo "Building distribution..." @-md untermud @!copy /y $** untermud 1>NUL @echo .svn > ex.tmp @xcopy CMD untermud\CMD /I /E /Y /Q /EXCLUDE:ex.tmp @xcopy MISC untermud\MISC /I /E /Y /Q /EXCLUDE:ex.tmp @xcopy DB untermud\DB /I /E /Y /Q /EXCLUDE:ex.tmp @xcopy DOC untermud\DOC /I /E /Y /Q /EXCLUDE:ex.tmp @xcopy HELP untermud\HELP /I /E /Y /Q /EXCLUDE:ex.tmp @xcopy RWHO untermud\RWHO /I /E /Y /Q /EXCLUDE:ex.tmp @xcopy U untermud\U /I /E /Y /Q /EXCLUDE:ex.tmp @del ex.tmp @$(WINZIP) -Pr untermud-$(RELEASE).zip untermud 1>NUL 2>NUL @rd /s /q untermud @echo "Done." .c.obj: $(CC) $(CFLAGS) $(INCS) /c /Tc$< /Fo$@