Import('env')

env.drivers_sources=[]
#env.add_source_files(env.drivers_sources,"*.cpp")
env.Append(CPPPATH=["vorbis"])
Export('env')

SConscript('unix/SCsub');
SConscript('alsa/SCsub');
SConscript('pulseaudio/SCsub');
SConscript('windows/SCsub');
SConscript('gles2/SCsub');
SConscript('gl_context/SCsub');
SConscript('openssl/SCsub');

if (env["png"]=="yes"):
	SConscript("png/SCsub");
if (env["jpg"]=="yes"):
	SConscript("jpg/SCsub");
if (env["webp"]=="yes"):
	SConscript("webp/SCsub");
SConscript("dds/SCsub");
SConscript("pvr/SCsub");
SConscript("etc1/SCsub")
if (env["builtin_zlib"]=="yes"):
	SConscript("builtin_zlib/SCsub");
if (env["openssl"]=="builtin"):
	SConscript("builtin_openssl2/SCsub");

SConscript("rtaudio/SCsub");
SConscript("nedmalloc/SCsub");
SConscript("trex/SCsub");
SConscript("chibi/SCsub");
if (env["vorbis"]=="yes" or env["speex"]=="yes" or env["theora"]=="yes"):
        SConscript("ogg/SCsub");
if (env["vorbis"]=="yes"):
        SConscript("vorbis/SCsub");
if (env["tools"]=="yes"):
	SConscript("convex_decomp/SCsub");

if env["theora"]=="yes":
	SConscript("theoraplayer/SCsub")
if (env["theora"]=="yes"):
	SConscript("theora/SCsub");
if (env['speex']=='yes'):
	SConscript("speex/SCsub");
if (env['musepack']=='yes'):
	SConscript("mpc/SCsub");
if (env["squish"]=="yes" and env["tools"]=="yes"):
	SConscript("squish/SCsub");

num = 0
cur_base = ""
total = len(env.drivers_sources)
max_src = 64
list = []
lib_list = []

import string

for f in env.drivers_sources:
	fname = ""
	if type(f) == type(""):
		fname = env.File(f).path
	else:
		fname = env.File(f)[0].path
	#base = string.join(fname.split("/")[:-1], "/")
	fname = fname.replace("\\", "/")
	base = string.join(fname.split("/")[:2], "/")
	if base != cur_base and len(list) > max_src:
		lib = env.Library("drivers"+str(num), list)
		lib_list.append(lib)
		list = []
		num = num+1
	cur_base = base
	list.append(f)

if len(list) > 0:
	lib = env.Library("drivers"+str(num), list)
	lib_list.append(lib)


drivers_base=[]
env.add_source_files(drivers_base,"*.cpp")
lib_list.insert(0, env.Library("drivers", drivers_base))

env.Prepend(LIBS=lib_list)

#lib = env.Library("drivers",env.drivers_sources)
#env.Prepend(LIBS=[lib])