Merge branch 'develop' into mplegendre-multi_pkgsrc_roots

Conflicts:
	lib/spack/spack/__init__.py
	lib/spack/spack/directives.py
	lib/spack/spack/packages.py
This commit is contained in:
Todd Gamblin
2015-11-04 18:09:59 -08:00
93 changed files with 2989 additions and 284 deletions

View File

@@ -0,0 +1,15 @@
from spack import *
class Activeharmony(Package):
"""Active Harmony: a framework for auto-tuning (the automated search for values to improve the performance of a target application)."""
homepage = "http://www.dyninst.org/harmony"
url = "http://www.dyninst.org/sites/default/files/downloads/harmony/ah-4.5.tar.gz"
version('4.5', 'caee5b864716d376e2c25d739251b2a9')
def install(self, spec, prefix):
make("CFLAGS=-O3")
make("install", 'PREFIX=%s' % prefix)
from spack import *

View File

@@ -0,0 +1,34 @@
from spack import *
from spack.util.environment import *
class Apex(Package):
homepage = "http://github.com/khuck/xpress-apex"
#url = "http://github.com/khuck/xpress-apex/archive/v0.1-release-candidate.tar.gz"
url = "http://github.com/khuck/xpress-apex"
#version('0.1', '6e039c224387348296739f6bf360d081')
#version('master', branch='master', git='https://github.com/khuck/xpress-apex.git')
version('2015-10-21', git='https://github.com/khuck/xpress-apex.git', commit='d2e66ddde689120472fc57fc546d8cd80aab745c')
depends_on("binutils+libiberty")
depends_on("boost@1.54:")
depends_on("cmake@2.8.12:")
depends_on("activeharmony@4.5:")
depends_on("ompt-openmp")
def install(self, spec, prefix):
path=get_path("PATH")
path.remove(spec["binutils"].prefix.bin)
path_set("PATH", path)
with working_dir("build", create=True):
cmake('-DBOOST_ROOT=%s' % spec['boost'].prefix,
'-DUSE_BFD=TRUE',
'-DBFD_ROOT=%s' % spec['binutils'].prefix,
'-DUSE_ACTIVEHARMONY=TRUE',
'-DACTIVEHARMONY_ROOT=%s' % spec['activeharmony'].prefix,
'-DUSE_OMPT=TRUE',
'-DOMPT_ROOT=%s' % spec['ompt-openmp'].prefix,
'..', *std_cmake_args)
make()
make("install")

View File

@@ -10,8 +10,21 @@ class Binutils(Package):
version('2.23.2', '4f8fa651e35ef262edc01d60fb45702e')
version('2.20.1', '2b9dc8f2b7dbd5ec5992c6e29de0b764')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
variant('libiberty', default=False, description='Also install libiberty.')
def install(self, spec, prefix):
configure_args = [
'--prefix=%s' % prefix,
'--disable-dependency-tracking',
'--enable-interwork',
'--enable-multilib',
'--enable-shared',
'--enable-64-bit-bfd',
'--enable-targets=all']
if '+libiberty' in spec:
configure_args.append('--enable-install-libiberty')
configure(*configure_args)
make()
make("install")

View File

@@ -14,6 +14,10 @@ class Boost(Package):
list_url = "http://sourceforge.net/projects/boost/files/boost/"
list_depth = 2
version('1.59.0', '6aa9a5c6a4ca1016edd0ed1178e3cb87')
version('1.58.0', 'b8839650e61e9c1c0a89f371dd475546')
version('1.57.0', '1be49befbdd9a5ce9def2983ba3e7b76')
version('1.56.0', 'a744cf167b05d72335f27c88115f211d')
version('1.55.0', 'd6eef4b4cacb2183f2bf265a5a03a354')
version('1.54.0', '15cb8c0803064faef0c4ddf5bc5ca279')
version('1.53.0', 'a00d22605d5dbcfb4c9936a9b35bc4c2')

View File

@@ -0,0 +1,16 @@
--- Makefile 2015-02-26 10:50:00.000000000 -0800
+++ Makefile.new 2015-07-29 18:03:59.891357399 -0700
@@ -22,10 +22,10 @@
#
INC =
-GCC_PREFIX = $(shell dirname `which gcc`)
+GCC_PREFIX =
GCC_SUFFIX =
-CC = $(GCC_PREFIX)/gcc$(GCC_SUFFIX)
-CPP = $(GCC_PREFIX)/g++$(GCC_SUFFIX)
+CC = cc
+CPP = c++
CXX = $(CPP)
HEADERS = $(wildcard *.h)
BOWTIE_MM = 1

View File

@@ -0,0 +1,24 @@
from spack import *
from glob import glob
class Bowtie2(Package):
"""Description"""
homepage = "bowtie-bio.sourceforge.net/bowtie2/index.shtml"
version('2.2.5','51fa97a862d248d7ee660efc1147c75f', url = "http://downloads.sourceforge.net/project/bowtie-bio/bowtie2/2.2.5/bowtie2-2.2.5-source.zip")
patch('bowtie2-2.5.patch',when='@2.2.5', level=0)
def install(self, spec, prefix):
make()
mkdirp(prefix.bin)
for bow in glob("bowtie2*"):
install(bow, prefix.bin)
# install('bowtie2',prefix.bin)
# install('bowtie2-align-l',prefix.bin)
# install('bowtie2-align-s',prefix.bin)
# install('bowtie2-build',prefix.bin)
# install('bowtie2-build-l',prefix.bin)
# install('bowtie2-build-s',prefix.bin)
# install('bowtie2-inspect',prefix.bin)
# install('bowtie2-inspect-l',prefix.bin)
# install('bowtie2-inspect-s',prefix.bin)

View File

@@ -22,8 +22,10 @@ def install(self, spec, prefix):
bzip2_exe = join_path(prefix.bin, 'bzip2')
install('bzip2-shared', bzip2_exe)
for libfile in glob('libbz2.so*'):
for i, libfile in enumerate(glob('libbz2.so*')):
install(libfile, prefix.lib)
if i == 0:
symlink(join_path(prefix.lib, libfile), join_path(prefix.lib, 'libbz2.so'))
bunzip2 = join_path(prefix.bin, 'bunzip2')
remove(bunzip2)

View File

@@ -28,11 +28,16 @@ class Clang(Package):
"""The goal of the Clang project is to create a new C, C++,
Objective C and Objective C++ front-end for the LLVM compiler.
"""
homepage = "http://clang.llvm.org"
list_url = "http://llvm.org/releases/download.html"
homepage = 'http://clang.llvm.org'
url = 'http://llvm.org/releases/3.7.0/cfe-3.7.0.src.tar.xz'
depends_on("llvm")
version('3.4.2', '87945973b7c73038871c5f849a818588', url='http://llvm.org/releases/3.4.2/cfe-3.4.2.src.tar.xz')
depends_on('llvm@3.7.0', when='@3.7.0')
depends_on('llvm@3.6.2', when='@3.6.2')
depends_on('llvm@3.5.1', when='@3.5.1')
version('3.7.0', '8f9d27335e7331cf0a4711e952f21f01', url='http://llvm.org/releases/3.7.0/cfe-3.7.0.src.tar.xz')
version('3.6.2', 'ff862793682f714bb7862325b9c06e20', url='http://llvm.org/releases/3.6.2/cfe-3.6.2.src.tar.xz')
version('3.5.1', '93f9532f8f7e6f1d8e5c1116907051cb', url='http://llvm.org/releases/3.5.1/cfe-3.5.1.src.tar.xz')
def install(self, spec, prefix):
env['CXXFLAGS'] = self.compiler.cxx11_flag

View File

@@ -20,7 +20,9 @@ class Dbus(Package):
version('1.8.2', 'd6f709bbec0a022a1847c7caec9d6068')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
configure(
"--prefix=%s" % prefix,
"--disable-systemd")
make()
make("install")

View File

@@ -0,0 +1,25 @@
#------------------------------------------------------------------------------
# Author: Justin Too <justin@doubleotoo.com>
# Date: September 11, 2015
#------------------------------------------------------------------------------
from spack import *
class Doxygen(Package):
"""Doxygen is the de facto standard tool for generating documentation
from annotated C++ sources, but it also supports other popular programming
languages such as C, Objective-C, C#, PHP, Java, Python, IDL (Corba,
Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, and to some extent D..
"""
homepage = "http://www.stack.nl/~dimitri/doxygen/"
url = "http://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.10.src.tar.gz"
version('1.8.10', '79767ccd986f12a0f949015efb5f058f')
depends_on("cmake@2.8.12:")
def install(self, spec, prefix):
cmake('.', *std_cmake_args)
make()
make("install")

View File

@@ -0,0 +1,26 @@
from spack import *
class Elfutils(Package):
"""elfutils is a collection of various binary tools such as
eu-objdump, eu-readelf, and other utilities that allow you to
inspect and manipulate ELF files. Refer to Table 5.Tools Included
in elfutils for Red Hat Developer for a complete list of binary
tools that are distributed with the Red Hat Developer Toolset
version of elfutils."""
homepage = "https://fedorahosted.org/elfutils/"
version('0.163',
git='git://git.fedorahosted.org/git/elfutils.git',
tag='elfutils-0.163')
provides('elf')
def install(self, spec, prefix):
autoreconf = which('autoreconf')
autoreconf('-if')
configure('--prefix=%s' % prefix, '--enable-maintainer-mode')
make()
make("install")

View File

@@ -0,0 +1,18 @@
from spack import *
class Fish(Package):
"""fish is a smart and user-friendly command line shell for OS X, Linux, and
the rest of the family.
"""
homepage = "http://fishshell.com/"
url = "http://fishshell.com/files/2.2.0/fish-2.2.0.tar.gz"
list_url = homepage
version('2.2.0', 'a76339fd14ce2ec229283c53e805faac48c3e99d9e3ede9d82c0554acfc7b77a')
def install(self, spec, prefix):
configure('--prefix=%s' % prefix)
make()
make("install")

View File

@@ -36,21 +36,25 @@ class Gcc(Package):
list_url = 'http://open-source-box.org/gcc/'
list_depth = 2
DEPENDS_ON_ISL_PREDICATE = '@5.0:'
version('5.2.0', 'a51bcfeb3da7dd4c623e27207ed43467')
version('4.9.3', '6f831b4d251872736e8e9cc09746f327')
version('4.9.2', '4df8ee253b7f3863ad0b86359cd39c43')
version('4.9.1', 'fddf71348546af523353bd43d34919c1')
version('4.8.5', '80d2c2982a3392bb0b89673ff136e223')
version('4.8.4', '5a84a30839b2aca22a2d723de2a626ec')
version('4.7.4', '4c696da46297de6ae77a82797d2abe28')
version('4.6.4', 'b407a3d1480c11667f293bfb1f17d1a4')
version('4.5.4', '27e459c2566b8209ab064570e1b378f7')
depends_on("mpfr")
depends_on("gmp")
depends_on("mpc") # when @4.5:
depends_on("libelf")
depends_on("binutils")
depends_on("binutils~libiberty")
# Save these until we can do optional deps.
#depends_on("isl")
depends_on("isl", when=DEPENDS_ON_ISL_PREDICATE)
#depends_on("ppl")
#depends_on("cloog")
@@ -62,23 +66,31 @@ def install(self, spec, prefix):
if spec.satisfies("@4.7.1:"):
enabled_languages.add('go')
# Generic options to compile GCC
options = ["--prefix=%s" % prefix,
"--libdir=%s/lib64" % prefix,
"--disable-multilib",
"--enable-languages=" + ','.join(enabled_languages),
"--with-mpc=%s" % spec['mpc'].prefix,
"--with-mpfr=%s" % spec['mpfr'].prefix,
"--with-gmp=%s" % spec['gmp'].prefix,
"--enable-lto",
"--with-gnu-ld",
"--with-gnu-as",
"--with-quad"]
# Binutils
binutils_options = ["--with-stage1-ldflags=%s" % self.rpath_args,
"--with-boot-ldflags=%s" % self.rpath_args,
"--with-ld=%s/bin/ld" % spec['binutils'].prefix,
"--with-as=%s/bin/as" % spec['binutils'].prefix]
options.extend(binutils_options)
# Isl
if spec.satisfies(Gcc.DEPENDS_ON_ISL_PREDICATE):
isl_options = ["--with-isl=%s" % spec['isl'].prefix]
options.extend(isl_options)
# Rest of install is straightforward.
configure("--prefix=%s" % prefix,
"--libdir=%s/lib64" % prefix,
"--disable-multilib",
"--enable-languages=" + ','.join(enabled_languages),
"--with-mpc=%s" % spec['mpc'].prefix,
"--with-mpfr=%s" % spec['mpfr'].prefix,
"--with-gmp=%s" % spec['gmp'].prefix,
"--with-libelf=%s" % spec['libelf'].prefix,
"--with-stage1-ldflags=%s" % self.rpath_args,
"--with-boot-ldflags=%s" % self.rpath_args,
"--enable-lto",
"--with-gnu-ld",
"--with-ld=%s/bin/ld" % spec['binutils'].prefix,
"--with-gnu-as",
"--with-as=%s/bin/as" % spec['binutils'].prefix,
"--with-quad")
configure(*options)
make()
make("install")
@@ -100,13 +112,11 @@ def write_rpath_specs(self):
return
gcc = Executable(join_path(self.prefix.bin, 'gcc'))
lines = gcc('-dumpspecs', return_output=True).split("\n")
for i, line in enumerate(lines):
if line.startswith("*link:"):
specs_file = join_path(self.spec_dir, 'specs')
with closing(open(specs_file, 'w')) as out:
out.write(lines[i] + "\n")
out.write("-rpath %s/lib:%s/lib64 \\\n"
% (self.prefix, self.prefix))
out.write(lines[i+1] + "\n")
set_install_permissions(specs_file)
lines = gcc('-dumpspecs', return_output=True).strip().split("\n")
specs_file = join_path(self.spec_dir, 'specs')
with closing(open(specs_file, 'w')) as out:
for line in lines:
out.write(line + "\n")
if line.startswith("*link:"):
out.write("-rpath %s/lib:%s/lib64 \\\n"% (self.prefix, self.prefix))
set_install_permissions(specs_file)

View File

@@ -0,0 +1,21 @@
import os
from spack import *
class Gflags(Package):
"""The gflags package contains a C++ library that implements
commandline flags processing. It includes built-in support for
standard types such as string and the ability to define flags
in the source file in which they are used. Online documentation
available at: https://gflags.github.io/gflags/"""
homepage = "https://gflags.github.io/gflags"
url = "https://github.com/gflags/gflags/archive/v2.1.2.tar.gz"
version('2.1.2', 'ac432de923f9de1e9780b5254884599f')
def install(self, spec, prefix):
cmake("-DCMAKE_INSTALL_PREFIX=" + prefix,
"-DBUILD_SHARED_LIBS=ON")
make()
make("test")
make("install")

View File

@@ -0,0 +1,17 @@
from spack import *
class Ghostscript(Package):
"""an interpreter for the PostScript language and for PDF. """
homepage = "http://ghostscript.com/"
url = "http://downloads.ghostscript.com/public/ghostscript-9.16.tar.gz"
version('9.16', '829319325bbdb83f5c81379a8f86f38f')
parallel = False
def install(self, spec, prefix):
configure("--prefix=%s" %prefix, "--enable-shared")
make()
make("install")

View File

@@ -0,0 +1,19 @@
from spack import *
class Glm(Package):
"""
OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software based on
the OpenGL Shading Language (GLSL) specification.
"""
homepage = "https://github.com/g-truc/glm"
url = "https://github.com/g-truc/glm/archive/0.9.7.1.tar.gz"
version('0.9.7.1', '61af6639cdf652d1cdd7117190afced8')
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
cmake('..', *std_cmake_args)
make()
make("install")

View File

@@ -0,0 +1,15 @@
import os
from spack import *
class Glog(Package):
"""C++ implementation of the Google logging module."""
homepage = "https://github.com/google/glog"
url = "https://github.com/google/glog/archive/v0.3.3.tar.gz"
version('0.3.3', 'c1f86af27bd9c73186730aa957607ed0')
def install(self, spec, prefix):
configure("--prefix=" + prefix)
make()
make("install")

View File

@@ -0,0 +1,21 @@
from spack import *
class Graphviz(Package):
"""Graph Visualization Software"""
homepage = "http://www.graphviz.org"
url = "http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.38.0.tar.gz"
version('2.38.0', '5b6a829b2ac94efcd5fa3c223ed6d3ae')
parallel = False
depends_on("swig")
depends_on("python")
depends_on("ghostscript")
def install(self, spec, prefix):
configure("--prefix=%s" %prefix)
make()
make("install")

View File

@@ -10,7 +10,8 @@ class Hdf5(Package):
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
version('1.8.15', '03cccb5b33dbe975fdcd8ae9dc021f24')
version('1.8.13', 'c03426e9e77d7766944654280b467289')
depends_on("mpi")

View File

@@ -0,0 +1,29 @@
import os
import glob
from spack import *
class Leveldb(Package):
"""LevelDB is a fast key-value storage library written at Google
that provides an ordered mapping from string keys to string values."""
homepage = "https://github.com/google/leveldb"
url = "https://github.com/google/leveldb/archive/v1.18.tar.gz"
version('1.18', '73770de34a2a5ab34498d2e05b2b7fa0')
depends_on("snappy")
def install(self, spec, prefix):
make()
mkdirp(prefix.include)
mkdirp(prefix.lib)
cp = which('cp')
# cp --preserve=links libleveldb.* prefix/lib
args = glob.glob('libleveldb.*')
args.append(prefix + '/lib')
cp('--preserve=links', *args)
cp('-r', 'include/leveldb', prefix + '/include')

View File

