###############################################################################
##    Makefile-b32
##
##    This file is part of Object Script Library
##    Copyright (C) 2005-2007 Tom N Harris <telliamed@whoopdedo.org>
##
##    Permission is hereby granted, free of charge, to any person obtaining
##    a copy of this software and associated documentation files (the 
##    "Software"), to deal in the Software without restriction, including 
##    without limitation the rights to use, copy, modify, merge, publish, 
##    distribute, sublicense, and/or sell copies of the Software, and to 
##    permit persons to whom the Software is furnished to do so.
##    
##    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
##    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 
##    OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-
##    INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 
##    BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 
##    AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 
##    IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 
##    THE SOFTWARE.
##
###############################################################################

BCCROOT = D:\BCC

IMPLIB = $(BCCROOT)\bin\Implib
ILINK32 = $(BCCROOT)\bin\ILink32
TLIB = $(BCCROOT)\bin\TLib
BRC32 = $(BCCROOT)\bin\Brc32
TASM32 = $(BCCROOT)\bin\Tasm32
CC = $(BCCROOT)\bin\BCC32

srcdir = .\source
bin1dir = .\bin1
bin2dir = .\bin2
bin3dir = .\bin3
bindirectories = $(bin1dir) $(bin2dir) $(bin3dir)

#GAME = 2

LGDIR = ..\lg
LGLIB = lg.lib

DEFINES = -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DWIN32_LEAN_AND_MEAN

!ifdef DEBUG
CXXDEBUG = -v -y -O0 -DDEBUG
LDDEBUG = -v
!else
CXXDEBUG = -O2 -5 -OS -v- -DNDEBUG
LDDEBUG = -v-
!endif

LDFLAGS = -aa -Tpd -c
LIBDIRS = -L.;$(LGDIR);$(BCCROOT)\lib;$(BCCROOT)\lib\psdk 
LIBS = $(LGLIB) uuid.lib
INCLUDES = -I. -I$(srcdir) -I$(LGDIR)
CXXFLAGS = -q -P -tWD -tWM 
RCFLAGS = -r

SRCS =  $(srcdir)\ScriptLib.cpp \
	$(srcdir)\GetObjectParams.cpp \
	$(srcdir)\SetObjectParams.cpp \
	$(srcdir)\GetObjectParamString.cpp \
	$(srcdir)\GetObjectParamInt.cpp \
	$(srcdir)\GetObjectParamFloat.cpp \
	$(srcdir)\GetObjectParamBool.cpp \
	$(srcdir)\GetObjectParamObject.cpp \
	$(srcdir)\GetObjectParamTime.cpp \
	$(srcdir)\SetObjectParamString.cpp \
	$(srcdir)\SetObjectParamInt.cpp \
	$(srcdir)\SetObjectParamFloat.cpp \
	$(srcdir)\SetObjectParamBool.cpp \
	$(srcdir)\GetParamString.cpp \
	$(srcdir)\GetParamInt.cpp \
	$(srcdir)\GetParamFloat.cpp \
	$(srcdir)\GetParamBool.cpp \
	$(srcdir)\GetParamObject.cpp \
	$(srcdir)\GetParamTime.cpp \
	$(srcdir)\SetParamString.cpp \
	$(srcdir)\SetParamInt.cpp \
	$(srcdir)\SetParamFloat.cpp \
	$(srcdir)\SetParamBool.cpp \
	$(srcdir)\RemoveObjectParam.cpp \
	$(srcdir)\AddSingleMetaProperty.cpp \
	$(srcdir)\RemoveSingleMetaProperty.cpp \
	$(srcdir)\AddMetaProperty.cpp \
	$(srcdir)\RemoveMetaProperty.cpp \
	$(srcdir)\GetOneLinkDest.cpp \
	$(srcdir)\GetOneLinkByData.cpp \
	$(srcdir)\GetOneLinkByDataDest.cpp \
	$(srcdir)\GetOneLinkInheritedSrc.cpp \
	$(srcdir)\GetOneLinkByDataInheritedSrc.cpp \
	$(srcdir)\GetAnyLink.cpp \
	$(srcdir)\GetAnyLinkDest.cpp \
	$(srcdir)\GetAnyLinkByData.cpp \
	$(srcdir)\GetAnyLinkByDataDest.cpp \
	$(srcdir)\GetAnyLinkInheritedSrc.cpp \
	$(srcdir)\GetAnyLinkByDataInheritedSrc.cpp \
	$(srcdir)\IterateLinks.cpp \
	$(srcdir)\IterateLinksByData.cpp \
	$(srcdir)\DeleteAllLinks.cpp \
	$(srcdir)\DeleteAllLinksByData.cpp \
	$(srcdir)\FixupPlayerLinks.cpp \
	$(srcdir)\SimpleSend.cpp \
	$(srcdir)\SimplePost.cpp \
	$(srcdir)\CDSend.cpp \
	$(srcdir)\CDSendData.cpp \
	$(srcdir)\StrToObject.cpp \
	$(srcdir)\ShowBook.cpp \
	$(srcdir)\ShowString.cpp \
	$(srcdir)\DebugPrintf.cpp \
	$(srcdir)\DisplayPrintf.cpp \
	$(srcdir)\MultiParmAssignFloat.cpp \
	$(srcdir)\MultiParmAssignInt.cpp \
	$(srcdir)\MultiParmAssignString.cpp \
	$(srcdir)\MultiParmAssignVector.cpp \
	$(srcdir)\CalcTextTime.cpp \
	$(srcdir)\strsep.cpp \
	$(srcdir)\strqsep.cpp \
	$(srcdir)\strtocolor.cpp \
	$(srcdir)\strtotime.cpp \

