summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorDenis Davydov <davydden@gmail.com>2016-10-10 21:38:44 +0200
committerTodd Gamblin <tgamblin@llnl.gov>2016-10-10 12:38:44 -0700
commitc2ca8693e9c706fac7709e06ec40e04bd8d2efa1 (patch)
treefe5f1f0b02571f5c1cb3fb7844500342628674ab /var
parent377ac68690fd1149694c9b2c189d134d7572fae3 (diff)
downloadspack-c2ca8693e9c706fac7709e06ec40e04bd8d2efa1.tar.gz
spack-c2ca8693e9c706fac7709e06ec40e04bd8d2efa1.tar.bz2
spack-c2ca8693e9c706fac7709e06ec40e04bd8d2efa1.tar.xz
spack-c2ca8693e9c706fac7709e06ec40e04bd8d2efa1.zip
fix blas-lapack in scipy and numpy (#1949)
* fix blas-lapack in scipy and numpy * py-numpy: do not set rpath on macOS * py-scipy: do not set Blas/Lapack. This appears to be picked up from py-numpy * py-numpy: don't write rpath= in Sierra only * py-numpy: add a link to build notes
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/py-numpy/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-scipy/package.py13
2 files changed, 14 insertions, 19 deletions
diff --git a/var/spack/repos/builtin/packages/py-numpy/package.py b/var/spack/repos/builtin/packages/py-numpy/package.py
index 0d68a892f2..8cb2331637 100644
--- a/var/spack/repos/builtin/packages/py-numpy/package.py
+++ b/var/spack/repos/builtin/packages/py-numpy/package.py
@@ -66,21 +66,21 @@ class PyNumpy(Package):
'numpy/core/include')
def install(self, spec, prefix):
- libraries = []
- library_dirs = []
+ # for build notes see http://www.scipy.org/scipylib/building/linux.html
+ lapackblas = LibraryList('')
+ if '+lapack' in spec:
+ lapackblas += spec['lapack'].lapack_libs
if '+blas' in spec:
- libraries.append('blas')
- library_dirs.append(spec['blas'].prefix.lib)
- if '+lapack' in spec:
- libraries.append('lapack')
- library_dirs.append(spec['lapack'].prefix.lib)
+ lapackblas += spec['blas'].blas_libs
if '+blas' in spec or '+lapack' in spec:
with open('site.cfg', 'w') as f:
f.write('[DEFAULT]\n')
- f.write('libraries=%s\n' % ','.join(libraries))
- f.write('library_dirs=%s\n' % ':'.join(library_dirs))
- f.write('rpath=%s\n' % ':'.join(library_dirs))
+ f.write('libraries=%s\n' % ','.join(lapackblas.names))
+ f.write('library_dirs=%s\n' % ':'.join(lapackblas.directories))
+ if not ((platform.system() == "Darwin") and
+ (platform.mac_ver()[0] == '10.12')):
+ f.write('rpath=%s\n' % ':'.join(lapackblas.directories))
setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-scipy/package.py b/var/spack/repos/builtin/packages/py-scipy/package.py
index abb843f8ee..71bf83c3f0 100644
--- a/var/spack/repos/builtin/packages/py-scipy/package.py
+++ b/var/spack/repos/builtin/packages/py-scipy/package.py
@@ -45,15 +45,10 @@ class PyScipy(Package):
# Known not to work with 2.23, 2.25
depends_on('binutils@2.26:', type='build')
depends_on('py-numpy@1.7.1:+blas+lapack', type=nolink)
+ depends_on('blas')
+ depends_on('lapack')
def install(self, spec, prefix):
- if 'atlas' in spec:
- # libatlas.so actually isn't always installed, but this
- # seems to make the build autodetect things correctly.
- env['ATLAS'] = join_path(
- spec['atlas'].prefix.lib, 'libatlas.' + dso_suffix)
- else:
- env['BLAS'] = spec['blas'].blas_libs.joined()
- env['LAPACK'] = spec['lapack'].lapack_libs.joined()
-
+ # NOTE: scipy picks up Blas/Lapack from numpy, see
+ # http://www.scipy.org/scipylib/building/linux.html#step-4-build-numpy-1-5-0
setup_py('install', '--prefix={0}'.format(prefix))