summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPearu Peterson <pearu.peterson@gmail.com>2004-02-08 09:32:07 +0000
committerPearu Peterson <pearu.peterson@gmail.com>2004-02-08 09:32:07 +0000
commitd98f6378a0bb5843984e24668815e8820a6de62d (patch)
treef88221b57196c4ebb6abd6cb75693725b983fbd5
parentc396c0ddd74cc9580682e71e576c50faaad4954d (diff)
downloadnumpy-d98f6378a0bb5843984e24668815e8820a6de62d.tar.gz
Single file libraries (like blas and lapack) can be specified with their corresponding environment variables (BLAS and LAPACK). Usage example: BLAS=/path/to/libfblas.a
-rw-r--r--scipy_distutils/system_info.py21
1 files changed, 17 insertions, 4 deletions
diff --git a/scipy_distutils/system_info.py b/scipy_distutils/system_info.py
index ef9d81978..b0effd7bb 100644
--- a/scipy_distutils/system_info.py
+++ b/scipy_distutils/system_info.py
@@ -276,7 +276,19 @@ class system_info:
def get_paths(self, section, key):
dirs = self.cp.get(section, key).split(os.pathsep)
if self.dir_env_var and os.environ.has_key(self.dir_env_var):
- dirs = os.environ[self.dir_env_var].split(os.pathsep) + dirs
+ d = os.environ[self.dir_env_var]
+ if os.path.isfile(d):
+ dirs = [os.path.dirname(d)] + dirs
+ l = getattr(self,'_lib_names',[])
+ if len(l)==1:
+ b = os.path.basename(d)
+ b = os.path.splitext(b)[0]
+ if b[:3]=='lib':
+ print 'Replacing _lib_names[0]==%r with %r' \
+ % (self._lib_names[0], b[3:])
+ self._lib_names[0] = b[3:]
+ else:
+ dirs = d.split(os.pathsep) + dirs
default_dirs = self.cp.get('DEFAULT', key).split(os.pathsep)
dirs.extend(default_dirs)
ret = []
@@ -549,11 +561,11 @@ class lapack_atlas_threads_info(atlas_threads_info):
class lapack_info(system_info):
section = 'lapack'
dir_env_var = 'LAPACK'
-
+ _lib_names = ['lapack']
def calc_info(self):
lib_dirs = self.get_lib_dirs()
- lapack_libs = self.get_libs('lapack_libs', ['lapack'])
+ lapack_libs = self.get_libs('lapack_libs', self._lib_names)
for d in lib_dirs:
lapack = self.check_libs(d,lapack_libs,[])
if lapack is not None:
@@ -664,11 +676,12 @@ class lapack_src_info(system_info):
class blas_info(system_info):
section = 'blas'
dir_env_var = 'BLAS'
+ _lib_names = ['blas']
def calc_info(self):
lib_dirs = self.get_lib_dirs()
- blas_libs = self.get_libs('blas_libs', ['blas'])
+ blas_libs = self.get_libs('blas_libs', self._lib_names)
for d in lib_dirs:
blas = self.check_libs(d,blas_libs,[])
if blas is not None: