qrupdate: fix blas/lapack and compilation of macOS (#6614)

This commit is contained in:
Denis Davydov 2017-12-08 10:24:44 +01:00 committed by Massimiliano Culpo
parent 62d5bb41a8
commit 26e109027b

View File

@ -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)