Merge branch 'develop' into features/external-packages

Conflicts:
	lib/spack/spack/cmd/mirror.py
	lib/spack/spack/concretize.py
	lib/spack/spack/config.py
	lib/spack/spack/spec.py
	lib/spack/spack/stage.py
	var/spack/packages/mvapich2/package.py
This commit is contained in:
Matthew LeGendre
2016-01-25 10:52:17 -08:00
642 changed files with 29965 additions and 2872 deletions

View File

@@ -1,12 +0,0 @@
compilers:
all:
clang@3.3:
cc: /path/to/clang
cxx: /path/to/clang++
f77: None
fc: None
gcc@4.5.0:
cc: /path/to/gcc
cxx: /path/to/g++
f77: /path/to/gfortran
fc: /path/to/gfortran

View File

@@ -1,13 +0,0 @@
packages:
- externaltool:
nobuild: True
- externaltool@1.0%gcc@4.5.0:
path: /path/to/external_tool
- externalvirtual@2.0%clang@3.3:
path: /path/to/external_virtual_clang
nobuild: True
- externalvirtual@1.0%gcc@4.5.0:
path: /path/to/external_virtual_gcc
nobuild: True

View File

@@ -1,33 +0,0 @@
from spack import *
class R(Package):
"""R is 'GNU S', a freely available language and environment for
statistical computing and graphics which provides a wide va
riety of statistical and graphical techniques: linear and
nonlinear modelling, statistical tests, time series analysis,
classification, clustering, etc. Please consult the R project
homepage for further information."""
homepage = "http://www.example.com"
url = "http://cran.cnr.berkeley.edu/src/base/R-3/R-3.1.2.tar.gz"
version('3.1.2', '3af29ec06704cbd08d4ba8d69250ae74')
depends_on("readline")
depends_on("ncurses")
depends_on("icu")
depends_on("glib")
depends_on("zlib")
depends_on("libtiff")
depends_on("jpeg")
depends_on("cairo")
depends_on("pango")
depends_on("freetype")
depends_on("tcl")
depends_on("tk")
def install(self, spec, prefix):
configure("--prefix=%s" % prefix,
"--enable-R-shlib",
"--enable-BLAS-shlib")
make()
make("install")

View File

@@ -1,17 +0,0 @@
from spack import *
class Binutils(Package):
"""GNU binutils, which contain the linker, assembler, objdump and others"""
homepage = "http://www.gnu.org/software/binutils/"
url = "ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.bz2"
version('2.25', 'd9f3303f802a5b6b0bb73a335ab89d66')
version('2.24', 'e0f71a7b2ddab0f8612336ac81d9636b')
version('2.23.2', '4f8fa651e35ef262edc01d60fb45702e')
version('2.20.1', '2b9dc8f2b7dbd5ec5992c6e29de0b764')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")

View File

@@ -1,66 +0,0 @@
from spack import *
class Boost(Package):
"""Boost provides free peer-reviewed portable C++ source
libraries, emphasizing libraries that work well with the C++
Standard Library.
Boost libraries are intended to be widely useful, and usable
across a broad spectrum of applications. The Boost license
encourages both commercial and non-commercial use.
"""
homepage = "http://www.boost.org"
url = "http://downloads.sourceforge.net/project/boost/boost/1.55.0/boost_1_55_0.tar.bz2"
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')
version('1.52.0', '3a855e0f919107e0ca4de4d84ad3f750')
version('1.51.0', '4b6bd483b692fd138aef84ed2c8eb679')
version('1.50.0', '52dd00be775e689f55a987baebccc462')
version('1.49.0', '0d202cb811f934282dea64856a175698')
version('1.48.0', 'd1e9a7a7f532bb031a3c175d86688d95')
version('1.47.0', 'a2dc343f7bc7f83f8941e47ed4a18200')
version('1.46.1', '7375679575f4c8db605d426fc721d506')
version('1.46.0', '37b12f1702319b73876b0097982087e0')
version('1.45.0', 'd405c606354789d0426bc07bea617e58')
version('1.44.0', 'f02578f5218f217a9f20e9c30e119c6a')
version('1.43.0', 'dd49767bfb726b0c774f7db0cef91ed1')
version('1.42.0', '7bf3b4eb841b62ffb0ade2b82218ebe6')
version('1.41.0', '8bb65e133907db727a2a825c5400d0a6')
version('1.40.0', 'ec3875caeac8c52c7c129802a8483bd7')
version('1.39.0', 'a17281fd88c48e0d866e1a12deecbcc0')
version('1.38.0', '5eca2116d39d61382b8f8235915cb267')
version('1.37.0', '8d9f990bfb7e83769fa5f1d6f065bc92')
version('1.36.0', '328bfec66c312150e4c2a78dcecb504b')
version('1.35.0', 'dce952a7214e72d6597516bcac84048b')
version('1.34.1', '2d938467e8a448a2c9763e0a9f8ca7e5')
version('1.34.0', 'ed5b9291ffad776f8757a916e1726ad0')
def url_for_version(self, version):
"""Handle Boost's weird URLs, which write the version two different ways."""
parts = [str(p) for p in Version(version)]
dots = ".".join(parts)
underscores = "_".join(parts)
return "http://downloads.sourceforge.net/project/boost/boost/%s/boost_%s.tar.bz2" % (
dots, underscores)
def install(self, spec, prefix):
bootstrap = Executable('./bootstrap.sh')
bootstrap()
# b2 used to be called bjam, before 1.47 (sigh)
b2name = './b2' if spec.satisfies('@1.47:') else './bjam'
b2 = Executable(b2name)
b2('install',
'-j %s' % make_jobs,
'--prefix=%s' % prefix)

View File

@@ -1,34 +0,0 @@
from spack import *
from glob import glob
class Bzip2(Package):
"""bzip2 is a freely available, patent free high-quality data
compressor. It typically compresses files to within 10% to 15%
of the best available techniques (the PPM family of statistical
compressors), whilst being around twice as fast at compression
and six times faster at decompression."""
homepage = "http://www.bzip.org"
url = "http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz"
version('1.0.6', '00b516f4704d4a7cb50a1d97e6e8e15b')
def install(self, spec, prefix):
# No configure system -- have to filter the makefile for this package.
filter_file(r'CC=gcc', 'CC=cc', 'Makefile', string=True)
make('-f', 'Makefile-libbz2_so')
make('clean')
make("install", "PREFIX=%s" % prefix)
bzip2_exe = join_path(prefix.bin, 'bzip2')
install('bzip2-shared', bzip2_exe)
for libfile in glob('libbz2.so*'):
install(libfile, prefix.lib)
bunzip2 = join_path(prefix.bin, 'bunzip2')
remove(bunzip2)
symlink(bzip2_exe, bunzip2)
bzcat = join_path(prefix.bin, 'bzcat')
remove(bzcat)
symlink(bzip2_exe, bzcat)

View File

@@ -1,55 +0,0 @@
# FIXME: Add copyright statement
#
from spack import *
from contextlib import closing
class Cube(Package):
"""Cube the profile viewer for Score-P and Scalasca profiles. It
displays a multi-dimensional performance space consisting
of the dimensions (i) performance metric, (ii) call path,
and (iii) system resource."""
homepage = "http://www.scalasca.org/software/cube-4.x/download.html"
url = "http://apps.fz-juelich.de/scalasca/releases/cube/4.2/dist/cube-4.2.3.tar.gz"
version('4.2.3', '8f95b9531f5a8f8134f279c2767c9b20')
version('4.3TP1', 'a2090fbc7b2ba394bd5c09ba971e237f',
url = 'http://apps.fz-juelich.de/scalasca/releases/cube/4.3/dist/cube-4.3-TP1.tar.gz')
# Using CC as C++ compiler provides quirky workaround for a Score-P build system attempt
# to guess a matching C compiler when configuring scorep-score
backend_user_provided = """\
CC=cc
CXX=CC
F77=f77
FC=f90
#CFLAGS=-fPIC
#CXXFLAGS=-fPIC
"""
frontend_user_provided = """\
CC_FOR_BUILD=cc
CXX_FOR_BUILD=CC
F77_FOR_BUILD=f70
FC_FOR_BUILD=f90
"""
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("vendor/common/build-config/platforms/platform-backend-user-provided", "w")) as backend_file:
backend_file.write(self.backend_user_provided)
with closing(open("vendor/common/build-config/platforms/platform-frontend-user-provided", "w")) as frontend_file:
frontend_file.write(self.frontend_user_provided)
configure_args = ["--prefix=%s" % prefix,
"--with-custom-compilers",
"--without-paraver",
"--without-gui"]
configure(*configure_args)
make(parallel=False)
make("install", parallel=False)

View File

@@ -1,19 +0,0 @@
from spack import *
class Czmq(Package):
""" A C interface to the ZMQ library """
homepage = "http://czmq.zeromq.org"
url = "https://github.com/zeromq/czmq/archive/v3.0.2.tar.gz"
version('3.0.2', '23e9885f7ee3ce88d99d0425f52e9be1', url='https://github.com/zeromq/czmq/archive/v3.0.2.tar.gz')
depends_on('zeromq')
def install(self, spec, prefix):
bash = which("bash")
bash("./autogen.sh")
configure("--prefix=%s" % prefix)
make()
make("install")

View File

@@ -1,27 +0,0 @@
from spack import *
class Git(Package):
"""Git is a free and open source distributed version control
system designed to handle everything from small to very large
projects with speed and efficiency."""
homepage = "http://git-scm.com"
url = "https://www.kernel.org/pub/software/scm/git/git-2.2.1.tar.xz"
version('2.2.1', '43e01f9d96ba8c11611e0eef0d9f9f28')
# Use system openssl.
# depends_on("openssl")
# Use system perl for now.
# depends_on("perl")
# depends_on("pcre")
depends_on("zlib")
def install(self, spec, prefix):
configure("--prefix=%s" % prefix,
"--without-pcre",
"--without-python")
make()
make("install")

View File

@@ -1,41 +0,0 @@
from spack import *
class Hdf5(Package):
"""HDF5 is a data model, library, and file format for storing and managing
data. It supports an unlimited variety of datatypes, and is designed for
flexible and efficient I/O and for high volume and complex data.
"""
homepage = "http://www.hdfgroup.org/HDF5/"
url = "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.13/src/hdf5-1.8.13.tar.gz"
list_url = "http://www.hdfgroup.org/ftp/HDF5/releases"
list_depth = 3
version('1.8.13', 'c03426e9e77d7766944654280b467289')
depends_on("mpi")
depends_on("zlib")
# TODO: currently hard-coded to use OpenMPI
def install(self, spec, prefix):
configure(
"--prefix=%s" % prefix,
"--with-zlib=%s" % spec['zlib'].prefix,
"--enable-parallel",
"--enable-shared",
"CC=%s" % spec['mpich'].prefix.bin + "/mpicc",
"CXX=%s" % spec['mpich'].prefix.bin + "/mpic++")
make()
make("install")
def url_for_version(self, version):
v = str(version)
if version == Version("1.2.2"):
return "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-" + v + ".tar.gz"
elif version < Version("1.7"):
return "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-" + version.up_to(2) + "/hdf5-" + v + ".tar.gz"
else:
return "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-" + v + "/src/hdf5-" + v + ".tar.gz"

View File

@@ -1,21 +0,0 @@
from spack import *
class Libpciaccess(Package):
"""Generic PCI access library."""
homepage = "http://cgit.freedesktop.org/xorg/lib/libpciaccess/"
url = "http://cgit.freedesktop.org/xorg/lib/libpciaccess/"
version('0.13.4', git='http://anongit.freedesktop.org/git/xorg/lib/libpciaccess.git',
tag='libpciaccess-0.13.4')
depends_on('autoconf')
depends_on('libtool')
def install(self, spec, prefix):
from subprocess import call
call(["./autogen.sh"])
configure("--prefix=%s" % prefix)
make()
make("install")

View File

@@ -1,20 +0,0 @@
from spack import *
class Libxml2(Package):
"""Libxml2 is the XML C parser and toolkit developed for the Gnome
project (but usable outside of the Gnome platform), it is free
software available under the MIT License."""
homepage = "http://xmlsoft.org"
url = "http://xmlsoft.org/sources/libxml2-2.9.2.tar.gz"
version('2.9.2', '9e6a9aca9d155737868b3dc5fd82f788')
extends('python')
depends_on('zlib')
depends_on('xz')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")

View File

@@ -1,54 +0,0 @@
##############################################################################
# Copyright (c) 2013, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Written by David Beckingsale, david@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://scalability-llnl.github.io/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License (as published by
# the Free Software Foundation) version 2.1 dated February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
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
traditional virtual machines, though it does provide helpful libraries
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"
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')
def install(self, spec, prefix):
env['CXXFLAGS'] = self.compiler.cxx11_flag
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',
*std_cmake_args)
make()
make("install")

View File

@@ -1,27 +0,0 @@
from spack import *
class Metis(Package):
"""METIS is a set of serial programs for partitioning graphs,
partitioning finite element meshes, and producing fill reducing
orderings for sparse matrices. The algorithms implemented in
METIS are based on the multilevel recursive-bisection,
multilevel k-way, and multi-constraint partitioning schemes."""
homepage = "http://glaros.dtc.umn.edu/gkhome/metis/metis/overview"
url = "http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz"
version('5.1.0', '5465e67079419a69e0116de24fce58fe')
depends_on('mpi')
def install(self, spec, prefix):
cmake(".",
'-DGKLIB_PATH=%s/GKlib' % pwd(),
'-DSHARED=1',
'-DCMAKE_C_COMPILER=mpicc',
'-DCMAKE_CXX_COMPILER=mpicxx',
'-DSHARED=1',
*std_cmake_args)
make()
make("install")

View File

@@ -1,20 +0,0 @@
from spack import *
class Mrnet(Package):
"""The MRNet Multi-Cast Reduction Network."""
homepage = "http://paradyn.org/mrnet"
url = "ftp://ftp.cs.wisc.edu/paradyn/mrnet/mrnet_4.0.0.tar.gz"
version('4.0.0', 'd00301c078cba57ef68613be32ceea2f')
version('4.1.0', '5a248298b395b329e2371bf25366115c')
parallel = False
depends_on("boost")
def install(self, spec, prefix):
configure("--prefix=%s" %prefix, "--enable-shared")
make()
make("install")

View File

@@ -1,117 +0,0 @@
import os
from spack import *
class Mvapich2(Package):
"""mvapich2 is an MPI implmenetation for infiniband networks."""
homepage = "http://mvapich.cse.ohio-state.edu/"
version('1.9', '5dc58ed08fd3142c260b70fe297e127c',
url="http://mvapich.cse.ohio-state.edu/download/mvapich2/mv2/mvapich2-1.9.tgz")
patch('ad_lustre_rwcontig_open_source.patch', when='@1.9')
version('2.0', '9fbb68a4111a8b6338e476dc657388b4',
url='http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.0.tar.gz')
version('2.1', '0095ceecb19bbb7fb262131cb9c2cdd6',
url='http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.1.tar.gz')
provides('mpi@:2.2', when='@1.9') # MVAPICH2-1.9 supports MPI 2.2
provides('mpi@:3.0', when='@2.0') # MVAPICH2-2.0 supports MPI 3.0
variant('psm', default=False, description="build with psm")
variant('pmi', default=False, description="build with pmi")
depends_on('pmgr_collective', when='+pmi')
def install(self, spec, prefix):
# we'll set different configure flags depending on our environment
configure_args = []
# TODO: The MPICH*_FLAGS have a different name for 1.9
if '+debug' in spec:
# set configure flags for debug build
configure_args.append("--disable-fast")
configure_args.append("--enable-g=dbg")
configure_args.append("--enable-error-checking=runtime")
configure_args.append("--enable-error-messages=all")
configure_args.append("--enable-nmpi-as-mpi")
if "%gnu" in spec:
# set variables for GNU compilers
os.environ['MPICHLIB_CFLAGS'] = "-g -O0"
os.environ['MPICHLIB_CXXFLAGS'] = "-g -O0"
os.environ['MPICHLIB_FFLAGS'] = "-g -O0 -fno-second-underscore"
os.environ['MPICHLIB_F90FLAGS'] = "-g -O0 -fno-second-underscore"
elif "%intel" in spec:
# set variables for Inel compilers
os.environ['MPICHLIB_CFLAGS'] = "-g -O0"
os.environ['MPICHLIB_CXXFLAGS'] = "-g -O0"
os.environ['MPICHLIB_FFLAGS'] = "-g -O0"
os.environ['MPICHLIB_F90FLAGS'] = "-g -O0"
elif "%pgi" in spec:
# set variables for PGI compilers
os.environ['MPICHLIB_CFLAGS'] = "-g -O0 -fPIC"
os.environ['MPICHLIB_CXXFLAGS'] = "-g -O0 -fPIC"
os.environ['MPICHLIB_FFLAGS'] = "-g -O0 -fPIC"
os.environ['MPICHLIB_F90FLAGS'] = "-g -O0 -fPIC"
else:
# set configure flags for normal optimizations
configure_args.append("--enable-fast=all")
configure_args.append("--enable-g=dbg")
configure_args.append("--enable-nmpi-as-mpi")
if "%gnu" in spec:
# set variables for what compilers
os.environ['MPICHLIB_CFLAGS'] = "-g -O2"
os.environ['MPICHLIB_CXXFLAGS'] = "-g -O2"
os.environ['MPICHLIB_FFLAGS'] = "-g -O2 -fno-second-underscore"
os.environ['MPICHLIB_F90FLAGS'] = "-g -O2 -fno-second-underscore"
elif "%intel" in spec:
# set variables for Inel compilers
os.environ['MPICHLIB_CFLAGS'] = "-g -O2"
os.environ['MPICHLIB_CXXFLAGS'] = "-g -O2"
os.environ['MPICHLIB_FFLAGS'] = "-g -O2"
os.environ['MPICHLIB_F90FLAGS'] = "-g -O2"
elif "%pgi" in spec:
# set variables for PGI compilers
os.environ['MPICHLIB_CFLAGS'] = "-g -O2 -fPIC"
os.environ['MPICHLIB_CXXFLAGS'] = "-g -O2 -fPIC"
os.environ['MPICHLIB_FFLAGS'] = "-g -O2 -fPIC"
os.environ['MPICHLIB_F90FLAGS'] = "-g -O2 -fPIC"
# determine network type by variant
if "+psm" in spec:
# throw this flag on QLogic systems to use PSM
configure_args.append("--with-device=ch3:psm")
else:
# throw this flag on IB systems
configure_args.append("--with-device=ch3:mrail")
configure_args.append("--with-rdma=gen2")
if "+pmi" in spec:
configure_args.append("--with-pmi=pmgr_collective" % spec['pmgr_collective'].prefix)
else:
configure_args.append("--with-pmi=slurm")
# TODO: shared-memory build
# TODO: CUDA
# TODO: other file systems like panasis
configure(
"--prefix=" + prefix,
"--enable-f77", "--enable-fc", "--enable-cxx",
"--enable-shared", "--enable-sharedlibs=gcc",
"--enable-debuginfo",
"--with-pm=no",
"--enable-romio", "--with-file-system=lustre+nfs+ufs",
"--disable-mpe", "--without-mpe",
"--disable-silent-rules",
*configure_args)
make()
make("install")

