# makefile to build CSTA API libraries

include ../../platform.mk

ACROOTDIR = ..$(PS)..$(PS)..
ASN1C = $(ACROOTDIR)$(PS)bin$(PS)asn1c
RTSRCDIR  = $(ACROOTDIR)$(PS)rtsrc
RTXSRCDIR = $(ROOTDIR)$(PS)rtxsrc$(PS)
BERSRCDIR = $(ACROOTDIR)$(PS)rtbersrc
XERSRCDIR = $(ACROOTDIR)$(PS)rtxersrc

ROOTDIR  = ..
CPPROOTDIR = ..$(PS)..
ACROOTDIR = ..$(PS)..$(PS)..
RTSRCDIR  = $(ACROOTDIR)$(PS)rtsrc
BERSRCDIR = $(ACROOTDIR)$(PS)rtbersrc
RTXSRCDIR = $(ACROOTDIR)$(PS)rtxsrc

LIBPATH  = $(ROOTDIR)$(PS)lib$(PS)$(LIBPFX)
RTLIBDIR = $(ROOTDIR)$(PS)lib$(PS)

CSTA_SPECSDIR = $(ROOTDIR)$(PS)specs$(PS)csta
CSTA_MISCSPECSDIR = $(CSTA_SPECSDIR)$(PS)misc_defs
CSTA_MSGSPECSDIR = $(CSTA_SPECSDIR)$(PS)msg_defs
CSTA_PROPDIR  = $(ROOTDIR)$(PS)proprietary
ACSE_SPECSDIR = $(ROOTDIR)$(PS)specs$(PS)acse
ACSE_PROPDIR  = $(ROOTDIR)$(PS)proprietary
CSTA_SRCDIR   = $(ROOTDIR)$(PS)src$(PS)csta
ACSE_SRCDIR   = $(ROOTDIR)$(PS)src$(PS)acse

#release option
CFLAGS	= $(CVARSRTDLL_) $(MCFLAGS) $(COPTIMIZE_) $(CFLAGS_) -DASN1DLL
#debug option
#CFLAGS	= $(CVARSRTDLL_) $(MCFLAGS) $(CDEBUG_) $(CFLAGS_) -DASN1DLL 
CCFLAGS = $(CFLAGS)
IPATHS  = -I. -I$(ROOTDIR) -I$(ACSE_SRCDIR) -I$(CSTA_SRCDIR) -I$(RTSRCDIR) \
 -I$(BERSRCDIR) -I$(RTXSRCDIR) -I$(ACROOTDIR) $(IPATHS_)

LPATHS   = $(LPATHS_)
RTLIBPATH = $(LPPFX)$(CPPROOTDIR)$(PS)lib

include ../build/csta_object.mk
include ../build/csta_sourcefiles.mk
include ../build/acse_object.mk
include ../build/acse_sourcefiles.mk

all : $(LIBPATH)acse.dll $(LIBPATH)cstap3.dll

$(LIBPATH)cstap3.dll : $(CSTA_OBJECTS)
	$(LINK) *$(OBJ) /LD /Fe$(LIBPATH)cstap3 \
	/link $(LINKOPTM_) $(LPATHS) $(RTLIBPATH) $(LLRTIMPD) $(LLBERIMPD)
	if exist ..$(PS)lib$(PS)cstap3$(DLL).manifest mt -manifest ..$(PS)lib$(PS)cstap3$(DLL).manifest -outputresource:..$(PS)lib$(PS)cstap3$(DLL);#2

$(LIBPATH)acse.dll : $(ACSE_OBJECTS)
	$(LINK) *$(OBJ) /LD /Fe$(LIBPATH)acse \
	/link $(LINKOPTM_) $(LPATHS) $(RTLIBPATH) $(LLRTIMPD) $(LLBERIMPD)
	if exist ..$(PS)lib$(PS)acse$(DLL).manifest mt -manifest ..$(PS)lib$(PS)acse$(DLL).manifest -outputresource:..$(PS)lib$(PS)acse$(DLL);#2
	
$(CSTA_OBJECTS): $(CSTA_SOURCEFILES)
	$(RM) *$(OBJ)
   $(CCC) -c -DBUILDDLL $(CCFLAGS) $(IPATHS) $(CSTA_SRCDIR)/*.cpp

$(ACSE_OBJECTS): $(ACSE_SOURCEFILES)
	$(RM) *$(OBJ)
   $(CCC) -c -DBUILDDLL $(CCFLAGS) $(IPATHS) $(ACSE_SRCDIR)/*.cpp
   
CSTA_ASN1FILES = \
$(CSTA_MISCSPECSDIR)$(PS)*.asn \
$(CSTA_MSGSPECSDIR)$(PS)*.asn \
$(CSTA_PROPDIR)$(PS)PanasonicCSTA.asn \
$(CSTA_PROPDIR)$(PS)PanasonicMakeCall.asn

$(CSTA_SOURCEFILES) : $(CSTA_ASN1FILES)
	$(ASN1C) $(CSTA_ASN1FILES) -c++ -ber -print -prttostr -prttostrm -config \
	$(CSTA_SPECSDIR)$(PS)csta.cfg -o $(CSTA_SRCDIR)

ACSE_ASN1FILES = \
$(ACSE_SPECSDIR)$(PS)ACSE-1.asn \
$(ACSE_SPECSDIR)$(PS)InformationFramework.asn \
$(ACSE_SPECSDIR)$(PS)UsefulDefinitions.asn \
$(ACSE_PROPDIR)$(PS)ACSE-HiPath3000.asn
	
$(ACSE_SOURCEFILES) : $(ACSE_ASN1FILES)
	$(ASN1C) $(ACSE_ASN1FILES) -c++ -ber -print -prttostr -prttostrm -o $(ACSE_SRCDIR)

clean :
	$(RM) *$(OBJ)
	$(RM) *.pdb 
	$(RM) *~ 


