50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
import os
|
|
from spack import *
|
|
|
|
|
|
class Slepc(Package):
|
|
"""
|
|
Scalable Library for Eigenvalue Computations.
|
|
"""
|
|
|
|
homepage = "http://www.grycap.upv.es/slepc"
|
|
url = "http://slepc.upv.es/download/download.php?filename=slepc-3.6.2.tar.gz"
|
|
|
|
version('3.6.2', '2ab4311bed26ccf7771818665991b2ea3a9b15f97e29fd13911ab1293e8e65df')
|
|
|
|
variant('arpack', default=False, description='Enables Arpack wrappers')
|
|
|
|
depends_on('petsc')
|
|
depends_on('arpack-ng~mpi',when='+arpack^petsc~mpi')
|
|
depends_on('arpack-ng+mpi',when='+arpack^petsc+mpi')
|
|
|
|
def install(self, spec, prefix):
|
|
# set SLEPC_DIR for installation
|
|
os.environ['SLEPC_DIR'] = self.stage.source_path
|
|
|
|
options = []
|
|
|
|
if '+arpack' in spec:
|
|
options.extend([
|
|
'--with-arpack-dir=%s' % spec['arpack-ng'].prefix.lib,
|
|
])
|
|
if 'arpack-ng~mpi' in spec:
|
|
options.extend([
|
|
'--with-arpack-flags=-larpack'
|
|
])
|
|
else:
|
|
options.extend([
|
|
'--with-arpack-flags=-lparpack,-larpack'
|
|
])
|
|
|
|
configure('--prefix=%s' % prefix, *options)
|
|
|
|
make('MAKE_NP=%s' % make_jobs, parallel=False)
|
|
#FIXME:
|
|
# make('test')
|
|
make('install')
|
|
|
|
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
|
|
# set up SLEPC_DIR for everyone using SLEPc package
|
|
spack_env.set('SLEPC_DIR', self.prefix)
|