import os, sys
Import('env')
Import('debug')
Import('sdl_cflags')
Import('sdl_libs')
Import('lib_dir')

env = env.Clone()
env.Append(CPPPATH=['..', '.'])
env.Append(LIBPATH=['../mrt'])
env.Append(CPPDEFINES=['SDLXAPI=DLLEXPORT'])

env.MergeFlags(sdl_cflags, sdl_libs)

libs = ['mrt', 'SDL', 'SDL_image']

if sys.platform != "win32":
	c_map_env= env.Clone()
	#c_map_env.Append(CXXFLAGS=['-fforce-addr', '-fprefetch-loop-arrays'])
	c_map = c_map_env.SharedObject('c_map.cpp')
	#libs.append('GL')
	libs.append('rt')
	libs.append('X11')

	env.Append(LINKFLAGS=['-Wl,-rpath,'+ lib_dir])
	env.Append(LINKFLAGS=['-Wl,-rpath-link,build/' + env['mode'] + '/mrt'])
else: 
	c_map = env.SharedObject('c_map.cpp')
	libs.append('opengl32')
	libs.append('winmm')
	libs.append('user32')
	libs.append('gdi32')
	libs.append('advapi32')

sdlx_sources = 	['cursor.cpp', 'sdl_ex.cpp', 'surface.cpp', 'system.cpp', 'joystick.cpp',
	'thread.cpp', 'mutex.cpp', 'semaphore.cpp', 'color.cpp',
	c_map, 'font.cpp', 'timer.cpp', 'module.cpp', 'file_rw.cpp', 
	'gfx/SDL_rotozoom.c', 
	] #  'ttf.cpp', 

if sys.platform == 'win32': 
	sdlx_sources.append('wrappers/d3dsdl8.cpp')
	env.Append(CPPPATH=[os.environ['DXSDK_DIR'] + '\\Include'])
	env.Append(LIBPATH=[os.environ['DXSDK_DIR'] + '\\Lib'])
	#libs.append('d3dx8')
	#libs.append('d3dx9')
	libs.append('d3d8')
	libs.append('d3dx8')
else: 
	sdlx_sources.append('wrappers/glSDL.c')

sdlx = env.SharedLibrary('sdlx', sdlx_sources, LIBS=libs)
Import('debug')

if sys.platform == "win32":
	sdlx_main = env.StaticLibrary('sdlx_main', ['SDL_win32_main.c'])

if sys.platform != 'win32' and len(env['prefix']) > 0:
	Import('install_targets')
	Import('lib_dir')
	install_targets.append(Install(lib_dir, sdlx))
else:
	Install('#', sdlx[0])
