add slepc package
This commit is contained in:
		
							
								
								
									
										49
									
								
								var/spack/repos/builtin/packages/slepc/package.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								var/spack/repos/builtin/packages/slepc/package.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,49 @@
 | 
			
		||||
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)
 | 
			
		||||
		Reference in New Issue
	
	Block a user