#######################################################################
#  makefile for 3G-324M-SIP Gateway demo programs
# 
#  IMPORTANT:
#       This makefile must be configured for your particular
#       operating system.  See the "Operating System section"
#       below.              
#
#       Modify this makefile to match your specific configuration.
#
########################################################################

#export USE_RTSP=1

ifdef USE_RTSP
########################################################################
# Live 555 dependencies
LIVE555 = /export/RTSP/live
#LIVE555 = /export/live555/live
LIVE_INCS = -I$(LIVE555)/UsageEnvironment/include -I$(LIVE555)/groupsock/include -I$(LIVE555)/liveMedia/include -I$(LIVE555)/BasicUsageEnvironment/include
LIVE_COMPILE_OPTS =          $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
LIVE_LIB_SUFFIX =                    a
USAGE_ENVIRONMENT_DIR = $(LIVE555)/UsageEnvironment
USAGE_ENVIRONMENT_LIB = $(USAGE_ENVIRONMENT_DIR)/libUsageEnvironment.$(LIVE_LIB_SUFFIX)
BASIC_USAGE_ENVIRONMENT_DIR = $(LIVE555)/BasicUsageEnvironment
BASIC_USAGE_ENVIRONMENT_LIB = $(BASIC_USAGE_ENVIRONMENT_DIR)/libBasicUsageEnvironment.$(LIVE_LIB_SUFFIX)
LIVEMEDIA_DIR = $(LIVE555)/liveMedia
LIVEMEDIA_LIB = $(LIVEMEDIA_DIR)/libliveMedia.$(LIVE_LIB_SUFFIX)
GROUPSOCK_DIR = $(LIVE555)/groupsock
GROUPSOCK_LIB = $(GROUPSOCK_DIR)/libgroupsock.$(LIVE_LIB_SUFFIX)
LIVE_LIBS =    $(LIVEMEDIA_LIB) $(GROUPSOCK_LIB) \
                $(USAGE_ENVIRONMENT_LIB) $(BASIC_USAGE_ENVIRONMENT_LIB)
RTSP_FLAGS = -DUSE_RTSP
REQ_LIBS = -lboost_thread
else
 LIVE_INCS = 
 LIVE_LIBS = 
 RTSP_FLAGS =
 REQ_LIBS =
endif

########################################################################

########################################################################
# Operating System section begin

# Linux
#
OS_CFLAGS     = -Wall
SYSLIBS       =

# Solaris
#
#OS_CFLAGS     = 
#SYSLIBS       =

# UnixWare 7
#
#OS_CFLAGS     = 
#SYSLIBS       =

# Operating System section end
########################################################################

ifdef INTEL_DIALOGIC_BIN
CFG 	=	External
else
CFG 	=	Internal
endif

#####################################################################################
# Configuration: External
#####################################################################################
ifeq "$(CFG)" "External"

# Sdpapi library
SDPAPI_LOC = $(DLGCROOT)/demos/sdpapi
SDPAPI_LIB = $(SDPAPI_LOC)/Linux/sdpAPI.a
SDPAPI_INC = $(SDPAPI_LOC)

AMRCODEC = -DAMR_CODEC
USE_MONA  = -DMONA
INIT_CALL = -DISDN_CALL_OUT

# Set this if compilation under HMP or MMK is done.
# Otherwise, compilation under MMP is assumed.  There are a couple
# of minor differences.
#PLATFORM = -DHMP
# now done automatically by release
ifeq "$(DIALOGIC_PLATFORM)" "HMP"
  ifeq "$(DIALOGIC_RELNUM)" "3.1"
    DIALOGIC_REL = -DHMP_3_1
  endif
  ifeq "$(DIALOGIC_RELNUM)" "4.1"
    DIALOGIC_REL = -DHMP_4_1
  endif
  PLATFORM = -DHMP
endif
ifeq "$(DIALOGIC_PLATFORM)" "OVL"
  ifeq "$(DIALOGIC_RELNUM)" "2.0"
    DIALOGIC_REL = -DMMS_2_0
    PLATFORM = -DMMP 
  endif
