diff options
Diffstat (limited to 'var')
-rw-r--r-- | var/spack/repos/builtin/packages/mpifileutils/package.py | 70 |
1 files changed, 65 insertions, 5 deletions
diff --git a/var/spack/repos/builtin/packages/mpifileutils/package.py b/var/spack/repos/builtin/packages/mpifileutils/package.py index ad97e4e383..9365d6e7fa 100644 --- a/var/spack/repos/builtin/packages/mpifileutils/package.py +++ b/var/spack/repos/builtin/packages/mpifileutils/package.py @@ -6,7 +6,7 @@ from spack import * -class Mpifileutils(AutotoolsPackage): +class Mpifileutils(Package): """mpiFileUtils is a suite of MPI-based tools to manage large datasets, which may vary from large directory trees to large files. High-performance computing users often generate large datasets with @@ -17,10 +17,11 @@ class Mpifileutils(AutotoolsPackage): for such datasets, providing speedups of up to 20-30x.""" homepage = "https://github.com/hpc/mpifileutils" - url = "https://github.com/hpc/mpifileutils/releases/download/v0.6/mpifileutils-0.6.tar.gz" + url = "https://github.com/hpc/mpifileutils/archive/v0.9.tar.gz" git = "https://github.com/hpc/mpifileutils.git" version('develop', branch='master') + version('0.9', sha256='1b8250af01aae91c985ca5d61521bfaa4564e46efa15cee65cd0f82cf5a2bcfb') version('0.8.1', 'acbd5b5c15919a67392509614bb7871e') version('0.8', '1082600e7ac4e6b2c13d91bbec40cffb') version('0.7', 'c081f7f72c4521dddccdcf9e087c5a2b') @@ -30,7 +31,6 @@ class Mpifileutils(AutotoolsPackage): depends_on('mpi') depends_on('libcircle') - depends_on('lwgrp') # need precise version of dtcmp, since DTCMP_Segmented_exscan added # in v1.0.3 but renamed in v1.1.0 and later @@ -39,6 +39,8 @@ class Mpifileutils(AutotoolsPackage): depends_on('libarchive') + depends_on('cmake@3.1:', when='@0.9:', type='build') + variant('xattr', default=True, description="Enable code for extended attributes") @@ -47,12 +49,59 @@ class Mpifileutils(AutotoolsPackage): variant('experimental', default=False, description="Install experimental tools") - - # --enable-experimental fails with v0.6 and earlier conflicts('+experimental', when='@:0.6') + variant('gpfs', default=False, + description="Enable optimizations and features for GPFS") + conflicts('+gpfs', when='@:0.8.1') + + def cmake_args(self): + args = std_cmake_args + args.append('-DCMAKE_INSTALL_PREFIX=%s' % self.spec.prefix) + args.append("-DWITH_DTCMP_PREFIX=%s" % self.spec['dtcmp'].prefix) + args.append("-DWITH_LibCircle_PREFIX=%s" % + self.spec['libcircle'].prefix) + + if '+xattr' in self.spec: + args.append("-DENABLE_XATTRS=ON") + else: + args.append("-DENABLE_XATTRS=OFF") + + if '+lustre' in self.spec: + args.append("-DENABLE_LUSTRE=ON") + else: + args.append("-DENABLE_LUSTRE=OFF") + + if '+gpfs' in self.spec: + args.append("-DENABLE_GPFS=ON") + else: + args.append("-DENABLE_GPFS=OFF") + + if '+experimental' in self.spec: + args.append("-DENABLE_EXPERIMENTAL=ON") + else: + args.append("-DENABLE_EXPERIMENTAL=OFF") + + return args + + @when('@0.9:') + def install(self, spec, prefix): + args = self.cmake_args() + + source_directory = self.stage.source_path + build_directory = join_path(source_directory, 'build') + + with working_dir(build_directory, create=True): + cmake(source_directory, *args) + make() + make('install') + + if self.run_tests: + make('test') + def configure_args(self): args = [] + args.append('--prefix=%s' % self.spec.prefix) args.append("CPPFLAGS=-I%s/src/common" % pwd()) args.append("libarchive_CFLAGS=-I%s" % self.spec['libarchive'].prefix.include) @@ -80,3 +129,14 @@ class Mpifileutils(AutotoolsPackage): else: args.append('--disable-experimental') return args + + @when('@:0.8.1') + def install(self, spec, prefix): + args = self.configure_args() + + configure(*args) + make() + make('install') + + if self.run_tests: + make('test') |