#define SND_HAS_APS	1
#define SND_HAS_VAS	0
#define SND_HAS_MDA	0

TARGET 			symbian_ua.exe
TARGETTYPE 		exe
UID			0x0 0x200235D3

SOURCEPATH		..\pjsip-apps\src\symbian_ua

MACRO			PJ_M_I386=1
MACRO			PJ_SYMBIAN=1

OPTION			GCCE -O2 -fno-unit-at-a-time
SRCDBG

// Source files

SOURCE			ua.cpp
SOURCE			main_symbian.cpp

DOCUMENT 		ua.h

START RESOURCE  	symbian_ua_reg.rss
	TARGETPATH      \private\10003a3f\apps
END

SYSTEMINCLUDE		..\pjlib\include
SYSTEMINCLUDE		..\pjlib-util\include
SYSTEMINCLUDE		..\pjnath\include
SYSTEMINCLUDE		..\pjmedia\include
SYSTEMINCLUDE		..\pjsip\include

SYSTEMINCLUDE		\epoc32\include
SYSTEMINCLUDE		\epoc32\include\libc

STATICLIBRARY		pjsua_lib.lib pjsip_ua.lib
STATICLIBRARY		pjsip_simple.lib pjsip.lib pjsdp.lib pjmedia.lib
STATICLIBRARY		pjnath.lib pjlib_util.lib pjlib.lib
STATICLIBRARY		libsrtp.lib
STATICLIBRARY		libgsmcodec.lib libspeexcodec.lib
STATICLIBRARY		libpassthroughcodec.lib
STATICLIBRARY		pjmedia_audiodev.lib 

#if SND_HAS_APS
	LIBRARY		APSSession2.lib
#endif

#if SND_HAS_VAS
//	LIBRARY		
#endif

#if SND_HAS_MDA
	LIBRARY 	mediaclientaudiostream.lib
	LIBRARY 	mediaclientaudioinputstream.lib
#endif

#if SND_HAS_APS || SND_HAS_VAS
	CAPABILITY	NetworkServices LocalServices ReadUserData WriteUserData UserEnvironment MultimediaDD
#else
	CAPABILITY	NetworkServices LocalServices ReadUserData WriteUserData UserEnvironment
#endif
	
#ifdef WINSCW
	STATICLIBRARY   eexe.lib ecrt0.lib
#endif

LIBRARY			esock.lib insock.lib charconv.lib euser.lib estlib.lib commdb.lib apengine.lib 

// The default 8KB seems to be insufficient with all bells and
// whistles turned on
EPOCSTACKSIZE		12288

