29
30
if sys.platform == 'win32':
30
31
superlu_def.append((('NO_TIMER'), 1))
31
32
superlu_def.append((('USE_VENDOR_BLAS'), 2))
32
superlu_env.Append(CPPDEFINES = superlu_def)
33
superlu_env.Append(CPPDEFINES=superlu_def)
34
superlu_env.Append(CPPPATH=[os.path.join('SuperLU', 'SRC')])
34
superlu_src = [pjoin('SuperLU', 'SRC', s) for s in [ "ccolumn_bmod.c",
35
"ccolumn_dfs.c", "ccopy_to_ucol.c", "cgscon.c", "cgsequ.c", "cgsrfs.c",
36
"cgssv.c", "cgssvx.c", "cgstrf.c", "cgstrs.c", "clacon.c", "clangs.c",
37
"claqgs.c", "cmemory.c", "colamd.c", "cpanel_bmod.c", "cpanel_dfs.c",
38
"cpivotL.c", "cpivotgrowth.c", "cpruneL.c", "creadhb.c", "csnode_bmod.c",
39
"csnode_dfs.c", "csp_blas2.c", "csp_blas3.c", "cutil.c", "dGetDiagU.c",
40
"dcolumn_bmod.c", "dcolumn_dfs.c", "dcomplex.c", "dcopy_to_ucol.c", "dgscon.c",
41
"dgsequ.c", "dgsrfs.c", "dgssv.c", "dgssvx.c", "dgstrf.c", "dgstrs.c",
42
"dgstrsL.c", "dlacon.c", "dlamch.c", "dlangs.c", "dlaqgs.c", "dmemory.c",
43
"dpanel_bmod.c", "dpanel_dfs.c", "dpivotL.c", "dpivotgrowth.c", "dpruneL.c",
44
"dreadhb.c", "dsnode_bmod.c", "dsnode_dfs.c", "dsp_blas2.c", "dsp_blas3.c",
45
"dutil.c", "dzsum1.c", "get_perm_c.c", "heap_relax_snode.c", "icmax1.c",
46
"izmax1.c", "memory.c", "mmd.c", "relax_snode.c", "scolumn_bmod.c",
47
"scolumn_dfs.c", "scomplex.c", "scopy_to_ucol.c", "scsum1.c", "sgscon.c",
48
"sgsequ.c", "sgsrfs.c", "sgssv.c", "sgssvx.c", "sgstrf.c", "sgstrs.c",
49
"slacon.c", "slamch.c", "slangs.c", "slaqgs.c", "smemory.c", "sp_coletree.c",
50
"sp_ienv.c", "sp_preorder.c", "spanel_bmod.c", "spanel_dfs.c", "spivotL.c",
51
"spivotgrowth.c", "spruneL.c", "sreadhb.c", "ssnode_bmod.c", "ssnode_dfs.c",
52
"ssp_blas2.c", "ssp_blas3.c", "superlu_timer.c", "sutil.c", "util.c",
53
"xerbla.c", "zcolumn_bmod.c", "zcolumn_dfs.c", "zcopy_to_ucol.c", "zgscon.c",
54
"zgsequ.c", "zgsrfs.c", "zgssv.c", "zgssvx.c", "zgstrf.c", "zgstrs.c",
55
"zlacon.c", "zlangs.c", "zlaqgs.c", "zmemory.c", "zpanel_bmod.c",
56
"zpanel_dfs.c", "zpivotL.c", "zpivotgrowth.c", "zpruneL.c", "zreadhb.c",
57
"zsnode_bmod.c", "zsnode_dfs.c", "zsp_blas2.c", "zsp_blas3.c", "zutil.c"]]
36
superlu_src = env.Glob(os.path.join('SuperLU', 'SRC', "*.c"))
59
38
# XXX: we should detect whether lsame is already defined in BLAS/LAPACK. Here,
60
39
# when using MSVC + MKL, lsame is already in MKL
61
40
if not (built_with_mstools(env) and (not built_with_gnu_f77(env))):
62
superlu_src.append(pjoin("SuperLU", "SRC", "lsame.c"))
63
superlu = superlu_env.DistutilsStaticExtLibrary('superlu_src', source = superlu_src)
41
superlu_src.append(os.path.join("SuperLU", "SRC", "lsame.c"))
42
superlu = superlu_env.DistutilsStaticExtLibrary('superlu_src', source=superlu_src)
65
44
# Build python extensions
66
45
pyenv = env.Clone()
67
pyenv.Append(CPPPATH = [pjoin('SuperLU', 'SRC')])
68
pyenv.Prepend(LIBS = superlu)
46
pyenv.Append(CPPPATH=[os.path.join('SuperLU', 'SRC')])
47
pyenv.Prepend(LIBPATH=["."])
48
pyenv.Prepend(LIBS=["superlu_src"])
69
49
common_src = ['_superlu_utils.c', '_superluobject.c']
71
for prec in ['z', 'd', 'c', 's']:
72
pyenv.NumpyPythonExtension('_%ssuperlu' % prec,
73
source = common_src + \
74
['_%ssuperlumodule.c' % prec])
51
pyenv.NumpyPythonExtension('_superlu', source=common_src + ['_superlumodule.c'])