cp2k: fixed compilation issues for intel stack

Added DFLAGS to the `make.inc` file being written.
These macros are also added to the language specific variables
like CFLAGS, CXXFLAGS and FCFLAGS. Changed `spec.satisfies('foo')`
with `'foo' in spec` in `intel-mkl`, see #4135. Added a basic
build interface to `intel-mpi`.
This commit is contained in:
Massimiliano Culpo
2017-05-05 18:24:04 +02:00
committed by alalazo
parent 4b866c6395
commit 306f158c73
4 changed files with 82 additions and 25 deletions

View File

@@ -96,19 +96,25 @@ def lapack_libs(self):
@property
def scalapack_libs(self):
libnames = ['libmkl_scalapack']
if self.spec.satisfies('^openmpi'):
# Intel MKL does not directly depend on mpi but the scalapack
# interface does and the corresponding BLACS library changes
# depending on the MPI implementation we are using. We need then to
# inspect the root package which asked for Scalapack and check which
# MPI it depends on.
root = self.spec.root
if '^openmpi' in root:
libnames.append('libmkl_blacs_openmpi')
elif self.spec.satisfies('^mpich@1'):
elif '^mpich@1' in root:
libnames.append('libmkl_blacs')
elif self.spec.satisfies('^mpich@2:'):
elif '^mpich@2:' in root:
libnames.append('libmkl_blacs_intelmpi')
elif self.spec.satisfies('^mvapich2'):
elif '^mvapich2' in root:
libnames.append('libmkl_blacs_intelmpi')
elif self.spec.satisfies('^mpt'):
elif '^mpt' in root:
libnames.append('libmkl_blacs_sgimpt')
# TODO: ^intel-parallel-studio can mean intel mpi, a compiler or a lib
# elif self.spec.satisfies('^intel-parallel-studio'):
# libnames.append('libmkl_blacs_intelmpi')
elif '^intel-mpi' in root:
libnames.append('libmkl_blacs_intelmpi')
else:
raise InstallError("No MPI found for scalapack")