@@ -36,6 +36,8 @@ class Libelf(Package):
version('0.8.13', '4136d7b4c04df68b686570afa26988ac')
version('0.8.12', 'e21f8273d9f5f6d43a59878dc274fec7')
provides('elf')
def install(self, spec, prefix):
configure("--prefix=" + prefix,
"--enable-shared",

View File

@@ -6,11 +6,12 @@ class Libffi(Package):
to call any function specified by a call interface description at
run time."""
homepage = "https://sourceware.org/libffi/"
url = "ftp://sourceware.org/pub/libffi/libffi-3.1.tar.gz"
version('3.1', 'f5898b29bbfd70502831a212d9249d10')
version('3.2.1','83b89587607e3eb65c70d361f13bab43',url = "ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz")
#version('3.1', 'f5898b29bbfd70502831a212d9249d10',url = "ftp://sourceware.org/pub/libffi/libffi-3.1.tar.gz") # Has a bug $(lib64) instead of ${lib64} in libffi.pc
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")

View File

@@ -10,7 +10,7 @@ class Libxcb(Package):
url = "http://xcb.freedesktop.org/dist/libxcb-1.11.tar.gz"
version('1.11', '1698dd837d7e6e94d029dbe8b3a82deb')
version('1.11.1', '118623c15a96b08622603a71d8789bf3')
depends_on("python")
depends_on("xcb-proto")

View File

@@ -24,6 +24,7 @@
##############################################################################
from spack import *
class Llvm(Package):
"""The LLVM Project is a collection of modular and reusable compiler and
toolchain technologies. Despite its name, LLVM has little to do with
@@ -31,14 +32,14 @@ class Llvm(Package):
that can be used to build them. The name "LLVM" itself is not an acronym;
it is the full name of the project.
"""
homepage = "http://llvm.org/"
list_url = "http://llvm.org/releases/download.html"
homepage = 'http://llvm.org/'
url = 'http://llvm.org/releases/3.7.0/llvm-3.7.0.src.tar.xz'
version('3.7.0', 'b98b9495e5655a672d6cb83e1a180f8e', url='http://llvm.org/releases/3.7.0/llvm-3.7.0.src.tar.xz')
version('3.6.2', '0c1ee3597d75280dee603bae9cbf5cc2', url='http://llvm.org/releases/3.6.2/llvm-3.6.2.src.tar.xz')
version('3.5.1', '2d3d8004f38852aa679e5945b8ce0b14', url='http://llvm.org/releases/3.5.1/llvm-3.5.1.src.tar.xz')
version('3.4.2', 'a20669f75967440de949ac3b1bad439c', url='http://llvm.org/releases/3.4.2/llvm-3.4.2.src.tar.gz')
version('3.0', 'a8e5f5f1c1adebae7b4a654c376a6005', url='http://llvm.org/releases/3.0/llvm-3.0.tar.gz')
version('2.9', '793138412d2af2c7c7f54615f8943771', url='http://llvm.org/releases/2.9/llvm-2.9.tgz')
version('2.8', '220d361b4d17051ff4bb21c64abe05ba', url='http://llvm.org/releases/2.8/llvm-2.8.tgz')
depends_on('python@2.7:')
def install(self, spec, prefix):
env['CXXFLAGS'] = self.compiler.cxx11_flag
@@ -46,9 +47,7 @@ def install(self, spec, prefix):
with working_dir('spack-build', create=True):
cmake('..',
'-DLLVM_REQUIRES_RTTI=1',
'-DPYTHON_EXECUTABLE=/usr/bin/python',
'-DPYTHON_INCLUDE_DIR=/usr/include/python2.6',
'-DPYTHON_LIBRARY=/usr/lib64/libpython2.6.so',
'-DPYTHON_EXECUTABLE=%s/bin/python' % spec['python'].prefix,
*std_cmake_args)
make()
make("install")

View File

@@ -0,0 +1,39 @@
import os
from spack import *
class Lmdb(Package):
"""Read-only mirror of official repo on openldap.org. Issues and
pull requests here are ignored. Use OpenLDAP ITS for issues.
http://www.openldap.org/software/repo.html"""
homepage = "http://www.openldap.org/software/repo.html"
url = "https://github.com/LMDB/lmdb/archive/LMDB_0.9.16.tar.gz"
version('0.9.16', '0de89730b8f3f5711c2b3a4ba517b648')
def install(self, spec, prefix):
os.chdir('libraries/liblmdb')
make()
mkdirp(prefix.bin)
mkdirp(prefix + '/man/man1')
mkdirp(prefix.lib)
mkdirp(prefix.include)
bins = ['mdb_stat', 'mdb_copy', 'mdb_dump', 'mdb_load']
for f in bins:
install(f, prefix.bin)
mans = ['mdb_stat.1', 'mdb_copy.1', 'mdb_dump.1', 'mdb_load.1']
for f in mans:
install(f, prefix + '/man/man1')
libs = ['liblmdb.a', 'liblmdb.so']
for f in libs:
install(f, prefix.lib)
includes = ['lmdb.h']
for f in includes:
install(f, prefix.include)

View File

@@ -0,0 +1,15 @@
from spack import *
class Matio(Package):
"""matio is an C library for reading and writing Matlab MAT files"""
homepage = "http://sourceforge.net/projects/matio/"
url = "http://downloads.sourceforge.net/project/matio/matio/1.5.2/matio-1.5.2.tar.gz"
version('1.5.2', '85b007b99916c63791f28398f6a4c6f1')
def install(self, spec, prefix):
configure('--prefix=%s' % prefix)
make()
make("install")

View File

@@ -33,11 +33,15 @@ class Mpich(Package):
list_url = "http://www.mpich.org/static/downloads/"
list_depth = 2
version('3.1.4', '2ab544607986486562e076b83937bba2')
version('3.1.3', '93cb17f91ac758cbf9174ecb03563778')
version('3.1.2', '7fbf4b81dcb74b07ae85939d1ceee7f1')
version('3.1.1', '40dc408b1e03cc36d80209baaa2d32b7')
version('3.1', '5643dd176499bfb7d25079aaff25f2ec')
version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0')
provides('mpi@:3', when='@3:')
provides('mpi@:1', when='@1:')
provides('mpi@:3.0', when='@3:')
provides('mpi@:1.3', when='@1:')
def setup_dependent_environment(self, module, spec, dep_spec):
"""For dependencies, make mpicc's use spack wrapper."""

View File

@@ -0,0 +1,28 @@
from spack import *
class Ncdu(Package):
"""
Ncdu is a disk usage analyzer with an ncurses interface. It is designed
to find space hogs on a remote server where you don't have an entire
gaphical setup available, but it is a useful tool even on regular desktop
systems. Ncdu aims to be fast, simple and easy to use, and should be able
to run in any minimal POSIX-like environment with ncurses installed.
"""
homepage = "http://dev.yorhel.nl/ncdu"
url = "http://dev.yorhel.nl/download/ncdu-1.11.tar.gz"
version('1.11', '9e44240a5356b029f05f0e70a63c4d12')
version('1.10', '7535decc8d54eca811493e82d4bfab2d')
version('1.9' , '93258079db897d28bb8890e2db89b1fb')
version('1.8' , '94d7a821f8a0d7ba8ef3dd926226f7d5')
version('1.7' , '172047c29d232724cc62e773e82e592a')
depends_on("ncurses")
def install(self, spec, prefix):
configure('--prefix=%s' % prefix,
'--with-ncurses=%s' % spec['ncurses'])
make()
make("install")

View File

@@ -11,6 +11,8 @@ class Ncurses(Package):
version('5.9', '8cb9c412e5f2d96bc6f459aa8c6282a1',
url='http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz')
version('6.0', 'ee13d052e1ead260d7c28071f46eefb1',
url='http://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.0.tar.gz')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix,

View File

@@ -0,0 +1,25 @@
diff -Nur netcdf-4.3.3/CMakeLists.txt netcdf-4.3.3.mpi/CMakeLists.txt
--- netcdf-4.3.3/CMakeLists.txt 2015-02-12 16:44:35.000000000 -0500
+++ netcdf-4.3.3.mpi/CMakeLists.txt 2015-10-14 16:44:41.176300658 -0400
@@ -753,6 +753,7 @@
SET(USE_PARALLEL OFF CACHE BOOL "")
MESSAGE(STATUS "Cannot find HDF5 library built with parallel support. Disabling parallel build.")
ELSE()
+ FIND_PACKAGE(MPI REQUIRED)
SET(USE_PARALLEL ON CACHE BOOL "")
SET(STATUS_PARALLEL "ON")
ENDIF()
diff -Nur netcdf-4.3.3/liblib/CMakeLists.txt netcdf-4.3.3.mpi/liblib/CMakeLists.txt
--- netcdf-4.3.3/liblib/CMakeLists.txt 2015-02-12 16:44:35.000000000 -0500
+++ netcdf-4.3.3.mpi/liblib/CMakeLists.txt 2015-10-14 16:44:57.757793634 -0400
@@ -71,6 +71,10 @@
SET(TLL_LIBS ${TLL_LIBS} ${CURL_LIBRARY})
ENDIF()
+IF(USE_PARALLEL)
+ SET(TLL_LIBS ${TLL_LIBS} ${MPI_C_LIBRARIES})
+ENDIF()
+
IF(USE_HDF4)
SET(TLL_LIBS ${TLL_LIBS} ${HDF4_LIBRARIES})
ENDIF()

View File

@@ -1,28 +1,27 @@
from spack import *
class Netcdf(Package):
"""NetCDF is a set of software libraries and self-describing, machine-independent
data formats that support the creation, access, and sharing of array-oriented
scientific data."""
"""NetCDF is a set of software libraries and self-describing, machine-independent
data formats that support the creation, access, and sharing of array-oriented
scientific data."""
homepage = "http://www.unidata.ucar.edu/software/netcdf/"
url = "ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4.3.3.tar.gz"
version('4.3.3', '5fbd0e108a54bd82cb5702a73f56d2ae')
patch('netcdf-4.3.3-mpi.patch')
# Dependencies:
# >HDF5
# >HDF5
depends_on("hdf5")
def install(self, spec, prefix):
configure(
"--prefix=%s" % prefix,
"--disable-dap", # Disable DAP.
"--disable-shared", # Don't build shared libraries (use static libs).
"CPPFLAGS=-I%s/include" % spec['hdf5'].prefix, # Link HDF5's include dir.
"LDFLAGS=-L%s/lib" % spec['hdf5'].prefix) # Link HDF5's lib dir.
make("install")
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
cmake('..',
"-DCMAKE_INSTALL_PREFIX:PATH=%s" % prefix,
"-DENABLE_DAP:BOOL=OFF", # Disable DAP.
"-DBUILD_SHARED_LIBS:BOOL=OFF") # Don't build shared libraries (use static libs).
# Check the newly installed netcdf package. Currently disabled.
# make("check")
make()
make("install")

View File

@@ -9,6 +9,8 @@ class NetlibBlas(Package):
version('3.5.0', 'b1d3e3e425b2e44a06760ff173104bdf')
variant('fpic', default=False, description="Build with -fpic compiler option")
# virtual dependency
provides('blas')
@@ -23,6 +25,10 @@ def patch(self):
mf.filter('^LOADER.*', 'LOADER = f90')
mf.filter('^CC =.*', 'CC = cc')
if '+fpic' in self.spec:
mf.filter('^OPTS.*=.*', 'OPTS = -O2 -frecursive -fpic')
mf.filter('^CFLAGS =.*', 'CFLAGS = -O3 -fpic')
def install(self, spec, prefix):
make('blaslib')

View File

@@ -1,6 +1,6 @@
from spack import *
class Lapack(Package):
class NetlibLapack(Package):
"""
LAPACK version 3.X is a comprehensive FORTRAN library that does
linear algebra operations including matrix inversions, least
@@ -18,9 +18,16 @@ class Lapack(Package):
version('3.4.0', '02d5706ec03ba885fc246e5fa10d8c70')
version('3.3.1', 'd0d533ec9a5b74933c2a1e84eedc58b4')
variant('shared', default=False, description="Build shared library version")
# virtual dependency
provides('lapack')
# blas is a virtual dependency.
depends_on('blas')
depends_on('cmake')
# Doesn't always build correctly in parallel
parallel = False
@@ -39,7 +46,14 @@ def get_blas_libs(self):
def install(self, spec, prefix):
blas_libs = ";".join(self.get_blas_libs())
cmake(".", '-DBLAS_LIBRARIES=' + blas_libs, *std_cmake_args)
cmake_args = [".", '-DBLAS_LIBRARIES=' + blas_libs]
if '+shared' in spec:
cmake_args.append('-DBUILD_SHARED_LIBS=ON')
cmake_args += std_cmake_args
cmake(*cmake_args)
make()
make("install")

View File

@@ -0,0 +1,23 @@
from spack import *
class OmptOpenmp(Package):
"""LLVM/Clang OpenMP runtime with OMPT support. This is a fork of the OpenMPToolsInterface/LLVM-openmp fork of the official LLVM OpenMP mirror. This library provides a drop-in replacement of the OpenMP runtimes for GCC, Intel and LLVM/Clang."""
homepage = "https://github.com/OpenMPToolsInterface/LLVM-openmp"
url = "http://github.com/khuck/LLVM-openmp/archive/v0.1-spack.tar.gz"
version('spack', '35227b2726e377faa433fc841226e036')
# depends_on("foo")
def install(self, spec, prefix):
with working_dir("runtime/build", create=True):
# FIXME: Modify the configure line to suit your build system here.
cmake('-DCMAKE_C_COMPILER=%s' % self.compiler.cc,
'-DCMAKE_CXX_COMPILER=%s' % self.compiler.cxx,
'-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'..', *std_cmake_args)
# FIXME: Add logic to build and install here
make()
make("install")

View File

@@ -1,5 +1,8 @@
import os
from spack import *
class Openmpi(Package):
"""Open MPI is a project combining technologies and resources from
several other projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI)
@@ -11,15 +14,28 @@ class Openmpi(Package):
homepage = "http://www.open-mpi.org"
version('1.8.2', 'ab538ed8e328079d566fc797792e016e',
url='http://www.open-mpi.org/software/ompi/v1.8/downloads/openmpi-1.8.2.tar.gz')
version('1.10.0', '280cf952de68369cebaca886c5ce0304',
url = "http://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.0.tar.bz2")
version('1.8.8', '0dab8e602372da1425e9242ae37faf8c',
url = 'http://www.open-mpi.org/software/ompi/v1.8/downloads/openmpi-1.8.8.tar.bz2')
version('1.6.5', '03aed2a4aa4d0b27196962a2a65fc475',
url = "http://www.open-mpi.org/software/ompi/v1.6/downloads/openmpi-1.6.5.tar.bz2")
patch('ad_lustre_rwcontig_open_source.patch', when="@1.6.5")
patch('llnl-platforms.patch', when="@1.6.5")
provides('mpi@:2')
provides('mpi@:2.2', when='@1.6.5') # Open MPI 1.6.5 supports MPI-2.2
provides('mpi@:3.0', when='@1.8.8') # Open MPI 1.8.8 supports MPI-3.0
provides('mpi@:3.0', when='@1.10.0') # Open MPI 1.10.0 supports MPI-3.0
def setup_dependent_environment(self, module, spec, dep_spec):
"""For dependencies, make mpicc's use spack wrapper."""
os.environ['OMPI_CC'] = 'cc'
os.environ['OMPI_CXX'] = 'c++'
os.environ['OMPI_FC'] = 'f90'
os.environ['OMPI_F77'] = 'f77'
def install(self, spec, prefix):
config_args = ["--prefix=%s" % prefix]
@@ -39,3 +55,55 @@ def install(self, spec, prefix):
configure(*config_args)
make()
make("install")
self.filter_compilers()
def filter_compilers(self):
"""Run after install to make the MPI compilers use the
compilers that Spack built the package with.
If this isn't done, they'll have CC, CXX and FC set
to Spack's generic cc, c++ and f90. We want them to
be bound to whatever compiler they were built with.
"""
kwargs = { 'ignore_absent' : True, 'backup' : False, 'string' : False }
dir = os.path.join(self.prefix, 'share/openmpi/')
cc_wrappers = ['mpicc-vt-wrapper-data.txt', 'mpicc-wrapper-data.txt',
'ortecc-wrapper-data.txt', 'shmemcc-wrapper-data.txt']
cxx_wrappers = ['mpic++-vt-wrapper-data.txt', 'mpic++-wrapper-data.txt',
'ortec++-wrapper-data.txt']
fc_wrappers = ['mpifort-vt-wrapper-data.txt',
'mpifort-wrapper-data.txt', 'shmemfort-wrapper-data.txt']
for wrapper in cc_wrappers:
filter_file('compiler=.*', 'compiler=%s' % self.compiler.cc,
os.path.join(dir, wrapper), **kwargs)
for wrapper in cxx_wrappers:
filter_file('compiler=.*', 'compiler=%s' % self.compiler.cxx,
os.path.join(dir, wrapper), **kwargs)
for wrapper in fc_wrappers:
filter_file('compiler=.*', 'compiler=%s' % self.compiler.fc,
os.path.join(dir, wrapper), **kwargs)
# These are symlinks in newer versions, so check that here
f77_wrappers = ['mpif77-vt-wrapper-data.txt', 'mpif77-wrapper-data.txt']
f90_wrappers = ['mpif90-vt-wrapper-data.txt', 'mpif90-wrapper-data.txt']
for wrapper in f77_wrappers:
path = os.path.join(dir, wrapper)
if not os.path.islink(path):
filter_file('compiler=.*', 'compiler=%s' % self.compiler.f77,
path, **kwargs)
for wrapper in f90_wrappers:
path = os.path.join(dir, wrapper)
if not os.path.islink(path):
filter_file('compiler=.*', 'compiler=%s' % self.compiler.fc,
path, **kwargs)

