Merge pull request #12 in SCALE/spack from features/samrai to develop

# By David Beckingsale (1) and Todd Gamblin (1)
# Via David Beckingsale
* commit '2632bd97459e48404fe3fad0695219bf5bbb6f3f':
  Package builds and installs SAMRAI and deps with GNU and OpenMPI
  Preliminary SAMRAI package
This commit is contained in:
George Todd Gamblin 2014-06-05 17:36:13 -07:00
commit d89ee5795b
5 changed files with 130 additions and 0 deletions

View File

@ -0,0 +1,20 @@
--- SAMRAI/Makefile.in 2013-05-31 11:04:32.000000000 -0700
+++ SAMRAI/Makefile.in.notools 2014-05-30 10:31:15.135979900 -0700
@@ -8,7 +8,7 @@
##
#########################################################################
-default: library tools
+default: library
SAMRAI = @top_srcdir@
SUBDIR = .
@@ -135,7 +135,7 @@
done
$(MAKE) archive_remove_obj_names
-install: library tools
+install: library
$(INSTALL) -d -m 755 $(INSTDIR)/config
$(INSTALL) -d -m 755 $(INSTDIR)/lib
$(INSTALL) -d -m 755 $(INSTDIR)/bin

View File

@ -0,0 +1,51 @@
from spack import *
class Samrai(Package):
"""SAMRAI (Structured Adaptive Mesh Refinement Application Infrastructure)
is an object-oriented C++ software library enables exploration of numerical,
algorithmic, parallel computing, and software issues associated with applying
structured adaptive mesh refinement (SAMR) technology in large-scale parallel
application development.
"""
homepage = "https://computation-rnd.llnl.gov/SAMRAI/confirm.php"
url = "https://computation-rnd.llnl.gov/SAMRAI/download/SAMRAI-v3.7.3.tar.gz"
list_url = homepage
versions = {
'3.7.3' : '12d574eacadf8c9a70f1bb4cd1a69df6',
'3.7.2' : 'f6a716f171c9fdbf3cb12f71fa6e2737',
'3.6.3-beta' : 'ef0510bf2893042daedaca434e5ec6ce',
'3.5.2-beta' : 'd072d9d681eeb9ada15ce91bea784274',
'3.5.0-beta' : '1ad18a319fc573e12e2b1fbb6f6b0a19',
'3.4.1-beta' : '00814cbee2cb76bf8302aff56bbb385b',
'3.3.3-beta' : '1db3241d3e1cab913dc310d736c34388',
'3.3.2-beta' : 'e598a085dab979498fcb6c110c4dd26c',
'2.4.4' : '04fb048ed0efe7c531ac10c81cc5f6ac',
}
depends_on("mpi")
depends_on("zlib")
depends_on("hdf5")
depends_on("boost@1.52.0")
# don't build tools with gcc
patch('no-tool-build.patch', when='%gcc')
# TODO: currently hard-coded to use openmpi - be careful!
def install(self, spec, prefix):
configure(
"--prefix=%s" % prefix,
"--with-CXX=%s" % spec['openmpi'].prefix.bin + "/mpic++",
"--with-CC=%s" % spec['openmpi'].prefix.bin + "/mpicc",
"--with-hdf5=%s" % spec['hdf5'].prefix,
"--with-boost=%s" % spec['boost'].prefix,
"--with-zlib=%s" % spec['zlib'].prefix,
"--disable-blas",
"--disable-lapack",
"--with-hypre=no",
"--with-petsc=no",
"--enable-opt",
"--disable-debug")
make()
make("install")

View File

@ -0,0 +1,39 @@
from spack import *
class Hdf5(Package):
"""HDF5 is a data model, library, and file format for storing and managing
data. It supports an unlimited variety of datatypes, and is designed for
flexible and efficient I/O and for high volume and complex data.
"""
homepage = "http://www.hdfgroup.org/HDF5/"
url = "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.13/src/hdf5-1.8.13.tar.gz"
list_url = "http://www.hdfgroup.org/ftp/HDF5/releases"
list_depth = 3
versions = { '1.8.13' : 'c03426e9e77d7766944654280b467289', }
depends_on("mpi")
depends_on("zlib")
# TODO: currently hard-coded to use OpenMPI
def install(self, spec, prefix):
configure(
"--prefix=%s" % prefix,
"--with-zlib=%s" % spec['zlib'].prefix,
"--enable-parallel",
"CC=%s" % spec['openmpi'].prefix.bin + "/mpicc",
"CXX=%s" % spec['openmpi'].prefix.bin + "/mpic++")
make()
make("install")
def url_for_version(self, version):
v = str(version)
if version == Version("1.2.2"):
return "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-" + v + ".tar.gz"
elif version < Version("1.7"):
return "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-" + version.up_to(2) + "/hdf5-" + v + ".tar.gz"
else:
return "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-" + v + "/src/hdf5-" + v + ".tar.gz"

View File

@ -14,6 +14,8 @@ class Openmpi(Package):
versions = { '1.6.5' : '03aed2a4aa4d0b27196962a2a65fc475', }
provides('mpi@:2')
patch('ad_lustre_rwcontig_open_source.patch')
patch('llnl-platforms.patch')

View File

@ -0,0 +1,18 @@
from spack import *
class Zlib(Package):
"""zlib is designed to be a free, general-purpose, legally unencumbered --
that is, not covered by any patents -- lossless data-compression library for
use on virtually any computer hardware and operating system.
"""
homepage = "http://zlib.net"
url = "http://zlib.net/zlib-1.2.8.tar.gz"
versions = { '1.2.8' : '44d667c142d7cda120332623eab69f40', }
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")