summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorMark C. Miller <miller86@llnl.gov>2017-05-09 16:26:57 -0700
committerAdam J. Stewart <ajstewart426@gmail.com>2017-05-09 18:26:57 -0500
commit64fb2f22b436cf14e75da11e27430500a675212c (patch)
treed613e8d1db340c55a4e4601b6f952781a3a667c4 /var
parenta5fd658986be32404b6d50539dc413df8efea96f (diff)
downloadspack-64fb2f22b436cf14e75da11e27430500a675212c.tar.gz
spack-64fb2f22b436cf14e75da11e27430500a675212c.tar.bz2
spack-64fb2f22b436cf14e75da11e27430500a675212c.tar.xz
spack-64fb2f22b436cf14e75da11e27430500a675212c.zip
Adding FASTMath uber package and missing FASTMath packages (#4120)
* adding 0.5.1 and variant for uint8 bit stream word type * Revisions as per davydden * fixing style (flake8) issues * - switched to derive from MakefilePackage - fixed typo in variant check - Confirmed installs correctly with bswtuint8 variant * added build method; changed zfp_incdir to incdir * * Adding uber fastmath package to support 'spack install fastmath' * Adding dims variant boxlib to control compile-time spatial dimension count * Explicitly disabling many parts of moab to get lib to build. Don't need tools yet. * Add logic to spack/setup-env to not refer to $SYS_TYPE if its not defined. * adding mesquite package * * Added Chombo (still working on Fortran name mangling) * Made mesquite depend on mpi * Fixed use of boxlib's dims numerical variant * adding PUMI * flake8 compliance * adding phasta * fixing flake8 issues * undue $SYS_TYPE protection change * fixing install step for fastmath uber package; resolve issues requested by adamjstewart in PR * revisions as per adamjstewart * re-enabling trilinos and phasta dependencies * all changes requested modulu values= and assert statement * fixing cmake_args usage in pumi; fixing lib installs for chombo * first pass at numerical variant * fixing dims variant as per @adamjstewart * fixing func/var name collision * fixing means of disabling -Werror * fix name collision for cmake_args var/func * fixing chombo homepage/url; make FASTMath use chombo#3.2; remove extraneous comment about boxlib dim * remove dummy fastmath package; switch to @BarrySmith soln for install of dummy bundle * fix flake8 import os issue * remove extraneous comment * adding url for fastmath scidac site * final fixes as per @adamjstewart * adding 1 dims option for boxlib * switching make(all) to gmake(all)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/boxlib/package.py9
-rw-r--r--var/spack/repos/builtin/packages/chombo/Make.defs.local.template.patch23
-rw-r--r--var/spack/repos/builtin/packages/chombo/hdf5-16api.patch12
-rw-r--r--var/spack/repos/builtin/packages/chombo/package.py140
-rw-r--r--var/spack/repos/builtin/packages/fastmath/package.py65
-rw-r--r--var/spack/repos/builtin/packages/mesquite/package.py56
-rw-r--r--var/spack/repos/builtin/packages/moab/package.py28
-rw-r--r--var/spack/repos/builtin/packages/phasta/package.py61
-rw-r--r--var/spack/repos/builtin/packages/pumi/package.py65
-rw-r--r--var/spack/repos/builtin/packages/pumi/phiotimer.cc.darwin.patch21
10 files changed, 477 insertions, 3 deletions
diff --git a/var/spack/repos/builtin/packages/boxlib/package.py b/var/spack/repos/builtin/packages/boxlib/package.py
index 8d46014d3b..dd23c05fc3 100644
--- a/var/spack/repos/builtin/packages/boxlib/package.py
+++ b/var/spack/repos/builtin/packages/boxlib/package.py
@@ -36,12 +36,19 @@ class Boxlib(CMakePackage):
depends_on('mpi')
+ variant('dims',
+ default='3',
+ values=('1', '2', '3'),
+ multi=False,
+ description='Number of spatial dimensions'
+ )
+
def cmake_args(self):
spec = self.spec
options = []
options.extend([
- # '-DBL_SPACEDIM=3',
+ '-DBL_SPACEDIM=%d' % int(spec.variants['dims'].value),
'-DENABLE_POSITION_INDEPENDENT_CODE=ON',
'-DENABLE_FBASELIB=ON',
'-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
diff --git a/var/spack/repos/builtin/packages/chombo/Make.defs.local.template.patch b/var/spack/repos/builtin/packages/chombo/Make.defs.local.template.patch
new file mode 100644
index 0000000000..cc72659445
--- /dev/null
+++ b/var/spack/repos/builtin/packages/chombo/Make.defs.local.template.patch
@@ -0,0 +1,23 @@
+*** lib/mk/Make.defs.local.template 2017-05-02 16:00:16.000000000 -0700
+--- lib/mk/Make.defs.local.template.patched 2017-05-02 18:50:36.000000000 -0700
+***************
+*** 129,135 ****
+--- 129,137 ----
+ #HDFMPILIBFLAGS= -L<hdf_parallel_dir>/lib -lhdf5 -lz
+ #USE_MF =
+ #USE_MT =
++ #USE_LAPACK =
+ #USE_SETVAL =
++ #USE_TIMER =
+ #CH_AR =
+ #CH_CPP =
+ #DOXYGEN =
+***************
+*** 151,155 ****
+--- 153,158 ----
+ #ldoptflags =
+ #ldprofflags =
+ #syslibflags =
++ #lapackincflags =
+
+ #end -- dont change this line
diff --git a/var/spack/repos/builtin/packages/chombo/hdf5-16api.patch b/var/spack/repos/builtin/packages/chombo/hdf5-16api.patch
new file mode 100644
index 0000000000..6525061886
--- /dev/null
+++ b/var/spack/repos/builtin/packages/chombo/hdf5-16api.patch
@@ -0,0 +1,12 @@
+*** lib/src/BoxTools/HDF5Portable.H 2017-05-02 13:57:57.000000000 -0700
+--- lib/src/BoxTools/HDF5Portable.H.patched 2017-05-02 13:55:30.000000000 -0700
+***************
+*** 15,20 ****
+--- 15,21 ----
+ extern "C"
+ {
+ #ifdef CH_USE_HDF5
++ #define H5_USE_16_API
+ #include <hdf5.h>
+ #else
+ typedef long hid_t;
diff --git a/var/spack/repos/builtin/packages/chombo/package.py b/var/spack/repos/builtin/packages/chombo/package.py
new file mode 100644
index 0000000000..1ae50e6bc0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/chombo/package.py
@@ -0,0 +1,140 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+from shutil import copyfile
+import glob
+
+
+class Chombo(MakefilePackage):
+ """The Chombo package provides a set of tools for implementing finite
+ difference and finite-volume methods for the solution of partial
+ differential equations on block-structured adaptively refined
+ logically rectangular (i.e. Cartesian) grids."""
+
+ homepage = "https://commons.lbl.gov/display/chombo"
+ url = "http://bitbucket.org/drhansj/chombo-xsdk.git"
+
+ # Use whatever path Brian V. and Terry L. agreed upon, but preserve version
+ version('3.2', git='http://bitbucket.org/drhansj/chombo-xsdk.git', commit='71d856c')
+ version('develop', git='http://bitbucket.org/drhansj/chombo-xsdk.git', tag='master')
+# version('3.2', svn='https://anag-repo.lbl.gov/svn/Chombo/release/3.2')
+
+ variant('mpi', default=True, description='Enable MPI parallel support')
+ variant('hdf5', default=True, description='Enable HDF5 support')
+ variant('dims',
+ default='3',
+ values=('1', '2', '3', '4', '5', '6'),
+ multi=False,
+ description='Number of PDE dimensions [1-6]'
+ )
+
+ patch('hdf5-16api.patch', when='@3.2', level=0)
+ patch('Make.defs.local.template.patch', when='@3.2', level=0)
+
+ depends_on('blas')
+ depends_on('lapack')
+ depends_on('gmake', type='build')
+ depends_on('mpi', when='+mpi')
+ depends_on('hdf5', when='+hdf5')
+ depends_on('hdf5+mpi', when='+mpi+hdf5')
+
+ def edit(self, spec, prefix):
+
+ # Set fortran name mangling in Make.defs
+ defs_file = FileFilter('./lib/mk/Make.defs')
+ defs_file.filter('^\s*#\s*cppcallsfort\s*=\s*',
+ 'cppcallsfort = -DCH_FORT_UNDERSCORE')
+
+ # Set remaining variables in Make.defs.local
+ # Make.defs.local.template.patch ensures lines for USE_TIMER,
+ # USE_LAPACK and lapackincflags are present
+ copyfile('./lib/mk/Make.defs.local.template',
+ './lib/mk/Make.defs.local')
+
+ defs_file = FileFilter('./lib/mk/Make.defs.local')
+
+ # Unconditional settings
+ defs_file.filter('^\s*#\s*DEBUG\s*=\s*', 'DEBUG = FALSE')
+ defs_file.filter('^\s*#\s*OPT\s*=\s*', 'OPT = TRUE')
+ defs_file.filter('^\s*#\s*PIC\s*=\s*', 'PIC = TRUE')
+ # timer code frequently fails compiles. So disable it.
+ defs_file.filter('^\s*#\s*USE_TIMER\s*=\s*', 'USE_TIMER = FALSE')
+
+ # LAPACK setup
+ lapack_blas = spec['lapack'].libs + spec['blas'].libs
+ defs_file.filter('^\s*#\s*USE_LAPACK\s*=\s*', 'USE_LAPACK = TRUE')
+ defs_file.filter(
+ '^\s*#\s*lapackincflags\s*=\s*',
+ 'lapackincflags = -I%s' % spec['lapack'].prefix.include)
+ defs_file.filter(
+ '^\s*#\s*syslibflags\s*=\s*',
+ 'syslibflags = %s' % lapack_blas.ld_flags)
+
+ # Compilers and Compiler flags
+ defs_file.filter('^\s*#\s*CXX\s*=\s*', 'CXX = %s' % spack_cxx)
+ defs_file.filter('^\s*#\s*FC\s*=\s*', 'FC = %s' % spack_fc)
+ if '+mpi' in spec:
+ defs_file.filter(
+ '^\s*#\s*MPICXX\s*=\s*',
+ 'MPICXX = %s' % self.spec['mpi'].mpicxx)
+
+ # Conditionally determined settings
+ defs_file.filter(
+ '^\s*#\s*MPI\s*=\s*',
+ 'MPI = %s' % ('TRUE' if '+mpi' in spec else 'FALSE'))
+ defs_file.filter(
+ '^\s*#\s*DIM\s*=\s*',
+ 'DIM = %s' % spec.variants['dims'].value)
+
+ # HDF5 settings
+ if '+hdf5' in spec:
+ defs_file.filter('^\s*#\s*USE_HDF5\s*=\s*', 'USE_HDF5 = TRUE')
+ defs_file.filter(
+ '^\s*#\s*HDFINCFLAGS\s*=.*',
+ 'HDFINCFLAGS = -I%s' % spec['hdf5'].prefix.include)
+ defs_file.filter(
+ '^\s*#\s*HDFLIBFLAGS\s*=.*',
+ 'HDFLIBFLAGS = %s' % spec['hdf5'].libs.ld_flags)
+ if '+mpi' in spec:
+ defs_file.filter(
+ '^\s*#\s*HDFMPIINCFLAGS\s*=.*',
+ 'HDFMPIINCFLAGS = -I%s' % spec['hdf5'].prefix.include)
+ defs_file.filter(
+ '^\s*#\s*HDFMPILIBFLAGS\s*=.*',
+ 'HDFMPILIBFLAGS = %s' % spec['hdf5'].libs.ld_flags)
+
+ def build(self, spec, prefix):
+ with working_dir('lib'):
+ gmake('all')
+
+ def install(self, spec, prefix):
+ with working_dir('lib'):
+ install_tree('include', prefix.include)
+ libfiles = glob.glob('lib*.a')
+ libfiles += glob.glob('lib*.so')
+ libfiles += glob.glob('lib*.dylib')
+ mkdirp(prefix.lib)
+ for lib in libfiles:
+ install(lib, prefix.lib)
diff --git a/var/spack/repos/builtin/packages/fastmath/package.py b/var/spack/repos/builtin/packages/fastmath/package.py
new file mode 100644
index 0000000000..cae9b10ae4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fastmath/package.py
@@ -0,0 +1,65 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Fastmath(Package):
+ """FASTMath is a suite of ~15 numerical libraries frequently used together
+ in various SciDAC and CSE applications. The suite includes discretization
+ libraries for structured, AMR and unstructured grids as well as solver
+ libraries for ODE's, Time Integrators, Iterative, Non-Linear, and Direct
+ Solvers."""
+
+ homepage = "www.fastmath-scidac.org/"
+ url = "https://github.com/citibeth/dummy/tarball/v1.0"
+
+ version('1.0', 'e2b724dfcc31d735897971db91be89ff')
+
+ # BundlePackage
+ depends_on('boxlib dims=3')
+ depends_on('chombo@3.2')
+ depends_on('hypre~internal-superlu')
+ depends_on('mesquite')
+# depends_on('ml-trilinos') # hoping for stripped down install of just ml
+# depends_on('nox-trilinos') # hoping for stripped down install of just nox
+ depends_on('moab')
+ depends_on('mpi')
+ depends_on('parpack') # we need parpack ng
+ depends_on('petsc')
+ depends_on('phasta')
+ depends_on('pumi')
+ depends_on('sundials')
+ depends_on('superlu-dist')
+ depends_on('trilinos')
+ depends_on('zoltan')
+
+ # Dummy install for now, will be removed when metapackage is available
+ def install(self, spec, prefix):
+ # Prevent the error message
+ # ==> Error: Install failed for fastmath. Nothing was installed!
+ # ==> Error: Installation process had nonzero exit code : 256
+ with open(join_path(spec.prefix, 'bundle-package.txt'), 'w') as out:
+ out.write('This is a bundle\n')
+ out.close()
diff --git a/var/spack/repos/builtin/packages/mesquite/package.py b/var/spack/repos/builtin/packages/mesquite/package.py
new file mode 100644
index 0000000000..d67d8aaac4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mesquite/package.py
@@ -0,0 +1,56 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Mesquite(AutotoolsPackage):
+ """Mesquite (Mesh Quality Improvement Toolkit) is designed to provide a
+ stand-alone, portable, comprehensive suite of mesh quality improvement
+ algorithms and components that can be used to construct custom quality
+ improvement algorithms. Mesquite provides a robust and effective mesh
+ improvement toolkit that allows both meshing researchers application
+ scientists to benefit from the latest developments in mesh quality
+ control and improvement."""
+
+ homepage = "https://software.sandia.gov/mesquite"
+ url = "https://software.sandia.gov/mesquite/mesquite-2.3.0.tar.gz"
+
+ version('2.99', '92b94167981bb8fcd59b0f0f18fbab64')
+ version('2.3.0', 'f64948b5210d5ccffaa9a2482447b322')
+ version('2.2.0', '41360c363e541aff7dc10024c90072d3')
+
+ variant('mpi', default=True, description='Enable MPI parallel support')
+
+ depends_on('mpi', when='+mpi')
+
+ def configure_args(self):
+ args = [
+ 'CC=%s' % self.spec['mpi'].mpicc,
+ 'CXX=%s' % self.spec['mpi'].mpicxx,
+ '--with-mpi=%s' % self.spec['mpi'].prefix,
+ '--enable-release',
+ '--enable-shared',
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/moab/package.py b/var/spack/repos/builtin/packages/moab/package.py
index 14925cfd3e..bd864e0980 100644
--- a/var/spack/repos/builtin/packages/moab/package.py
+++ b/var/spack/repos/builtin/packages/moab/package.py
@@ -57,7 +57,9 @@ class Moab(Package):
depends_on('mpi')
depends_on('hdf5+mpi')
+ depends_on('netcdf', when='+netcdf')
depends_on('netcdf+mpi', when='+netcdf')
+ depends_on('metis')
depends_on('parmetis')
depends_on('zoltan')
depends_on('zoltan~fortran', when='~fortran')
@@ -67,13 +69,35 @@ class Moab(Package):
options = [
'--prefix=%s' % prefix,
'--enable-optimize',
- '--enable-tools',
+ '--disable-tools',
+ '--disable-mbconvert',
+ '--disable-hexmodops',
+ '--disable-vtkMOABReader',
+ '--disable-mbsize',
+ '--disable-mbskin',
+ '--disable-mbtagprop',
+ '--disable-mbmem',
+ '--disable-spheredecomp',
+ '--disable-mbsurfplot',
+ '--disable-mbpart',
+ '--disable-dagmc',
+ '--disable-gsets',
+ '--disable-mbmerge',
+ '--disable-mbdepth',
+ '--disable-mbcoupler',
+ '--disable-mcnpmit',
+ '--disable-refiner',
+ '--disable-h5mtools',
+ '--disable-mbcslam',
+ '--disable-mbquality',
+ '--disable-ahf',
+ '--disable-mbumr',
+ '--disable-imesh',
'--with-pic',
'--with-mpi=%s' % spec['mpi'].prefix,
'--with-hdf5=%s' % spec['hdf5'].prefix,
'--with-parmetis=%s' % spec['parmetis'].prefix,
'--with-zoltan=%s' % spec['zoltan'].prefix,
- '--disable-vtkMOABReader',
'--without-vtk',
'CXX=%s' % spec['mpi'].mpicxx,
'CC=%s' % spec['mpi'].mpicc,
diff --git a/var/spack/repos/builtin/packages/phasta/package.py b/var/spack/repos/builtin/packages/phasta/package.py
new file mode 100644
index 0000000000..e5e794bcfa
--- /dev/null
+++ b/var/spack/repos/builtin/packages/phasta/package.py
@@ -0,0 +1,61 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Phasta(CMakePackage):
+ """SCOREC RPI's Parallel Hierarchic Adaptive Stabilized Transient Analysis
+ (PHASTA) of compressible and incompressible Navier Stokes equations."""
+
+ homepage = "https://www.scorec.rpi.edu/software.php"
+ url = "https://github.com/PHASTA/phasta.git"
+
+ version('0.0.1', git='https://github.com/PHASTA/phasta.git',
+ commit='11f431f2d1a53a529dab4b0f079ab8aab7ca1109')
+ version('develop', git='https://github.com/PHASTA/phasta.git',
+ branch='master')
+
+ depends_on('mpi')
+
+ def cmake_args(self):
+ spec = self.spec
+
+ args = [
+ '-DPHASTA_USE_MPI=ON',
+ '-DPHASTA_BUILD_CONVERTERIO=OFF',
+ '-DPHASTA_BUILD_ACUSTAT=OFF',
+ '-DPHASTA_BUILD_M2N=OFF',
+ '-DPHASTA_BUILD_M2NFixBnd=OFF',
+ '-DPHASTA_USE_LESLIB=OFF',
+ '-DPHASTA_USE_PETSC=OFF',
+ '-DPHASTA_USE_SVLS=ON',
+ '-DPHASTA_INCOMPRESSIBLE=ON',
+ '-DPHASTA_COMPRESSIBLE=ON',
+ '-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
+ '-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx,
+ '-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc,
+ ]
+
+ return args
diff --git a/var/spack/repos/builtin/packages/pumi/package.py b/var/spack/repos/builtin/packages/pumi/package.py
new file mode 100644
index 0000000000..40d37c6ce6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pumi/package.py
@@ -0,0 +1,65 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import sys
+
+
+class Pumi(CMakePackage):
+ """SCOREC RPI's Parallel Unstructured Mesh Infrastructure (PUMI).
+ An efficient distributed mesh data structure and methods to support
+ parallel adaptive analysis including general mesh-based operations,
+ such as mesh entity creation/deletion, adjacency and geometric
+ classification, iterators, arbitrary (field) data attachable to mesh
+ entities, efficient communication involving entities duplicated
+ across multiple tasks, migration of mesh entities between tasks,
+ and dynamic load balancing."""
+
+ homepage = "https://www.scorec.rpi.edu/pumi"
+ url = "https://github.com/SCOREC/core.git"
+
+ version('0.0.1', git='https://github.com/SCOREC/core.git',
+ commit='0c315e82b3f2478dc18bdd6cfa89f1cddb85cd6a')
+ version('develop', git='https://github.com/SCOREC/core.git',
+ branch='master')
+
+ if sys.platform == 'darwin':
+ patch('phiotimer.cc.darwin.patch', level=0) # !clock_gettime
+
+ variant('zoltan', default=False, description='Enable Zoltan Features')
+
+ depends_on('mpi')
+ depends_on('zoltan', when='+zoltan')
+
+ def cmake_args(self):
+ spec = self.spec
+
+ args = [
+ '-DSCOREC_CXX_WARNINGS=OFF',
+ '-DENABLE_ZOLTAN=%s' % ('ON' if '+zoltan' in spec else 'OFF'),
+ '-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
+ '-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx,
+ ]
+
+ return args
diff --git a/var/spack/repos/builtin/packages/pumi/phiotimer.cc.darwin.patch b/var/spack/repos/builtin/packages/pumi/phiotimer.cc.darwin.patch
new file mode 100644
index 0000000000..52c6e63fca
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pumi/phiotimer.cc.darwin.patch
@@ -0,0 +1,21 @@
+*** ./phasta/phiotimer.cc 2017-05-03 12:26:25.000000000 -0700
+--- ./phasta/phiotimer.cc.patched 2017-05-03 12:26:11.000000000 -0700
+***************
+*** 56,63 ****
+ }
+ #else
+ void phastaio_time(phastaioTime* t) {
+! int err;
+! err = clock_gettime(CLOCK_MONOTONIC,t);
+ PCU_ALWAYS_ASSERT(!err);
+ }
+ /*return elapsed time in micro seconds*/
+--- 56,63 ----
+ }
+ #else
+ void phastaio_time(phastaioTime* t) {
+! int err=0;
+! /*err = clock_gettime(CLOCK_MONOTONIC,t);*/
+ PCU_ALWAYS_ASSERT(!err);
+ }
+ /*return elapsed time in micro seconds*/