import os
import PkgConfig

# Get the environment
env = Environment(ENV = os.environ)
env.Append(LIBPATH = '.')

PkgConfig.env_replace(env, 'LINK', 'LD')
PkgConfig.env_replace(env, 'CCFLAGS', 'CFLAGS')
PkgConfig.env_replace(env, 'LINKFLAGS', 'LDFLAGS')

opts = Options('custom.py')
opts.Add('CC', 'C compiler.')
opts.Add('CXX', 'C++ compiler.')
opts.Add('LINK', 'Linker.')
opts.Add('CCFLAGS', 'C compiler flags.', PkgConfig.env_fetch(env, 'CCFLAGS'))
opts.Add('CXXFLAGS', 'C++ compiler flags.', PkgConfig.env_fetch(env, 'CXXFLAGS'))
opts.Add('LINKFLAGS', 'Linker flags.', PkgConfig.env_fetch(env, 'LINKFLAGS'))
opts.Add('prefix', 'Installation prefix', '/usr/local')
opts.Update(env)
Help(opts.GenerateHelpText(env))

# Initialize the package configutration class on the environment.
pkgconfig = PkgConfig.PkgConfig(env)
uname = PkgConfig.uname

##############################################################################
# Specific ###################################################################
##############################################################################

# Debug mode
#pkgconfig.add_cflag('-DDEBUG')

# Check for some headers
pkgconfig.find_header('stdint.h', 'HAVE_STDINT_H')
pkgconfig.find_header('sys/inttypes.h', 'HAVE_SYS_INTTYPES_H')
pkgconfig.find_header('ostream', 'HAVE_OSTREAM', 'CXX')

pkgconfig.find_libfhi('0.1.1')
pkgconfig.find_sdl('1.2.4')
pkgconfig.find_sdl_image()
pkgconfig.find_sdl_mixer()
pkgconfig.find_opengl()
pkgconfig.find_glew()
env = pkgconfig.get_env()

SConscript('src/SConscript', exports=['pkgconfig', 'uname', 'env'],
    build_dir='build')
