Skip to content
Snippets Groups Projects
Commit 6641f424 authored by Andrew Williams's avatar Andrew Williams
Browse files

Not compiling due to mpi error. Also getting this error from the command line...

Not compiling due to mpi error. Also getting this error from the command line so could be separate issue. Otherwise package definition first draft complete.
parent b99e945e
No related branches found
No related tags found
No related merge requests found
......@@ -3,6 +3,6 @@ packages:
paths:
intelmpi@4.1.0%gcc@4.4.7 arch=linux-x86_64: /software/compilers/intel/13.0/impi/4.1.0.024/intel64
buildable: False
all:
providers:
mpi: [intelmpi, openmpi]
# all:
# providers:
# mpi: [intelmpi]
......@@ -37,16 +37,19 @@ class Intelmpi(Package):
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.set('MPICC', join_path(self.prefix.bin, 'mpicc'))
spack_env.set('MPICXX', join_path(self.prefix.bin, 'mpic++'))
spack_env.set('MPICXX', join_path(self.prefix.bin, 'mpicxx'))
spack_env.set('MPIF77', join_path(self.prefix.bin, 'mpif77'))
spack_env.set('MPIF90', join_path(self.prefix.bin, 'mpif90'))
# NOTE: Need to find a better way of setting this compiler argument
# which is only required when building packages with intelmpi.
spack_env.set('CXXFLAGS', '-DMPICH_IGNORE_CXX_SEEK')
def setup_dependent_package(self, module, dep_spec):
self.spec.mpicc = join_path(self.prefix.bin, 'mpicc')
self.spec.mpicxx = join_path(self.prefix.bin, 'mpic++')
self.spec.mpicxx = join_path(self.prefix.bin, 'mpicxx')
self.spec.mpifc = join_path(self.prefix.bin, 'mpif90')
self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77')
self.spec.cppflags = '-DMPICH_IGNORE_CXX_SEEK'
# self.spec.cxxflags = '-DMPICH_IGNORE_CXX_SEEK'
# def install(self, spec, prefix):
# configure("--prefix=%s" % prefix)
......
......@@ -30,13 +30,15 @@ class Plumed(Package):
molecular systems which works together with some of the most popular
molecular dynamics engines."""
# FIXME: Add a proper url for your package's homepage here.
# PLUMED homepage. The source is available on github.
homepage = "http://www.plumed.org/home"
url = "https://github.com/plumed/plumed2"
version('2.2.3', git="https://github.com/plumed/plumed2.git", tag='v2.2.3')
# Variants
# Variants. PLUMED by default builds a number of optional modules.
# The ones listed here are not built by default for various reasons,
# such as stability, lack of testing, or lack of demand.
variant('crystallization', default=False,
description='Build support for optional crystallization module.')
variant('imd', default=False,
......@@ -46,15 +48,14 @@ class Plumed(Package):
variant('mpi', default=False,
description='Enable MPI support.')
# Dependencies
# Dependencies. LAPACK and BLAS are recommended but not essential.
depends_on("mpi", when="+mpi")
depends_on("netlib-lapack")
depends_on("openblas")
def install(self, spec, prefix):
configure("--prefix=" + prefix)
# "--enable-mpi",
# "-enable-modules=crystallization")
# Prefix is the only compulsory argument.
config_args = ["--prefix=" + prefix]
# Construct list of optional modules
module_opts=[]
......@@ -64,19 +65,28 @@ def install(self, spec, prefix):
'+manyrestraints' if '+manyrestraints' in spec else '-manyrestraints'
])
# Add optional arguments based on specs and variants
# If we have specified any optional modules then add the argument ro
# enable or disable them.
if module_opts:
config_args.extend(["--enable-modules=%s" % "".join(module_opts)])
# If using MPI then ensure the correct compiler wrapper is used.
if '+mpi' in spec:
config_args.extend([
"--enable-mpi",
"CC=%s" % self.spec['mpi'].mpicc,
"CXX=%s" % self.spec['mpi'].mpicxx,
"FC=%s" % self.spec['mpi'].mpifc,
"F77=%s" % self.spec['mpi'].mpif77
])
# Add remaining variant flags.
# config_args.extend([
# Modules
# "--enable-modules=%s" % "".join(module_opts) if module_opts is not None,
# "--enable-mpi" if '+mpi' in spec
# "--enable-mpi" if '+mpi' in spec else "--disable-mpi"
# ])
if modules_opts:
config_args.extend(["--enable-modules=%s" % "".join(module_opts)])
config_args.extend([
"--enable-mpi" if '+mpi' in spec else "--disable-mpi"
])
# Configure
configure(*config_args)
make()
make("install")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment