qrupdate: fix blas/lapack and compilation of macOS (#6614)
This commit is contained in:
parent
62d5bb41a8
commit
26e109027b
@ -22,10 +22,12 @@
|
|||||||
# License along with this program; if not, write to the Free Software
|
# License along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
from spack import *
|
from spack import *
|
||||||
|
|
||||||
|
|
||||||
class Qrupdate(Package):
|
class Qrupdate(MakefilePackage):
|
||||||
"""qrupdate is a Fortran library for fast updates of QR and
|
"""qrupdate is a Fortran library for fast updates of QR and
|
||||||
Cholesky decompositions."""
|
Cholesky decompositions."""
|
||||||
|
|
||||||
@ -37,7 +39,30 @@ class Qrupdate(Package):
|
|||||||
depends_on("blas")
|
depends_on("blas")
|
||||||
depends_on("lapack")
|
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):
|
def install(self, spec, prefix):
|
||||||
|
lapack_blas = spec['lapack'].libs + spec['blas'].libs
|
||||||
# Build static and dynamic libraries
|
# 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)
|
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)
|
||||||
|
Loading…
Reference in New Issue
Block a user