[Scipy-svn] r4023 - in trunk/scipy: fftpack linalg sparse/linalg/eigen/arpack
scipy-svn at scipy.org
scipy-svn at scipy.org
Sat Mar 15 06:48:30 EDT 2008
Author: cdavid
Date: 2008-03-15 05:48:23 -0500 (Sat, 15 Mar 2008)
New Revision: 4023
Modified:
trunk/scipy/fftpack/SConstruct
trunk/scipy/linalg/SConstruct
trunk/scipy/sparse/linalg/eigen/arpack/SConstruct
Log:
Merging revs 4000:4003 from build_with_scons branch.
Modified: trunk/scipy/fftpack/SConstruct
===================================================================
--- trunk/scipy/fftpack/SConstruct 2008-03-15 10:38:18 UTC (rev 4022)
+++ trunk/scipy/fftpack/SConstruct 2008-03-15 10:48:23 UTC (rev 4023)
@@ -1,4 +1,4 @@
-# Last Change: Wed Mar 05 02:00 PM 2008 J
+# Last Change: Fri Mar 07 09:00 PM 2008 J
# vim:syntax=python
from os.path import join as pjoin
@@ -31,8 +31,8 @@
# Build dfftpack
src = env.NumpyGlob(pjoin('dfftpack', '*.f'))
dfftpack = env.NumpyStaticExtLibrary('dfftpack', source = [str(s) for s in src])
-env.AppendUnique(LIBS = ['dfftpack'])
-env.AppendUnique(LIBPATH = env['build_dir'])
+env.PrependUnique(LIBS = ['dfftpack'])
+env.PrependUnique(LIBPATH = env['build_dir'])
# Build _fftpack
src = ['src/zfft.c','src/drfft.c','src/zrfft.c', 'src/zfftnd.c']
Modified: trunk/scipy/linalg/SConstruct
===================================================================
--- trunk/scipy/linalg/SConstruct 2008-03-15 10:38:18 UTC (rev 4022)
+++ trunk/scipy/linalg/SConstruct 2008-03-15 10:48:23 UTC (rev 4023)
@@ -1,4 +1,4 @@
-# Last Change: Wed Mar 05 03:00 PM 2008 J
+# Last Change: Fri Mar 07 07:00 PM 2008 J
# vim:syntax=python
import os
@@ -20,45 +20,44 @@
env = GetNumpyEnvironment(ARGUMENTS)
env.Append(CPPPATH = [get_python_inc(), get_numpy_include_dirs()])
+
+# XXX: handle cblas wrapper for complex (check in numpy.scons or here ?)
+env.AppendUnique(CPPPATH = env['F2PYINCLUDEDIR'])
+env.AppendUnique(F2PYOPTIONS = '--quiet')
+
+env['BUILDERS']['haha'] = Builder(action = do_generate_interface,
+ emitter = generate_interface_emitter)
+
+env['BUILDERS']['hihi'] = Builder(action = do_generate_fake_interface,
+ emitter = generate_interface_emitter)
+
#if os.name == 'nt':
# # NT needs the pythonlib to run any code importing Python.h, including
# # simple code using only typedef and so on, so we need it for configuration
# # checks
# env.AppendUnique(LIBPATH = [get_pythonlib_dir()])
+fenv = env.Copy()
+
#=======================
# Starting Configuration
#=======================
-config = env.NumpyConfigure(custom_tests = {'CheckCBLAS' : CheckCBLAS,
- 'CheckBLAS' : CheckF77BLAS,
- 'CheckCLAPACK' : CheckCLAPACK,
- 'CheckLAPACK' : CheckF77LAPACK,
- 'CheckF77Clib' : CheckF77Clib})
+config = env.Configure(custom_tests = {'CheckCBLAS' : CheckCBLAS,
+ 'CheckCLAPACK' : CheckCLAPACK})
-#--------------
-# Checking Blas
-#--------------
-if not config.CheckF77Clib():
- raise RuntimeError("Could not check F/C runtime library for %s/%s, " \
- "contact the maintainer" % (env['CC'], env['F77']))
-
-st = config.CheckBLAS(check_version = 1)
-if not st:
- raise RuntimeError("no blas found, necessary for linalg module")
-if IsATLAS(env, 'blas'):
- version = GetATLASVersion(env)
- env.Append(CPPDEFINES = [('ATLAS_INFO', '"\\"%s"\\"' % version)])
-else:
- env.Append(CPPDEFINES = [('NO_ATLAS_INFO', 1)])
-
-st = config.CheckLAPACK()
-if not st:
- raise RuntimeError("no lapack found, necessary for linalg module")
-
+#-------------------------
+# Checking cblas/clapack
+#-------------------------
if config.CheckCBLAS():
has_cblas = 1
else:
has_cblas = 0
+if has_cblas:
+ if IsATLAS(env, 'cblas'):
+ version = GetATLASVersion(env)
+ env.Append(CPPDEFINES = [('ATLAS_INFO', '"\\"%s"\\"' % version)])
+ else:
+ env.Append(CPPDEFINES = [('NO_ATLAS_INFO', 1)])
if config.CheckCLAPACK():
has_clapack = 1
@@ -68,30 +67,46 @@
config.Finish()
write_info(env)
-#==========
-# Build
-#==========
+#---------------------------
+# Checking F77 blas/lapack
+#---------------------------
+fconfig = fenv.Configure(custom_tests = {'CheckBLAS' : CheckF77BLAS,
+ 'CheckLAPACK' : CheckF77LAPACK,
+ 'CheckF77Clib' : CheckF77Clib})
-# XXX: handle cblas wrapper for complex (check in numpy.scons or here ?)
-env.AppendUnique(CPPPATH = env['F2PYINCLUDEDIR'])
-env.AppendUnique(F2PYOPTIONS = '--quiet')
+if not fconfig.CheckF77Clib():
+ raise RuntimeError("Could not check F/C runtime library for %s/%s, " \
+ "contact the maintainer" % (fenv['CC'], fenv['F77']))
-env['BUILDERS']['haha'] = Builder(action = do_generate_interface,
- emitter = generate_interface_emitter)
+st = fconfig.CheckBLAS(check_version = 1)
+if not st:
+ raise RuntimeError("no blas found, necessary for linalg module")
+if IsATLAS(fenv, 'blas'):
+ version = GetATLASVersion(fenv)
+ env.Append(CPPDEFINES = [('ATLAS_INFO', '"\\"%s"\\"' % version)])
+else:
+ env.Append(CPPDEFINES = [('NO_ATLAS_INFO', 1)])
-env['BUILDERS']['hihi'] = Builder(action = do_generate_fake_interface,
- emitter = generate_interface_emitter)
+st = fconfig.CheckLAPACK()
+if not st:
+ raise RuntimeError("no lapack found, necessary for linalg module")
+fconfig.Finish()
+write_info(fenv)
+
+#==========
+# Build
+#==========
#------------
# fblas
#------------
-env.haha('fblas', 'generic_fblas.pyf')
+fenv.haha('fblas', 'generic_fblas.pyf')
source = ['fblas.pyf']
-if IsVeclib(env, 'blas') or IsAccelerate(env, 'blas'):
+if IsVeclib(fenv, 'blas') or IsAccelerate(fenv, 'blas'):
source.append(pjoin('src', 'fblaswrap_veclib_c.c'))
else:
source.append(pjoin('src', 'fblaswrap.f'))
-env.NumpyPythonExtension('fblas', source)
+fenv.NumpyPythonExtension('fblas', source)
#------------
# cblas
@@ -105,10 +120,10 @@
#------------
# flapack
#------------
-yop = env.haha('flapack', 'generic_flapack.pyf')
+yop = fenv.haha('flapack', 'generic_flapack.pyf')
# XXX: automatically scan dependency on flapack_user_routines.pyf ?
-env.Depends(yop, pjoin(env['build_dir'], 'flapack_user_routines.pyf'))
-env.NumpyPythonExtension('flapack', source = ['flapack.pyf'])
+fenv.Depends(yop, pjoin(env['build_dir'], 'flapack_user_routines.pyf'))
+fenv.NumpyPythonExtension('flapack', source = ['flapack.pyf'])
#------------
# clapack
@@ -123,11 +138,11 @@
# _flinalg
#----------------
_flinalg_fsrc = ['det.f', 'lu.f']
-_flinalg_src = env.F2py(
- pjoin(env['build_dir'], 'src', '_flinalgmodule.c'),
- source = [pjoin(env['build_dir'], 'src', i) for i in _flinalg_fsrc])
+_flinalg_src = fenv.F2py(
+ pjoin(fenv['build_dir'], 'src', '_flinalgmodule.c'),
+ source = [pjoin(fenv['build_dir'], 'src', i) for i in _flinalg_fsrc])
-env.NumpyPythonExtension(
+fenv.NumpyPythonExtension(
'_flinalg', source = _flinalg_src + [pjoin('src', i) for i in _flinalg_fsrc])
#----------------
@@ -135,14 +150,13 @@
#----------------
calc_src = env.F2py(pjoin(env['build_dir'], 'src', 'calc_lworkmodule.c'),
source = pjoin(env['build_dir'], 'src', 'calc_lwork.f'))
-env.NumpyPythonExtension('calc_lwork',
- source = calc_src + [pjoin('src', 'calc_lwork.f')],
- LINKFLAGSEND = env['F77_LDFLAGS'])
+fenv.NumpyPythonExtension('calc_lwork',
+ source = calc_src + [pjoin('src', 'calc_lwork.f')])
#--------------
# Atlas version
#--------------
atlas_env = env.Copy()
-if not IsATLAS(env, 'blas'):
+if not IsATLAS(env, 'cblas'):
atlas_env.AppendUnique(CPPDEFINES = "NO_ATLAS_INFO")
atlas_env.NumpyPythonExtension('atlas_version', 'atlas_version.c')
Modified: trunk/scipy/sparse/linalg/eigen/arpack/SConstruct
===================================================================
--- trunk/scipy/sparse/linalg/eigen/arpack/SConstruct 2008-03-15 10:38:18 UTC (rev 4022)
+++ trunk/scipy/sparse/linalg/eigen/arpack/SConstruct 2008-03-15 10:48:23 UTC (rev 4023)
@@ -17,7 +17,8 @@
#-----------------
# Checking Lapack
#-----------------
-st = config.CheckLAPACK()
+st = config.CheckF77Clib()
+st = config.CheckLAPACK(autoadd = 1)
if not st:
raise RuntimeError("no lapack found, necessary for arpack module")
@@ -32,6 +33,7 @@
src = [str(s) for s in arpack_src]
env.AppendUnique(CPPPATH = pjoin('ARPACK', 'SRC'))
+env.AppendUnique(LIBPATH = env['build_dir'])
arpack_lib = env.NumpyStaticExtLibrary('arpack', source = src)
# Build _arpack extension
@@ -41,4 +43,5 @@
env.NumpyFromFTemplate('arpack.pyf', 'arpack.pyf.src')
wsrc = env.F2py(pjoin(env['build_dir'], '_arpackmodule.c'),
pjoin(env['build_dir'], 'arpack.pyf'))
-env.NumpyPythonExtension('_arpack', source = wsrc, LIBS = arpack_lib)
+env.Prepend(LIBS = 'arpack')
+env.NumpyPythonExtension('_arpack', source = wsrc)
More information about the Scipy-svn
mailing list