endif

ifeq "$(DIALOGIC_PLATFORM)" "ZVL"
  ifeq "$(DIALOGIC_RELNUM)" "1.0"
    DIALOGIC_REL = -DMMK_1_0
    PLATFORM = -DHMP
  endif
endif
# Ignore this unless you know what it is used for
#CL = -DCL

CXXFLAGS        = -g $(OS_CFLAGS) -m32 -I../inc -I/usr/dialogic/inc -I$(SDPAPI_INC) $(LIVE_INCS) -Dlint \
			$(RTSP_FLAGS) $(AMRCODEC) $(USE_MONA) $(INIT_CALL) $(CL) $(PLATFORM)

# Intel Dialogic libraries to use
ifdef INTEL_DIALOGIC_LIB
LIBS      = -L$(INTEL_DIALOGIC_LIB) $(SDPAPI_LIB) -lm3g -lgc -lncurses -ldevmgmt -ldti -lipm -lmml $(LIVE_LIBS) $(REQ_LIBS) 
else
LIBS      =  -lm3g -lncurses -ldevmgmt -ldti -lipm -lmml $(LIVE_LIBS) $(REQ_LIBS) 
endif

OBJDIR  = objs

ifdef USE_RTSP
RTSPOBJS   = rtspendpoint.o  \
                rtspidle_state.o     \
                rtspplaying_state.o         \
                rtsprecording_state.o       \
                rtspepstate.o   \
                rtspopening_state.o  \
                rtspportconnecting_state.o \
                bridgedrtspstate.o \
                bridgedrtspopening_state.o \
                bridgedrtspidle_state.o \
                bridgedrtspplaying_state.o \
                bridgedrtsprecording_state.o \
                bridgedrtsp.o  \
                CRTSPClient.o \
                CRTSPEnv.o
else
RTSPOBJS =
endif

OBJS       = $(RTSPOBJS) closinglcs_state.o \
		config.o \
                connecting_state.o \
                endpoint.o \
                endpointmgr.o \
                epstate.o \
                evtdispatcher.o \
                h245inactive_state.o \
                h245starting_state.o \
                logger.o \
                main.o \
		mediaactive_state.o \
                rxmediastopped_state.o \
                openinglcs_state.o \
                opening_state.o \
		terminal.o \
		sipepstate.o \
		sipoffered_state.o \
		sipopening_state.o \
		sipreservingmedia_state.o \
		sipportconnecting_state.o \
		sipidle_state.o \
		sipcalling_state.o \
		sipclosed_state.o \
		sipconnected_state.o \
		sipdropping_state.o \
		sipreleasing_state.o \
		sipendpoint.o \
		bridgedcallstate.o \
		bridgedcallopening_state.o \
		bridgedcallidle_state.o \
		bridgedcallconnecting_state.o \
		bridgedcallconnected_state.o \
		bridgedcalldisconnecting_state.o \
		bridgedcall.o \
		m3g-sip_gateway_version.o \
		bridgedmediastate.o \
		bridgedmediaopening_state.o \
		bridgedmediaidle_state.o \
		bridgedmediaplaying_state.o \
		bridgedmediarecording_state.o \
		bridgedmedia.o \
        	mmepstate.o \
        	mmopening_state.o \
        	mmportconnecting_state.o \
        	mmidle_state.o \
        	mmplaying_state.o \
        	mmrecording_state.o \
		mmendpoint.o \
		bridgedhairp.o \
		bridgedhairpstate.o \
		bridgedhairpopening_state.o \
		bridgedhairpidle_state.o \
		bridgedhairpconnecting_state.o \
		bridgedhairpconnected_state.o \
		bridgedhairpdisconnecting_state.o \
		isdnaccepted_state.o \
		isdnalarm_state.o \
		isdnendpoint.o \
		isdnreleasing_state.o \
		isdnconnected_state.o \
		isdnepstate.o \
		isdnwaitcall_state.o \
		isdndropping_state.o \
		isdnopening_state.o \
		isdncalling_state.o \
		isdnproceeding_state.o 


