# $Id: Makefile,v 1.77 2002/12/10 00:08:56 bko Exp $

BUILD = ../../build

include $(BUILD)/Makefile.pre

USE_HEARTBEAT = $(shell if [ -d ../../heartbeat ] ; then echo 1 ; fi)
USE_VOICEMAIL = $(shell if [ -d ../../vm ] ; then echo 1 ; fi)

#set it to 1 for no policy
NO_POLICY=1

ifeq ($(USE_VOICEMAIL),1)
# we will set Voicemail on by default if the vm directory exists
HAS_VOICEMAIL = 1
endif

ifeq ($(OSTYPE),Linux)
HAS_PHONEDEV = 1
HAS_SOUNDCARD = 1
endif

ifeq ($(OSTYPE),FreeBSD)
HAS_SOUNDCARD = 1
endif

ifeq ($(USE_RSVPLIB),1)
    HAS_RSVPLIB=1
else
    HAS_RSVPLIB=
endif

ifdef HAS_RSVPLIB
DEFINES += HAS_RSVPLIB
endif

ifeq ($(USE_HEARTBEAT),1)
    HBPKG = HEARTBEAT PSLIB PSUTILIB
    XMLPKG = LIBXML
endif

ifdef NO_POLICY
  DEFINES += NO_POLICY
else
  POLICYPKG = LIBPEP COPS COPSCOMMON OSP 
endif

ifeq ($(HAS_PHONEDEV), 1)
SRC += 	QuickNetDevice.cxx \
	PhoneCardDevice.cxx \
	CheckHardware.cxx
DEFINES += HAS_PHONEDEV
endif

ifeq ($(HAS_SOUNDCARD), 1)
SRC += 	SoundCardDevice.cxx\
	DupCardDevice.cxx\
	NewSoundCard.cxx

DEFINES += HAS_SOUNDCARD
endif

ifeq ($(HAS_RSVPLIB), 1)
SRC +=	SuaRsvp.cxx
DEFINES += HAS_RSVPLIB
endif

ifeq ($(HAS_VOICEMAIL), 1)
SRC +=	VmcpDevice.cxx
DEFINES += HAS_VOICEMAIL
VMCPPKG = VMCP NEWSNDFILE
endif

ifeq ($(USE_SPHINX), 1)
SRC +=	SpeechHandler.cxx
DEFINES += HAS_SPHINX
#Point to the Sphinx headers
#INCDIRS +=  /usr/local/include/sphinx2 
endif

PACKAGES += PROXYBASE SIP SDP2 RTP PTHREAD $(POLICYPKG) $(VMCPPKG) $(HBPKG) \
	UTIL LIBCEXT $(XMLPKG) OPENSSL

INCDIRS += 

CXXFLAGS += 

TESTPROGRAMS = \
	ua.cxx

#	ua.cxx\
#	TestAudio.cxx

SRC += \
	Authenticate.cxx\
	CJTime.cxx \
	Contact.cxx \
	DeviceThread.cxx \
	DigitCollector.cxx \
	DigitTimeout.cxx \
	FeatureThread.cxx \
	LoadGenMonitor.cxx \
	LoadGenThread.cxx \
	NullHwDevice.cxx \
	OpAck.cxx \
	OpAckReInvite.cxx \
	OpActiveCallEnded.cxx \
	OpAddDigit.cxx \
	OpAnswerCall.cxx \
	OpAutoAnswer.cxx \
	OpAutoCall.cxx \
	OpAutoCalleeInCallTO.cxx \
	OpAutoCallerInCallTO.cxx \
	OpAutoEndRecCall.cxx \
	OpAutoFarEndAnswered.cxx \
	OpAutoProcessOk.cxx \
	OpAutoRS.cxx \
	OpAutoRSAck.cxx	\
	OpAutoTerminateCall.cxx \
	OpAutoTryingTO.cxx \
	OpBeingXferred.cxx \
	OpBlindXferHoldOk.cxx \
	OpBlindXferred.cxx \
	OpBusyAck.cxx \
	OpBusyHere.cxx \
	OpCancelTimer.cxx \
	OpConfComplete.cxx \
	OpConfError.cxx \
	OpConfTargetOk.cxx \
	OpConferencing.cxx \
	OpConsultXferred.cxx \
	OpConvertCw.cxx \
	OpCwRing.cxx \
	OpDialError.cxx \
	OpDigitsResp.cxx \
	OpEndCall.cxx \
	OpFarEndAnswered.cxx \
	OpFarEndBusy.cxx \
	OpFarEndError.cxx \
	OpFwdDigit.cxx \
	OpHangupError.cxx \
	OpHeldCallEndedDialing.cxx \
	OpHeldCallEndedIn2Calls.cxx \
	OpHeldCallEndedTrying.cxx \
	OpHoldTargetErr.cxx \
	OpHoldTargetOk.cxx \
	OpInCallBusy.cxx \
	OpInCallFarEndAnswered.cxx \
	OpInCallFastBusy.cxx \
	OpInCallInvite.cxx \
	OpInCallStopTrying.cxx \
	OpInviteUrl.cxx \
	OpOnHook.cxx \
	OpReDirect.cxx \
	OpReInvite.cxx \
	OpReInviteAuthenticated.cxx \
	OpReRing.cxx \
	OpRecvdXfer.cxx \
	OpRevert.cxx \
	OpRing.cxx \
	OpRingCancel.cxx \
	OpRingingInvite.cxx \
	OpSecondCall.cxx \
	OpStartAudioDuplex.cxx \
	OpStartBlindXferring.cxx \
	OpStartBusyTone.cxx \
	OpStartCall.cxx \
	OpStartCallWaiting.cxx \
	OpStartConferencing.cxx \
	OpStartConsultXferring.cxx \
	OpStartDialTone.cxx \
	OpStartErrorTone.cxx \
	OpStartFastBusyTone.cxx \
	OpStartRingbackTone.cxx \
	OpStartRinging.cxx \
	OpStartTimer.cxx \
	OpStopAudio.cxx \
	OpStopBusyTone.cxx \
	OpStopDialTone.cxx \
	OpStopErrorTone.cxx \
	OpStopFastBusyTone.cxx \
	OpStopRingbackTone.cxx \
	OpStopRinging.cxx \
	OpSuspendAudio.cxx \
	OpSwapCalls.cxx \
	OpSwapComplete.cxx \
	OpTerminateCall.cxx \
	OpTerminateTrying.cxx \
	OpTimeout.cxx \
	OpXferComplete.cxx \
	OpXferDenied.cxx \
	OpXferEnded.cxx \
	OpXferHold.cxx \
	OpXferTargetHoldOk.cxx \
	OpXferTargetInviteOk.cxx \
	OpXfereeComplete.cxx \
	PlayQueue.cxx \
	Recorder.cxx \
	Registration.cxx \
	RegistrationManager.cxx \
	ResGwDevice.cxx \
	RsvpHandler.cxx \
	RtpThread.cxx \
	SdpHandler.cxx\
	SimpleExtDevice.cxx\
	StateAutoIdle.cxx \
	StateAutoInCall.cxx \
	StateAutoRS.cxx \
	StateAutoTrying.cxx \
	StateBeingXferred.cxx \
	StateBlindXferring.cxx \
	StateBusy.cxx \
	StateBusyHere.cxx \
	StateCallEnded.cxx  \
	StateConferencing.cxx \
	StateConsultXferring.cxx \
	StateDialing.cxx \
	StateError.cxx \
	StateFastBusy.cxx \
	StateIdle.cxx \
	StateIn2Calls.cxx \
	StateInCall.cxx \
	StateInCallBusy.cxx \
	StateInCallDialing.cxx \
	StateInCallFastBusy.cxx \
	StateInCallTrying.cxx \
	StateOnhold.cxx \
	StateReRinging.cxx \
	StateRinging.cxx \
	StateTrying.cxx \
	SubscribeManager.cxx \
	UaBuilder.cxx \
	UaCallContainer.cxx \
	UaCallInfo.cxx \
	UaCommandLine.cxx \
	UaConfiguration.cxx \
	UaDevice.cxx \
	UaDeviceEvent.cxx \
	UaDigitTimerEvent.cxx \
	UaHardwareEvent.cxx \
	UaOperator.cxx \
	UaStateMachine.cxx \
	UaTimerEvent.cxx \
	UserAgent.cxx \


include $(BUILD)/Makefile.post

docs:	doc++/config.txt
	doc++ --config doc++/config.txt