View File

@@ -1,28 +0,0 @@
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."""
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')
# Dependencies:
# >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")
# Check the newly installed netcdf package. Currently disabled.
# make("check")

View File

@@ -1,65 +0,0 @@
# FIXME: Add copyright statement here
from spack import *
from contextlib import closing
class Opari2(Package):
"""OPARI2 is a source-to-source instrumentation tool for OpenMP and
hybrid codes. It surrounds OpenMP directives and runtime library
calls with calls to the POMP2 measurement interface.
OPARI2 will provide you with a new initialization method that allows
for multi-directory and parallel builds as well as the usage of
pre-instrumented libraries. Furthermore, an efficient way of
tracking parent-child relationships was added. Additionally, we
extended OPARI2 to support instrumentation of OpenMP 3.0
tied tasks. """
homepage = "http://www.vi-hps.org/projects/score-p"
url = "http://www.vi-hps.org/upload/packages/opari2/opari2-1.1.2.tar.gz"
version('1.1.2', '9a262c7ca05ff0ab5f7775ae96f3539e')
backend_user_provided = """\
CC=cc
CXX=c++
F77=f77
FC=f90
CFLAGS=-fPIC
CXXFLAGS=-fPIC
"""
frontend_user_provided = """\
CC_FOR_BUILD=cc
CXX_FOR_BUILD=c++
F77_FOR_BUILD=f70
FC_FOR_BUILD=f90
CFLAGS_FOR_BUILD=-fPIC
CXXFLAGS_FOR_BUILD=-fPIC
"""
mpi_user_provided = """\
MPICC=mpicc
MPICXX=mpicxx
MPIF77=mpif77
MPIFC=mpif90
MPI_CFLAGS=-fPIC
MPI_CXXFLAGS=-fPIC
"""
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:
backend_file.write(self.backend_user_provided)
with closing(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)
# FIXME: Modify the configure line to suit your build system here.
configure("--prefix=%s" % prefix,
"--with-custom-compilers",
"--enable-shared")
# FIXME: Add logic to build and install here
make()
make("install")

View File

@@ -1,41 +0,0 @@
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)
in order to build the best MPI library available. A completely
new MPI-2 compliant implementation, Open MPI offers advantages
for system and software vendors, application developers and
computer science researchers.
"""
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.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')
def install(self, spec, prefix):
config_args = ["--prefix=%s" % prefix]
# TODO: use variants for this, e.g. +lanl, +llnl, etc.
# use this for LANL builds, but for LLNL builds, we need:
# "--with-platform=contrib/platform/llnl/optimized"
if self.version == ver("1.6.5") and '+lanl' in spec:
config_args.append("--with-platform=contrib/platform/lanl/tlcc2/optimized-nopanasas")
# TODO: Spack should make it so that you can't actually find
# these compilers if they're "disabled" for the current
# compiler configuration.
if not self.compiler.f77 and not self.compiler.fc:
config_args.append("--enable-mpi-fortran=no")
configure(*config_args)
make()
make("install")

View File

@@ -1,26 +0,0 @@
from spack import *
class Openssl(Package):
"""The OpenSSL Project is a collaborative effort to develop a
robust, commercial-grade, full-featured, and Open Source
toolkit implementing the Secure Sockets Layer (SSL v2/v3) and
Transport Layer Security (TLS v1) protocols as well as a
full-strength general purpose cryptography library."""
homepage = "http://www.openssl.org"
url = "http://www.openssl.org/source/openssl-1.0.1h.tar.gz"
version('1.0.1h', '8d6d684a9430d5cc98a62a5d8fbda8cf')
depends_on("zlib")
parallel = False
def install(self, spec, prefix):
config = Executable("./config")
config("--prefix=%s" % prefix,
"--openssldir=%s/etc/openssl" % prefix,
"zlib",
"no-krb5",
"shared")
make()
make("install")

View File

@@ -1,74 +0,0 @@
# FIXME: Add copyright
from spack import *
from contextlib import closing
import os
class Otf2(Package):
"""The Open Trace Format 2 is a highly scalable, memory efficient event
trace data format plus support library."""
homepage = "http://www.vi-hps.org/score-p"
url = "http://www.vi-hps.org/upload/packages/otf2/otf2-1.4.tar.gz"
version('1.4', 'a23c42e936eb9209c4e08b61c3cf5092',
url="http://www.vi-hps.org/upload/packages/otf2/otf2-1.4.tar.gz")
version('1.3.1', 'd0ffc4e858455ace4f596f910e68c9f2',
url="http://www.vi-hps.org/upload/packages/otf2/otf2-1.3.1.tar.gz")
version('1.2.1', '8fb3e11fb7489896596ae2c7c83d7fc8',
url="http://www.vi-hps.org/upload/packages/otf2/otf2-1.2.1.tar.gz")
backend_user_provided = """\
CC=cc
CXX=c++
F77=f77
FC=f90
CFLAGS=-fPIC
CXXFLAGS=-fPIC
"""
frontend_user_provided = """\
CC_FOR_BUILD=cc
CXX_FOR_BUILD=c++
F77_FOR_BUILD=f70
FC_FOR_BUILD=f90
CFLAGS_FOR_BUILD=-fPIC
CXXFLAGS_FOR_BUILD=-fPIC
"""
mpi_user_provided = """\
MPICC=cc
MPICXX=c++
MPIF77=f77
MPIFC=f90
MPI_CFLAGS=-fPIC
MPI_CXXFLAGS=-fPIC
"""
@when('@:1.2.1')
def version_specific_args(self):
return ["--with-platform=disabled", "CC=cc", "CXX=c++", "F77=f77", "F90=f90", "CFLAGS=-fPIC", "CXXFLAGS=-fPIC"]
@when('@1.3:')
def version_specific_args(self):
# TODO: figure out what scorep's build does as of otf2 1.3
return ["--with-custom-compilers"]
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:
backend_file.write(self.backend_user_provided)
with closing(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)
configure_args=["--prefix=%s" % prefix,
"--enable-shared"]
configure_args.extend(self.version_specific_args())
configure(*configure_args)
make()
make("install")

View File

@@ -1,26 +0,0 @@
from spack import *
class Parmetis(Package):
"""ParMETIS is an MPI-based parallel library that implements a
variety of algorithms for partitioning unstructured graphs,
meshes, and for computing fill-reducing orderings of sparse
matrices."""
homepage = "http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview"
url = "http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/parmetis-4.0.3.tar.gz"
version('4.0.3', 'f69c479586bf6bb7aff6a9bc0c739628')
depends_on('mpi')
def install(self, spec, prefix):
cmake(".",
'-DGKLIB_PATH=%s/metis/GKlib' % pwd(),
'-DMETIS_PATH=%s/metis' % pwd(),
'-DSHARED=1',
'-DCMAKE_C_COMPILER=mpicc',
'-DCMAKE_CXX_COMPILER=mpicxx',
'-DSHARED=1',
*std_cmake_args)
make()
make("install")

View File

@@ -1,28 +0,0 @@
from spack import *
class PyNumpy(Package):
"""array processing for numbers, strings, records, and objects."""
homepage = "https://pypi.python.org/pypi/numpy"
url = "https://pypi.python.org/packages/source/n/numpy/numpy-1.9.1.tar.gz"
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