View File

@@ -0,0 +1,72 @@
from spack import *
class Paraview(Package):
homepage = 'http://www.paraview.org'
url = 'http://www.paraview.org/files/v4.4/ParaView-v4.4.0-source.tar.gz'
version('4.4.0', 'fa1569857dd680ebb4d7ff89c2227378', url='http://www.paraview.org/files/v4.4/ParaView-v4.4.0-source.tar.gz')
variant('python', default=False, description='Enable Python support')
variant('matplotlib', default=False, description='Enable Matplotlib support')
variant('numpy', default=False, description='Enable NumPy support')
variant('tcl', default=False, description='Enable TCL support')
variant('mpi', default=False, description='Enable MPI support')
variant('osmesa', default=False, description='Enable OSMesa support')
variant('qt', default=False, description='Enable Qt support')
depends_on('python', when='+python')
depends_on('py-numpy', when='+python+numpy')
depends_on('py-matplotlib', when='+python+matplotlib')
depends_on('tcl', when='+tcl')
depends_on('mpi', when='+mpi')
depends_on('qt', when='+qt')
depends_on('bzip2')
depends_on('freetype')
depends_on('hdf5') # drags in mpi
depends_on('jpeg')
depends_on('libpng')
depends_on('libtiff')
#depends_on('libxml2') # drags in python
depends_on('netcdf')
#depends_on('protobuf') # version mismatches?
#depends_on('sqlite') # external version not supported
depends_on('zlib')
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
def feature_to_bool(feature, on='ON', off='OFF'):
if feature in spec:
return on
return off
def nfeature_to_bool(feature):
return feature_to_bool(feature, on='OFF', off='ON')
feature_args = std_cmake_args[:]
feature_args.append('-DPARAVIEW_BUILD_QT_GUI:BOOL=%s' % feature_to_bool('+qt'))
feature_args.append('-DPARAVIEW_ENABLE_PYTHON:BOOL=%s' % feature_to_bool('+python'))
feature_args.append('-DPARAVIEW_USE_MPI:BOOL=%s' % feature_to_bool('+mpi'))
feature_args.append('-DVTK_ENABLE_TCL_WRAPPING:BOOL=%s' % feature_to_bool('+tcl'))
feature_args.append('-DVTK_OPENGL_HAS_OSMESA:BOOL=%s' % feature_to_bool('+osmesa'))
feature_args.append('-DVTK_USE_X:BOOL=%s' % nfeature_to_bool('+osmesa'))
feature_args.append('-DVTK_RENDERING_BACKEND:STRING=%s' % feature_to_bool('+opengl2', 'OpenGL2', 'OpenGL'))
feature_args.extend(std_cmake_args)
cmake('..',
'-DCMAKE_INSTALL_PREFIX:PATH=%s' % prefix,
'-DBUILD_TESTING:BOOL=OFF',
'-DVTK_USER_SYSTEM_FREETYPE:BOOL=ON',
'-DVTK_USER_SYSTEM_HDF5:BOOL=ON',
'-DVTK_USER_SYSTEM_JPEG:BOOL=ON',
#'-DVTK_USER_SYSTEM_LIBXML2:BOOL=ON',
'-DVTK_USER_SYSTEM_NETCDF:BOOL=ON',
'-DVTK_USER_SYSTEM_TIFF:BOOL=ON',
'-DVTK_USER_SYSTEM_ZLIB:BOOL=ON',
*feature_args)
make()
make('install')

