From 64fb2f22b436cf14e75da11e27430500a675212c Mon Sep 17 00:00:00 2001 From: "Mark C. Miller" Date: Tue, 9 May 2017 16:26:57 -0700 Subject: 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) --- var/spack/repos/builtin/packages/boxlib/package.py | 9 +- .../packages/chombo/Make.defs.local.template.patch | 23 ++++ .../repos/builtin/packages/chombo/hdf5-16api.patch | 12 ++ var/spack/repos/builtin/packages/chombo/package.py | 140 +++++++++++++++++++++ .../repos/builtin/packages/fastmath/package.py | 65 ++++++++++ .../repos/builtin/packages/mesquite/package.py | 56 +++++++++ var/spack/repos/builtin/packages/moab/package.py | 28 ++++- var/spack/repos/builtin/packages/phasta/package.py | 61 +++++++++ var/spack/repos/builtin/packages/pumi/package.py | 65 ++++++++++ .../packages/pumi/phiotimer.cc.darwin.patch | 21 ++++ 10 files changed, 477 insertions(+), 3 deletions(-) create mode 100644 var/spack/repos/builtin/packages/chombo/Make.defs.local.template.patch create mode 100644 var/spack/repos/builtin/packages/chombo/hdf5-16api.patch create mode 100644 var/spack/repos/builtin/packages/chombo/package.py create mode 100644 var/spack/repos/builtin/packages/fastmath/package.py create mode 100644 var/spack/repos/builtin/packages/mesquite/package.py create mode 100644 var/spack/repos/builtin/packages/phasta/package.py create mode 100644 var/spack/repos/builtin/packages/pumi/package.py create mode 100644 var/spack/repos/builtin/packages/pumi/phiotimer.cc.darwin.patch (limited to 'var') 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/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 + #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*/ -- cgit v1.2.3-70-g09d2