All: ./Release/m3g-sip_gateway

./Release/m3g-sip_gateway: $(OBJS)
		$(CC) -m32 $(OBJS) $(LIBS) $(SYSLIBS) -o $@

clean:
	rm -f *.o ./Release/m3g-sip_gateway

endif

###################################################################################
## Configuration: Internal
###################################################################################
ifeq "$(CFG)" "Internal"
top_reldir	=	../../..
-include $(top_reldir)/build/common.env
#
## Sdpapi library
SDPAPI_LOC = $(IPDEMOS_IMPORT_LIB)
SDPAPI_LIB = $(IPDEMOS_IMPORT_LIB)/sdpAPI.a
SDPAPI_INC = $(IPDEMOS_IMPORT_INC)
#
AMRCODEC = -DAMR_CODEC
USE_MONA = -DMONA
INIT_CALL = -DISDN_CALL_OUT
#
DIALOGIC_REL = -DHMP_4_1
PLATFORM = -DHMP
	
CXXFLAGS        = -g $(OS_CFLAGS) -m32 -I../inc -I$(IPDEMOS_IMPORT_INC) -I$(SDPAPI_INC) -Dlint \
			$(AMRCODEC) $(USE_MONA) $(INIT_CALL) $(PLATFORM)
#
#
LIBS      = -L$(IPDEMOS_IMPORT_LIB) $(SDPAPI_LIB) -lm3g -lgc -lncurses -ldevmgmt -ldti -lipm -lmml
#
#
OBJS       = closinglcs_state.o \
		config.o \
                connecting_state.o \
                endpoint.o \
                endpointmgr.o \
                epstate.o \
                evtdispatcher.o \
                h245inactive_state.o \
                h245starting_state.o \
                logger.o \
                main.o \
		mediaactive_state.o \
                rxmediastopped_state.o \
                openinglcs_state.o \
                opening_state.o \
		terminal.o \
		sipepstate.o \
		sipoffered_state.o \
		sipopening_state.o \
		sipreservingmedia_state.o \
		sipportconnecting_state.o \
		sipidle_state.o \
		sipcalling_state.o \
		sipclosed_state.o \
		sipconnected_state.o \
		sipdropping_state.o \
		sipreleasing_state.o \
		sipendpoint.o \
		bridgedcallstate.o \
		bridgedcallopening_state.o \
		bridgedcallidle_state.o \
		bridgedcallconnecting_state.o \
		bridgedcallconnected_state.o \
		bridgedcalldisconnecting_state.o \
		bridgedcall.o \
		m3g-sip_gateway_version.o \
		bridgedmediastate.o \
		bridgedmediaopening_state.o \
		bridgedmediaidle_state.o \
		bridgedmediaplaying_state.o \
		bridgedmediarecording_state.o \
		bridgedmedia.o \
        	mmepstate.o \
        	mmopening_state.o \
        	mmportconnecting_state.o \
        	mmidle_state.o \
        	mmplaying_state.o \
        	mmrecording_state.o \
		mmendpoint.o \
		bridgedhairp.o \
		bridgedhairpstate.o \
		bridgedhairpopening_state.o \
		bridgedhairpidle_state.o \
		bridgedhairpconnecting_state.o \
		bridgedhairpconnected_state.o \
		bridgedhairpdisconnecting_state.o \
		isdnaccepted_state.o \
		isdnalarm_state.o \
		isdnendpoint.o \
		isdnreleasing_state.o \
		isdnconnected_state.o \
		isdnepstate.o \
		isdnwaitcall_state.o \
		isdndropping_state.o \
		isdnopening_state.o \
		isdncalling_state.o \
		isdnproceeding_state.o 
#
#
#
#
All: ./Release/m3g-sip_gateway
#
./Release/m3g-sip_gateway: $(OBJS)
		$(CC) -m32  $(OBJS) $(LIBS) $(SYSLIBS) -o $@
#
clean:
	rm -f *.o ./Release/m3g-sip_gateway
endif