View File

@@ -0,0 +1,21 @@
from spack import *
class Pidx(Package):
"""PIDX Parallel I/O Library.
PIDX is an efficient parallel I/O library that reads and writes
multiresolution IDX data files.
"""
homepage = "http://www.cedmav.com/pidx"
version('1.0', git='https://github.com/sci-visus/PIDX.git',
commit='6afa1cf71d1c41263296dc049c8fabaf73c296da')
depends_on("mpi")
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
cmake('..', *std_cmake_args)
make()
make("install")

View File

@@ -0,0 +1,17 @@
from spack import *
class PkgConfig(Package):
"""pkg-config is a helper tool used when compiling applications and libraries"""
homepage = "http://www.freedesktop.org/wiki/Software/pkg-config/"
url = "http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz"
version('0.28', 'aa3c86e67551adc3ac865160e34a2a0d')
parallel = False
def install(self, spec, prefix):
configure("--prefix=%s" %prefix, "--enable-shared")
make()
make("install")

View File

@@ -0,0 +1,16 @@
import os
from spack import *
class Protobuf(Package):
"""Google's data interchange format."""
homepage = "https://developers.google.com/protocol-buffers"
url = "https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.bz2"
version('2.5.0', 'a72001a9067a4c2c4e0e836d0f92ece4')
def install(self, spec, prefix):
configure("--prefix=" + prefix)
make()
make("check")
make("install")

