From 76dae1dc5fb18c349e2a214c2aa03b75e0deff25 Mon Sep 17 00:00:00 2001 From: Barry Smith Date: Tue, 6 Dec 2016 14:10:51 -0600 Subject: hypre, superlu-dist, trilinos - support using develop/master branches of these packages (#2443) Funded-by: IDEAS Project: IDEAS/xSDK Time: 1 hour --- var/spack/repos/builtin/packages/hypre/package.py | 1 + .../repos/builtin/packages/superlu-dist/package.py | 3 +++ .../repos/builtin/packages/trilinos/package.py | 22 ++++++++++++++++++++-- 3 files changed, 24 insertions(+), 2 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/hypre/package.py b/var/spack/repos/builtin/packages/hypre/package.py index 3c288e7933..82a6b06b1f 100644 --- a/var/spack/repos/builtin/packages/hypre/package.py +++ b/var/spack/repos/builtin/packages/hypre/package.py @@ -35,6 +35,7 @@ class Hypre(Package): homepage = "http://computation.llnl.gov/project/linear_solvers/software.php" url = "http://computation.llnl.gov/project/linear_solvers/download/hypre-2.10.0b.tar.gz" + version('develop', git='https://github.com/LLNL/hypre', tag='master') version('2.11.1', '3f02ef8fd679239a6723f60b7f796519') version('2.10.1', 'dc048c4cabb3cd549af72591474ad674') version('2.10.0b', '768be38793a35bb5d055905b271f5b8e') diff --git a/var/spack/repos/builtin/packages/superlu-dist/package.py b/var/spack/repos/builtin/packages/superlu-dist/package.py index e9c345eeb2..7d04673182 100644 --- a/var/spack/repos/builtin/packages/superlu-dist/package.py +++ b/var/spack/repos/builtin/packages/superlu-dist/package.py @@ -24,6 +24,7 @@ ############################################################################## from spack import * import glob +import os class SuperluDist(Package): @@ -32,6 +33,7 @@ class SuperluDist(Package): homepage = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/" url = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_dist_4.1.tar.gz" + version('develop', git='https://github.com/xiaoyeli/superlu_dist', tag='master') version('5.1.1', '12638c631733a27dcbd87110e9f9cb1e') version('5.1.0', '6bb86e630bd4bd8650243aed8fd92eb9') version('5.0.0', '2b53baf1b0ddbd9fcf724992577f0670') @@ -77,6 +79,7 @@ class SuperluDist(Package): with open('make.inc', 'w') as fh: fh.write('\n'.join(makefile_inc)) + mkdirp(os.path.join(self.stage.source_path, 'lib')) make("lib", parallel=False) # FIXME: diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py index 6c0fa49262..beb1b38ba5 100644 --- a/var/spack/repos/builtin/packages/trilinos/package.py +++ b/var/spack/repos/builtin/packages/trilinos/package.py @@ -45,6 +45,7 @@ class Trilinos(CMakePackage): homepage = "https://trilinos.org/" base_url = "https://github.com/trilinos/Trilinos/archive" + version('develop', git='https://github.com/trilinos/Trilinos.git', tag='master') version('12.10.1', '40f28628b63310f9bd17c26d9ebe32b1') version('12.8.1', '01c0026f1e2050842857db941060ecd5') version('12.6.4', 'c2ea7b5aa0d10bcabdb9b9a6e3bac3ea') @@ -62,6 +63,8 @@ class Trilinos(CMakePackage): return '%s/trilinos-release-%s.tar.gz' % \ (Trilinos.base_url, version.dashed) + variant('xsdkflags', default=False, + description='Compile using the default xSDK configuration') variant('metis', default=True, description='Compile with METIS and ParMETIS') variant('mumps', default=True, @@ -157,11 +160,24 @@ class Trilinos(CMakePackage): '-DTrilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON', '-DTrilinos_ENABLE_CXX11:BOOL=ON', '-DTPL_ENABLE_Netcdf:BOOL=ON', - '-DTPL_ENABLE_HYPRE:BOOL=%s' % ( - 'ON' if '+hypre' in spec else 'OFF'), '-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % self.prefix ]) + # Force Trilinos to use the MPI wrappers instead of raw compilers + # this is needed on Apple systems that require full resolution of + # all symbols when linking shared libraries + options.extend([ + '-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc, + '-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx, + '-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc + ]) + if '+hypre' in spec: + options.extend([ + '-DTPL_ENABLE_HYPRE:BOOL=ON', + '-DHYPRE_INCLUDE_DIRS:PATH=%s' % spec['hypre'].prefix.include, + '-DHYPRE_LIBRARY_DIRS:PATH=%s' % spec['hypre'].prefix.lib + ]) + if spec.satisfies('%intel') and spec.satisfies('@12.6.2'): # Panzer uses some std:chrono that is not recognized by Intel # Don't know which (maybe all) Trilinos versions this applies to @@ -170,6 +186,8 @@ class Trilinos(CMakePackage): '-DTrilinos_ENABLE_Panzer:BOOL=OFF' ]) + if '+xsdkflags' in spec: + options.extend(['-DUSE_XSDK_DEFAULTS=YES']) if '+hdf5' in spec: options.extend([ '-DTPL_ENABLE_HDF5:BOOL=ON', -- cgit v1.2.3-60-g2f50