cp2k : added support for libint, fixed compilation issues on elpa (#1889)

This commit is contained in:
Massimiliano Culpo 2016-10-03 17:25:36 +02:00 committed by Todd Gamblin
parent df79ba0dcf
commit 50fcade81b
3 changed files with 22 additions and 5 deletions

View File

@ -47,6 +47,7 @@ class Cp2k(Package):
depends_on('lapack') depends_on('lapack')
depends_on('blas') depends_on('blas')
depends_on('fftw') depends_on('fftw')
depends_on('libint@:1.2', when='@3.0')
depends_on('mpi', when='+mpi') depends_on('mpi', when='+mpi')
depends_on('scalapack', when='+mpi') depends_on('scalapack', when='+mpi')
@ -56,10 +57,8 @@ class Cp2k(Package):
depends_on('wannier90', when='+mpi') depends_on('wannier90', when='+mpi')
depends_on('elpa', when='+mpi') depends_on('elpa', when='+mpi')
# TODO : add dependency on libint
# TODO : add dependency on libsmm, libxsmm # TODO : add dependency on libsmm, libxsmm
# TODO : add dependency on CUDA # TODO : add dependency on CUDA
# TODO : add dependency on QUIP
parallel = False parallel = False
@ -88,7 +87,7 @@ def install(self, spec, prefix):
} }
cppflags = [ cppflags = [
'-D__FFTW3', '-D__FFTW3',
'-D__LIBPEXSI', '-D__LIBINT',
'-I' + spec['fftw'].prefix.include '-I' + spec['fftw'].prefix.include
] ]
fcflags = copy.deepcopy(optflags[self.spec.compiler.name]) fcflags = copy.deepcopy(optflags[self.spec.compiler.name])
@ -97,7 +96,11 @@ def install(self, spec, prefix):
]) ])
fftw = find_libraries(['libfftw3'], root=spec['fftw'].prefix.lib) fftw = find_libraries(['libfftw3'], root=spec['fftw'].prefix.lib)
ldflags = [fftw.search_flags] ldflags = [fftw.search_flags]
libs = [] libs = [
join_path(spec['libint'].prefix.lib, 'libint.so'),
join_path(spec['libint'].prefix.lib, 'libderiv.so'),
join_path(spec['libint'].prefix.lib, 'libr12.so')
]
if '+plumed' in self.spec: if '+plumed' in self.spec:
# Include Plumed.inc in the Makefile # Include Plumed.inc in the Makefile
mkf.write('include {0}\n'.format( mkf.write('include {0}\n'.format(
@ -145,6 +148,7 @@ def install(self, spec, prefix):
if '+mpi' in self.spec: if '+mpi' in self.spec:
cppflags.extend([ cppflags.extend([
'-D__parallel', '-D__parallel',
'-D__LIBPEXSI',
'-D__WANNIER90', '-D__WANNIER90',
'-D__ELPA3', '-D__ELPA3',
'-D__SCALAPACK' '-D__SCALAPACK'

View File

@ -58,6 +58,18 @@ def install(self, spec, prefix):
'CC={0}'.format(self.spec['mpi'].mpicc), 'CC={0}'.format(self.spec['mpi'].mpicc),
'FC={0}'.format(self.spec['mpi'].mpifc), 'FC={0}'.format(self.spec['mpi'].mpifc),
'CXX={0}'.format(self.spec['mpi'].mpicxx), 'CXX={0}'.format(self.spec['mpi'].mpicxx),
'FCFLAGS={0}'.format(
spec['lapack'].lapack_libs.joined()
),
'LDFLAGS={0}'.format(
spec['lapack'].lapack_libs.joined()
),
'SCALAPACK_FCFLAGS={0}'.format(
spec['scalapack'].scalapack_libs.joined()
),
'SCALAPACK_LDFLAGS={0}'.format(
spec['scalapack'].scalapack_libs.joined()
),
'--prefix={0}'.format(self.prefix) '--prefix={0}'.format(self.prefix)
] ]

View File

@ -61,7 +61,8 @@ def install(self, spec, prefix):
autoconf() autoconf()
config_args = [ config_args = [
'--prefix={0}'.format(prefix) '--prefix={0}'.format(prefix),
'--enable-shared'
] ]
# Optimizations for the Intel compiler, suggested by CP2K # Optimizations for the Intel compiler, suggested by CP2K