[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