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:
15
var/spack/packages/activeharmony/package.py
Normal file
15
var/spack/packages/activeharmony/package.py
Normal 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 *
|
||||
|
34
var/spack/packages/apex/package.py
Normal file
34
var/spack/packages/apex/package.py
Normal 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")
|
@@ -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")
|
||||
|
@@ -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')
|
||||
|
16
var/spack/packages/bowtie2/bowtie2-2.5.patch
Normal file
16
var/spack/packages/bowtie2/bowtie2-2.5.patch
Normal 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
|
24
var/spack/packages/bowtie2/package.py
Normal file
24
var/spack/packages/bowtie2/package.py
Normal 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)
|
||||
|
@@ -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)
|
||||
|
@@ -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
|
||||
|
@@ -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")
|
||||
|
||||
|
25
var/spack/packages/doxygen/package.py
Normal file
25
var/spack/packages/doxygen/package.py
Normal 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")
|
26
var/spack/packages/elfutils/package.py
Normal file
26
var/spack/packages/elfutils/package.py
Normal 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")
|
||||
|
18
var/spack/packages/fish/package.py
Normal file
18
var/spack/packages/fish/package.py
Normal 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")
|
@@ -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)
|
||||
|
21
var/spack/packages/gflags/package.py
Normal file
21
var/spack/packages/gflags/package.py
Normal 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")
|
17
var/spack/packages/ghostscript/package.py
Normal file
17
var/spack/packages/ghostscript/package.py
Normal 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")
|
||||
|
19
var/spack/packages/glm/package.py
Normal file
19
var/spack/packages/glm/package.py
Normal 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")
|
15
var/spack/packages/glog/package.py
Normal file
15
var/spack/packages/glog/package.py
Normal 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")
|
21
var/spack/packages/graphviz/package.py
Normal file
21
var/spack/packages/graphviz/package.py
Normal 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")
|
||||
|
@@ -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")
|
||||
|
29
var/spack/packages/leveldb/package.py
Normal file
29
var/spack/packages/leveldb/package.py
Normal 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')
|
@@ -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",
|
||||
|
@@ -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")
|
||||
|
||||
|
@@ -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")
|
||||
|
||||
|
@@ -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")
|
||||
|
39
var/spack/packages/lmdb/package.py
Normal file
39
var/spack/packages/lmdb/package.py
Normal 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)
|
15
var/spack/packages/matio/package.py
Normal file
15
var/spack/packages/matio/package.py
Normal 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")
|
@@ -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."""
|
||||
|
28
var/spack/packages/ncdu/package.py
Normal file
28
var/spack/packages/ncdu/package.py
Normal 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")
|
@@ -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,
|
||||
|
25
var/spack/packages/netcdf/netcdf-4.3.3-mpi.patch
Normal file
25
var/spack/packages/netcdf/netcdf-4.3.3-mpi.patch
Normal 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()
|
@@ -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")
|
||||
|
@@ -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')
|
||||
|
@@ -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")
|
||||
|
23
var/spack/packages/ompt-openmp/package.py
Normal file
23
var/spack/packages/ompt-openmp/package.py
Normal 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")
|
@@ -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)
|
||||
|
||||
|
||||
|
72
var/spack/packages/paraview/package.py
Normal file
72
var/spack/packages/paraview/package.py
Normal 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')
|
21
var/spack/packages/pidx/package.py
Normal file
21
var/spack/packages/pidx/package.py
Normal 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")
|
17
var/spack/packages/pkg-config/package.py
Normal file
17
var/spack/packages/pkg-config/package.py
Normal 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")
|
||||
|
16
var/spack/packages/protobuf/package.py
Normal file
16
var/spack/packages/protobuf/package.py
Normal 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")
|
@@ -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)
|
||||
|
@@ -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)
|
||||
|
13
var/spack/packages/py-sphinx/package.py
Normal file
13
var/spack/packages/py-sphinx/package.py
Normal 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)
|
18
var/spack/packages/samtools/package.py
Normal file
18
var/spack/packages/samtools/package.py
Normal 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")
|
||||
|
20
var/spack/packages/samtools/samtools1.2.patch
Normal file
20
var/spack/packages/samtools/samtools1.2.patch
Normal 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)
|
@@ -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",
|
||||
|
@@ -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,
|
||||
|
15
var/spack/packages/snappy/package.py
Normal file
15
var/spack/packages/snappy/package.py
Normal 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")
|
@@ -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")
|
||||
|
@@ -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()
|
||||
|
50
var/spack/packages/trilinos/package.py
Normal file
50
var/spack/packages/trilinos/package.py
Normal 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')
|
@@ -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")
|
||||
|
||||
|
Reference in New Issue
Block a user