import os
import os.path
import sys

env = Environment(
    tools = ['generic'],
    toolpath = ['../scons'],
    ENV = os.environ,
)


# Use Mesa's headers and libs
if 1:
    build_topdir = 'build'
    build_subdir = env['platform']
    if env['machine'] != 'generic':
        build_subdir += '-' + env['machine']
    if env['debug']:
        build_subdir += "-debug"
    if env['profile']:
        build_subdir += "-profile"
    build_dir = os.path.join(build_topdir, build_subdir)

    env.Append(CPPDEFINES = ['GLEW_STATIC'])
    env.Append(CPPPATH = ['#../include'])
    env.Append(LIBPATH = [
        '#../' + build_dir + '/glew/',
        '#../' + build_dir + '/glut/glx',
    ])


conf = Configure(env)

# OpenGL
if env['platform'] == 'windows':
    env.Prepend(LIBS = ['glu32', 'opengl32'])
else:
    env.Prepend(LIBS = ['GLU', 'GL'])

# Glut
env['GLUT'] = False
if conf.CheckCHeader('GL/glut.h'):
    if env['platform'] == 'windows':
        env['GLUT_LIB'] = 'glut32'
    else:
        env['GLUT_LIB'] = 'glut'
    env['GLUT'] = True

# GLEW
env['GLEW'] = False
if conf.CheckCHeader('GL/glew.h'):
    env['GLEW_LIB'] = 'glew'
    env['GLEW'] = True
    env.Prepend(LIBS = ['glew'])

conf.Finish()


Export('env')

SConscript(
    'SConscript',
    build_dir = env['build'],
    duplicate = 0 # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html
)
