From 26e109027b96113836d334b20f6887ebea1ecb27 Mon Sep 17 00:00:00 2001 From: Denis Davydov Date: Fri, 8 Dec 2017 10:24:44 +0100 Subject: qrupdate: fix blas/lapack and compilation of macOS (#6614) --- .../repos/builtin/packages/qrupdate/package.py | 29 ++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'var') 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) -- cgit v1.2.3-70-g09d2