Package builds and installs SAMRAI and deps with GNU and OpenMPI
This commit is contained in:
parent
9b9fc86f6c
commit
2632bd9745
5 changed files with 109 additions and 23 deletions
20
var/spack/packages/SAMRAI/no-tool-build.patch
Normal file
20
var/spack/packages/SAMRAI/no-tool-build.patch
Normal 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
|
|
@ -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',
|
||||
}
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# FIXME: Modify the configure line to suit your build system here.
|
||||
configure("--prefix=%s" % prefix)
|
||||
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")
|
||||
|
||||
# FIXME: Add logic to build and install here
|
||||
make()
|
||||
make("install")
|
||||
|
|
39
var/spack/packages/hdf5/package.py
Normal file
39
var/spack/packages/hdf5/package.py
Normal 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"
|
|
@ -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')
|
||||
|
||||
|
|
18
var/spack/packages/zlib/package.py
Normal file
18
var/spack/packages/zlib/package.py
Normal 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")
|
Loading…
Reference in a new issue