diff options
author | Denis Davydov <davydden@gmail.com> | 2017-12-08 10:24:44 +0100 |
---|---|---|
committer | Massimiliano Culpo <massimiliano.culpo@gmail.com> | 2017-12-08 10:24:44 +0100 |
commit | 26e109027b96113836d334b20f6887ebea1ecb27 (patch) | |
tree | 55e6434c20e6f67625e37b533b08e4fab019d57c | |
parent | 62d5bb41a844f6e14d034446e2b4bd9d0c3cba99 (diff) | |
download | spack-26e109027b96113836d334b20f6887ebea1ecb27.tar.gz spack-26e109027b96113836d334b20f6887ebea1ecb27.tar.bz2 spack-26e109027b96113836d334b20f6887ebea1ecb27.tar.xz spack-26e109027b96113836d334b20f6887ebea1ecb27.zip |
qrupdate: fix blas/lapack and compilation of macOS (#6614)
-rw-r--r-- | var/spack/repos/builtin/packages/qrupdate/package.py | 29 |
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) |