# makefile to build CSTA API libraries

include ../../platform.mk

ROOTDIR	= ..
ACROOTDIR = ..$(PS)..$(PS)..
RTSRCDIR  = $(ACROOTDIR)$(PS)rtsrc
BERSRCDIR = $(ACROOTDIR)$(PS)rtbersrc
XERSRCDIR = $(ACROOTDIR)$(PS)rtxersrc
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

ASN1C = $(ACROOTDIR)$(PS)bin$(PS)asn1c

CFLAGS  = $(COPTIMIZE_) $(CVARS_) $(MCFLAGS) $(CFLAGS_)
CCFLAGS = $(COPTIMIZE_) $(CVARS_) $(MCFLAGS) $(CCFLAGS_) $(XMLDEFS)
IPATHS  = -I. -I$(ROOTDIR) -I$(ACSE_SRCDIR) -I$(CSTA_SRCDIR) -I$(RTSRCDIR) \
 -I$(BERSRCDIR) -I$(RTXSRCDIR) -I$(ACROOTDIR) $(IPATHS_)

include csta_object.mk
include csta_sourcefiles.mk
include acse_object.mk
include acse_sourcefiles.mk

all : $(ROOTDIR)$(PS)platform.mk outdirs $(LIBPATH)acse$(A) $(LIBPATH)cstap3$(A)

CSTA_ASN1FILES = \
$(CSTA_MISCSPECSDIR)$(PS)*.asn \
$(CSTA_MSGSPECSDIR)$(PS)*.asn \
$(CSTA_PROPDIR)$(PS)PanasonicCSTA.asn \
$(CSTA_PROPDIR)$(PS)PanasonicMakeCall.asn

$(ROOTDIR)$(PS)platform.mk :
	$(COPY) $(ACROOTDIR)$(PS)platform.mk $(ROOTDIR)

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

# compile C++ source files
$(CSTA_OBJECTS): $(CSTA_SOURCEFILES)
	$(RM) *$(OBJ)
	$(CCC) -c $(CCFLAGS) $(IPATHS) $(CSTA_SRCDIR)/*.cpp

# create library
$(LIBPATH)cstap3$(A) : $(CSTA_OBJECTS)
	$(LIBCMD) *$(OBJ)

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)

$(ACSE_OBJECTS): $(ACSE_SOURCEFILES)
	$(RM) *$(OBJ)
	$(CCC) -c $(CCFLAGS) $(IPATHS) $(ACSE_SRCDIR)/*.cpp

$(LIBPATH)acse$(A) : $(ACSE_OBJECTS)
	$(LIBCMD) *$(OBJ)

outdirs :
	perl -e "mkdir ('../lib', 0777) if (! -e '../lib')"

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

realclean:
	$(RM) $(LIBPATH)acse$(A)
	$(RM) $(LIBPATH)cstap3$(A)
	$(RM) $(CSTA_SRCDIR)$(PS)*.cpp
	$(RM) $(CSTA_SRCDIR)$(PS)*.h
	$(RM) $(ACSE_SRCDIR)$(PS)*.cpp
	$(RM) $(ACSE_SRCDIR)$(PS)*.h
	$(MAKE) clean

