# vim:syntax=python
from numscons import GetNumpyEnvironment
from numscons.checkers.perflib_checkers import \
        CheckAtlas, CheckAccelerate, CheckMkl
from numscons.checkers import IsATLAS, IsAccelerate, GetATLASVersion
from numscons import CheckCBLAS, CheckCLAPACK, CheckF77BLAS, \
        CheckF77LAPACK, CheckF77Mangling

env = GetNumpyEnvironment(ARGUMENTS)

import os
try:
    val = os.environ['DEBUG_SCONS_CHECK']
    do_check = val
except KeyError:
    do_check = 1
print "do_check is %s" % do_check

config = env.NumpyConfigure(custom_tests = 
    {'CheckAtlas' : CheckAtlas,
    'CheckMkl' : CheckMkl,
    'CheckAccelerate' : CheckAccelerate,
    'CheckCBLAS' : CheckCBLAS,
    'CheckF77Mangling' : CheckF77Mangling,
    'CheckF77BLAS' : CheckF77BLAS,
    'CheckF77LAPACK' : CheckF77LAPACK,
    'CheckCLAPACK' : CheckCLAPACK})

if do_check == 1:
    st = config.CheckAtlas(autoadd = 0, check_version = True)
    st = config.CheckMkl(autoadd = 0)
    st = config.CheckAccelerate(autoadd = 0)

    for k, v in env['NUMPY_PKG_CONFIG']['PERFLIB'].items():
        print "PERFLIB %s is %s" % (k, v)

    st = config.CheckF77BLAS(autoadd = 0, check_version = True)
    st = config.CheckCBLAS(autoadd = 0)
    print "========= LAPACK ============="
    st = config.CheckF77LAPACK(autoadd = 0)
    print "========= CLAPACK ============="
    st = config.CheckCLAPACK(autoadd = 0)
    st = config.CheckF77Mangling()

    if IsATLAS(env, 'blas'):
        print "blas is ATLAS (%s)" % GetATLASVersion(env)

    if env.has_key('LIBS'):
        print "LIBS of env is %s" % env.Dump('LIBS')
    else:
        print "No LIBS in env"

config.Finish()
for k, v in env['NUMPY_PKG_CONFIG']['PERFLIB'].items():
    print "PERFLIB %s is %s" % (k, v)