@@ -1,65 +0,0 @@
# FIXME: Add copyright
from spack import *
class Scalasca(Package):
"""Scalasca is a software tool that supports the performance optimization
of parallel programs by measuring and analyzing their runtime behavior.
The analysis identifies potential performance bottlenecks - in
particular those concerning communication and synchronization - and
offers guidance in exploring their causes."""
# FIXME: add a proper url for your package's homepage here.
homepage = "http://www.scalasca.org"
url = "http://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz"
version('2.1', 'bab9c2b021e51e2ba187feec442b96e6',
url = 'http://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz' )
depends_on("mpi")
depends_on("otf2@1.4")
depends_on("cube@4.2.3")
backend_user_provided = """\
CC=cc
CXX=c++
F77=f77
FC=f90
CFLAGS=-fPIC
CXXFLAGS=-fPIC
"""
frontend_user_provided = """\
CC_FOR_BUILD=cc
CXX_FOR_BUILD=c++
F77_FOR_BUILD=f70
FC_FOR_BUILD=f90
CFLAGS_FOR_BUILD=-fPIC
CXXFLAGS_FOR_BUILD=-fPIC
"""
mpi_user_provided = """\
MPICC=mpicc
MPICXX=mpicxx
MPIF77=mpif77
MPIFC=mpif90
MPI_CFLAGS=-fPIC
MPI_CXXFLAGS=-fPIC
"""
def install(self, spec, prefix):
configure_args = ["--prefix=%s" % prefix,
"--with-custom-compilers",
"--with-otf2=%s" % spec['otf2'].prefix.bin,
"--with-cube=%s" % spec['cube'].prefix.bin,
"--enable-shared"]
configure(*configure_args)
make()
make("install")
# FIXME: Modify the configure line to suit your build system here.
configure("--prefix=%s" % prefix)
# FIXME: Add logic to build and install here
make()
make("install")

View File

@@ -1,74 +0,0 @@
# FIXME: Add copyright statement
from spack import *
class Scorep(Package):
"""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.
homepage = "http://www.vi-hps.org/projects/score-p"
url = "http://www.vi-hps.org/upload/packages/scorep/scorep-1.2.3.tar.gz"
version('1.3', '9db6f957b7f51fa01377a9537867a55c',
url = 'http://www.vi-hps.org/upload/packages/scorep/scorep-1.3.tar.gz')
version('1.2.3', '4978084e7cbd05b94517aa8beaea0817')
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("opari2")
depends_on("cube@4.2:4.2.3")
backend_user_provided = """\
CC=cc
CXX=c++
F77=f77
FC=f90
CFLAGS=-fPIC
CXXFLAGS=-fPIC
"""
frontend_user_provided = """\
CC_FOR_BUILD=cc
CXX_FOR_BUILD=c++
F77_FOR_BUILD=f70
FC_FOR_BUILD=f90
CFLAGS_FOR_BUILD=-fPIC
CXXFLAGS_FOR_BUILD=-fPIC
"""
mpi_user_provided = """\
MPICC=mpicc
MPICXX=mpicxx
MPIF77=mpif77
MPIFC=mpif90
MPI_CFLAGS=-fPIC
MPI_CXXFLAGS=-fPIC
"""
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 open("platform-backend-user-provided", "w") as backend_file:
backend_file.write(self.backend_user_provided)
with open("platform-frontend-user-provided", "w") as frontend_file:
frontend_file.write(self.frontend_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",
"--with-otf2=%s" % spec['otf2'].prefix.bin,
"--with-opari2=%s" % spec['opari2'].prefix.bin,
"--with-cube=%s" % spec['cube'].prefix.bin,
"--with-papi-header=%s" % spec['papi'].prefix.include,
"--with-papi-lib=%s" % spec['papi'].prefix.lib,
"--enable-shared"]
configure(*configure_args)
make()
make("install")

View File

@@ -1,40 +0,0 @@
from spack import *
import glob
import os
class Scotch(Package):
"""Scotch is a software package for graph and mesh/hypergraph
partitioning, graph clustering, and sparse matrix ordering."""
homepage = "http://www.labri.fr/perso/pelegrin/scotch/"
url = "http://gforge.inria.fr/frs/download.php/file/34099/scotch_6.0.3.tar.gz"
list_url = "http://gforge.inria.fr/frs/?group_id=248"
version('6.0.3', '10b0cc0f184de2de99859eafaca83cfc')
depends_on('mpi')
def patch(self):
with working_dir('src/Make.inc'):
makefiles = glob.glob('Makefile.inc.x86-64_pc_linux2*')
filter_file(r'^CCS\s*=.*$', 'CCS = cc', *makefiles)
filter_file(r'^CCD\s*=.*$', 'CCD = cc', *makefiles)
def install(self, spec, prefix):
# Currently support gcc and icc on x86_64 (maybe others with
# vanilla makefile)
makefile = 'Make.inc/Makefile.inc.x86-64_pc_linux2'
if spec.satisfies('%icc'):
makefile += '.icc'
with working_dir('src'):
force_symlink(makefile, 'Makefile.inc')
for app in ('scotch', 'ptscotch'):
make(app)
install_tree('bin', prefix.bin)
install_tree('lib', prefix.lib)
install_tree('include', prefix.include)
install_tree('man/man1', prefix.share_man1)

View File

@@ -1,36 +0,0 @@
from spack import *
import os
from llnl.util.filesystem import join_path
class Tau(Package):
"""A portable profiling and tracing toolkit for performance
analysis of parallel programs written in Fortran, C, C++, UPC,
Java, Python."""
homepage = "http://www.cs.uoregon.edu/research/tau"
url = "http://www.cs.uoregon.edu/research/paracomp/tau/tauprofile/dist/tau-2.23.1.tar.gz"
version('2.23.1', '6593b47ae1e7a838e632652f0426fe72')
def install(self, spec, prefix):
# TAU isn't happy with directories that have '@' in the path. Sigh.
change_sed_delimiter('@', ';', 'configure')
change_sed_delimiter('@', ';', 'utils/FixMakefile')
change_sed_delimiter('@', ';', 'utils/FixMakefile.sed.default')
# After that, it's relatively standard.
configure("-prefix=%s" % prefix)
make("install")
# Link arch-specific directories into prefix since there is
# only one arch per prefix the way spack installs.
self.link_tau_arch_dirs()
def link_tau_arch_dirs(self):
for subdir in os.listdir(self.prefix):
for d in ('bin', 'lib'):
src = join_path(self.prefix, subdir, d)
dest = join_path(self.prefix, d)
if os.path.isdir(src) and not os.path.exists(dest):
os.symlink(join_path(subdir, d), dest)

View File

@@ -1,16 +0,0 @@
from spack import *
class Zsh(Package):
""" The ZSH shell """
homepage = "http://www.zsh.org"
url = "http://www.zsh.org/pub/zsh-5.0.8.tar.bz2"
version('5.0.8', 'e6759e8dd7b714d624feffd0a73ba0fe')
depends_on("pcre")
def install(self, spec, prefix):
configure('--prefix=%s' % prefix)
make()
make("install")

View File

@@ -6,7 +6,7 @@
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://scalability-llnl.github.io/spack
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify

View File

@@ -6,7 +6,7 @@
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://scalability-llnl.github.io/spack
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify

View File

@@ -6,7 +6,7 @@
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://scalability-llnl.github.io/spack
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify

View File

@@ -6,7 +6,7 @@
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://scalability-llnl.github.io/spack
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify

View File

@@ -6,7 +6,7 @@
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://scalability-llnl.github.io/spack
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify

View File

@@ -6,7 +6,7 @@
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://scalability-llnl.github.io/spack
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify

View File

@@ -6,7 +6,7 @@
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://scalability-llnl.github.io/spack
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify

View File

@@ -6,7 +6,7 @@
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://scalability-llnl.github.io/spack
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify

View File

@@ -6,7 +6,7 @@
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://scalability-llnl.github.io/spack
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify

View File

@@ -6,7 +6,7 @@
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://scalability-llnl.github.io/spack
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify

View File

@@ -6,7 +6,7 @@
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://scalability-llnl.github.io/spack
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify

View File

@@ -0,0 +1,36 @@
##############################################################################
# Copyright (c) 2013-2015, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License (as published by
# the Free Software Foundation) version 2.1 dated February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class NetlibBlas(Package):
homepage = "http://www.netlib.org/lapack/"
url = "http://www.netlib.org/lapack/lapack-3.5.0.tgz"
version('3.5.0', 'b1d3e3e425b2e44a06760ff173104bdf')
provides('blas')
def install(self, spec, prefix):
pass

View File

@@ -0,0 +1,37 @@
##############################################################################
# Copyright (c) 2013-2015, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License (as published by
# the Free Software Foundation) version 2.1 dated February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class NetlibLapack(Package):
homepage = "http://www.netlib.org/lapack/"
url = "http://www.netlib.org/lapack/lapack-3.5.0.tgz"
version('3.5.0', 'b1d3e3e425b2e44a06760ff173104bdf')
provides('lapack')
depends_on('blas')
def install(self, spec, prefix):
pass

View File

@@ -0,0 +1,37 @@
##############################################################################
# Copyright (c) 2013-2015, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License (as published by
# the Free Software Foundation) version 2.1 dated February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class Openblas(Package):
"""OpenBLAS: An optimized BLAS library"""
homepage = "http://www.openblas.net"
url = "http://github.com/xianyi/OpenBLAS/archive/v0.2.15.tar.gz"
version('0.2.15', 'b1190f3d3471685f17cfd1ec1d252ac9')
provides('blas')
def install(self, spec, prefix):
pass

View File

@@ -6,7 +6,7 @@
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://scalability-llnl.github.io/spack
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify

View File

@@ -6,7 +6,7 @@
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://scalability-llnl.github.io/spack
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify

View File

@@ -0,0 +1,2 @@
repo:
namespace: builtin.mock

View File

@@ -4,13 +4,20 @@ class Mitos(Package):
"""Mitos is a library and a tool for collecting sampled memory
performance data to view with MemAxes"""
homepage = "https://github.com/scalability-llnl/Mitos"
url = "https://github.com/scalability-llnl/Mitos"
homepage = "https://github.com/llnl/Mitos"
url = "https://github.com/llnl/Mitos"
version('0.9.1', 'c6cb57f3cae54f5157affd97ef7ef79e', git='https://github.com/scalability-llnl/Mitos.git', tag='v0.9.1')
version('0.9.2',
git='https://github.com/llnl/Mitos.git',
commit='8cb143a2e8c00353ff531a781a9ca0992b0aaa3d')
version('0.9.1',
git='https://github.com/llnl/Mitos.git',
tag='v0.9.1')
depends_on('dyninst@8.2.1:')
depends_on('hwloc')
depends_on('mpi')
def install(self, spec, prefix):
with working_dir('spack-build', create=True):

View File

@@ -0,0 +1,49 @@
from spack import *
class R(Package):
"""
R is 'GNU S', a freely available language and environment for statistical computing and graphics which provides a
wide variety of statistical and graphical techniques: linear and nonlinear modelling, statistical tests, time series
analysis, classification, clustering, etc. Please consult the R project homepage for further information.
"""
homepage = "https://www.r-project.org"
url = "http://cran.cnr.berkeley.edu/src/base/R-3/R-3.1.2.tar.gz"
version('3.2.3', '1ba3dac113efab69e706902810cc2970')
version('3.2.2', '57cef5c2e210a5454da1979562a10e5b')
version('3.2.1', 'c2aac8b40f84e08e7f8c9068de9239a3')
version('3.2.0', '66fa17ad457d7e618191aa0f52fc402e')
version('3.1.3', '53a85b884925aa6b5811dfc361d73fc4')
version('3.1.2', '3af29ec06704cbd08d4ba8d69250ae74')
variant('external-lapack', default=False, description='Links to externally installed BLAS/LAPACK')
# Virtual dependencies
depends_on('blas', when='+external-lapack')
depends_on('lapack', when='+external-lapack')
# Concrete dependencies
depends_on('readline')
depends_on('ncurses')
depends_on('icu')
depends_on('glib')
depends_on('zlib')
depends_on('libtiff')
depends_on('jpeg')
depends_on('cairo')
depends_on('pango')
depends_on('freetype')
depends_on('tcl')
depends_on('tk')
def install(self, spec, prefix):
options = ['--prefix=%s' % prefix,
'--enable-R-shlib',
'--enable-BLAS-shlib']
if '+external-lapack' in spec:
options.extend(['--with-blas', '--with-lapack'])
configure(*options)
make()
make('install')

View File

@@ -12,6 +12,7 @@ class Samrai(Package):
list_url = homepage
version('3.9.1', '232d04d0c995f5abf20d94350befd0b2')
version('3.8.0', 'c18fcffa706346bfa5828b36787ce5fe')
version('3.7.3', '12d574eacadf8c9a70f1bb4cd1a69df6')
version('3.7.2', 'f6a716f171c9fdbf3cb12f71fa6e2737')
version('3.6.3-beta', 'ef0510bf2893042daedaca434e5ec6ce')
@@ -24,7 +25,7 @@ class Samrai(Package):
depends_on("mpi")
depends_on("zlib")
depends_on("hdf5")
depends_on("hdf5+mpi")
depends_on("boost")
# don't build tools with gcc
@@ -32,13 +33,10 @@ class Samrai(Package):
# TODO: currently hard-coded to use openmpi - be careful!
def install(self, spec, prefix):
mpi = next(m for m in ('openmpi', 'mpich', 'mvapich')
if m in spec)
configure(
"--prefix=%s" % prefix,
"--with-CXX=%s" % spec[mpi].prefix.bin + "/mpic++",
"--with-CC=%s" % spec[mpi].prefix.bin + "/mpicc",
"--with-CXX=%s" % spec['mpi'].prefix.bin + "/mpic++",
"--with-CC=%s" % spec['mpi'].prefix.bin + "/mpicc",
"--with-hdf5=%s" % spec['hdf5'].prefix,
"--with-boost=%s" % spec['boost'].prefix,
"--with-zlib=%s" % spec['zlib'].prefix,

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

@@ -6,7 +6,7 @@
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://scalability-llnl.github.io/spack
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
@@ -27,8 +27,8 @@
class AdeptUtils(Package):
"""Utility libraries for LLNL performance tools."""
homepage = "https://github.com/scalability-llnl/adept-utils"
url = "https://github.com/scalability-llnl/adept-utils/archive/v1.0.tar.gz"
homepage = "https://github.com/llnl/adept-utils"
url = "https://github.com/llnl/adept-utils/archive/v1.0.tar.gz"
version('1.0.1', '731a310717adcb004d9d195130efee7d')
version('1.0', '5c6cd9badce56c945ac8551e34804397')

View File

@@ -0,0 +1,31 @@
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.tar.gz"
version('0.1', '8b95f0c0313da1575960d3ad69f18e75')
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

@@ -0,0 +1,16 @@
from spack import *
class Atop(Package):
"""Atop is an ASCII full-screen performance monitor for Linux"""
homepage = "http://www.atoptool.nl/index.php"
url = "http://www.atoptool.nl/download/atop-2.2-3.tar.gz"
version('2.2-3', '034dc1544f2ec4e4d2c739d320dc326d')
def install(self, spec, prefix):
make()
mkdirp(prefix.bin)
install("atop", join_path(prefix.bin, "atop"))
mkdirp(join_path(prefix.man, "man1"))
install(join_path("man", "atop.1"),
join_path(prefix.man, "man1", "atop.1"))

View File

@@ -6,7 +6,7 @@
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://scalability-llnl.github.io/spack
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
@@ -36,8 +36,8 @@ class Automaded(Package):
finding the process (or group of processes) that caused the hang.
"""
homepage = "https://github.com/scalability-llnl/AutomaDeD"
url = "https://github.com/scalability-llnl/AutomaDeD/archive/v1.0.tar.gz"
homepage = "https://github.com/llnl/AutomaDeD"
url = "https://github.com/llnl/AutomaDeD/archive/v1.0.tar.gz"
version('1.0', '16a3d4def2c4c77d0bc4b21de8b3ab03')

