summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Beckingsale <davidbeckingsale@gmail.com>2014-06-02 08:35:01 -0700
committerDavid Beckingsale <davidbeckingsale@gmail.com>2014-06-02 08:36:45 -0700
commit2632bd97459e48404fe3fad0695219bf5bbb6f3f (patch)
treeb396a6e62b8eb00e8151ad52645fc6a66cd11e35
parent9b9fc86f6c31d3072b8cb3ba2ef6477ac404304e (diff)
downloadspack-2632bd97459e48404fe3fad0695219bf5bbb6f3f.tar.gz
spack-2632bd97459e48404fe3fad0695219bf5bbb6f3f.tar.bz2
spack-2632bd97459e48404fe3fad0695219bf5bbb6f3f.tar.xz
spack-2632bd97459e48404fe3fad0695219bf5bbb6f3f.zip
Package builds and installs SAMRAI and deps with GNU and OpenMPI
-rw-r--r--var/spack/packages/SAMRAI/no-tool-build.patch20
-rw-r--r--var/spack/packages/SAMRAI/package.py51
-rw-r--r--var/spack/packages/hdf5/package.py39
-rw-r--r--var/spack/packages/openmpi/package.py2
-rw-r--r--var/spack/packages/zlib/package.py18
5 files changed, 108 insertions, 22 deletions
diff --git a/var/spack/packages/SAMRAI/no-tool-build.patch b/var/spack/packages/SAMRAI/no-tool-build.patch
new file mode 100644
index 0000000000..1adf0cf721
--- /dev/null
+++ b/var/spack/packages/SAMRAI/no-tool-build.patch
@@ -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
diff --git a/var/spack/packages/SAMRAI/package.py b/var/spack/packages/SAMRAI/package.py
index e8d808b70a..bb88ec3292 100644
--- a/var/spack/packages/SAMRAI/package.py
+++ b/var/spack/packages/SAMRAI/package.py
@@ -1,27 +1,15 @@
-# FIXME:
-# This is a template package file for Spack. We've conveniently
-# put "FIXME" labels next to all the things you'll want to change.
-#
-# Once you've edited all the FIXME's, delete this whole message,
-# save this file, and test out your package like this:
-#
-# spack install SAMRAI
-#
-# You can always get back here to change things with:
-#
-# spack edit SAMRAI
-#
-# See the spack documentation for more information on building
-# packages.
-#
from spack import *
class Samrai(Package):
- """FIXME: put a proper description of your package here."""
- # FIXME: add a proper url for your package's homepage here.
+ """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
+ list_url = homepage
versions = {
'3.7.3' : '12d574eacadf8c9a70f1bb4cd1a69df6',
@@ -35,10 +23,29 @@ class Samrai(Package):
'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):
- # FIXME: Modify the configure line to suit your build system here.
- configure("--prefix=%s" % 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")
- # FIXME: Add logic to build and install here
make()
make("install")
diff --git a/var/spack/packages/hdf5/package.py b/var/spack/packages/hdf5/package.py
new file mode 100644
index 0000000000..7705676dba
--- /dev/null
+++ b/var/spack/packages/hdf5/package.py
@@ -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"
diff --git a/var/spack/packages/openmpi/package.py b/var/spack/packages/openmpi/package.py
index f24a66c12e..5ac231a33f 100644
--- a/var/spack/packages/openmpi/package.py
+++ b/var/spack/packages/openmpi/package.py
@@ -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')
diff --git a/var/spack/packages/zlib/package.py b/var/spack/packages/zlib/package.py
new file mode 100644
index 0000000000..608b27ddd3
--- /dev/null
+++ b/var/spack/packages/zlib/package.py
@@ -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")