Install examples for sundials
This commit is contained in:
parent
5a55bb3f8d
commit
7e1ee463ca
@ -142,6 +142,7 @@ def install(self, spec, prefix):
|
|||||||
|
|
||||||
if '+python' in spec:
|
if '+python' in spec:
|
||||||
# Tests will always fail if Python dependencies aren't built
|
# Tests will always fail if Python dependencies aren't built
|
||||||
|
# In addition, 3 of the tests fail when run in parallel
|
||||||
scons('test', parallel=False)
|
scons('test', parallel=False)
|
||||||
|
|
||||||
scons('install')
|
scons('install')
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
##############################################################################
|
##############################################################################
|
||||||
from spack import *
|
from spack import *
|
||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
class Sundials(Package):
|
class Sundials(Package):
|
||||||
@ -30,14 +31,14 @@ class Sundials(Package):
|
|||||||
Solvers)"""
|
Solvers)"""
|
||||||
|
|
||||||
homepage = "http://computation.llnl.gov/casc/sundials/"
|
homepage = "http://computation.llnl.gov/casc/sundials/"
|
||||||
url = "http://computation.llnl.gov/projects/sundials-suite-nonlinear-differential-algebraic-equation-solvers/download/sundials-2.6.2.tar.gz"
|
url = "http://computation.llnl.gov/projects/sundials-suite-nonlinear-differential-algebraic-equation-solvers/download/sundials-2.6.2.tar.gz"
|
||||||
|
|
||||||
version('2.6.2', '3deeb0ede9f514184c6bd83ecab77d95')
|
version('2.6.2', '3deeb0ede9f514184c6bd83ecab77d95')
|
||||||
|
|
||||||
variant('mpi', default=True, description='Enable MPI support')
|
variant('mpi', default=True, description='Enable MPI support')
|
||||||
variant('lapack', default=True, description='Build with external BLAS/LAPACK libraries')
|
variant('lapack', default=True, description='Build with external BLAS/LAPACK libraries')
|
||||||
variant('klu', default=True, description='Build with SuiteSparse KLU libraries')
|
variant('klu', default=False, description='Build with SuiteSparse KLU libraries')
|
||||||
variant('superlu', default=True, description='Build with SuperLU_MT libraries')
|
variant('superlu', default=False, description='Build with SuperLU_MT libraries')
|
||||||
variant('openmp', default=False, description='Enable OpenMP support')
|
variant('openmp', default=False, description='Enable OpenMP support')
|
||||||
variant('pthread', default=True, description='Enable POSIX threads support')
|
variant('pthread', default=True, description='Enable POSIX threads support')
|
||||||
|
|
||||||
@ -49,10 +50,14 @@ class Sundials(Package):
|
|||||||
depends_on('superlu-mt+pthread', when='+superlu+pthread')
|
depends_on('superlu-mt+pthread', when='+superlu+pthread')
|
||||||
|
|
||||||
def install(self, spec, prefix):
|
def install(self, spec, prefix):
|
||||||
cmake_args = std_cmake_args
|
cmake_args = std_cmake_args[:]
|
||||||
cmake_args.extend([
|
cmake_args.extend([
|
||||||
'-DBUILD_SHARED_LIBS=ON',
|
'-DBUILD_SHARED_LIBS=ON',
|
||||||
'-DCMAKE_C_FLAGS=-fPIC'
|
'-DCMAKE_C_FLAGS=-fPIC',
|
||||||
|
'-DCMAKE_Fortran_FLAGS=-fPIC',
|
||||||
|
'-DEXAMPLES_ENABLE=ON',
|
||||||
|
'-DEXAMPLES_INSTALL=ON',
|
||||||
|
'-DFCMIX_ENABLE=ON'
|
||||||
])
|
])
|
||||||
|
|
||||||
# MPI support
|
# MPI support
|
||||||
@ -128,3 +133,41 @@ def install(self, spec, prefix):
|
|||||||
make('install')
|
make('install')
|
||||||
|
|
||||||
install('LICENSE', prefix)
|
install('LICENSE', prefix)
|
||||||
|
|
||||||
|
self.filter_compilers()
|
||||||
|
|
||||||
|
def filter_compilers(self):
|
||||||
|
"""Run after install to tell the Makefiles to use
|
||||||
|
the compilers that Spack built the package with.
|
||||||
|
|
||||||
|
If this isn't done, they'll have CC, CPP, and F77 set to
|
||||||
|
Spack's generic cc and f77. We want them to be bound to
|
||||||
|
whatever compiler they were built with."""
|
||||||
|
|
||||||
|
kwargs = {'ignore_absent': True, 'backup': False, 'string': True}
|
||||||
|
dirname = os.path.join(self.prefix, 'examples')
|
||||||
|
|
||||||
|
cc_files = [
|
||||||
|
'arkode/C_serial/Makefile', 'arkode/C_parallel/Makefile',
|
||||||
|
'cvode/serial/Makefile', 'cvode/parallel/Makefile',
|
||||||
|
'cvodes/serial/Makefile', 'cvodes/parallel/Makefile',
|
||||||
|
'ida/serial/Makefile', 'ida/parallel/Makefile',
|
||||||
|
'idas/serial/Makefile', 'idas/parallel/Makefile',
|
||||||
|
'kinsol/serial/Makefile', 'kinsol/parallel/Makefile',
|
||||||
|
'nvector/serial/Makefile', 'nvector/parallel/Makefile',
|
||||||
|
'nvector/pthreads/Makefile'
|
||||||
|
]
|
||||||
|
|
||||||
|
f77_files = [
|
||||||
|
'arkode/F77_serial/Makefile', 'cvode/fcmix_serial/Makefile',
|
||||||
|
'ida/fcmix_serial/Makefile', 'ida/fcmix_pthreads/Makefile',
|
||||||
|
'kinsol/fcmix_serial/Makefile'
|
||||||
|
]
|
||||||
|
|
||||||
|
for filename in cc_files:
|
||||||
|
filter_file(os.environ['CC'], self.compiler.cc,
|
||||||
|
os.path.join(dirname, filename), **kwargs)
|
||||||
|
|
||||||
|
for filename in f77_files:
|
||||||
|
filter_file(os.environ['F77'], self.compiler.f77,
|
||||||
|
os.path.join(dirname, filename), **kwargs)
|
||||||
|
Loading…
Reference in New Issue
Block a user