# # Murk++ build for borland c++ # .AUTODEPEND BCCROOT = $(MAKEDIR)\.. CPP = $(BCCROOT)\bin\bcc32 CC = $(BCCROOT)\bin\bcc32 LD = $(BCCROOT)\bin\ilink32 AR = $(BCCROOT)\bin\tlib WINZIP = C:\apps\Winzip\wzzip # Compiler directives for debugging !ifdef DEBUG DEBUG_CFLAGS = -v -y -Od -r- DEBUG_LFLAGS = -v !else DEBUG_CFLAGS = -v- -O2 DEBUG_LFLAGS = -v- !endif INCS = -Isqlite3 -I$(BCCROOT)\include # Compiler/linker directives for linking static or dynamic !ifdef STATIC STATIC_CFLAGS = LIBS = import32.lib cw32.lib ws2_32.lib !else STATIC_CFLAGS = -tWR LIBS = import32.lib cw32i.lib ws2_32.lib !endif BCC32STARTUP = c0x32.obj DEFS= -DWIN32 -DWIN32_LEAN_AND_MEAN -D_NO_VCL -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_RTREE OPTIM= $(STATIC_CFLAGS) $(DEBUG_CFLAGS) -tWC -w-pia -w-par -w-aus -w-rch $(DEBUG_CFLAGS) -5 CFLAGS= $(OPTIM) $(DEFS) LFLAGS = -Tpe -ap -c -Gn $(DEBUG_LFLAGS) SQLITE_SRC = sqlite3\sqlite3.c SQLITE_OBJ = $(SQLITE_SRC:.c=.obj) SQLITE_LIB = sqlite3\sqlite3.lib SQLITE_PRG_SRC = sqlite3\shell.c SQLITE_PRG_OBJ = $(SQLITE_PRG_SRC:.c=.obj) SQLITE_PRG = sqlite3\sqlite3.exe SQLITE_XTRA = sqlite3\sqlite3.h sqlite3\sqlite3ext.h \ sqlite3\libsqlite3.vcxproj sqlite3\sqlite3.vcxproj \ sqlite3\libsqlite3.cbproj sqlite3\sqlite3.cbproj MURK_UTIL_SRC = loadhelps.cpp MURK_UTIL_OBJ = $(MURK_UTIL_SRC:.cpp=.obj) MURK_SRC = murk.cpp os.cpp descriptor.cpp utils.cpp commands.cpp io.cpp \ room.cpp object.cpp character.cpp spells.cpp objproto.cpp mobproto.cpp \ affect.cpp exit.cpp area.cpp reset.cpp extra.cpp shop.cpp pcdata.cpp \ symbols.cpp database.cpp world.cpp MURK_OBJ = $(MURK_SRC:.cpp=.obj) MURK_HDR = os.hpp config.hpp descriptor.hpp character.hpp pcdata.hpp utils.hpp \ globals.hpp object.hpp note.hpp room.hpp area.hpp mobproto.hpp \ objproto.hpp affect.hpp exit.hpp extra.hpp ban.hpp shop.hpp reset.hpp \ io.hpp symbols.hpp database.hpp spell_list.hpp cmd_list.hpp \ baseobject.hpp world.hpp # Data files Areas, Mobprogs and Players DATAFILES = area.lst limbo.are mid_cit.prg midgaard.are school.are help.are \ vagabond.prg beggar.prg crier.prg drunk.prg gategrd.prg gategrd2.prg \ janitor.prg One schema item_types socials titles # Files in the standard distribution DISTFILES = $(MURK_SRC) $(MURK_UTIL_SRC) $(MURK_HDR) $(DATAFILES) \ makefile makefile.bor makefile.vc makefile.dgm makefile.vc15 \ doc.txt startup startup.bash startup.cmd \ license.crypt license.diku license.merc license.murk++ \ loadhelps.vcxproj murk.vcxproj murk++.sln \ loadhelps.cbproj murk.cbproj murk++.groupproj !ifndef RELEASE RELEASE=dist !endif TARGETS = $(SQLITE_LIB) $(SQLITE_PRG) murk.exe loadhelps.exe all: $(TARGETS) $(SQLITE_LIB): $(SQLITE_OBJ) -@del $< 2>NUL $(AR) $< /a $** $(SQLITE_PRG): $(SQLITE_PRG_OBJ) $(SQLITE_LIB) $(LD) $(LFLAGS) $(BCC32STARTUP) $**, $<,, $(LIBS) murk.exe: $(MURK_OBJ) $(SQLITE_LIB) @-del murkold.exe @-ren murk.exe murkold.exe $(LD) $(LFLAGS) $(BCC32STARTUP) $**, $<,, $(LIBS) loadhelps.exe: $(MURK_UTIL_OBJ) io.obj $(SQLITE_LIB) $(LD) $(LFLAGS) $(BCC32STARTUP) $**, $<,, $(LIBS) database: $(SQLITE_PRG) loadhelps.exe @echo "Building database..." @-copy murk.db murk.db.bkup @-del murk.db @sqlite3\sqlite3 murk.db < schema @loadhelps @echo "Done." clean: @-del *.tds *.map *.tr2 murk.exe loadhelps.exe $(MURK_OBJ) \ $(MURK_UTIL_OBJ) 2>NUL cleanall: @-del *.tds sqlite3\*.tds *.map *.tr2 $(TARGETS) $(MURK_OBJ) \ $(SQLITE_OBJ) $(SQLITE_PRG_OBJ) $(MURK_UTIL_OBJ) 2>NUL dist : $(DISTFILES) @echo "Building distribution..." @-md murk++ @!copy /y "$**" "murk++" 1>NUL @echo .svn > ex.tmp @xcopy sqlite3 "murk++\sqlite3" /I /E /Y /Q /EXCLUDE:ex.tmp @del ex.tmp @$(WINZIP) -Pr murk++-$(RELEASE).zip murk++ 1>NUL 2>NUL @rd /s /q murk++ @echo "Done." .c.obj: $(CC) $(CFLAGS) $(INCS) -c -n$(@D) $< .cpp.obj: $(CC) $(CFLAGS) $(INCS) -c -n$(@D) $<