summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorDenis Davydov <davydden@gmail.com>2017-12-08 10:24:44 +0100
committerMassimiliano Culpo <massimiliano.culpo@gmail.com>2017-12-08 10:24:44 +0100
commit26e109027b96113836d334b20f6887ebea1ecb27 (patch)
tree55e6434c20e6f67625e37b533b08e4fab019d57c /var
parent62d5bb41a844f6e14d034446e2b4bd9d0c3cba99 (diff)
downloadspack-26e109027b96113836d334b20f6887ebea1ecb27.tar.gz
spack-26e109027b96113836d334b20f6887ebea1ecb27.tar.bz2
spack-26e109027b96113836d334b20f6887ebea1ecb27.tar.xz
spack-26e109027b96113836d334b20f6887ebea1ecb27.zip
qrupdate: fix blas/lapack and compilation of macOS (#6614)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/qrupdate/package.py29
1 files changed, 27 insertions, 2 deletions
diff --git a/var/spack/repos/builtin/packages/qrupdate/package.py b/var/spack/repos/builtin/packages/qrupdate/package.py
index 0856a4efb0..3f655f5dbf 100644
--- a/var/spack/repos/builtin/packages/qrupdate/package.py
+++ b/var/spack/repos/builtin/packages/qrupdate/package.py
@@ -22,10 +22,12 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
+import os
+import sys
from spack import *
-class Qrupdate(Package):
+class Qrupdate(MakefilePackage):
"""qrupdate is a Fortran library for fast updates of QR and
Cholesky decompositions."""
@@ -37,7 +39,30 @@ class Qrupdate(Package):
depends_on("blas")
depends_on("lapack")
+ def edit(self, spec, prefix):
+ # BSD "install" does not understand GNU -D flag.
+ # We will create the parent directory ourselves.
+ makefile = FileFilter('src/Makefile')
+ if (sys.platform == 'darwin'):
+ makefile.filter('-D', '')
+ return
+
def install(self, spec, prefix):
+ lapack_blas = spec['lapack'].libs + spec['blas'].libs
# Build static and dynamic libraries
- make("lib", "solib")
+ make('lib', 'solib',
+ 'BLAS={0}'.format(lapack_blas.ld_flags),
+ 'LAPACK={0}'.format(lapack_blas.ld_flags))
+ # "INSTALL" confuses "make install" on case-insensitive filesystems
+ if os.path.isfile("INSTALL"):
+ os.remove("INSTALL")
+ # create lib folder:
+ if (sys.platform == 'darwin'):
+ mkdirp(prefix.lib)
make("install", "PREFIX=%s" % prefix)
+
+ @run_after('install')
+ def fix_darwin_install(self):
+ # The shared libraries are not installed correctly on Darwin:
+ if (sys.platform == 'darwin'):
+ fix_darwin_install_name(self.spec.prefix.lib)