import os

#-------------#
# Import Vars #
#-------------#
Import('*')

#----------------#
# Subdirectories #
#----------------#
vamosobjs = SConscript('vamos/SConscript', exports=['env', 'src_dir'])
guiobjs = SConscript('gui/SConscript', exports=['env', 'src_dir'])
#SConscript('gui/SConscript', exports=['env', 'prefix', 'src_dir'])

#---------#
# Sources #
#---------#
src = Split("""main.cpp
               backdrop.cpp
               camera.cpp
               controls.cc
               font.cpp
               gamestate.cpp
               keyman.cpp
               logo.cpp
               messageq.cpp
               model.cpp
               mouse.cpp
               multiplay.cpp
               net.cpp
               objects.cpp
               particles.cpp
               quat.cpp
               replay.cpp
               settings.cpp
               sound.cpp
               textures.cpp
               timer.cpp
               utility.cpp
               vamosworld.cc
               weather.cpp
               configfile.cpp
               bezier.cpp
               joepack.cpp
               cardinfo.cpp
               binreloc.c
               track.cpp""")

#------------------------#
# Copy Build Environment #
#------------------------#
local_env = env.Copy()
SConsignFile()

#--------------------------#
# Modify Build Environment #
#--------------------------#

local_env['data_directory'] = env['prefix'] + '/' + env['datadir']
local_env.ParseConfig('sdl-config --cflags --libs')
local_env.ParseConfig('openal-config --cflags --libs')
local_env.Append(CPPDEFINES = [('DATA_DIR', '\\"$data_directory\\"'),
                               ('SETTINGS_DIR', '\\"$settings\\"')])
local_env.Append(LIBS = ['GL', 'GLU', 'SDL_image', 'SDL_net'])
if not local_env['old_openal']:
    local_env.Append(LIBS = ['alut'])
else:
    local_env.Append(CPPDEFINES = [('OLD_OPENAL')])

local_env.Append(LIBPATH = ['/usr/X11R6/lib'])

#-----------------------#
# Distribute to src_dir #
#-----------------------#
dist_files = ['SConscript'] + src

env.Distribute (src_dir, dist_files)

#--------------------#
# Compile Executable #
#--------------------#
vdrift = local_env.Program('vdrift', [src, vamosobjs, guiobjs])

Default(vdrift)

#---------#
# Install #
#---------#
bin_install_dir = env['destdir'] + env['prefix'] + '/' + env['bindir'] + '/'
#os.system('mkdir -p ' + bin_install_dir)
env.Install(bin_install_dir, vdrift)
os.system("ln -sf %s/vdrift /usr/bin" % bin_install_dir )
