Skip to content
Snippets Groups Projects
Commit 9d3d4922 authored by Barry Smith's avatar Barry Smith Committed by Todd Gamblin
Browse files

mumps: Add support for Intel compiler and insure both lapack and blas… (#2076)

* mumps: Add support for Intel compiler and insure both lapack and blas libraries are passed to the examples

Likely it was not discoverged before that the examples require both lapack and blas libraries because it
was tested with Openblas which is one large library containing everything.
Funded-by: IDEAS
Project: IDEAS/xSDK
Time: .3 hours

* flake8 fix.
parent 9f3a46c6
Branches
Tags
No related merge requests found
...@@ -64,6 +64,7 @@ class Mumps(Package): ...@@ -64,6 +64,7 @@ class Mumps(Package):
depends_on('metis@5:', when='+metis') depends_on('metis@5:', when='+metis')
depends_on('parmetis', when="+parmetis") depends_on('parmetis', when="+parmetis")
depends_on('blas') depends_on('blas')
depends_on('lapack')
depends_on('scalapack', when='+mpi') depends_on('scalapack', when='+mpi')
depends_on('mpi', when='+mpi') depends_on('mpi', when='+mpi')
...@@ -78,8 +79,9 @@ def write_makefile_inc(self): ...@@ -78,8 +79,9 @@ def write_makefile_inc(self):
raise RuntimeError( raise RuntimeError(
'You cannot use the variants parmetis or ptscotch without mpi') 'You cannot use the variants parmetis or ptscotch without mpi')
blas = self.spec['blas'].blas_libs lapack_blas = (self.spec['lapack'].lapack_libs +
makefile_conf = ["LIBBLAS = %s" % blas.ld_flags] self.spec['blas'].blas_libs)
makefile_conf = ["LIBBLAS = %s" % lapack_blas.joined()]
orderings = ['-Dpord'] orderings = ['-Dpord']
...@@ -154,7 +156,13 @@ def write_makefile_inc(self): ...@@ -154,7 +156,13 @@ def write_makefile_inc(self):
# TODO: change the value to the correct one according to the # TODO: change the value to the correct one according to the
# compiler possible values are -DAdd_, -DAdd__ and/or -DUPPER # compiler possible values are -DAdd_, -DAdd__ and/or -DUPPER
makefile_conf.append("CDEFS = -DAdd_") if self.compiler.name == 'intel':
# Intel Fortran compiler provides the main() function so
# C examples linked with the Fortran compiler require a
# hack defined by _DMAIN_COMP (see examples/c_example.c)
makefile_conf.append("CDEFS = -DAdd_ -DMAIN_COMP")
else:
makefile_conf.append("CDEFS = -DAdd_")
if '+shared' in self.spec: if '+shared' in self.spec:
if sys.platform == 'darwin': if sys.platform == 'darwin':
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment