######################################################################
# Ref. libstrophe library build script
#
######################################################################
import os
import commands

Import('env')

base_dir = env.get('SRC_DIR')
target_os = env.get('TARGET_OS')
target_arch = env.get('TARGET_ARCH')

with_ra_ibb = env.get('WITH_RA_IBB')

SRC_NAME = 'wks_xep0047'
EXT_NAME = 'wksxmppxep'
EXT_BASE = 'extlibs/' + EXT_NAME
EXT_PATH = EXT_BASE + '/' + SRC_NAME
SRC_PATH = base_dir + '/' + EXT_PATH
INC_PATH = SRC_PATH + '/include'
LIB_PATH = SRC_PATH

if with_ra_ibb:
	env.SConscript(base_dir + '/extlibs/libstrophe/SConscript')
	if not os.path.exists(SRC_NAME):
		raxmpp_env = Environment(ENV = os.environ)
		c = raxmpp_env.Action(['git clone https://github.com/WorksSystems/wks_xep0047.git ' + SRC_NAME,
			'cd ' + SRC_NAME + ' && git checkout 8e9f42d02a0f416001065d1cddc1ab07974cef14'
        ])

		print 'Downloading', SRC_NAME ,'library ...'
		if raxmpp_env.Execute(c):
			print '''
	*********************************** Error: ***********************************************
	* Please download ra_xmpp as following:
	*     $ git clone https://github.com/WorksSystems/wksxmpp_chat.git extlibs/wksxmppxep/wksxmpp_chat
	*     $ cd extlibs/wksxmppxep/wksxmpp_chat
	*     $ git checkout 8e9f42d02a0f416001065d1cddc1ab07974cef14
	******************************************************************************************
	'''
			Exit(1)
		else:
			print 'Download', SRC_NAME, 'library complete'

	print 'Building with ' + SRC_NAME
	os.chdir(SRC_NAME)
	if not os.path.exists('libwksxmppxep.so') :
		LIBSTROPHE_BASE=base_dir + '/extlibs/libstrophe/libstrophe'
		foo=commands.getoutput('make LIBSTROPHE_BASE=' + LIBSTROPHE_BASE + ' libraries')
		print foo

	if not os.path.exists('libwksxmppxep.so') :
		print 'Building with ' + SRC_NAME + ' failed.'
		Exit(2)

	print 'Building with ' + SRC_NAME + ' Completely.'

	env.PrependUnique(CPPPATH = [INC_PATH], RALIBS = ['wksxmppxep', 'm', 'crypto'], RALIBPATH = [LIB_PATH], RARPATH = [LIB_PATH])

if env.GetOption('clean') :
	act = env.Action(['cd ' + SRC_PATH, 'make clean'])
	env.Execute(act)
