Import('dev source_path')

conf = Configure(dev.env, conf_dir = dev.get_build_path('.sconf_temp'), log_file = dev.get_build_path('config.log'), clean = False, help = False,
	custom_tests = { 'CheckPKGConfig' : dev.CheckPKGConfig, 'CheckPKG' : dev.CheckPKG, 'CheckLuaPKG' : dev.CheckLuaPKG })

ret=[]
luaenv=dev.env

if not dev.env['systemlua'] or not conf.CheckPKGConfig('0.20.0') or not conf.CheckPKG('lua = 5.1.4'):
	def setLuaEnv(env):
		env.Append(LIBS=['alua'])
		env.Append(CPPPATH=['#/lua/'])
	Export('setLuaEnv')

	env, target, sources = dev.prepare_build(source_path, 'alua', 'all.c')

	if dev.is_win32():
		env.Append(CPPDEFINES=['LUA_BUILD_AS_DLL=1'])
	else:
		env.Append(CPPDEFINES=['LUA_USE_LINUX=1'])
		env.Append(LIBS=['m', 'dl'])

	if '-fvisibility=hidden' in env['CCFLAGS']:
		env['CCFLAGS'].remove('-fvisibility=hidden')
	ret = [env.SharedLibrary(target, sources),
		dev.build('LuaFileSystem/'),
		dev.build('LuaSocket/')]
else:
	def setLuaEnv(env):
		env.ParseConfig('pkg-config --cflags --libs lua')
	Export('setLuaEnv')
	if not conf.CheckLuaPKG('lfs', 'LuaFileSystem 1.5.0'):
		ret += dev.build('LuaFileSystem/')
	if not conf.CheckLuaPKG('socket', 'LuaSocket 2.0.2'): 
		ret += dev.build('LuaSocket/')

conf.Finish()

Return('ret')
