import sys
import os
from distutils.core import Distribution
from distutils.command.build import build

Import('env')

# make sure numpy headers are available
from numpy.distutils.misc_util import get_numpy_include_dirs
env.AppendUnique(CPPPATH=get_numpy_include_dirs())

# configure the boost_python library, which may have different extensions
if not (GetOption('clean') or env.GetOption('help')):
    SConscript('SConscript.configure')

# python extension module
module = env.SharedLibrary('_pyobjcryst', Glob('*.cpp'),
        SHLIBPREFIX='', SHLIBSUFFIX='.so')
Alias('module', module)

# install in a development mode
egginfo = env.Command('#/pyobjcryst.egg-info', None,
        '$python setup.py egg_info')
develop = Alias('develop', [egginfo, Install('#/pyobjcryst', module)])

test = env.Alias('test', develop,
        '$python -m pyobjcryst.tests.run')
AlwaysBuild(test)

# normal install - trick distutils into using this module.
bcmd = build(Distribution())
bcmd.finalize_options()
distmodfile = os.path.join(bcmd.build_platlib,
    'pyobjcryst', os.path.basename(str(module[0])))
cmd_install = '$python setup.py install'
if 'prefix' in env:
    cmd_install += ' --prefix=' + env['prefix']
install = env.Alias('install', module, [
    Mkdir(os.path.dirname(distmodfile)),
    Copy(distmodfile, '$SOURCE'),
    Touch(distmodfile),
    cmd_install,
    ])
AlwaysBuild(install)

# default targets:
Default(module)

# vim: ft=python
