# 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)..

LIBPATH  = $(ROOTDIR)$(PS)lib$(PS)$(LIBPFX)
RTLIBDIR = $(ROOTDIR)$(PS)lib$(PS)
CSTA_SPECSDIR = $(ROOTDIR)$(PS)specs$(PS)csta$(PS)
ACSE_SPECSDIR = $(ROOTDIR)$(PS)specs$(PS)acse$(PS)
CSTA_SRCDIR   = $(ROOTDIR)$(PS)src$(PS)csta
ACSE_SRCDIR   = $(ROOTDIR)$(PS)src$(PS)acse

ACEXE = ..$(PS)..$(PS)..$(PS)bin$(PS)asn1c$(EXE)

#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$(ACROOTDIR) -I$(RTSRCDIR) \
-I$(RTXSRCDIR) -I$(BERSRCDIR) $(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 : $(ROOTDIR)$(PS)platform.mk $(LIBPATH)acse$(DLL) $(LIBPATH)cstap2$(DLL)

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

$(LIBPATH)cstap2$(DLL) : $(CSTA_OBJECTS)
	$(LINK) *$(OBJ) /LD /Fe$(LIBPATH)cstap2 \
	/link $(LINKOPTM_) $(LPATHS) $(RTLIBPATH) $(LLRTIMPD) $(LLBERIMPD)
	if exist ..$(PS)lib$(PS)cstap2$(DLL).manifest mt -manifest ..$(PS)lib$(PS)cstap2$(DLL).manifest -outputresource:..$(PS)lib$(PS)cstap2$(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
   
# generate source files
$(ACSE_SOURCEFILES): $(ACSE_SPECSDIR)/ACSE-1.asn \
$(ACSE_SPECSDIR)/InformationFramework.asn \
$(ACSE_SPECSDIR)/UsefulDefinitions.asn $(ACEXE)
	$(ACEXE) $(ACSE_SPECSDIR)/*.asn -c++ -ber -print -prttostrm -o $(ACSE_SRCDIR)

$(CSTA_SOURCEFILES): $(CSTA_SPECSDIR)/cstap2.asn \
$(CSTA_SPECSDIR)/ROSE.asn $(CSTA_SPECSDIR)/csta.cfg $(ACEXE)
	$(ACEXE) $(CSTA_SPECSDIR)/*.asn -c++ -ber -print -prttostrm \
		-config $(CSTA_SPECSDIR)/csta.cfg -o $(CSTA_SRCDIR)

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