OBJS = $(SRCS:.cpp=.obj)
OBJS1 = $(OBJS:$(srcdir)=$(bin1dir))
OBJS2 = $(OBJS:$(srcdir)=$(bin2dir))
OBJS3 = $(OBJS:$(srcdir)=$(bin3dir))

SCRIPTLIB1 = ScriptLib1.lib
SCRIPTLIB2 = ScriptLib2.lib
SCRIPTLIB3 = ScriptLib3.lib

{$(srcdir)}.cpp{$(bin1dir)}.obj:
	$(CC) $(CXXFLAGS) $(CXXDEBUG) $(DEFINES) -D_DARKGAME=1 $(INCLUDES) -n$(bin1dir) -c $<

{$(srcdir)}.cpp{$(bin2dir)}.obj:
	$(CC) $(CXXFLAGS) $(CXXDEBUG) $(DEFINES) -D_DARKGAME=2 $(INCLUDES) -n$(bin2dir) -c $<

{$(srcdir)}.cpp{$(bin3dir)}.obj:
	$(CC) $(CXXFLAGS) $(CXXDEBUG) $(DEFINES) -D_DARKGAME=3 $(INCLUDES) -n$(bin3dir) -c $<


all: $(bindirectories) $(SCRIPTLIB1) $(SCRIPTLIB2) $(SCRIPTLIB3)

clean:
	del /q $(OBJS1) $(OBJS2) $(OBJS3) $(SCRIPTLIB1) $(SCRIPTLIB2) $(SCRIPTLIB3)

BINS: $(bindirectories)
	@&md $**

$(bin1dir):
	-

$(bin2dir):
	-

$(bin3dir):
	-


$(SCRIPTLIB1): $(OBJS1)
	del /q $(SCRIPTLIB1)
	$(TLIB) /a $@ $?

$(SCRIPTLIB2): $(OBJS2)
	del /q $(SCRIPTLIB2)
	$(TLIB) /a $@ $?

$(SCRIPTLIB3): $(OBJS3)
	del /q $(SCRIPTLIB3)
	$(TLIB) /a $@ $?