View File

@@ -0,0 +1,52 @@
--- binutils-2.24/libiberty/Makefile.in 2013-11-04 10:33:40.000000000 -0500
+++ binutils-2.24-fixes/libiberty/Makefile.in 2014-10-17 16:22:31.413655000 -0400
@@ -66,6 +66,7 @@
MAKEOVERRIDES =
TARGETLIB = ./libiberty.a
+TARGETLIBPIC = ./libiberty_pic.a
TESTLIB = ./testlib.a
LIBOBJS = @LIBOBJS@
@@ -355,27 +356,27 @@
# since it will be passed the multilib flags.
MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory`
install_to_libdir: all
- if test -n "${target_header_dir}"; then \
- ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \
- $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n; \
- ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ); \
- mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB); \
- case "${target_header_dir}" in \
- /*) thd=${target_header_dir};; \
- *) thd=${includedir}/${target_header_dir};; \
- esac; \
- ${mkinstalldirs} $(DESTDIR)$${thd}; \
- for h in ${INSTALLED_HEADERS}; do \
- ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \
- done; \
- fi
+ ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \
+ $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n; \
+ $(INSTALL_DATA) pic/$(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIBPIC)n; \
+ ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ); \
+ ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIBPIC)n ;$(RANLIB) $(TARGETLIBPIC)n ); \
+ mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB); \
+ mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIBPIC)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIBPIC); \
+ ${mkinstalldirs} $(DESTDIR)$${includedir}; \
+ for h in ${INSTALLED_HEADERS}; do \
+ ${INSTALL_DATA} $$h $(DESTDIR)$${includedir}; \
+ done;
@$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
install_to_tooldir: all
${mkinstalldirs} $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)
$(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)n
+ $(INSTALL_DATA) pic/$(TARGETLIB) $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIBPIC)n
( cd $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n; $(RANLIB) $(TARGETLIB)n )
+ ( cd $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR) ; chmod 644 $(TARGETLIBPIC)n; $(RANLIB) $(TARGETLIBPIC)n )
mv -f $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)
+ mv -f $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIBPIC)n $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIBPIC)
@$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
# required-list was used when building a shared bfd/opcodes/libiberty

View File

@@ -0,0 +1,26 @@
--- old/opcodes/cr16-dis.c 2014-10-14 03:32:04.000000000 -0400
+++ new/opcodes/cr16-dis.c 2016-01-14 21:54:26.000000000 -0500
@@ -78,7 +78,7 @@
REG_ARG_TYPE;
/* Current opcode table entry we're disassembling. */
-const inst *instruction;
+extern const inst *instruction;
/* Current instruction we're disassembling. */
ins cr16_currInsn;
/* The current instruction is read into 3 consecutive words. */
@@ -86,12 +86,12 @@
/* Contains all words in appropriate order. */
ULONGLONG cr16_allWords;
/* Holds the current processed argument number. */
-int processing_argument_number;
+extern int processing_argument_number;
/* Nonzero means a IMM4 instruction. */
int imm4flag;
/* Nonzero means the instruction's original size is
incremented (escape sequence is used). */
-int size_changed;
+extern int size_changed;
/* Print the constant expression length. */

View File

@@ -0,0 +1,40 @@
from spack import *
class Binutils(Package):
"""GNU binutils, which contain the linker, assembler, objdump and others"""
homepage = "http://www.gnu.org/software/binutils/"
version('2.25', 'd9f3303f802a5b6b0bb73a335ab89d66',url="ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.bz2")
version('2.24', 'e0f71a7b2ddab0f8612336ac81d9636b',url="ftp://ftp.gnu.org/gnu/binutils/binutils-2.24.tar.bz2")
version('2.23.2', '4f8fa651e35ef262edc01d60fb45702e',url="ftp://ftp.gnu.org/gnu/binutils/binutils-2.23.2.tar.bz2")
version('2.20.1', '2b9dc8f2b7dbd5ec5992c6e29de0b764',url="ftp://ftp.gnu.org/gnu/binutils/binutils-2.20.1.tar.bz2")
# Add a patch that creates binutils libiberty_pic.a which is preferred by OpenSpeedShop and cbtf-krell
variant('krellpatch', default=False, description="build with openspeedshop based patch.")
variant('gold', default=True, description="build the gold linker")
patch('binutilskrell-2.24.patch', when='@2.24+krellpatch')
patch('cr16.patch')
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',
'--with-sysroot=/']
if '+gold' in spec:
configure_args.append('--enable-gold')
if '+libiberty' in spec:
configure_args.append('--enable-install-libiberty')
configure(*configure_args)
make()
make("install")

View File

@@ -0,0 +1,148 @@
from spack import *
class Boost(Package):
"""Boost provides free peer-reviewed portable C++ source
libraries, emphasizing libraries that work well with the C++
Standard Library.
Boost libraries are intended to be widely useful, and usable
across a broad spectrum of applications. The Boost license
encourages both commercial and non-commercial use.
"""
homepage = "http://www.boost.org"
url = "http://downloads.sourceforge.net/project/boost/boost/1.55.0/boost_1_55_0.tar.bz2"
list_url = "http://sourceforge.net/projects/boost/files/boost/"
list_depth = 2
version('1.60.0', '65a840e1a0b13a558ff19eeb2c4f0cbe')
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')
version('1.52.0', '3a855e0f919107e0ca4de4d84ad3f750')
version('1.51.0', '4b6bd483b692fd138aef84ed2c8eb679')
version('1.50.0', '52dd00be775e689f55a987baebccc462')
version('1.49.0', '0d202cb811f934282dea64856a175698')
version('1.48.0', 'd1e9a7a7f532bb031a3c175d86688d95')
version('1.47.0', 'a2dc343f7bc7f83f8941e47ed4a18200')
version('1.46.1', '7375679575f4c8db605d426fc721d506')
version('1.46.0', '37b12f1702319b73876b0097982087e0')
version('1.45.0', 'd405c606354789d0426bc07bea617e58')
version('1.44.0', 'f02578f5218f217a9f20e9c30e119c6a')
version('1.43.0', 'dd49767bfb726b0c774f7db0cef91ed1')
version('1.42.0', '7bf3b4eb841b62ffb0ade2b82218ebe6')
version('1.41.0', '8bb65e133907db727a2a825c5400d0a6')
version('1.40.0', 'ec3875caeac8c52c7c129802a8483bd7')
version('1.39.0', 'a17281fd88c48e0d866e1a12deecbcc0')
version('1.38.0', '5eca2116d39d61382b8f8235915cb267')
version('1.37.0', '8d9f990bfb7e83769fa5f1d6f065bc92')
version('1.36.0', '328bfec66c312150e4c2a78dcecb504b')
version('1.35.0', 'dce952a7214e72d6597516bcac84048b')
version('1.34.1', '2d938467e8a448a2c9763e0a9f8ca7e5')
version('1.34.0', 'ed5b9291ffad776f8757a916e1726ad0')
variant('debug', default=False, description='Switch to the debug version of Boost')
variant('python', default=False, description='Activate the component Boost.Python')
variant('mpi', default=False, description='Activate the component Boost.MPI')
variant('compression', default=True, description='Activate the compression Boost.iostreams')
depends_on('python', when='+python')
depends_on('mpi', when='+mpi')
depends_on('bzip2', when='+compression')
depends_on('zlib', when='+compression')
def url_for_version(self, version):
"""Handle Boost's weird URLs, which write the version two different ways."""
parts = [str(p) for p in Version(version)]
dots = ".".join(parts)
underscores = "_".join(parts)
return "http://downloads.sourceforge.net/project/boost/boost/%s/boost_%s.tar.bz2" % (
dots, underscores)
def determine_toolset(self, spec):
if spec.satisfies("=darwin-x86_64"):
return 'darwin'
toolsets = {'g++': 'gcc',
'icpc': 'intel',
'clang++': 'clang'}
for cc, toolset in toolsets.iteritems():
if cc in self.compiler.cxx_names:
return toolset
# fallback to gcc if no toolset found
return 'gcc'
def determine_bootstrap_options(self, spec, options):
options.append('--with-toolset=%s' % self.determine_toolset(spec))
without_libs = []
if '~mpi' in spec:
without_libs.append('mpi')
if '~python' in spec:
without_libs.append('python')
else:
options.append('--with-python=%s' %
join_path(spec['python'].prefix.bin, 'python'))
if without_libs:
options.append('--without-libraries=%s' % ','.join(without_libs))
with open('user-config.jam', 'w') as f:
if '+mpi' in spec:
f.write('using mpi : %s ;\n' %
join_path(spec['mpi'].prefix.bin, 'mpicxx'))
if '+python' in spec:
f.write('using python : %s : %s ;\n' %
(spec['python'].version,
join_path(spec['python'].prefix.bin, 'python')))
def determine_b2_options(self, spec, options):
if '+debug' in spec:
options.append('variant=debug')
else:
options.append('variant=release')
if '~compression' in spec:
options.extend([
'-s', 'NO_BZIP2=1',
'-s', 'NO_ZLIB=1'])
if '+compression' in spec:
options.extend([
'-s', 'BZIP2_INCLUDE=%s' % spec['bzip2'].prefix.include,
'-s', 'BZIP2_LIBPATH=%s' % spec['bzip2'].prefix.lib,
'-s', 'ZLIB_INCLUDE=%s' % spec['zlib'].prefix.include,
'-s', 'ZLIB_LIBPATH=%s' % spec['zlib'].prefix.lib,
])
options.extend([
'toolset=%s' % self.determine_toolset(spec),
'link=static,shared',
'threading=single,multi',
'--layout=tagged'])
def install(self, spec, prefix):
# to make Boost find the user-config.jam
env['BOOST_BUILD_PATH'] = './'
bootstrap = Executable('./bootstrap.sh')
bootstrap_options = ['--prefix=%s' % prefix]
self.determine_bootstrap_options(spec, bootstrap_options)
bootstrap(*bootstrap_options)
# b2 used to be called bjam, before 1.47 (sigh)
b2name = './b2' if spec.satisfies('@1.47:') else './bjam'
b2 = Executable(b2name)
b2_options = ['-j', '%s' % make_jobs]
self.determine_b2_options(spec, b2_options)
b2('install', *b2_options)

View File

@@ -0,0 +1,60 @@
from spack import *
class Bzip2(Package):
"""bzip2 is a freely available, patent free high-quality data
compressor. It typically compresses files to within 10% to 15%
of the best available techniques (the PPM family of statistical
compressors), whilst being around twice as fast at compression
and six times faster at decompression.
"""
homepage = "http://www.bzip.org"
url = "http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz"
version('1.0.6', '00b516f4704d4a7cb50a1d97e6e8e15b')
def patch(self):
mf = FileFilter('Makefile-libbz2_so')
mf.filter(r'^CC=gcc', 'CC=cc')
# Below stuff patches the link line to use RPATHs on Mac OS X.
if 'darwin' in self.spec.architecture:
v = self.spec.version
v1, v2, v3 = (v.up_to(i) for i in (1,2,3))
mf.filter('$(CC) -shared -Wl,-soname -Wl,libbz2.so.{0} -o libbz2.so.{1} $(OBJS)'.format(v2, v3),
'$(CC) -dynamiclib -Wl,-install_name -Wl,@rpath/libbz2.{0}.dylib -current_version {1} -compatibility_version {2} -o libbz2.{3}.dylib $(OBJS)'.format(v1, v2, v3, v3), string=True)
mf.filter('$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.{0}'.format(v3),
'$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.{0}.dylib'.format(v3), string=True)
mf.filter('rm -f libbz2.so.{0}'.format(v2),
'rm -f libbz2.{0}.dylib'.format(v2), string=True)
mf.filter('ln -s libbz2.so.{0} libbz2.so.{1}'.format(v3, v2),
'ln -s libbz2.{0}.dylib libbz2.{1}.dylib'.format(v3, v2), string=True)
def install(self, spec, prefix):
make('-f', 'Makefile-libbz2_so')
make('clean')
make("install", "PREFIX=%s" % prefix)
install('bzip2-shared', join_path(prefix.bin, 'bzip2'))
v1, v2, v3 = (self.spec.version.up_to(i) for i in (1,2,3))
if 'darwin' in self.spec.architecture:
lib = 'libbz2.dylib'
lib1, lib2, lib3 = ('libbz2.{0}.dylib'.format(v) for v in (v1, v2, v3))
else:
lib = 'libbz2.so'
lib1, lib2, lib3 = ('libbz2.so.{0}'.format(v) for v in (v1, v2, v3))
install(lib3, join_path(prefix.lib, lib3))
with working_dir(prefix.lib):
for l in (lib, lib1, lib2):
symlink(lib3, l)
with working_dir(prefix.bin):
force_remove('bunzip2', 'bzcat')
symlink('bzip2', 'bunzip2')
symlink('bzip2', 'bzcat')

View File

@@ -14,6 +14,7 @@ class Cairo(Package):
def install(self, spec, prefix):
configure("--prefix=%s" % prefix,
"--disable-trace", # can cause problems with libiberty
"--enable-tee")
make()
make("install")

View File

@@ -6,7 +6,7 @@
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://scalability-llnl.github.io/spack
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
@@ -28,8 +28,8 @@ class Callpath(Package):
"""Library for representing callpaths consistently in
distributed-memory performance tools."""
homepage = "https://github.com/scalability-llnl/callpath"
url = "https://github.com/scalability-llnl/callpath/archive/v1.0.1.tar.gz"
homepage = "https://github.com/llnl/callpath"
url = "https://github.com/llnl/callpath/archive/v1.0.1.tar.gz"
version('1.0.2', 'b1994d5ee7c7db9d27586fc2dcf8f373')
version('1.0.1', '0047983d2a52c5c335f8ba7f5bab2325')

View File

@@ -0,0 +1,66 @@
################################################################################
# Copyright (c) 2015 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA
################################################################################
from spack import *
class CbtfArgonavis(Package):
"""CBTF Argo Navis project contains the CUDA collector and supporting
libraries that was done as a result of a DOE SBIR grant."""
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
# Mirror access template example
#url = "file:/g/g24/jeg/cbtf-argonavis-1.5.tar.gz"
#version('1.5', '1f7f6512f55409ed2135cfceabe26b82')
version('1.6', branch='master', git='http://git.code.sf.net/p/cbtf-argonavis/cbtf-argonavis')
depends_on("cmake@3.0.2:")
depends_on("papi")
depends_on("cbtf")
depends_on("cbtf-krell")
depends_on("cuda")
parallel = False
def install(self, spec, prefix):
# Look for package installation information in the cbtf and cbtf-krell prefixes
cmake_prefix_path = join_path(spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix)
# FIXME, hard coded for testing purposes, we will alter when the external package feature is available
cuda_prefix_path = "/usr/local/cudatoolkit-6.0"
cupti_prefix_path = "/usr/local/cudatoolkit-6.0/extras/CUPTI"
with working_dir('CUDA'):
with working_dir('build', create=True):
cmake('..',
'-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64,
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
'-DCUDA_INSTALL_PATH=%s' % cuda_prefix_path,
'-DCUDA_ROOT=%s' % cuda_prefix_path,
'-DCUPTI_ROOT=%s' % cupti_prefix_path,
'-DCUDA_DIR=%s' % cuda_prefix_path,
'-DPAPI_ROOT=%s' % spec['papi'].prefix,
'-DCBTF_PREFIX=%s' % spec['cbtf'].prefix,
*std_cmake_args)
make("clean")
make()
make("install")

View File

@@ -0,0 +1,116 @@
################################################################################
# Copyright (c) 2015 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA
################################################################################
from spack import *
class CbtfKrell(Package):
"""CBTF Krell project contains the Krell Institute contributions to the CBTF project.
These contributions include many performance data collectors and support
libraries as well as some example tools that drive the data collection at
HPC levels of scale."""
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
# optional mirror access template
#url = "file:/g/g24/jeg/cbtf-krell-1.5.tar.gz"
#version('1.5', 'b13f6df6a93c44149d977773dd776d2f')
version('1.6', branch='master', git='http://git.code.sf.net/p/cbtf-krell/cbtf-krell')
# Dependencies for cbtf-krell
# For binutils service
depends_on("binutils@2.24+krellpatch")
# collectionTool
depends_on("boost@1.50.0")
depends_on("dyninst@8.2.1")
depends_on("mrnet@4.1.0:+lwthreads")
depends_on("xerces-c@3.1.1:")
depends_on("cbtf")
# for services and collectors
depends_on("libmonitor+krellpatch")
depends_on("libunwind")
depends_on("papi")
# MPI Installations
# These have not worked either for build or execution, commenting out for now
#depends_on("openmpi")
#depends_on("mvapich2@2.0")
#depends_on("mpich")
parallel = False
def install(self, spec, prefix):
# Add in paths for finding package config files that tell us where to find these packages
cmake_prefix_path = join_path(spec['cbtf'].prefix) + ':' + join_path(spec['dyninst'].prefix)
# FIXME - hard code path until external package support is available
# Need to change this path and/or add additional paths for MPI experiment support on different platforms
#openmpi_prefix_path = "/opt/openmpi-1.8.2"
#mvapich_prefix_path = "/usr/local/tools/mvapich-gnu"
# Other possibilities, they will need a -DMVAPICH_DIR=, etc clause in the cmake command to be recognized
# mvapich_prefix_path = "<mvapich install path>"
# mvapich2_prefix_path = "<mvapich2 install path>"
# mpich2_prefix_path = "<mpich2 install path>"
# mpich_prefix_path = "<mpich install path>"
# mpt_prefix_path = "<mpt install path>"
# Add in paths for cuda if requested via the cuda variant
# FIXME - hard code path until external package support is available
#if '+cuda' in spec:
# cuda_prefix_path = "/usr/local/cuda-6.0"
# cupti_prefix_path = "/usr/local/cuda-6.0/extras/CUPTI"
#else:
# cuda_prefix_path = ""
# cupti_prefix_path = ""
#'-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix,
#'-DOPENMPI_DIR=%s' % spec['openmpi'].prefix,
#'-DMPICH_DIR=%s' % spec['mpich'].prefix,
#'-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64,
#'-DOPENMPI_DIR=%s' % openmpi_prefix_path,
#'-DMVAPICH_DIR=%s' % mvapich_prefix_path,
#'-DLIB_SUFFIX=64',
#'-DCUDA_DIR=%s' % cuda_prefix_path,
#'-DCUPTI_DIR=%s' % cupti_prefix_path,
# Build cbtf-krell with cmake
with working_dir('build_cbtf_krell', create=True):
cmake('..',
'-DCMAKE_BUILD_TYPE=Debug',
'-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DCBTF_DIR=%s' % spec['cbtf'].prefix,
'-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
'-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
'-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
'-DPAPI_DIR=%s' % spec['papi'].prefix,
'-DBOOST_DIR=%s' % spec['boost'].prefix,
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
'-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
*std_cmake_args)
make("clean")
make()
make("install")

View File

@@ -0,0 +1,60 @@
################################################################################
# Copyright (c) 2015 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA
################################################################################
from spack import *
class CbtfLanl(Package):
"""CBTF LANL project contains a memory tool and data center type system command monitoring tool."""
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
# Mirror access template example
#url = "file:/g/g24/jeg/cbtf-lanl-1.5.tar.gz"
#version('1.5', 'c3f78f967b0a42c6734ce4be0e602426')
version('1.6', branch='master', git='http://git.code.sf.net/p/cbtf-lanl/cbtf-lanl')
# Dependencies for cbtf-krell
depends_on("boost@1.50")
depends_on("mrnet@4.1.0:+lwthreads")
depends_on("xerces-c@3.1.1:")
depends_on("cbtf")
depends_on("cbtf-krell")
parallel = False
def install(self, spec, prefix):
# Add in paths for finding package config files that tell us where to find these packages
cmake_prefix_path = join_path(spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix)
with working_dir('build', create=True):
cmake('..',
'-DCBTF_DIR=%s' % spec['cbtf'].prefix,
'-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
'-DCMAKE_MODULE_PATH=%s' % join_path(prefix.share,'KrellInstitute','cmake'),
*std_cmake_args)
make("clean")
make()
make("install")

View File

@@ -0,0 +1,62 @@
################################################################################
# Copyright (c) 2015 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA
################################################################################
from spack import *
class Cbtf(Package):
"""CBTF project contains the base code for CBTF that supports creating components,
component networks and the support to connect these components and component
networks into sequential and distributed network tools."""
homepage = "http://sourceforge.net/p/cbtf/wiki/Home"
# Mirror access template example
#url = "file:/g/g24/jeg/cbtf-1.5.tar.gz"
#version('1.6', '1ca88a8834759c4c74452cb97fe7b70a')
# Use when the git repository is available
version('1.6', branch='master', git='http://git.code.sf.net/p/cbtf/cbtf')
depends_on("cmake")
#depends_on("boost@1.42.0:")
depends_on("boost@1.50.0")
depends_on("mrnet@4.1.0+lwthreads")
depends_on("xerces-c@3.1.1:")
depends_on("libxml2")
parallel = False
def install(self, spec, prefix):
with working_dir('build', create=True):
# Boost_NO_SYSTEM_PATHS Set to TRUE to suppress searching
# in system paths (or other locations outside of BOOST_ROOT
# or BOOST_INCLUDEDIR). Useful when specifying BOOST_ROOT.
# Defaults to OFF.
cmake('..',
'--debug-output',
'-DBoost_NO_SYSTEM_PATHS=TRUE',
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
'-DBOOST_ROOT=%s' % spec['boost'].prefix,
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
'-DCMAKE_MODULE_PATH=%s' % join_path(prefix.share,'KrellInstitute','cmake'),
*std_cmake_args)
make("clean")
make()
make("install")

View File

@@ -0,0 +1,33 @@
--- old/sandbox/CMakeLists.txt
+++ new/sandbox/CMakeLists.txt
@@ -4,9 +4,11 @@
add_executable(sandbox_json sandbox_json.cpp)
add_executable(sandbox_rtti sandbox_rtti.cpp)
+if(Boost_FOUND)
add_executable(sandbox_vs sandbox_vs.cpp)
target_link_libraries(sandbox_vs sandbox_vs_dll)
include_directories(sandbox_shared_lib)
+endif(Boost_FOUND)
if(Boost_FOUND)
add_executable(performance performance.cpp)
--- old/include/cereal/types/common.hpp
+++ new/include/cereal/types/common.hpp
@@ -106,14 +106,16 @@
t = reinterpret_cast<typename common_detail::is_enum<T>::type const &>( value );
}
+#ifndef CEREAL_ENABLE_RAW_POINTER_SERIALIZATION
//! Serialization for raw pointers
/*! This exists only to throw a static_assert to let users know we don't support raw pointers. */
template <class Archive, class T> inline
void CEREAL_SERIALIZE_FUNCTION_NAME( Archive &, T * & )
{
static_assert(cereal::traits::detail::delay_static_assert<T>::value,
"Cereal does not support serializing raw pointers - please use a smart pointer");
}
+#endif
//! Serialization for C style arrays
template <class Archive, class T> inline

View File

@@ -0,0 +1,34 @@
from spack import *
import shutil
class Cereal(Package):
"""cereal is a header-only C++11 serialization library. cereal takes arbitrary data types and reversibly turns them into different representations, such as compact binary encodings, XML, or JSON. cereal was designed to be fast, light-weight, and easy to extend - it has no external dependencies and can be easily bundled with other code or used standalone."""
homepage = "http://uscilab.github.io/cereal/"
url = "https://github.com/USCiLab/cereal/archive/v1.1.2.tar.gz"
version('1.1.2', '34d4ad174acbff005c36d4d10e48cbb9')
version('1.1.1', '0ceff308c38f37d5b5f6df3927451c27')
version('1.1.0', '9f2d5f72e935c54f4c6d23e954ce699f')
version('1.0.0', 'd1bacca70a95cec0ddbff68b0871296b')
version('0.9.1', '8872d4444ff274ce6cd1ed364d0fc0ad')
patch("Werror.patch")
depends_on("cmake @2.6.2:")
def install(self, spec, prefix):
# Don't use -Werror
filter_file(r'-Werror', '', 'CMakeLists.txt')
# configure
# Boost is only used for self-tests, which we are not running (yet?)
cmake('.', '-DCMAKE_DISABLE_FIND_PACKAGE_Boost=TRUE', *std_cmake_args)
# Build
make()
# Install
shutil.rmtree(join_path(prefix, 'doc'), ignore_errors=True)
shutil.rmtree(join_path(prefix, 'include'), ignore_errors=True)
shutil.copytree('doc', join_path(prefix, 'doc'), symlinks=True)
shutil.copytree('include', join_path(prefix, 'include'), symlinks=True)

View File

@@ -0,0 +1,18 @@
from spack import *
class Cfitsio(Package):
"""
CFITSIO is a library of C and Fortran subroutines for reading and writing
data files in FITS (Flexible Image Transport System) data format.
"""
homepage = 'http://heasarc.gsfc.nasa.gov/fitsio/'
version('3.370', 'abebd2d02ba5b0503c633581e3bfa116')
def url_for_version(self, v):
url = 'ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/cfitsio{0}.tar.gz'
return url.format(str(v).replace('.', ''))
def install(self, spec, prefix):
configure('--prefix=' + prefix)
make()
make('install')

View File

@@ -0,0 +1,73 @@
##############################################################################
# Copyright (c) 2013, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License (as published by
# the Free Software Foundation) version 2.1 dated February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class Cgal(Package):
"""
CGAL is a software project that provides easy access to efficient and reliable geometric algorithms in the form of
a C++ library. CGAL is used in various areas needing geometric computation, such as geographic information systems,
computer aided design, molecular biology, medical imaging, computer graphics, and robotics.
"""
homepage = 'http://www.cgal.org/'
url = 'https://github.com/CGAL/cgal/archive/releases/CGAL-4.7.tar.gz'
version('4.7', '4826714810f3b4c65cac96b90fb03b67')
version('4.6.3', 'e8ee2ecc8d2b09b94a121c09257b576d')
# Installation instructions : http://doc.cgal.org/latest/Manual/installation.html
variant('shared', default=True, description='Enables the build of shared libraries')
variant('debug', default=False, description='Builds a debug version of the libraries')
depends_on('boost')
depends_on('mpfr')
depends_on('gmp')
depends_on('zlib')
# FIXME : Qt5 dependency missing (needs Qt5 and OpenGL)
# FIXME : Optional third party libraries missing
def install(self, spec, prefix):
options = []
options.extend(std_cmake_args)
# CGAL supports only Release and Debug build type. Any other build type will raise an error at configure time
if '+debug' in spec:
options.append('-DCMAKE_BUILD_TYPE:STRING=Debug')
else:
options.append('-DCMAKE_BUILD_TYPE:STRING=Release')
if '+shared' in spec:
options.append('-DBUILD_SHARED_LIBS:BOOL=ON')
else:
options.append('-DBUILD_SHARED_LIBS:BOOL=OFF')
build_directory = join_path(self.stage.path, 'spack-build')
source_directory = self.stage.source_path
with working_dir(build_directory, create=True):
cmake(source_directory, *options)
make()
make("install")

View File

@@ -0,0 +1,16 @@
from spack import *
from spack.util.environment import *
class Cityhash(Package):
homepage = "https://github.com/google/cityhash"
url = "https://github.com/google/cityhash"
version('2013-07-31', git='https://github.com/google/cityhash.git', commit='8af9b8c2b889d80c22d6bc26ba0df1afb79a30db')
version('master', branch='master', git='https://github.com/google/cityhash.git')
def install(self, spec, prefix):
configure('--enable-sse4.2', '--prefix=%s' % prefix)
make()
make("install")

View File

@@ -0,0 +1,23 @@
from spack import *
class Cleverleaf(Package):
"""
CleverLeaf is a hydrodynamics mini-app that extends CloverLeaf with Adaptive
Mesh Refinement using the SAMRAI toolkit from Lawrence Livermore National
Laboratory. The primary goal of CleverLeaf is to evaluate the application of
AMR to the Lagrangian-Eulerian hydrodynamics scheme used by CloverLeaf.
"""
homepage = "http://uk-mac.github.io/CleverLeaf/"
url = "https://github.com/UK-MAC/CleverLeaf/tarball/master"
version('develop', git='https://github.com/UK-MAC/CleverLeaf_ref.git', branch='develop')
depends_on("SAMRAI@3.8.0:")
depends_on("hdf5+mpi")
depends_on("boost")
def install(self, spec, prefix):
cmake(*std_cmake_args)
make()
make("install")

Some files were not shown because too many files have changed in this diff Show More