File: SConscript

package info (click to toggle)
python-scipy 0.7.2%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 28,500 kB
  • ctags: 36,081
  • sloc: cpp: 216,880; fortran: 76,016; python: 71,576; ansic: 62,118; makefile: 243; sh: 17
file content (74 lines) | stat: -rw-r--r-- 3,334 bytes parent folder | download | duplicates (2)
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
from os.path import join as pjoin
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_src = [pjoin('SuperLU', 'SRC', s) for s in [ "ccolumn_bmod.c",
"ccolumn_dfs.c", "ccopy_to_ucol.c", "cgscon.c", "cgsequ.c", "cgsrfs.c",
"cgssv.c", "cgssvx.c", "cgstrf.c", "cgstrs.c", "clacon.c", "clangs.c",
"claqgs.c", "cmemory.c", "colamd.c", "cpanel_bmod.c", "cpanel_dfs.c",
"cpivotL.c", "cpivotgrowth.c", "cpruneL.c", "creadhb.c", "csnode_bmod.c",
"csnode_dfs.c", "csp_blas2.c", "csp_blas3.c", "cutil.c", "dGetDiagU.c",
"dcolumn_bmod.c", "dcolumn_dfs.c", "dcomplex.c", "dcopy_to_ucol.c", "dgscon.c",
"dgsequ.c", "dgsrfs.c", "dgssv.c", "dgssvx.c", "dgstrf.c", "dgstrs.c",
"dgstrsL.c", "dlacon.c", "dlamch.c", "dlangs.c", "dlaqgs.c", "dmemory.c",
"dpanel_bmod.c", "dpanel_dfs.c", "dpivotL.c", "dpivotgrowth.c", "dpruneL.c",
"dreadhb.c", "dsnode_bmod.c", "dsnode_dfs.c", "dsp_blas2.c", "dsp_blas3.c",
"dutil.c", "dzsum1.c", "get_perm_c.c", "heap_relax_snode.c", "icmax1.c",
"izmax1.c", "memory.c", "mmd.c", "relax_snode.c", "scolumn_bmod.c",
"scolumn_dfs.c", "scomplex.c", "scopy_to_ucol.c", "scsum1.c", "sgscon.c",
"sgsequ.c", "sgsrfs.c", "sgssv.c", "sgssvx.c", "sgstrf.c", "sgstrs.c",
"slacon.c", "slamch.c", "slangs.c", "slaqgs.c", "smemory.c", "sp_coletree.c",
"sp_ienv.c", "sp_preorder.c", "spanel_bmod.c", "spanel_dfs.c", "spivotL.c",
"spivotgrowth.c", "spruneL.c", "sreadhb.c", "ssnode_bmod.c", "ssnode_dfs.c",
"ssp_blas2.c", "ssp_blas3.c", "superlu_timer.c", "sutil.c", "util.c",
"xerbla.c", "zcolumn_bmod.c", "zcolumn_dfs.c", "zcopy_to_ucol.c", "zgscon.c",
"zgsequ.c", "zgsrfs.c", "zgssv.c", "zgssvx.c", "zgstrf.c", "zgstrs.c",
"zlacon.c", "zlangs.c", "zlaqgs.c", "zmemory.c", "zpanel_bmod.c",
"zpanel_dfs.c", "zpivotL.c", "zpivotgrowth.c", "zpruneL.c", "zreadhb.c",
"zsnode_bmod.c", "zsnode_dfs.c", "zsp_blas2.c", "zsp_blas3.c", "zutil.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(pjoin("SuperLU", "SRC", "lsame.c"))
superlu = superlu_env.DistutilsStaticExtLibrary('superlu_src', source = superlu_src)

# Build python extensions
pyenv = env.Clone()
pyenv.Append(CPPPATH = [pjoin('SuperLU', 'SRC')])
pyenv.Prepend(LIBS = superlu)
common_src = ['_superlu_utils.c', '_superluobject.c']

for prec in ['z', 'd', 'c', 's']:
    pyenv.NumpyPythonExtension('_%ssuperlu' % prec, 
                               source = common_src + \
                                        ['_%ssuperlumodule.c' % prec])