File: SConscript

package info (click to toggle)
python-scipy 0.10.1%2Bdfsg2-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 42,232 kB
  • sloc: cpp: 224,773; ansic: 103,496; python: 85,210; fortran: 79,130; makefile: 272; sh: 43
file content (51 lines) | stat: -rw-r--r-- 1,597 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import os
import glob
import sys

from numscons import GetNumpyEnvironment
from numscons import CheckF77LAPACK
from numscons import write_info
from numscons.core.misc import built_with_mstools, built_with_gnu_f77

env = GetNumpyEnvironment(ARGUMENTS)

#=======================
# Starting Configuration
#=======================
config = env.NumpyConfigure(custom_tests = {'CheckLapack' : CheckF77LAPACK})

#-----------------
# Checking Lapack
#-----------------
st = config.CheckLapack()
if not st:
    raise RuntimeError("no lapack found, necessary for dsolve module")

config.Finish()
write_info(env)

# Build superlu lib
superlu_env = env.Clone()
superlu_def = []
if sys.platform == 'win32':
    superlu_def.append((('NO_TIMER'), 1))
superlu_def.append((('USE_VENDOR_BLAS'), 2))
superlu_env.Append(CPPDEFINES=superlu_def)
superlu_env.Append(CPPPATH=[os.path.join('SuperLU', 'SRC')])

superlu_src = env.Glob(os.path.join('SuperLU', 'SRC', "*.c"))

# XXX: we should detect whether lsame is already defined in BLAS/LAPACK. Here,
# when using MSVC + MKL, lsame is already in MKL
if not (built_with_mstools(env) and (not built_with_gnu_f77(env))):
    superlu_src.append(os.path.join("SuperLU", "SRC", "lsame.c"))
superlu = superlu_env.DistutilsStaticExtLibrary('superlu_src', source=superlu_src)

# Build python extensions
pyenv = env.Clone()
pyenv.Append(CPPPATH=[os.path.join('SuperLU', 'SRC')])
pyenv.Prepend(LIBPATH=["."])
pyenv.Prepend(LIBS=["superlu_src"])
common_src = ['_superlu_utils.c', '_superluobject.c']

pyenv.NumpyPythonExtension('_superlu', source=common_src + ['_superlumodule.c'])