summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/petsc/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/petsc/package.py')
-rw-r--r--var/spack/repos/builtin/packages/petsc/package.py27
1 files changed, 21 insertions, 6 deletions
diff --git a/var/spack/repos/builtin/packages/petsc/package.py b/var/spack/repos/builtin/packages/petsc/package.py
index 66e1abdf1a..4ac96b8127 100644
--- a/var/spack/repos/builtin/packages/petsc/package.py
+++ b/var/spack/repos/builtin/packages/petsc/package.py
@@ -22,13 +22,14 @@
# 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 Petsc(Package):
- """
- PETSc is a suite of data structures and routines for the scalable
+ """PETSc is a suite of data structures and routines for the scalable
(parallel) solution of scientific applications modeled by partial
differential equations.
"""
@@ -36,6 +37,7 @@ class Petsc(Package):
homepage = "http://www.mcs.anl.gov/petsc/index.html"
url = "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-3.5.3.tar.gz"
+ version('3.7.4', 'aaf94fa54ef83022c14091f10866eedf')
version('3.7.2', '50da49867ce7a49e7a0c1b37f4ec7b34')
version('3.6.4', '7632da2375a3df35b8891c9526dbdde7')
version('3.6.3', '91dd3522de5a5ef039ff8f50800db606')
@@ -73,7 +75,7 @@ class Petsc(Package):
depends_on('python @2.6:2.7')
# Other dependencies
- depends_on('boost', when='+boost')
+ depends_on('boost', when='@:3.5+boost')
depends_on('metis@5:', when='+metis')
depends_on('hdf5+mpi', when='+hdf5+mpi')
@@ -115,10 +117,17 @@ class Petsc(Package):
'--with-mpi=1',
'--with-mpi-dir=%s' % self.spec['mpi'].prefix,
]
+ if sys.platform != "darwin":
+ compiler_opts.extend([
+ '--with-cpp=cpp',
+ '--with-cxxcpp=cpp',
+ ])
return compiler_opts
def install(self, spec, prefix):
- options = ['--with-ssl=0']
+ options = ['--with-ssl=0',
+ '--download-c2html=0',
+ '--download-hwloc=0']
options.extend(self.mpi_dependent_options())
options.extend([
'--with-precision=%s' % (
@@ -126,9 +135,15 @@ class Petsc(Package):
'--with-scalar-type=%s' % (
'complex' if '+complex' in spec else 'real'),
'--with-shared-libraries=%s' % ('1' if '+shared' in spec else '0'),
- '--with-debugging=%s' % ('1' if '+debug' in spec else '0'),
- '--with-blas-lapack-dir=%s' % spec['lapack'].prefix
+ '--with-debugging=%s' % ('1' if '+debug' in spec else '0')
])
+ # Make sure we use exactly the same Blas/Lapack libraries
+ # across the DAG. To that end list them explicitly
+ lapack_blas = spec['lapack'].lapack_libs + spec['blas'].blas_libs
+ options.extend([
+ '--with-blas-lapack-lib=%s' % lapack_blas.joined()
+ ])
+
# Activates library support if needed
for library in ('metis', 'boost', 'hdf5', 'hypre', 'parmetis',
'mumps', 'scalapack'):