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,6 +3,6 @@ packages:
|
|||||||
paths:
|
paths:
|
||||||
intelmpi@4.1.0%gcc@4.4.7 arch=linux-x86_64: /software/compilers/intel/13.0/impi/4.1.0.024/intel64
|
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
|
buildable: False
|
||||||
all:
|
# all:
|
||||||
providers:
|
# providers:
|
||||||
mpi: [intelmpi, openmpi]
|
# mpi: [intelmpi]
|
||||||
|
@ -37,16 +37,19 @@ class Intelmpi(Package):
|
|||||||
|
|
||||||
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
|
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
|
||||||
spack_env.set('MPICC', join_path(self.prefix.bin, 'mpicc'))
|
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('MPIF77', join_path(self.prefix.bin, 'mpif77'))
|
||||||
spack_env.set('MPIF90', join_path(self.prefix.bin, 'mpif90'))
|
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):
|
def setup_dependent_package(self, module, dep_spec):
|
||||||
self.spec.mpicc = join_path(self.prefix.bin, 'mpicc')
|
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.mpifc = join_path(self.prefix.bin, 'mpif90')
|
||||||
self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77')
|
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):
|
# def install(self, spec, prefix):
|
||||||
# configure("--prefix=%s" % prefix)
|
# configure("--prefix=%s" % prefix)
|
||||||
|
@ -30,13 +30,15 @@ class Plumed(Package):
|
|||||||
molecular systems which works together with some of the most popular
|
molecular systems which works together with some of the most popular
|
||||||
molecular dynamics engines."""
|
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"
|
homepage = "http://www.plumed.org/home"
|
||||||
url = "https://github.com/plumed/plumed2"
|
url = "https://github.com/plumed/plumed2"
|
||||||
|
|
||||||
version('2.2.3', git="https://github.com/plumed/plumed2.git", tag='v2.2.3')
|
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,
|
variant('crystallization', default=False,
|
||||||
description='Build support for optional crystallization module.')
|
description='Build support for optional crystallization module.')
|
||||||
variant('imd', default=False,
|
variant('imd', default=False,
|
||||||
@ -46,15 +48,14 @@ class Plumed(Package):
|
|||||||
variant('mpi', default=False,
|
variant('mpi', default=False,
|
||||||
description='Enable MPI support.')
|
description='Enable MPI support.')
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies. LAPACK and BLAS are recommended but not essential.
|
||||||
depends_on("mpi", when="+mpi")
|
depends_on("mpi", when="+mpi")
|
||||||
depends_on("netlib-lapack")
|
depends_on("netlib-lapack")
|
||||||
depends_on("openblas")
|
depends_on("openblas")
|
||||||
|
|
||||||
def install(self, spec, prefix):
|
def install(self, spec, prefix):
|
||||||
configure("--prefix=" + prefix)
|
# Prefix is the only compulsory argument.
|
||||||
# "--enable-mpi",
|
config_args = ["--prefix=" + prefix]
|
||||||
# "-enable-modules=crystallization")
|
|
||||||
|
|
||||||
# Construct list of optional modules
|
# Construct list of optional modules
|
||||||
module_opts=[]
|
module_opts=[]
|
||||||
@ -64,19 +65,28 @@ def install(self, spec, prefix):
|
|||||||
'+manyrestraints' if '+manyrestraints' in spec else '-manyrestraints'
|
'+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
|
||||||
# config_args.extend([
|
# enable or disable them.
|
||||||
# Modules
|
if module_opts:
|
||||||
# "--enable-modules=%s" % "".join(module_opts) if module_opts is not None,
|
|
||||||
# "--enable-mpi" if '+mpi' in spec
|
|
||||||
# ])
|
|
||||||
|
|
||||||
if modules_opts:
|
|
||||||
config_args.extend(["--enable-modules=%s" % "".join(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([
|
config_args.extend([
|
||||||
"--enable-mpi" if '+mpi' in spec else "--disable-mpi"
|
"--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()
|
||||||
make("install")
|
make("install")
|
||||||
|
Loading…
Reference in New Issue
Block a user