From 9b9fc86f6c31d3072b8cb3ba2ef6477ac404304e Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Wed, 28 May 2014 09:25:07 -0700 Subject: Preliminary SAMRAI package --- var/spack/packages/SAMRAI/package.py | 44 ++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 var/spack/packages/SAMRAI/package.py (limited to 'var') diff --git a/var/spack/packages/SAMRAI/package.py b/var/spack/packages/SAMRAI/package.py new file mode 100644 index 0000000000..e8d808b70a --- /dev/null +++ b/var/spack/packages/SAMRAI/package.py @@ -0,0 +1,44 @@ +# 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. + 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', + } + + def install(self, spec, prefix): + # FIXME: Modify the configure line to suit your build system here. + configure("--prefix=%s" % prefix) + + # FIXME: Add logic to build and install here + make() + make("install") -- cgit v1.2.3-60-g2f50 From 2632bd97459e48404fe3fad0695219bf5bbb6f3f Mon Sep 17 00:00:00 2001 From: David Beckingsale Date: Mon, 2 Jun 2014 08:35:01 -0700 Subject: Package builds and installs SAMRAI and deps with GNU and OpenMPI --- var/spack/packages/SAMRAI/no-tool-build.patch | 20 +++++++++++ var/spack/packages/SAMRAI/package.py | 51 +++++++++++++++------------ var/spack/packages/hdf5/package.py | 39 ++++++++++++++++++++ var/spack/packages/openmpi/package.py | 2 ++ var/spack/packages/zlib/package.py | 18 ++++++++++ 5 files changed, 108 insertions(+), 22 deletions(-) create mode 100644 var/spack/packages/SAMRAI/no-tool-build.patch create mode 100644 var/spack/packages/hdf5/package.py create mode 100644 var/spack/packages/zlib/package.py (limited to 'var') 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") -- cgit v1.2.3-60-g2f50