View File

@@ -7,9 +7,22 @@ class PyNumpy(Package):
version('1.9.1', '78842b73560ec378142665e712ae4ad9')
version('1.9.2', 'a1ed53432dbcd256398898d35bc8e645')
extends('python')
depends_on('py-nose')
depends_on('netlib-blas+fpic')
depends_on('netlib-lapack+shared')
def patch(self):
filter_file(
"possible_executables = \['(gfortran|g77|ifort|efl)",
"possible_executables = ['fc",
"numpy/distutils/fcompiler/gnu.py",
"numpy/distutils/fcompiler/intel.py")
def install(self, spec, prefix):
with open('site.cfg', 'w') as f:
f.write('[DEFAULT]\n')
f.write('libraries=lapack,blas\n')
f.write('library_dirs=%s/lib:%s/lib\n' % (spec['blas'].prefix, spec['lapack'].prefix))
python('setup.py', 'install', '--prefix=%s' % prefix)

View File

@@ -11,6 +11,8 @@ class PyScipy(Package):
extends('python')
depends_on('py-nose')
depends_on('py-numpy')
depends_on('blas')
depends_on('lapack')
def install(self, spec, prefix):
python('setup.py', 'install', '--prefix=%s' % prefix)

View File

@@ -0,0 +1,13 @@
from spack import *
class PySphinx(Package):
"""Sphinx Documentation Generator."""
homepage = "http://sphinx-doc.org"
url = "https://pypi.python.org/packages/source/S/Sphinx/Sphinx-1.3.1.tar.gz"
version('1.3.1', '8786a194acf9673464c5455b11fd4332')
extends('python')
def install(self, spec, prefix):
python('setup.py', 'install', '--prefix=%s' % prefix)

View File

@@ -0,0 +1,18 @@
from spack import *
class Samtools(Package):
"""SAM Tools provide various utilities for manipulating alignments in the SAM format,
including sorting, merging, indexing and generating
alignments in a per-position format"""
homepage = "www.htslib.org"
version('1.2','988ec4c3058a6ceda36503eebecd4122',url = "https://github.com/samtools/samtools/releases/download/1.2/samtools-1.2.tar.bz2")
depends_on("zlib")
depends_on("mpc")
parallel=False
patch("samtools1.2.patch",level=0)
def install(self, spec, prefix):
make("prefix=%s" % prefix, "install")

View File

@@ -0,0 +1,20 @@
--- Makefile 2015-02-03 08:27:34.000000000 -0800
+++ Makefile.new 2015-07-21 10:38:27.881406892 -0700
@@ -26,7 +26,7 @@
CFLAGS = -g -Wall -O2
LDFLAGS =
LDLIBS =
-DFLAGS= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_CURSES_LIB=1
+DFLAGS= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_CURSES_LIB=0
LOBJS= bam_aux.o bam.o bam_import.o sam.o \
sam_header.o bam_plbuf.o
AOBJS= bam_index.o bam_plcmd.o sam_view.o \
@@ -37,7 +37,7 @@
faidx.o stats.o stats_isize.o bam_flags.o bam_split.o \
bam_tview.o bam_tview_curses.o bam_tview_html.o bam_lpileup.o
INCLUDES= -I. -I$(HTSDIR)
-LIBCURSES= -lcurses # -lXCurses
+#LIBCURSES= -lcurses # -lXCurses
prefix = /usr/local
exec_prefix = $(prefix)

View File

