slepc: add blopex variant (#8820)

This commit is contained in:
Geoffrey Oxberry 2018-07-30 16:18:36 -07:00 committed by Adam J. Stewart
parent 15d96f0166
commit f7761d1081

View file

@ -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
############################################################################## ##############################################################################
import os import os
import sys
from spack import * from spack import *
@ -45,6 +46,7 @@ class Slepc(Package):
version('3.6.2', '2ab4311bed26ccf7771818665991b2ea3a9b15f97e29fd13911ab1293e8e65df') version('3.6.2', '2ab4311bed26ccf7771818665991b2ea3a9b15f97e29fd13911ab1293e8e65df')
variant('arpack', default=True, description='Enables Arpack wrappers') variant('arpack', default=True, description='Enables Arpack wrappers')
variant('blopex', default=False, description='Enables BLOPEX wrappers')
# NOTE: make sure PETSc and SLEPc use the same python. # NOTE: make sure PETSc and SLEPc use the same python.
depends_on('python@2.6:2.8', type='build') depends_on('python@2.6:2.8', type='build')
@ -62,6 +64,13 @@ class Slepc(Package):
# Arpack can not be used with 64bit integers. # Arpack can not be used with 64bit integers.
conflicts('+arpack', when='^petsc+int64') conflicts('+arpack', when='^petsc+int64')
resource(name='blopex',
url='http://slepc.upv.es/download/external/blopex-1.1.2.tar.gz',
sha256='0081ee4c4242e635a8113b32f655910ada057c59043f29af4b613508a762f3ac',
destination=join_path('installed-arch-' + sys.platform + '-c-opt',
'externalpackages'),
when='+blopex')
def install(self, spec, prefix): def install(self, spec, prefix):
# set SLEPC_DIR for installation # set SLEPC_DIR for installation
# Note that one should set the current (temporary) directory instead # Note that one should set the current (temporary) directory instead
@ -83,6 +92,11 @@ def install(self, spec, prefix):
'--with-arpack-flags=-lparpack,-larpack' '--with-arpack-flags=-lparpack,-larpack'
]) ])
# It isn't possible to install BLOPEX separately and link to it;
# BLOPEX has to be downloaded with SLEPc at configure time
if '+blopex' in spec:
options.append('--download-blopex')
configure('--prefix=%s' % prefix, *options) configure('--prefix=%s' % prefix, *options)
make('MAKE_NP=%s' % make_jobs, parallel=False) make('MAKE_NP=%s' % make_jobs, parallel=False)