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.
This commit is contained in:
parent
b99e945e6d
commit
6641f42417
3 changed files with 36 additions and 23 deletions
|
@ -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
|
||||
# config_args.extend([
|
||||
# Modules
|
||||
# "--enable-modules=%s" % "".join(module_opts) if module_opts is not None,
|
||||
# "--enable-mpi" if '+mpi' in spec
|
||||
# ])
|
||||
|
||||
if modules_opts:
|
||||
# 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)])
|
||||
|
||||
config_args.extend([
|
||||
"--enable-mpi" if '+mpi' in spec else "--disable-mpi"
|
||||
])
|
||||
# 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([
|
||||
# "--enable-mpi" if '+mpi' in spec else "--disable-mpi"
|
||||
# ])
|
||||
|
||||
# Configure
|
||||
configure(*config_args)
|
||||
|
||||
make()
|
||||
make("install")
|
||||
|
|
Loading…
Reference in a new issue