@@ -1,11 +1,10 @@
# FIXME: Add copyright statement
from spack import *
from contextlib import closing
class Scorep(Package):
"""The Score-P measurement infrastructure is a highly scalable and
easy-to-use tool suite for profiling, event tracing, and online
"""The Score-P measurement infrastructure is a highly scalable and
easy-to-use tool suite for profiling, event tracing, and online
analysis of HPC applications."""
# FIXME: add a proper url for your package's homepage here.
@@ -20,7 +19,7 @@ class Scorep(Package):
depends_on("mpi")
depends_on("papi")
# depends_on("otf2@1.2:1.2.1") # only Score-P 1.2.x
depends_on("otf2")
depends_on("otf2")
depends_on("opari2")
depends_on("cube@4.2:4.2.3")
@@ -53,12 +52,12 @@ def install(self, spec, prefix):
# Use a custom compiler configuration, otherwise the score-p
# build system messes with spack's compiler settings.
# Create these three files in the build directory
with closing(open("platform-backend-user-provided", "w")) as backend_file:
with open("platform-backend-user-provided", "w") as backend_file:
backend_file.write(self.backend_user_provided)
with closing(open("platform-frontend-user-provided", "w")) as frontend_file:
with open("platform-frontend-user-provided", "w") as frontend_file:
frontend_file.write(self.frontend_user_provided)
with closing(open("platform-mpi-user-provided", "w")) as mpi_file:
mpi_file.write(self.mpi_user_provided)
with open("platform-mpi-user-provided", "w") as mpi_file:
mpi_file.write(self.mpi_user_provided)
configure_args = ["--prefix=%s" % prefix,
"--with-custom-compilers",

View File

@@ -28,12 +28,14 @@ class Scr(Package):
"""SCR caches checkpoint data in storage on the compute nodes of a
Linux cluster to provide a fast, scalable checkpoint/restart
capability for MPI codes"""
homepage = "https://computation.llnl.gov/project/scr/"
url = "http://downloads.sourceforge.net/project/scalablecr/releases/scr-1.1-7.tar.gz"
depends_on("mpi")
# depends_on("dtcmp")
version('1.1-7', 'a5930e9ab27d1b7049447c2fd7734ebd')
version('1.1-7', 'a5930e9ab27d1b7049447c2fd7734ebd', url='http://downloads.sourceforge.net/project/scalablecr/releases/scr-1.1-7.tar.gz')
version('1.1.8', '6a0f11ad18e27fcfc00a271ff587b06e', url='https://github.com/hpc/scr/releases/download/v1.1.8/scr-1.1.8.tar.gz')
def install(self, spec, prefix):
configure("--prefix=" + prefix,

View File

@@ -0,0 +1,15 @@
import os
from spack import *
class Snappy(Package):
"""A fast compressor/decompressor: https://code.google.com/p/snappy"""
homepage = "https://code.google.com/p/snappy"
url = "https://github.com/google/snappy/releases/download/1.1.3/snappy-1.1.3.tar.gz"
version('1.1.3', '7358c82f133dc77798e4c2062a749b73')
def install(self, spec, prefix):
configure("--prefix=" + prefix)
make()
make("install")

View File

@@ -9,17 +9,20 @@ class Stat(Package):
version('2.1.0', 'ece26beaf057aa9134d62adcdda1ba91')
version('2.0.0', 'c7494210b0ba26b577171b92838e1a9b')
variant('dysect', default=False, description="enable DySectAPI")
depends_on('libelf')
depends_on('libdwarf')
depends_on('dyninst')
depends_on('graphlib')
depends_on('graphviz')
depends_on('launchmon')
depends_on('mrnet')
patch('configure_mpicxx.patch', when='@2.1.0')
def install(self, spec, prefix):
configure(
configure_args = [
"--enable-gui",
"--prefix=%s" % prefix,
"--disable-examples", # Examples require MPI: avoid this dependency.
@@ -27,7 +30,11 @@ def install(self, spec, prefix):
"--with-mrnet=%s" % spec['mrnet'].prefix,
"--with-graphlib=%s" % spec['graphlib'].prefix,
"--with-stackwalker=%s" % spec['dyninst'].prefix,
"--with-libdwarf=%s" % spec['libdwarf'].prefix)
"--with-libdwarf=%s" % spec['libdwarf'].prefix
]
if '+dysect' in spec:
configure_args.append('--enable-dysectapi')
configure(*configure_args)
make(parallel=False)
make("install")

View File

@@ -38,6 +38,8 @@ class Swig(Package):
version('3.0.2', '62f9b0d010cef36a13a010dc530d0d41')
depends_on('pcre')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()

View File

@@ -0,0 +1,50 @@
from spack import *
class Trilinos(Package):
"""
The Trilinos Project is an effort to develop algorithms and enabling technologies within an object-oriented
software framework for the solution of large-scale, complex multi-physics engineering and scientific problems.
A unique design feature of Trilinos is its focus on packages.
"""
homepage = "https://trilinos.org/"
url = "http://trilinos.csbsju.edu/download/files/trilinos-12.2.1-Source.tar.gz"
version('12.2.1', '6161926ea247863c690e927687f83be9')
version('12.0.1', 'bd99741d047471e127b8296b2ec08017')
version('11.14.3', '2f4f83f8333e4233c57d0f01c4b57426')
version('11.14.2', 'a43590cf896c677890d75bfe75bc6254')
version('11.14.1', '40febc57f76668be8b6a77b7607bb67f')
variant('mpi', default=True, description='Add a dependency on MPI and enables MPI dependent packages')
# Everything should be compiled with -fpic
depends_on('blas')
depends_on('lapack')
depends_on('boost')
depends_on('netcdf')
depends_on('matio')
depends_on('glm')
depends_on('swig')
depends_on('mpi', when='+mpi')
def install(self, spec, prefix):
options = [
'-DTrilinos_ENABLE_ALL_PACKAGES:BOOL=ON',
'-DTrilinos_ENABLE_TESTS:BOOL=OFF',
'-DTrilinos_ENABLE_EXAMPLES:BOOL=OFF',
'-DBUILD_SHARED_LIBS:BOOL=ON',
'-DBLAS_LIBRARY_DIRS:PATH=%s' % spec['blas'].prefix,
'-DLAPACK_LIBRARY_DIRS:PATH=%s' % spec['lapack'].prefix
]
if '+mpi' in spec:
mpi_options = ['-DTPL_ENABLE_MPI:BOOL=ON']
options.extend(mpi_options)
# -DCMAKE_INSTALL_PREFIX and all the likes...
options.extend(std_cmake_args)
with working_dir('spack-build', create=True):
cmake('..', *options)
make()
make('install')

View File

@@ -8,9 +8,13 @@ class Xz(Package):
homepage = "http://tukaani.org/xz/"
url = "http://tukaani.org/xz/xz-5.2.0.tar.bz2"
version('5.2.0', '867cc8611760240ebf3440bd6e170bb9')
version('5.2.0', '867cc8611760240ebf3440bd6e170bb9',
url = 'http://tukaani.org/xz/xz-5.2.0.tar.bz2')
version('5.2.2', 'f90c9a0c8b259aee2234c4e0d7fd70af',
url = 'http://tukaani.org/xz/xz-5.2.2.tar.bz2')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")