Merge branch 'develop' into mplegendre-multi_pkgsrc_roots

Conflicts:
	lib/spack/spack/cmd/create.py
	lib/spack/spack/cmd/extensions.py
	lib/spack/spack/cmd/fetch.py
	lib/spack/spack/cmd/uninstall.py
	lib/spack/spack/config.py
	lib/spack/spack/database.py
	lib/spack/spack/directory_layout.py
	lib/spack/spack/packages.py
	lib/spack/spack/spec.py
This commit is contained in:
Todd Gamblin
2015-12-25 16:35:55 -08:00
303 changed files with 4025 additions and 809 deletions

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

@@ -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

@@ -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

@@ -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

@@ -3,12 +3,9 @@
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"
url = "http://github.com/khuck/xpress-apex/archive/v0.1.tar.gz"
#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')
version('0.1', '8b95f0c0313da1575960d3ad69f18e75')
depends_on("binutils+libiberty")
depends_on("boost@1.54:")

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

@@ -3,12 +3,15 @@
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')
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.")
patch('binutilskrell-2.24.patch', when='@2.24+krellpatch')
variant('libiberty', default=False, description='Also install libiberty.')
@@ -20,7 +23,8 @@ def install(self, spec, prefix):
'--enable-multilib',
'--enable-shared',
'--enable-64-bit-bfd',
'--enable-targets=all']
'--enable-targets=all',
'--with-sysroot=/']
if '+libiberty' in spec:
configure_args.append('--enable-install-libiberty')

View File

@@ -43,7 +43,16 @@ class Boost(Package):
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('mpi', when='+mpi')
depends_on('python', when='+python')
depends_on('zlib', when='+compression')
depends_on('bzip2', 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)]
@@ -52,15 +61,78 @@ def url_for_version(self, version):
return "http://downloads.sourceforge.net/project/boost/boost/%s/boost_%s.tar.bz2" % (
dots, underscores)
def determine_toolset(self):
toolsets = {'gcc': '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())
without_libs = []
if '~mpi' in spec:
without_libs.append('mpi')
if '~python' in spec:
without_libs.append('python')
else:
options.append('--with-python=%s' % (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' % (spec['mpi'].prefix.bin + '/mpicxx'))
if '+python' in spec:
f.write('using python : %s : %s ;\n' % (spec['python'].version,
(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(),
'link=static,shared',
'--layout=tagged'])
def install(self, spec, prefix):
# to make him find the user-config.jam
env['BOOST_BUILD_PATH'] = './'
bootstrap = Executable('./bootstrap.sh')
bootstrap()
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('install',
'-j %s' % make_jobs,
'--prefix=%s' % prefix)
b2_options = ['-j %s' % make_jobs]
self.determine_b2_options(spec, b2_options)
b2('install', 'threading=single', *b2_options)
b2('install', 'threading=multi', *b2_options)

View File

@@ -1,36 +1,60 @@
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."""
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)
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)
bzip2_exe = join_path(prefix.bin, 'bzip2')
install('bzip2-shared', bzip2_exe)
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'))
install('bzip2-shared', join_path(prefix.bin, 'bzip2'))
bunzip2 = join_path(prefix.bin, 'bunzip2')
remove(bunzip2)
symlink(bzip2_exe, bunzip2)
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))
bzcat = join_path(prefix.bin, 'bzcat')
remove(bzcat)
symlink(bzip2_exe, bzcat)
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

@@ -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,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,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

@@ -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
@@ -22,8 +22,13 @@
# 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 *
import os
import os.path
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.
@@ -39,13 +44,52 @@ class Clang(Package):
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')
##########
# @3.7.0
resource(name='clang-tools-extra',
url='http://llvm.org/releases/3.7.0/clang-tools-extra-3.7.0.src.tar.xz',
md5='d5a87dacb65d981a427a536f6964642e', destination='tools', when='@3.7.0')
##########
def install(self, spec, prefix):
env['CXXFLAGS'] = self.compiler.cxx11_flag
with working_dir('spack-build', create=True):
options = []
if '@3.7.0:' in spec:
options.append('-DCLANG_DEFAULT_OPENMP_RUNTIME:STRING=libomp')
options.extend(std_cmake_args)
cmake('..',
'-DCLANG_PATH_TO_LLVM_BUILD=%s' % spec['llvm'].prefix,
'-DLLVM_MAIN_SRC_DIR=%s' % spec['llvm'].prefix,
*std_cmake_args)
'-DCLANG_PATH_TO_LLVM_BUILD:PATH=%s' % spec['llvm'].prefix,
'-DLLVM_MAIN_SRC_DIR:PATH=%s' % spec['llvm'].prefix,
*options)
make()
make("install")
# CLang doesn't look in llvm folders for system headers...
self.link_llvm_directories(spec)
def link_llvm_directories(self, spec):
def clang_include_dir_at(root):
return join_path(root, 'include')
def clang_lib_dir_at(root):
return join_path(root, 'lib/clang/', str(self.version), 'include')
def do_link(source_dir, destination_dir):
if os.path.exists(source_dir):
for name in os.listdir(source_dir):
source = join_path(source_dir, name)
link = join_path(destination_dir, name)
os.symlink(source, link)
# Link folder and files in include
llvm_dir = clang_include_dir_at(spec['llvm'].prefix)
clang_dir = clang_include_dir_at(self.prefix)
do_link(llvm_dir, clang_dir)
# Link folder and files in lib
llvm_dir = clang_lib_dir_at(spec['llvm'].prefix)
clang_dir = clang_lib_dir_at(self.prefix)
do_link(llvm_dir, clang_dir)

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")

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
@@ -34,12 +34,16 @@ class Cmake(Package):
version('3.0.2', 'db4c687a31444a929d2fdc36c4dfb95f',
url = 'http://www.cmake.org/files/v3.0/cmake-3.0.2.tar.gz')
version('3.4.0', 'cd3034e0a44256a0917e254167217fc8',
url = 'https://cmake.org/files/v3.4/cmake-3.4.0.tar.gz')
# version('3.0.1', 'e2e05d84cb44a42f1371d9995631dcf5')
# version('3.0.0', '21a1c85e1a3b803c4b48e7ff915a863e')
def install(self, spec, prefix):
configure('--prefix=' + prefix,
'--parallel=' + str(make_jobs))
'--parallel=' + str(make_jobs),
'--', '-DCMAKE_USE_OPENSSL=ON')
make()
make('install')

View File

@@ -2,11 +2,12 @@
class Cram(Package):
"""Cram runs many small MPI jobs inside one large MPI job."""
homepage = "https://github.com/scalability-llnl/cram"
url = "http://github.com/scalability-llnl/cram/archive/v1.0.1.tar.gz"
homepage = "https://github.com/llnl/cram"
url = "http://github.com/llnl/cram/archive/v1.0.1.tar.gz"
version('1.0.1', 'c73711e945cf5dc603e44395f6647f5e')
extends('python')
depends_on("mpi")
def install(self, spec, prefix):

View File

@@ -12,6 +12,9 @@ class Cube(Package):
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.3.3', '07e109248ed8ffc7bdcce614264a2909',
url='http://apps.fz-juelich.de/scalasca/releases/cube/4.3/dist/cube-4.3.3.tar.gz')
version('4.2.3', '8f95b9531f5a8f8134f279c2767c9b20')
version('4.3TP1', 'a2090fbc7b2ba394bd5c09ba971e237f',

View File

@@ -0,0 +1,25 @@
from spack import *
class Curl(Package):
"""cURL is an open source command line tool and library for
transferring data with URL syntax"""
homepage = "http://curl.haxx.se"
url = "http://curl.haxx.se/download/curl-7.46.0.tar.bz2"
version('7.46.0', '9979f989a2a9930d10f1b3deeabc2148')
version('7.45.0', '62c1a352b28558f25ba6209214beadc8')
version('7.44.0', '6b952ca00e5473b16a11f05f06aa8dae')
version('7.43.0', '11bddbb452a8b766b932f859aaeeed39')
version('7.42.1', '296945012ce647b94083ed427c1877a8')
depends_on("openssl")
depends_on("zlib")
def install(self, spec, prefix):
configure('--prefix=%s' % prefix,
'--with-zlib=%s' % spec['zlib'].prefix,
'--with-ssl=%s' % spec['openssl'].prefix)
make()
make("install")

View File

@@ -1,4 +1,5 @@
from spack import *
import os
class Czmq(Package):
""" A C interface to the ZMQ library """
@@ -7,11 +8,24 @@ class Czmq(Package):
version('3.0.2', '23e9885f7ee3ce88d99d0425f52e9be1', url='https://github.com/zeromq/czmq/archive/v3.0.2.tar.gz')
depends_on('libtool')
depends_on('automake')
depends_on('autoconf')
depends_on('pkg-config')
depends_on('zeromq')
def install(self, spec, prefix):
bash = which("bash")
bash("./autogen.sh")
# Work around autogen.sh oddities
# bash("./autogen.sh")
mkdirp("config")
autoreconf = which("autoreconf")
autoreconf("--install", "--verbose", "--force",
"-I", "config",
"-I", os.path.join(spec['pkg-config'].prefix, "share", "aclocal"),
"-I", os.path.join(spec['automake'].prefix, "share", "aclocal"),
"-I", os.path.join(spec['libtool'].prefix, "share", "aclocal"),
)
configure("--prefix=%s" % prefix)
make()

View File

@@ -0,0 +1,14 @@
from spack import *
class Damselfly(Package):
"""Damselfly is a model-based parallel network simulator."""
homepage = "https://github.com/llnl/damselfly"
url = "https://github.com/llnl/damselfly"
version('1.0', '05cf7e2d8ece4408c0f2abb7ab63fd74c0d62895', git='https://github.com/llnl/damselfly.git', tag='v1.0')
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
cmake('-DCMAKE_BUILD_TYPE=release', '..', *std_cmake_args)
make()
make('install')

View File

@@ -22,7 +22,8 @@ class Dbus(Package):
def install(self, spec, prefix):
configure(
"--prefix=%s" % prefix,
"--disable-systemd")
"--disable-systemd",
"--disable-launchd")
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
@@ -49,14 +49,15 @@ def install(self, spec, prefix):
with working_dir('spack-build', create=True):
cmake('..',
'-DBoost_INCLUDE_DIR=%s' % spec['boost'].prefix.include,
'-DBoost_LIBRARY_DIR=%s' % spec['boost'].prefix.lib,
'-DBoost_INCLUDE_DIR=%s' % spec['boost'].prefix.include,
'-DBoost_LIBRARY_DIR=%s' % spec['boost'].prefix.lib,
'-DBoost_NO_SYSTEM_PATHS=TRUE',
'-DLIBELF_INCLUDE_DIR=%s' % join_path(libelf.include, 'libelf'),
'-DLIBELF_LIBRARIES=%s' % join_path(libelf.lib, 'libelf.so'),
'-DLIBDWARF_INCLUDE_DIR=%s' % libdwarf.include,
'-DLIBDWARF_LIBRARIES=%s' % join_path(libdwarf.lib, 'libdwarf.so'),
*std_cmake_args)
make()
make("install")

View File

@@ -0,0 +1,17 @@
from spack import *
class Expat(Package):
"""<eXpat/> is an XML parser library written in C"""
homepage = "http://expat.sourceforge.net/"
url = "http://downloads.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz"
version('2.1.0', 'dd7dab7a5fea97d2a6a43f511449b7cd')
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
cmake('..', *std_cmake_args)
make()
make('install')

View File

@@ -0,0 +1,96 @@
##############################################################################
# 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 Fftw(Package):
"""
FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of
arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine
transforms or DCT/DST). We believe that FFTW, which is free software, should become the FFT library of choice for
most applications.
"""
homepage = "http://www.fftw.org"
url = "http://www.fftw.org/fftw-3.3.4.tar.gz"
version('3.3.4', '2edab8c06b24feeb3b82bbb3ebf3e7b3')
##########
# Floating point precision
FLOAT = 'float'
LONG_DOUBLE = 'long_double'
QUAD_PRECISION = 'quad'
PRECISION_OPTIONS = {
FLOAT: '--enable-float',
LONG_DOUBLE: '--enable--long-double',
QUAD_PRECISION: '--enable-quad-precision'
}
variant(FLOAT, default=False, description='Produces a single precision version of the library')
variant(LONG_DOUBLE, default=False, description='Produces a long double precision version of the library')
variant(QUAD_PRECISION, default=False, description='Produces a quad precision version of the library (works only with GCC and libquadmath)')
##########
variant('mpi', default=False, description='Activate MPI support')
depends_on('mpi', when='+mpi')
@staticmethod
def enabled(x):
"""
Given a variant name returns the string that means the variant is enabled
:param x: variant name
"""
# FIXME : duplicated from MVAPICH2
return '+' + x
def check_fortran_availability(self, options):
if not self.compiler.f77 or not self.compiler.fc:
options.append("--disable-fortran")
def set_floating_point_precision(self, spec, options):
l = [option for variant, option in Fftw.PRECISION_OPTIONS.iteritems() if self.enabled(variant) in spec]
if len(l) > 1:
raise RuntimeError('At most one floating point precision variant may activated per build.')
options.extend(l)
def install(self, spec, prefix):
options = ['--prefix=%s' % prefix,
'--enable-shared',
'--enable-threads',
'--enable-openmp']
self.check_fortran_availability(options)
self.set_floating_point_precision(spec, options)
if '+mpi' in spec:
options.append('--enable-mpi')
configure(*options)
make()
make("install")

View File

@@ -12,20 +12,23 @@ class Flux(Package):
# Also needs autotools, but should use the system version if available
depends_on("zeromq@4.0.4:")
depends_on("czmq@2.2:")
depends_on("hwloc")
depends_on("lua@5.1:5.1.99")
depends_on("munge")
depends_on("libjson-c")
depends_on("libxslt")
depends_on("python")
depends_on("py-cffi")
# TODO: This provides a catalog, hacked with environment below for now
depends_on("docbook-xml")
depends_on("asciidoc")
depends_on("python")
depends_on("py-cffi")
def install(self, spec, prefix):
# Bootstrap with autotools
bash = which('bash')
bash('./autogen.sh')
bash('./autogen.sh') #yes, twice, intentionally
# Fix asciidoc dependency on xml style sheets and whatnot
os.environ['XML_CATALOG_FILES'] = os.path.join(spec['docbook-xml'].prefix,

View File

@@ -8,9 +8,10 @@ class Fontconfig(Package):
version('2.11.1' , 'e75e303b4f7756c2b16203a57ac87eba')
depends_on('freetype')
depends_on('libxml2')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
configure("--prefix=%s" % prefix, "--enable-libxml2")
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
@@ -38,6 +38,7 @@ class Gcc(Package):
DEPENDS_ON_ISL_PREDICATE = '@5.0:'
version('5.3.0', 'c9616fd448f980259c31de613e575719')
version('5.2.0', 'a51bcfeb3da7dd4c623e27207ed43467')
version('4.9.3', '6f831b4d251872736e8e9cc09746f327')
version('4.9.2', '4df8ee253b7f3863ad0b86359cd39c43')
@@ -79,8 +80,10 @@ def install(self, spec, prefix):
"--with-gnu-as",
"--with-quad"]
# Binutils
binutils_options = ["--with-stage1-ldflags=%s" % self.rpath_args,
"--with-boot-ldflags=%s" % self.rpath_args,
static_bootstrap_flags = "-static-libstdc++ -static-libgcc"
binutils_options = ["--with-sysroot=/",
"--with-stage1-ldflags=%s %s" % (self.rpath_args, static_bootstrap_flags),
"--with-boot-ldflags=%s %s" % (self.rpath_args, static_bootstrap_flags),
"--with-ld=%s/bin/ld" % spec['binutils'].prefix,
"--with-as=%s/bin/as" % spec['binutils'].prefix]
options.extend(binutils_options)
@@ -89,11 +92,14 @@ def install(self, spec, prefix):
isl_options = ["--with-isl=%s" % spec['isl'].prefix]
options.extend(isl_options)
# Rest of install is straightforward.
configure(*options)
make()
make("install")
build_dir = join_path(self.stage.path, 'spack-build')
configure = Executable( join_path(self.stage.source_path, 'configure') )
with working_dir(build_dir, create=True):
# Rest of install is straightforward.
configure(*options)
make()
make("install")
self.write_rpath_specs()

View File

@@ -0,0 +1,48 @@
##############################################################################
# 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://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 Gdb(Package):
"""
GDB, the GNU Project debugger, allows you to see what is going on `inside' another program while it executes
-- or what another program was doing at the moment it crashed.
"""
homepage = "https://www.gnu.org/software/gdb"
url = "http://ftp.gnu.org/gnu/gdb/gdb-7.10.tar.xz"
version('7.10.1', '39e654460c9cdd80200a29ac020cfe11')
version('7.10', '2a35bac41fa8e10bf04f3a0dd7f7f363')
version('7.9.1', '35374c77a70884eb430c97061053a36e')
version('7.9', 'e6279f26559d839f0b4218a482bcb43e')
version('7.8.2', 'a80cf252ed2e775d4e4533341bbf2459')
depends_on('texinfo')
def install(self, spec, prefix):
configure('--prefix=%s' % prefix)
make()
make("install")

View File

@@ -7,10 +7,25 @@ class Git(Package):
homepage = "http://git-scm.com"
url = "https://www.kernel.org/pub/software/scm/git/git-2.2.1.tar.xz"
version('2.6.3', '5a6375349c3f13c8dbbabfc327bae429')
version('2.6.2', '32ae5ad29763fc927bfcaeab55385fd9')
version('2.6.1', 'dd4a3a7fe96598c553edd39d40c9c290')
version('2.6.0', '6b7d43d615fb3f0dfecf4d131e23f438')
version('2.5.4', 'ec118fcd1cf984edc17eb6588b78e81b')
version('2.2.1', '43e01f9d96ba8c11611e0eef0d9f9f28')
# Use system openssl.
# depends_on("openssl")
# Git compiles with curl support by default on but if your system
# does not have it you will not be able to clone https repos
variant("curl", default=False, description="Add the internal support of curl for https clone")
# Git compiles with expat support by default on but if your system
# does not have it you will not be able to push https repos
variant("expat", default=False, description="Add the internal support of expat for https push")
depends_on("openssl")
depends_on("curl", when="+curl")
depends_on("expat", when="+expat")
# Use system perl for now.
# depends_on("perl")
@@ -19,9 +34,26 @@ class Git(Package):
depends_on("zlib")
def install(self, spec, prefix):
configure("--prefix=%s" % prefix,
"--without-pcre",
"--without-python")
configure_args = [
"--prefix=%s" % prefix,
"--without-pcre",
"--with-openssl=%s" % spec['openssl'].prefix,
"--with-zlib=%s" % spec['zlib'].prefix
]
if '+curl' in spec:
configure_args.append("--with-curl=%s" % spec['curl'].prefix)
if '+expat' in spec:
configure_args.append("--with-expat=%s" % spec['expat'].prefix)
configure(*configure_args)
make()
make("install")

View File

@@ -11,6 +11,7 @@ class Glib(Package):
version('2.42.1', '89c4119e50e767d3532158605ee9121a')
depends_on("libffi")
depends_on("zlib")
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)

View File

@@ -4,7 +4,7 @@
class Global(Package):
""" The Gnu Global tagging system """
# FIXME: add a proper url for your package's homepage here.
homepage = "http://www.gnu.org/software/global"
url = "http://tamacom.com/global/global-6.5.tar.gz"
@@ -13,9 +13,9 @@ class Global(Package):
depends_on('exuberant-ctags')
def install(self, spec, prefix):
config_args = ['--prefix={}'.format(prefix)]
config_args = ['--prefix={0}'.format(prefix)]
config_args.append('--with-exuberant-ctags={}'.format(
config_args.append('--with-exuberant-ctags={0}'.format(
os.path.join(spec['exuberant-ctags'].prefix.bin, 'ctags')))
configure(*config_args)

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
@@ -31,6 +31,7 @@ class Gmp(Package):
homepage = "https://gmplib.org"
url = "https://gmplib.org/download/gmp/gmp-6.0.0a.tar.bz2"
version('6.1.0' , '86ee6e54ebfc4a90b643a65e402c4048')
version('6.0.0a', 'b7ff2d88cae7f8085bd5006096eed470')
version('6.0.0' , '6ef5869ae735db9995619135bd856b84')

View File

@@ -0,0 +1,61 @@
##############################################################################
# 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 *
import os
class Gnuplot(Package):
"""
Gnuplot is a portable command-line driven graphing utility for Linux, OS/2, MS Windows, OSX, VMS, and many other
platforms. The source code is copyrighted but freely distributed (i.e., you don't have to pay for it). It was
originally created to allow scientists and students to visualize mathematical functions and data interactively,
but has grown to support many non-interactive uses such as web scripting. It is also used as a plotting engine by
third-party applications like Octave. Gnuplot has been supported and under active development since 1986
"""
homepage = "http://www.gnuplot.info"
url = "http://downloads.sourceforge.net/project/gnuplot/gnuplot/5.0.1/gnuplot-5.0.1.tar.gz"
version('5.0.1', '79b4f9e203728f76b60b28bcd402d3c7')
depends_on('readline')
depends_on('libcerf')
depends_on('libgd')
depends_on('cairo')
depends_on('pango')
depends_on('wx', when='+wx')
variant('wx', default=False, description='Activates wxWidgets terminal')
def install(self, spec, prefix):
# It seems there's an open bug for wxWidgets support
# See : http://sourceforge.net/p/gnuplot/bugs/1694/
os.environ['TERMLIBS'] = '-lX11'
options = ['--prefix=%s' % prefix]
configure(*options)
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

@@ -0,0 +1,46 @@
##############################################################################
# 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 Gsl(Package):
"""
The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. It is free software under the
GNU General Public License. The library provides a wide range of mathematical routines such as random number
generators, special functions and least-squares fitting. There are over 1000 functions in total with an extensive
test suite.
"""
homepage = "http://www.gnu.org/software/gsl"
url = "http://mirror.switch.ch/ftp/mirror/gnu/gsl/gsl-2.1.tar.gz"
version('2.1' , 'd8f70abafd3e9f0bae03c52d1f4e8de5')
version('2.0' , 'ae44cdfed78ece40e73411b63a78c375')
version('1.16', 'e49a664db13d81c968415cd53f62bc8b')
def install(self, spec, prefix):
configure('--prefix=%s' % prefix)
make()
make("install")

View File

@@ -11,22 +11,30 @@ class Hdf5(Package):
list_url = "http://www.hdfgroup.org/ftp/HDF5/releases"
list_depth = 3
version('1.8.16', 'b8ed9a36ae142317f88b0c7ef4b9c618')
version('1.8.15', '03cccb5b33dbe975fdcd8ae9dc021f24')
version('1.8.13', 'c03426e9e77d7766944654280b467289')
depends_on("mpi")
variant('mpi', default=False, description='Enable MPI support')
depends_on("mpi", when='+mpi')
depends_on("zlib")
# TODO: currently hard-coded to use OpenMPI
def install(self, spec, prefix):
extra_args = []
if '+mpi' in spec:
extra_args.extend([
"--enable-parallel",
"CC=%s" % spec['mpi'].prefix.bin + "/mpicc",
"CXX=%s" % spec['mpi'].prefix.bin + "/mpic++",
])
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++")
*extra_args)
make()
make("install")

View File

@@ -15,11 +15,16 @@ class Hwloc(Package):
homepage = "http://www.open-mpi.org/projects/hwloc/"
url = "http://www.open-mpi.org/software/hwloc/v1.9/downloads/hwloc-1.9.tar.gz"
version('1.11.2', '486169cbe111cdea57be12638828ebbf',
url='http://www.open-mpi.org/software/hwloc/v1.11/downloads/hwloc-1.11.2.tar.bz2')
version('1.11.1', '002742efd3a8431f98d6315365a2b543',
url='http://www.open-mpi.org/software/hwloc/v1.11/downloads/hwloc-1.11.1.tar.bz2')
version('1.9', '1f9f9155682fe8946a97c08896109508')
depends_on('libpciaccess')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")

View File

@@ -5,8 +5,8 @@ class Hypre(Package):
features parallel multigrid methods for both structured and
unstructured grid problems."""
homepage = "https://computation.llnl.gov/project/linear_solvers/software.php"
url = "https://computation.llnl.gov/project/linear_solvers/download/hypre-2.10.0b.tar.gz"
homepage = "http://computation.llnl.gov/project/linear_solvers/software.php"
url = "http://computation.llnl.gov/project/linear_solvers/download/hypre-2.10.0b.tar.gz"
version('2.10.0b', '768be38793a35bb5d055905b271f5b8e')

View File

@@ -14,8 +14,8 @@ class Jdk(Package):
in the form of a binary product aimed at Java developers."""
homepage = "http://www.oracle.com/technetwork/java/javase/downloads/index.html"
version('8u25-linux-x64', 'e145c03a7edc845215092786bcfba77e',
url="http://download.oracle.com/otn-pub/java/jdk/8u25-b17/jdk-8u25-linux-x64.tar.gz")
version('8u66-linux-x64', '88f31f3d642c3287134297b8c10e61bf',
url="http://download.oracle.com/otn-pub/java/jdk/8u66-b17/jdk-8u66-linux-x64.tar.gz")
# Oracle requires that you accept their License Agreement in order
# to access the Java packages in download.oracle.com. In order to

View File

@@ -0,0 +1,24 @@
from spack import *
class Jemalloc(Package):
"""jemalloc is a general purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support."""
homepage = "http://www.canonware.com/jemalloc/"
url = "https://github.com/jemalloc/jemalloc/releases/download/4.0.4/jemalloc-4.0.4.tar.bz2"
version('4.0.4', '687c5cc53b9a7ab711ccd680351ff988')
variant('stats', default=False, description='Enable heap statistics')
variant('prof', default=False, description='Enable heap profiling')
def install(self, spec, prefix):
configure_args = ['--prefix=%s' % prefix,]
if '+stats' in spec:
configure_args.append('--enable-stats')
if '+prof' in spec:
configure_args.append('--enable-prof')
configure(*configure_args)
make()
make("install")

View File

@@ -0,0 +1,15 @@
from spack import *
class Judy(Package):
"""A general-purpose dynamic array, associative array and hash-trie - Judy"""
homepage = "http://judy.sourceforge.net/"
url = "http://downloads.sourceforge.net/project/judy/judy/Judy-1.0.5/Judy-1.0.5.tar.gz"
version('1.0.5', '115a0d26302676e962ae2f70ec484a54')
parallel = False
def install(self, spec, prefix):
configure('--prefix=%s' % prefix)
make()
make("install")

View File

@@ -6,7 +6,7 @@
# Written by Matthew LeGendre, legendre1@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
@@ -31,7 +31,7 @@ class Launchmon(Package):
url = "http://downloads.sourceforge.net/project/launchmon/launchmon/1.0.1%20release/launchmon-1.0.1.tar.gz"
version('1.0.1', '2f12465803409fd07f91174a4389eb2b')
version('1.0.1-2', git='https://github.com/scalability-llnl/launchmon.git', commit='ff7e22424b8f375318951eb1c9282fcbbfa8aadf')
version('1.0.1-2', git='https://github.com/llnl/launchmon.git', commit='ff7e22424b8f375318951eb1c9282fcbbfa8aadf')
depends_on('autoconf')
depends_on('automake')

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,42 @@
##############################################################################
# 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 Libcerf(Package):
"""
A self-contained C library providing complex error functions, based on Faddeeva's plasma dispersion function
w(z). Also provides Dawson's integral and Voigt's convolution of a Gaussian and a Lorentzian
"""
homepage = "http://sourceforge.net/projects/libcerf"
url = "http://downloads.sourceforge.net/project/libcerf/libcerf-1.3.tgz"
version('1.3', 'b3504c467204df71e62aeccf73a25612')
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

@@ -0,0 +1,53 @@
##############################################################################
# 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 Libgd(Package):
"""
GD is an open source code library for the dynamic creation of images by programmers. GD is written in C, and
"wrappers" are available for Perl, PHP and other languages. GD creates PNG, JPEG, GIF, WebP, XPM, BMP images,
among other formats. GD is commonly used to generate charts, graphics, thumbnails, and most anything else, on the
fly. While not restricted to use on the web, the most common applications of GD involve website development.
"""
homepage = "https://github.com/libgd/libgd"
url = "https://github.com/libgd/libgd/archive/gd-2.1.1.tar.gz"
version('2.1.1', 'e91a1a99903e460e7ba00a794e72cc1e')
depends_on('libpng')
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
cmake('..',
'-DENABLE_JPEG:BOOL=ON',
'-DENABLE_PNG:BOOL=ON',
'-DENABLE_TIFF:BOOL=ON',
*std_cmake_args)
make()
make("install")

View File

@@ -0,0 +1,18 @@
--- libmonitor-20130218/configure 2013-02-17 23:08:32.000000000 -0800
+++ libmonitor-20130218-fixes/configure 2013-02-18 10:34:05.237918411 -0800
@@ -3600,13 +3600,13 @@
CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
if test "$GCC" = yes; then
- CFLAGS="-g -O2"
+ CFLAGS="-g -O0"
else
CFLAGS="-g"
fi
else
if test "$GCC" = yes; then
- CFLAGS="-O2"
+ CFLAGS="-O0"
else
CFLAGS=
fi

View File

@@ -0,0 +1,395 @@
--- libmonitor-20130218/src/callback.c 2013-02-17 23:08:32.000000000 -0800
+++ libmonitor-20130218-fixes/src/callback.c 2013-02-18 10:34:17.839842826 -0800
@@ -173,3 +173,18 @@
MONITOR_DEBUG1("(default callback)\n");
return 0;
}
+
+
+void __attribute__ ((weak))
+monitor_mpi_post_comm_rank(void)
+{
+ MONITOR_DEBUG1("(default callback)\n");
+}
+
+void __attribute__ ((weak))
+monitor_mpi_pcontrol(int level)
+{
+ MONITOR_DEBUG("(default callback) level = %d\n", level);
+}
+
+
--- libmonitor-20130218/src/main.c 2013-02-17 23:08:32.000000000 -0800
+++ libmonitor-20130218-fixes/src/main.c 2013-02-18 10:34:17.839842826 -0800
@@ -230,6 +230,44 @@
monitor_fini_library_called = 1;
}
+/*
+ * Internal monitor functions.
+ */
+
+struct monitor_thread_node * __attribute__ ((weak))
+monitor_get_tn(void)
+{
+ return &monitor_main_tn;
+}
+
+int __attribute__ ((weak))
+monitor_get_thread_num(void)
+{
+ return (0);
+}
+
+void __attribute__ ((weak))
+monitor_reset_thread_list(struct monitor_thread_node *main_tn)
+{
+ MONITOR_DEBUG1("(weak)\n");
+ return;
+}
+
+void __attribute__ ((weak))
+monitor_thread_release(void)
+{
+ MONITOR_DEBUG1("(weak)\n");
+ return;
+}
+
+void __attribute__ ((weak))
+monitor_thread_shootdown(void)
+{
+ MONITOR_DEBUG1("(weak)\n");
+ return;
+}
+
+
void
monitor_begin_process_fcn(void *user_data, int is_fork)
{
@@ -625,12 +663,6 @@
return (monitor_main_tn.tn_user_data);
}
-int __attribute__ ((weak))
-monitor_get_thread_num(void)
-{
- return (0);
-}
-
void * __attribute__ ((weak))
monitor_get_addr_thread_start(void)
{
@@ -691,33 +723,3 @@
MONITOR_DEBUG1("(weak)\n");
return (FALSE);
}
-
-/*
- * Internal monitor functions.
- */
-struct monitor_thread_node * __attribute__ ((weak))
-monitor_get_tn(void)
-{
- return &monitor_main_tn;
-}
-
-void __attribute__ ((weak))
-monitor_reset_thread_list(struct monitor_thread_node *main_tn)
-{
- MONITOR_DEBUG1("(weak)\n");
- return;
-}
-
-void __attribute__ ((weak))
-monitor_thread_release(void)
-{
- MONITOR_DEBUG1("(weak)\n");
- return;
-}
-
-void __attribute__ ((weak))
-monitor_thread_shootdown(void)
-{
- MONITOR_DEBUG1("(weak)\n");
- return;
-}
--- libmonitor-20130218/src/monitor.h 2013-02-17 23:08:32.000000000 -0800
+++ libmonitor-20130218-fixes/src/monitor.h 2013-02-18 10:34:17.840842821 -0800
@@ -73,6 +73,11 @@
extern void monitor_fini_mpi(void);
extern void monitor_mpi_post_fini(void);
+extern void monitor_mpi_post_comm_rank(void);
+extern void monitor_mpi_pcontrol(int level);
+
+
+
/*
* Monitor support functions.
*/
--- libmonitor-20130218/src/mpi_comm_c.c 2013-02-17 23:08:32.000000000 -0800
+++ libmonitor-20130218-fixes/src/mpi_comm_c.c 2013-02-18 10:34:17.878842622 -0800
@@ -36,5 +36,8 @@
ret = (*real_mpi_comm_rank)(comm, rank);
monitor_set_mpi_size_rank(size, *rank);
+ monitor_mpi_post_comm_rank();
+
+
return (ret);
}
--- libmonitor-20130218/src/mpi_comm_f0.c 2013-02-17 23:08:32.000000000 -0800
+++ libmonitor-20130218-fixes/src/mpi_comm_f0.c 2013-02-18 10:34:17.879842617 -0800
@@ -34,4 +34,5 @@
(*real_mpi_comm_size)(comm, &size, ierror);
(*real_mpi_comm_rank)(comm, rank, ierror);
monitor_set_mpi_size_rank(size, *rank);
+ monitor_mpi_post_comm_rank();
}
--- libmonitor-20130218/src/mpi_comm_f1.c 2013-02-17 23:08:32.000000000 -0800
+++ libmonitor-20130218-fixes/src/mpi_comm_f1.c 2013-02-18 10:34:17.880842612 -0800
@@ -34,4 +34,5 @@
(*real_mpi_comm_size)(comm, &size, ierror);
(*real_mpi_comm_rank)(comm, rank, ierror);
monitor_set_mpi_size_rank(size, *rank);
+ monitor_mpi_post_comm_rank();
}
--- libmonitor-20130218/src/mpi_comm_f2.c 2013-02-17 23:08:32.000000000 -0800
+++ libmonitor-20130218-fixes/src/mpi_comm_f2.c 2013-02-18 10:34:17.880842612 -0800
@@ -34,4 +34,5 @@
(*real_mpi_comm_size)(comm, &size, ierror);
(*real_mpi_comm_rank)(comm, rank, ierror);
monitor_set_mpi_size_rank(size, *rank);
+ monitor_mpi_post_comm_rank();
}
--- libmonitor-20130218/src/pmpi.c 2013-02-17 23:08:32.000000000 -0800
+++ libmonitor-20130218-fixes/src/pmpi.c 2013-02-18 10:34:17.881842607 -0800
@@ -52,11 +52,15 @@
typedef int mpi_init_thread_fcn_t(int *, char ***, int, int *);
typedef int mpi_finalize_fcn_t(void);
typedef int mpi_comm_fcn_t(void *, int *);
+typedef int mpi_pcontrol_fcn_t(int );
+
typedef void f_mpi_init_fcn_t(int *);
typedef void f_mpi_init_thread_fcn_t(int *, int *, int *);
typedef void f_mpi_finalize_fcn_t(int *);
typedef void f_mpi_comm_fcn_t(int *, int *, int *);
+typedef int f_mpi_pcontrol_fcn_t(int );
+
static mpi_init_fcn_t *real_pmpi_init = NULL;
static f_mpi_init_fcn_t *real_pmpi_init_f0 = NULL;
@@ -83,6 +87,12 @@
static f_mpi_comm_fcn_t *real_pmpi_comm_rank_f1 = NULL;
static f_mpi_comm_fcn_t *real_pmpi_comm_rank_f2 = NULL;
+static mpi_pcontrol_fcn_t *real_pmpi_pcontrol = NULL;
+static f_mpi_pcontrol_fcn_t *real_pmpi_pcontrol_f0 = NULL;
+static f_mpi_pcontrol_fcn_t *real_pmpi_pcontrol_f1 = NULL;
+static f_mpi_pcontrol_fcn_t *real_pmpi_pcontrol_f2 = NULL;
+
+
/*
*----------------------------------------------------------------------
* PMPI_INIT OVERRIDE FUNCTIONS
@@ -297,6 +307,7 @@
ret = (*real_pmpi_comm_size)(comm, &size);
ret = (*real_pmpi_comm_rank)(comm, rank);
monitor_set_mpi_size_rank(size, *rank);
+ monitor_mpi_post_comm_rank();
return (ret);
}
@@ -308,7 +319,9 @@
MONITOR_GET_REAL_NAME_WRAP(rank_var, rank_fcn); \
(*size_var)(comm, &size, ierror); \
(*rank_var)(comm, rank, ierror); \
- monitor_set_mpi_size_rank(size, *rank);
+ monitor_set_mpi_size_rank(size, *rank); \
+ monitor_mpi_post_comm_rank();
+
/*
* In Fortran, MPI_Comm is always int.
@@ -333,3 +346,48 @@
FORTRAN_COMM_RANK_BODY(real_pmpi_comm_size_f2, pmpi_comm_size__,
real_pmpi_comm_rank_f2, pmpi_comm_rank__);
}
+
+
+/*
+ *----------------------------------------------------------------------
+ * PMPI_PCONTROL OVERRIDE FUNCTIONS
+ *----------------------------------------------------------------------
+ */
+
+int
+MONITOR_WRAP_NAME(PMPI_Pcontrol)(int level)
+{
+ int ret;
+
+ MONITOR_DEBUG("level = %d\n", level); \
+ MONITOR_GET_REAL_NAME_WRAP(real_pmpi_pcontrol, PMPI_Pcontrol);
+ ret = (*real_pmpi_pcontrol) (level) ;
+ monitor_mpi_pcontrol(level);
+
+ return (ret);
+}
+
+#define FORTRAN_PCONTROL_BODY(var_name, fcn_name)\
+ int ret; \
+ MONITOR_DEBUG("level = %d\n", level); \
+ MONITOR_GET_REAL_NAME_WRAP(var_name, fcn_name); \
+ ret = (*var_name) (level) ; \
+ monitor_mpi_pcontrol(level);
+
+int
+MONITOR_WRAP_NAME(pmpi_pcontrol)(int level)
+{
+ FORTRAN_PCONTROL_BODY(real_pmpi_pcontrol_f0, pmpi_pcontrol);
+}
+
+int
+MONITOR_WRAP_NAME(pmpi_pcontrol_)(int level)
+{
+ FORTRAN_PCONTROL_BODY(real_pmpi_pcontrol_f1, pmpi_pcontrol_);
+}
+
+int
+MONITOR_WRAP_NAME(pmpi_pcontrol__)(int level)
+{
+ FORTRAN_PCONTROL_BODY(real_pmpi_pcontrol_f2, pmpi_pcontrol__);
+}
--- libmonitor-20130218/src/mpi_pcontrol_c.c 1969-12-31 16:00:00.000000000 -0800
+++ libmonitor-20130218-fixes/src/mpi_pcontrol_c.c 2013-02-18 10:34:17.882842602 -0800
@@ -0,0 +1,30 @@
+/*
+ * Override MPI_Pcontrol in C/C++.
+ *
+ *
+ */
+
+#include "config.h"
+#include "common.h"
+#include "monitor.h"
+
+typedef int mpi_pcontrol_fcn_t(int level);
+#ifdef MONITOR_STATIC
+extern mpi_pcontrol_fcn_t __real_MPI_Pcontrol;
+#endif
+static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
+
+int
+MONITOR_WRAP_NAME(MPI_Pcontrol)(int level)
+{
+ int ret, count;
+
+ MONITOR_DEBUG("level = %d\n", level); \
+
+ MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, MPI_Pcontrol);
+ ret = (*real_mpi_pcontrol)(level);
+ monitor_mpi_pcontrol(level);
+
+
+ return (ret);
+}
--- libmonitor-20130218/src/mpi_pcontrol_f0.c 1969-12-31 16:00:00.000000000 -0800
+++ libmonitor-20130218-fixes/src/mpi_pcontrol_f0.c 2013-02-18 10:34:17.882842602 -0800
@@ -0,0 +1,24 @@
+/*
+ * Override mpi_pcontrol in Fortran.
+ *
+ */
+
+#include "config.h"
+#include "common.h"
+#include "monitor.h"
+
+typedef void mpi_pcontrol_fcn_t(int level);
+#ifdef MONITOR_STATIC
+extern mpi_pcontrol_fcn_t __real_mpi_pcontrol;
+#endif
+static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
+
+int
+MONITOR_WRAP_NAME(mpi_pcontrol)(int level)
+{
+ int count;
+
+ MONITOR_DEBUG1("\n");
+ MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, mpi_pcontrol);
+ (*real_mpi_pcontrol)(level);
+}
--- libmonitor-20130218/src/mpi_pcontrol_f1.c 1969-12-31 16:00:00.000000000 -0800
+++ libmonitor-20130218-fixes/src/mpi_pcontrol_f1.c 2013-02-18 10:34:17.883842597 -0800
@@ -0,0 +1,24 @@
+/*
+ * Override mpi_pcontrol_ in Fortran.
+ *
+ */
+
+#include "config.h"
+#include "common.h"
+#include "monitor.h"
+
+typedef void mpi_pcontrol_fcn_t(int level);
+#ifdef MONITOR_STATIC
+extern mpi_pcontrol_fcn_t __real_mpi_pcontrol_;
+#endif
+static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
+
+int
+MONITOR_WRAP_NAME(mpi_pcontrol_)(int level)
+{
+ int count;
+
+ MONITOR_DEBUG1("\n");
+ MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, mpi_pcontrol_);
+ (*real_mpi_pcontrol)(level);
+}
--- libmonitor-20130218/src/mpi_pcontrol_f2.c 1969-12-31 16:00:00.000000000 -0800
+++ libmonitor-20130218-fixes/src/mpi_pcontrol_f2.c 2013-02-18 10:34:17.883842597 -0800
@@ -0,0 +1,24 @@
+/*
+ * Override mpi_pcontrol__ in Fortran.
+ *
+ */
+
+#include "config.h"
+#include "common.h"
+#include "monitor.h"
+
+typedef void mpi_pcontrol_fcn_t(int level);
+#ifdef MONITOR_STATIC
+extern mpi_pcontrol_fcn_t __real_mpi_pcontrol__;
+#endif
+static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
+
+int
+MONITOR_WRAP_NAME(mpi_pcontrol__)(int level)
+{
+ int count;
+
+ MONITOR_DEBUG1("\n");
+ MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, mpi_pcontrol__);
+ (*real_mpi_pcontrol)(level);
+}
--- libmonitor-20130218/src/Makefile.am 2013-02-17 23:08:32.000000000 -0800
+++ libmonitor-20130218-fixes/src/Makefile.am 2013-02-18 10:34:17.931842343 -0800
@@ -38,10 +38,11 @@
MONITOR_THREAD_FILES = pthread.c
MONITOR_SCRIPT_FILES = monitor-link monitor-run
MONITOR_MPI_FILES = \
- mpi_init_c.c mpi_init_thread_c.c mpi_final_c.c mpi_comm_c.c \
- mpi_init_f0.c mpi_init_thread_f0.c mpi_final_f0.c mpi_comm_f0.c \
- mpi_init_f1.c mpi_init_thread_f1.c mpi_final_f1.c mpi_comm_f1.c \
- mpi_init_f2.c mpi_init_thread_f2.c mpi_final_f2.c mpi_comm_f2.c
+ mpi_init_c.c mpi_init_thread_c.c mpi_final_c.c mpi_comm_c.c mpi_pcontrol_c.c \
+ mpi_init_f0.c mpi_init_thread_f0.c mpi_final_f0.c mpi_comm_f0.c mpi_pcontrol_f0.c \
+ mpi_init_f1.c mpi_init_thread_f1.c mpi_final_f1.c mpi_comm_f1.c mpi_pcontrol_f1.c \
+ mpi_init_f2.c mpi_init_thread_f2.c mpi_final_f2.c mpi_comm_f2.c mpi_pcontrol_f2.c
+
include_HEADERS = monitor.h
bin_SCRIPTS =

View File

@@ -0,0 +1,106 @@
--- libmonitor-20130218/src/pmpi.c 2013-02-18 11:34:17.000000000 -0700
+++ libmonitor-20130218-fixed/src/pmpi.c 2013-04-11 10:03:59.300550393 -0600
@@ -355,7 +355,7 @@
*/
int
-MONITOR_WRAP_NAME(PMPI_Pcontrol)(int level)
+MONITOR_WRAP_NAME(PMPI_Pcontrol)(int level, int *ierror )
{
int ret;
@@ -375,19 +375,19 @@
monitor_mpi_pcontrol(level);
int
-MONITOR_WRAP_NAME(pmpi_pcontrol)(int level)
+MONITOR_WRAP_NAME(pmpi_pcontrol)(int level, int *ierror )
{
FORTRAN_PCONTROL_BODY(real_pmpi_pcontrol_f0, pmpi_pcontrol);
}
int
-MONITOR_WRAP_NAME(pmpi_pcontrol_)(int level)
+MONITOR_WRAP_NAME(pmpi_pcontrol_)(int level, int *ierror )
{
FORTRAN_PCONTROL_BODY(real_pmpi_pcontrol_f1, pmpi_pcontrol_);
}
int
-MONITOR_WRAP_NAME(pmpi_pcontrol__)(int level)
+MONITOR_WRAP_NAME(pmpi_pcontrol__)(int level, int *ierror )
{
FORTRAN_PCONTROL_BODY(real_pmpi_pcontrol_f2, pmpi_pcontrol__);
}
--- libmonitor-20130218/src/mpi_pcontrol_f0.c 2013-02-18 11:34:17.000000000 -0700
+++ libmonitor-20130218-fixed/src/mpi_pcontrol_f0.c 2013-04-11 10:13:47.783002000 -0600
@@ -7,18 +7,18 @@
#include "common.h"
#include "monitor.h"
-typedef void mpi_pcontrol_fcn_t(int level);
+typedef void mpi_pcontrol_fcn_t(int level, int *ierror);
#ifdef MONITOR_STATIC
extern mpi_pcontrol_fcn_t __real_mpi_pcontrol;
#endif
static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
int
-MONITOR_WRAP_NAME(mpi_pcontrol)(int level)
+MONITOR_WRAP_NAME(mpi_pcontrol)(int level, int *ierror)
{
int count;
MONITOR_DEBUG1("\n");
MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, mpi_pcontrol);
- (*real_mpi_pcontrol)(level);
+ (*real_mpi_pcontrol)(level, ierror);
}
--- libmonitor-20130218/src/mpi_pcontrol_f1.c 2013-02-18 11:34:17.000000000 -0700
+++ libmonitor-20130218-fixed/src/mpi_pcontrol_f1.c 2013-04-11 10:14:08.039214000 -0600
@@ -7,18 +7,18 @@
#include "common.h"
#include "monitor.h"
-typedef void mpi_pcontrol_fcn_t(int level);
+typedef void mpi_pcontrol_fcn_t(int level, int *ierror);
#ifdef MONITOR_STATIC
extern mpi_pcontrol_fcn_t __real_mpi_pcontrol_;
#endif
static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
int
-MONITOR_WRAP_NAME(mpi_pcontrol_)(int level)
+MONITOR_WRAP_NAME(mpi_pcontrol_)(int level, int *ierror)
{
int count;
MONITOR_DEBUG1("\n");
MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, mpi_pcontrol_);
- (*real_mpi_pcontrol)(level);
+ (*real_mpi_pcontrol)(level, ierror);
}
--- libmonitor-20130218/src/mpi_pcontrol_f2.c 2013-02-18 11:34:17.000000000 -0700
+++ libmonitor-20130218-fixed/src/mpi_pcontrol_f2.c 2013-04-11 10:14:19.000960000 -0600
@@ -7,18 +7,18 @@
#include "common.h"
#include "monitor.h"
-typedef void mpi_pcontrol_fcn_t(int level);
+typedef void mpi_pcontrol_fcn_t(int level, int *ierror);
#ifdef MONITOR_STATIC
extern mpi_pcontrol_fcn_t __real_mpi_pcontrol__;
#endif
static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
int
-MONITOR_WRAP_NAME(mpi_pcontrol__)(int level)
+MONITOR_WRAP_NAME(mpi_pcontrol__)(int level, int *ierror)
{
int count;
MONITOR_DEBUG1("\n");
MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, mpi_pcontrol__);
- (*real_mpi_pcontrol)(level);
+ (*real_mpi_pcontrol)(level, ierror);
}

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
@@ -29,6 +29,13 @@ class Libmonitor(Package):
homepage = "http://hpctoolkit.org"
version('20130218', svn='http://libmonitor.googlecode.com/svn/trunk/', revision=146)
variant('krellpatch', default=False, description="build with openspeedshop based patch.")
patch('libmonitorkrell-0000.patch', when='@20130218+krellpatch')
patch('libmonitorkrell-0001.patch', when='@20130218+krellpatch')
patch('libmonitorkrell-0002.patch', when='@20130218+krellpatch')
def install(self, spec, prefix):
configure("--prefix=" + prefix)

View File

@@ -1,4 +1,5 @@
from spack import *
import os.path
class Libpciaccess(Package):
"""Generic PCI access library."""
@@ -13,6 +14,12 @@ class Libpciaccess(Package):
depends_on('libtool')
def install(self, spec, prefix):
# libpciaccess does not support OS X
if spec.satisfies('=darwin-x86_64'):
# create a dummy directory
mkdir(prefix.lib)
return
from subprocess import call
call(["./autogen.sh"])
configure("--prefix=%s" % prefix)

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

@@ -1,4 +1,5 @@
from spack import *
import os
class Libxml2(Package):
"""Libxml2 is the XML C parser and toolkit developed for the Gnome
@@ -9,12 +10,21 @@ class Libxml2(Package):
version('2.9.2', '9e6a9aca9d155737868b3dc5fd82f788')
extends('python')
variant('python', default=False, description='Enable Python support')
extends('python', when='+python', ignore=r'(bin.*$)|(include.*$)|(share.*$)|(lib/libxml2.*$)|(lib/xml2.*$)|(lib/cmake.*$)')
depends_on('zlib')
depends_on('xz')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
if '+python' in spec:
site_packages_dir = os.path.join(prefix, 'lib/python%s.%s/site-packages' %(spec['python'].version[:2]))
python_args = ["--with-python=%s" % spec['python'].prefix, "--with-python-install-dir=%s" % site_packages_dir]
else:
python_args = ["--without-python"]
configure("--prefix=%s" % prefix,
*python_args)
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 David Beckingsale, david@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
@@ -38,16 +38,35 @@ class Llvm(Package):
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.0', 'a8e5f5f1c1adebae7b4a654c376a6005', url='http://llvm.org/releases/3.0/llvm-3.0.tar.gz') # currently required by mesa package
depends_on('python@2.7:')
variant('libcxx', default=False, description="Builds the LLVM Standard C++ library targeting C++11")
##########
# @3.7.0
resource(name='compiler-rt',
url='http://llvm.org/releases/3.7.0/compiler-rt-3.7.0.src.tar.xz', md5='383c10affd513026f08936b5525523f5',
destination='projects', when='@3.7.0')
resource(name='openmp',
url='http://llvm.org/releases/3.7.0/openmp-3.7.0.src.tar.xz', md5='f482c86fdead50ba246a1a2b0bbf206f',
destination='projects', when='@3.7.0')
resource(name='libcxx',
url='http://llvm.org/releases/3.7.0/libcxx-3.7.0.src.tar.xz', md5='46aa5175cbe1ad42d6e9c995968e56dd',
destination='projects', placement='libcxx', when='+libcxx@3.7.0')
resource(name='libcxxabi',
url='http://llvm.org/releases/3.7.0/libcxxabi-3.7.0.src.tar.xz', md5='5aa769e2fca79fa5335cfae8f6258772',
destination='projects', placement='libcxxabi', when='+libcxx@3.7.0')
##########
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=%s/bin/python' % spec['python'].prefix,
'-DLLVM_REQUIRES_RTTI:BOOL=ON',
'-DPYTHON_EXECUTABLE:PATH=%s/bin/python' % spec['python'].prefix,
*std_cmake_args)
make()
make("install")

View File

@@ -0,0 +1,26 @@
from spack import *
import os
class Lmod(Package):
"""
Lmod is a Lua based module system that easily handles the MODULEPATH
Hierarchical problem. Environment Modules provide a convenient way to
dynamically change the users' environment through modulefiles. This
includes easily adding or removing directories to the PATH environment
variable. Modulefiles for Library packages provide environment variables
that specify where the library and header files can be found.
"""
homepage = "https://www.tacc.utexas.edu/research-development/tacc-projects/lmod"
url = "http://sourceforge.net/projects/lmod/files/Lmod-6.0.1.tar.bz2/download"
version('6.0.1', '91abf52fe5033bd419ffe2842ebe7af9')
depends_on("lua@5.2:")
def install(self, spec, prefix):
# Add our lua to PATH
os.environ['PATH'] = spec['lua'].prefix.bin + ';' + os.environ['PATH']
configure('--prefix=%s' % prefix)
make()
make("install")

View File

@@ -21,6 +21,8 @@ class Lua(Package):
def install(self, spec, prefix):
make('INSTALL_TOP=%s' % prefix,
'MYLDFLAGS=-L%s/lib' % spec['ncurses'].prefix,
'linux',
'MYLDFLAGS="-L%s/lib -Wl,-rpath,%s"' % (spec['ncurses'].prefix,spec['ncurses'].prefix),
'linux')
make('INSTALL_TOP=%s' % prefix,
'MYLDFLAGS="-L%s/lib -Wl,-rpath,%s"' % (spec['ncurses'].prefix,spec['ncurses'].prefix),
'install')

View File

@@ -3,10 +3,10 @@
class Memaxes(Package):
"""MemAxes is a visualizer for sampled memory trace data."""
homepage = "https://github.com/scalability-llnl/MemAxes"
homepage = "https://github.com/llnl/MemAxes"
version('0.5', '5874f3fda9fd2d313c0ff9684f915ab5',
url='https://github.com/scalability-llnl/MemAxes/archive/v0.5.tar.gz')
url='https://github.com/llnl/MemAxes/archive/v0.5.tar.gz')
depends_on("cmake@2.8.9:")
depends_on("qt@5:")
@@ -16,4 +16,3 @@ def install(self, spec, prefix):
cmake('..', *std_cmake_args)
make()
make("install")

View File

@@ -14,7 +14,7 @@ class Mesa(Package):
# mesa 7.x, 8.x, 9.x
depends_on("libdrm@2.4.33")
depends_on("llvm@3.0")
depends_on("libxml2")
depends_on("libxml2+python")
# patch("llvm-fixes.patch") # using newer llvm

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
@@ -31,6 +31,7 @@ class Mpc(Package):
homepage = "http://www.multiprecision.org"
url = "ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.2.tar.gz"
version('1.0.3', 'd6a1d5f8ddea3abd2cc3e98f58352d26')
version('1.0.2', '68fadff3358fb3e7976c7a398a0af4c3')
depends_on("gmp")

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
@@ -85,8 +85,13 @@ def filter_compilers(self):
mpif77 = os.path.join(bin, 'mpif77')
mpif90 = os.path.join(bin, 'mpif90')
spack_cc = os.environ['CC']
spack_cxx = os.environ['CXX']
spack_f77 = os.environ['F77']
spack_fc = os.environ['FC']
kwargs = { 'ignore_absent' : True, 'backup' : False, 'string' : True }
filter_file('CC="cc"', 'CC="%s"' % self.compiler.cc, mpicc, **kwargs)
filter_file('CXX="c++"', 'CXX="%s"' % self.compiler.cxx, mpicxx, **kwargs)
filter_file('F77="f77"', 'F77="%s"' % self.compiler.f77, mpif77, **kwargs)
filter_file('FC="f90"', 'FC="%s"' % self.compiler.fc, mpif90, **kwargs)
filter_file('CC="%s"' % spack_cc , 'CC="%s"' % self.compiler.cc, mpicc, **kwargs)
filter_file('CXX="%s"'% spack_cxx, 'CXX="%s"' % self.compiler.cxx, mpicxx, **kwargs)
filter_file('F77="%s"'% spack_f77, 'F77="%s"' % self.compiler.f77, mpif77, **kwargs)
filter_file('FC="%s"' % spack_fc , 'FC="%s"' % self.compiler.fc, mpif90, **kwargs)

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

@@ -7,13 +7,19 @@ class Mrnet(Package):
version('4.0.0', 'd00301c078cba57ef68613be32ceea2f')
version('4.1.0', '5a248298b395b329e2371bf25366115c')
version('5.0.1', '17f65738cf1b9f9b95647ff85f69ecdd')
variant('lwthreads', default=False, description="Also build the MRNet LW threadsafe libraries")
parallel = False
depends_on("boost")
def install(self, spec, prefix):
configure("--prefix=%s" %prefix, "--enable-shared")
# Build the MRNet LW thread safe libraries when the krelloptions variant is present
if '+lwthreads' in spec:
configure("--prefix=%s" %prefix, "--enable-shared", "--enable-ltwt-threadsafe")
else:
configure("--prefix=%s" %prefix, "--enable-shared")
make()
make("install")

View File

@@ -7,8 +7,8 @@ class Muster(Package):
for performance data analysis on systems with very large
numbers of processes.
"""
homepage = "https://github.com/scalability-llnl/muster"
url = "https://github.com/scalability-llnl/muster/archive/v1.0.tar.gz"
homepage = "https://github.com/llnl/muster"
url = "https://github.com/llnl/muster/archive/v1.0.tar.gz"
version('1.0.1', 'd709787db7e080447afb6571ac17723c')
version('1.0', '2eec6979a4a36d3a65a792d12969be16')

View File

@@ -1,104 +1,184 @@
import os
from spack import *
import os
class Mvapich2(Package):
"""mvapich2 is an MPI implmenetation for infiniband networks."""
"""MVAPICH2 is an MPI implementation for Infiniband networks."""
homepage = "http://mvapich.cse.ohio-state.edu/"
version('2.2a', 'b8ceb4fc5f5a97add9b3ff1b9cbe39d2',
url='http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.2a.tar.gz')
version('2.0', '9fbb68a4111a8b6338e476dc657388b4',
url='http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.0.tar.gz')
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')
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
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('debug', default=False, description='Enables debug information and error messages at run-time')
##########
# TODO : Process managers should be grouped into the same variant, as soon as variant capabilities will be extended
# See https://groups.google.com/forum/#!topic/spack/F8-f8B4_0so
SLURM = 'slurm'
HYDRA = 'hydra'
GFORKER = 'gforker'
REMSHELL = 'remshell'
SLURM_INCOMPATIBLE_PMS = (HYDRA, GFORKER, REMSHELL)
variant(SLURM, default=False, description='Sets slurm as the only process manager')
variant(HYDRA, default=False, description='Sets hydra as one of the process managers')
variant(GFORKER, default=False, description='Sets gforker as one of the process managers')
variant(REMSHELL, default=False, description='Sets remshell as one of the process managers')
##########
##########
# TODO : Network types should be grouped into the same variant, as soon as variant capabilities will be extended
PSM = 'psm'
SOCK = 'sock'
NEMESISIBTCP = 'nemesisibtcp'
NEMESISIB = 'nemesisib'
NEMESIS = 'nemesis'
SUPPORTED_NETWORKS = (PSM, SOCK, NEMESIS, NEMESISIB, NEMESISIBTCP)
variant(PSM, default=False, description='Configures a build for QLogic PSM-CH3')
variant(SOCK, default=False, description='Configures a build for TCP/IP-CH3')
variant(NEMESISIBTCP, default=False, description='Configures a build for both OFA-IB-Nemesis and TCP/IP-Nemesis')
variant(NEMESISIB, default=False, description='Configures a build for OFA-IB-Nemesis')
variant(NEMESIS, default=False, description='Configures a build for TCP/IP-Nemesis')
##########
# FIXME : CUDA support is missing
@staticmethod
def enabled(x):
"""
Given a variant name returns the string that means the variant is enabled
:param x: variant name
:return:
"""
return '+' + x
def set_build_type(self, spec, configure_args):
"""
Appends to configure_args the flags that depends only on the build type (i.e. release or debug)
:param spec: spec
:param configure_args: list of current configure arguments
"""
if '+debug' in spec:
build_type_options = [
"--disable-fast",
"--enable-error-checking=runtime",
"--enable-error-messages=all",
"--enable-g=dbg", "--enable-debuginfo" # Permits debugging with TotalView
]
else:
build_type_options = ["--enable-fast=all"]
configure_args.extend(build_type_options)
def set_process_manager(self, spec, configure_args):
"""
Appends to configure_args the flags that will enable the appropriate process managers
:param spec: spec
:param configure_args: list of current configure arguments
"""
# Check that slurm variant is not activated together with other pm variants
has_slurm_incompatible_variants = any(self.enabled(x) in spec for x in Mvapich2.SLURM_INCOMPATIBLE_PMS)
if self.enabled(Mvapich2.SLURM) in spec and has_slurm_incompatible_variants:
raise RuntimeError(" %s : 'slurm' cannot be activated together with other process managers" % self.name)
process_manager_options = []
if self.enabled(Mvapich2.SLURM) in spec:
process_manager_options = [
"--with-pm=slurm"
]
elif has_slurm_incompatible_variants:
pms = []
# The variant name is equal to the process manager name in the configuration options
for x in Mvapich2.SLURM_INCOMPATIBLE_PMS:
if self.enabled(x) in spec:
pms.append(x)
process_manager_options = [
"--with-pm=%s" % ':'.join(pms)
]
configure_args.extend(process_manager_options)
def set_network_type(self, spec, configure_args):
# Check that at most one variant has been activated
count = 0
for x in Mvapich2.SUPPORTED_NETWORKS:
if self.enabled(x) in spec:
count += 1
if count > 1:
raise RuntimeError('network variants are mutually exclusive (only one can be selected at a time)')
# From here on I can suppose that ony one variant has been selected
if self.enabled(Mvapich2.PSM) in spec:
network_options = ["--with-device=ch3:psm"]
elif self.enabled(Mvapich2.SOCK) in spec:
network_options = ["--with-device=ch3:sock"]
elif self.enabled(Mvapich2.NEMESISIBTCP) in spec:
network_options = ["--with-device=ch3:nemesis:ib,tcp"]
elif self.enabled(Mvapich2.NEMESISIB) in spec:
network_options = ["--with-device=ch3:nemesis:ib"]
elif self.enabled(Mvapich2.NEMESIS) in spec:
network_options = ["--with-device=ch3:nemesis"]
else:
network_options = ["--with-device=ch3:mrail", "--with-rdma=gen2"]
configure_args.extend(network_options)
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", "--with-rdma=gen2")
# 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", "--with-pmi=slurm",
"--enable-romio", "--with-file-system=lustre+nfs+ufs",
"--disable-mpe", "--without-mpe",
configure_args = [
"--prefix=%s" % prefix,
"--enable-shared",
"--enable-romio",
"--disable-silent-rules",
*configure_args)
]
if not self.compiler.f77 and not self.compiler.fc:
configure_args.append("--enable-fortran=none")
# Set the type of the build (debug, release)
self.set_build_type(spec, configure_args)
# Set the process manager
self.set_process_manager(spec, configure_args)
# Determine network type by variant
self.set_network_type(spec, configure_args)
configure(*configure_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, F77, and FC set
to Spack's generic cc, c++, f77, and f90. We want them to
be bound to whatever compiler they were built with.
"""
bin = self.prefix.bin
mpicc = os.path.join(bin, 'mpicc')
mpicxx = os.path.join(bin, 'mpicxx')
mpif77 = os.path.join(bin, 'mpif77')
mpif90 = os.path.join(bin, 'mpif90')
spack_cc = os.environ['CC']
spack_cxx = os.environ['CXX']
spack_f77 = os.environ['F77']
spack_fc = os.environ['FC']
kwargs = { 'ignore_absent' : True, 'backup' : False, 'string' : True }
filter_file('CC="%s"' % spack_cc , 'CC="%s"' % self.compiler.cc, mpicc, **kwargs)
filter_file('CXX="%s"'% spack_cxx, 'CXX="%s"' % self.compiler.cxx, mpicxx, **kwargs)
filter_file('F77="%s"'% spack_f77, 'F77="%s"' % self.compiler.f77, mpif77, **kwargs)
filter_file('FC="%s"' % spack_fc , 'FC="%s"' % self.compiler.fc, mpif90, **kwargs)

View File

@@ -14,6 +14,8 @@ class Ncurses(Package):
version('6.0', 'ee13d052e1ead260d7c28071f46eefb1',
url='http://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.0.tar.gz')
patch('patch_gcc_5.txt', when='%gcc@5.0:')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix,
"--with-shared",

View File

@@ -0,0 +1,12 @@
diff -Naur ncurses-6.0/ncurses/Makefile.in ncurses-6.0-patched/ncurses/Makefile.in
--- ncurses-6.0/ncurses/Makefile.in 2015-08-06 01:15:41.000000000 +0200
+++ ncurses-6.0-patched/ncurses/Makefile.in 2015-12-15 14:58:52.710199407 +0100
@@ -219,7 +219,7 @@
$(SHELL) -e $(tinfo)/MKfallback.sh $(TERMINFO) $(TERMINFO_SRC) $(TIC_PATH) $(FALLBACK_LIST) >$@
./lib_gen.c : $(base)/MKlib_gen.sh ../include/curses.h
- $(SHELL) -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" generated <../include/curses.h >$@
+ $(SHELL) -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS) -P" "$(AWK)" generated <../include/curses.h >$@
init_keytry.h: make_keys$(BUILD_EXEEXT) keys.list
./make_keys$(BUILD_EXEEXT) keys.list > $@

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

@@ -3,9 +3,9 @@
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"
url = "http://github.com/khuck/LLVM-openmp/archive/v0.1.tar.gz"
version('spack', '35227b2726e377faa433fc841226e036')
version('0.1', '2334e6a84b52da41b27afd9831ed5370')
# depends_on("foo")

View File

@@ -17,6 +17,8 @@ class Opari2(Package):
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.4', '245d3d11147a06de77909b0805f530c0',
url='http://www.vi-hps.org/upload/packages/opari2/opari2-1.1.4.tar.gz')
version('1.1.2', '9a262c7ca05ff0ab5f7775ae96f3539e')
backend_user_provided = """\

View File

@@ -0,0 +1,21 @@
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')
# virtual dependency
provides('blas')
provides('lapack')
def install(self, spec, prefix):
make('libs', 'netlib', 'shared', 'CC=cc', 'FC=f77')
make('install', "PREFIX='%s'" % prefix)
# Blas virtual package should provide blas.a and libblas.a
with working_dir(prefix.lib):
symlink('libopenblas.a', 'blas.a')
symlink('libopenblas.a', 'libblas.a')

View File

@@ -0,0 +1,31 @@
This patch addresses <https://github.com/open-mpi/ompi/issues/576>.
--- a/configure
+++ b/configure
@@ -301130,10 +301130,11 @@
case ${prev}${p} in
-L* | -R* | -l*)
- # Some compilers place space between "-{L,R}" and the path.
+ # Some compilers place space between "-{L,R,l}" and the path.
# Remove the space.
if test $p = "-L" ||
- test $p = "-R"; then
+ test $p = "-R" ||
+ test $p = "-l"; then
prev=$p
continue
fi
@@ -303036,10 +303037,11 @@
case ${prev}${p} in
-L* | -R* | -l*)
- # Some compilers place space between "-{L,R}" and the path.
+ # Some compilers place space between "-{L,R,l}" and the path.
# Remove the space.
if test $p = "-L" ||
- test $p = "-R"; then
+ test $p = "-R" ||
+ test $p = "-l"; then
prev=$p
continue
fi

View File

@@ -14,6 +14,8 @@ class Openmpi(Package):
homepage = "http://www.open-mpi.org"
version('1.10.1', 'f0fcd77ed345b7eafb431968124ba16e',
url = "http://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.1.tar.bz2")
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',
@@ -23,10 +25,15 @@ class Openmpi(Package):
patch('ad_lustre_rwcontig_open_source.patch', when="@1.6.5")
patch('llnl-platforms.patch', when="@1.6.5")
patch('configure.patch', when="@1.10.0:")
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
provides('mpi@:3.0', when='@1.10.1') # Open MPI 1.10.1 supports MPI-3.0
depends_on('hwloc')
def setup_dependent_environment(self, module, spec, dep_spec):
@@ -40,6 +47,8 @@ def setup_dependent_environment(self, module, spec, dep_spec):
def install(self, spec, prefix):
config_args = ["--prefix=%s" % prefix]
config_args.append("--with-hwloc=%s" % spec['hwloc'].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"

View File

@@ -0,0 +1,216 @@
################################################################################
# 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 Openspeedshop(Package):
"""OpenSpeedShop is a community effort by The Krell Institute with current direct funding from DOEs NNSA.
It builds on top of a broad list of community infrastructures, most notably Dyninst and MRNet from UW,
libmonitor from Rice, and PAPI from UTK. OpenSpeedShop is an open source multi platform Linux performance
tool which is targeted to support performance analysis of applications running on both single node and
large scale IA64, IA32, EM64T, AMD64, PPC, ARM, Blue Gene and Cray platforms. OpenSpeedShop development
is hosted by the Krell Institute. The infrastructure and base components of OpenSpeedShop are released
as open source code primarily under LGPL.
"""
homepage = "http://www.openspeedshop.org"
url = "http://sourceforge.net/projects/openss/files/openss/openspeedshop-2.2/openspeedshop-2.2.tar.gz/download"
version('2.2', '16cb051179c2038de4e8a845edf1d573')
#homepage = "http://www.openspeedshop.org"
#url = "http://sourceforge.net/projects/openss/files/openss/openspeedshop-2.1/openspeedshop-2.1.tar.gz/download"
#version('2.1', 'bdaa57c1a0db9d0c3e0303fd8496c507')
# optional mirror template
#url = "file:/g/g24/jeg/openspeedshop-2.1.tar.gz"
#version('2.1', '64ee17166519838c7b94a1adc138e94f')
parallel = False
variant('offline', default=True, description="build with offline instrumentor enabled.")
variant('cbtf', default=False, description="build with cbtf instrumentor enabled.")
variant('runtime', default=False, description="build only the runtime libraries and collectors.")
variant('frontend', default=False, description="build only the front-end tool using the runtime_dir to point to the target build.")
variant('cuda', default=False, description="build with cuda packages included.")
variant('ptgf', default=False, description="build with the PTGF based gui package enabled.")
variant('intelmic', default=False, description="build for the Intel MIC platform.")
variant('cray', default=False, description="build for Cray platforms.")
variant('bluegene', default=False, description="build for Cray platforms.")
variant('rtfe', default=False, description="build for generic cluster platforms that have different processors on the fe and be nodes.")
# Dependencies for openspeedshop that are common to all the variants of the OpenSpeedShop build
depends_on("bison")
depends_on("flex")
depends_on("binutils@2.24+krellpatch")
depends_on("libelf")
depends_on("libdwarf")
depends_on("sqlite")
depends_on("boost@1.50.0")
depends_on("dyninst@8.2.1")
depends_on("python")
depends_on("qt@3.3.8b+krellpatch")
# Dependencies only for the openspeedshop offline package.
depends_on("libunwind", when='+offline')
depends_on("papi", when='+offline')
depends_on("libmonitor+krellpatch", when='+offline')
#depends_on("openmpi+krelloptions", when='+offline')
#depends_on("openmpi", when='+offline')
#depends_on("mpich", when='+offline')
# Dependencies only for the openspeedshop cbtf package.
depends_on("cbtf", when='+cbtf')
depends_on("cbtf-krell", when='+cbtf')
depends_on("cbtf-argonavis", when='+cbtf')
depends_on("mrnet@4.1.0:+lwthreads", when='+cbtf')
def install(self, spec, prefix):
#openmpi_prefix_path = "/opt/openmpi-1.8.2"
#mvapich_prefix_path = "/usr/local/tools/mvapich-gnu"
#'-DOPENMPI_DIR=%s' % spec['openmpi'].prefix,
#'-DOPENMPI_DIR=%s' % openmpi_prefix_path,
#'-DMVAPICH_DIR=%s' % mvapich_prefix_path,
# FIXME: How do we make this dynamic in spack? That is, can we specify the paths to cuda dynamically?
# WAITING for external package support.
#if '+cuda' in spec:
# cuda_prefix_path = "/usr/local/cuda-6.0"
# cupti_prefix_path = "/usr/local/cuda-6.0/extras/CUPTI"
if '+offline' in spec:
instrumentor_setting = "offline"
if '+runtime' in spec:
with working_dir('build_runtime', create=True):
cmake('..',
'-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64,
'-DINSTRUMENTOR=%s' % instrumentor_setting,
'-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
'-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
'-DPAPI_DIR=%s' % spec['papi'].prefix,
*std_cmake_args)
make("clean")
make()
make("install")
else:
cmake_prefix_path = join_path(spec['dyninst'].prefix)
with working_dir('build', create=True):
#python_vers=join_path(spec['python'].version[:2])
#'-DOPENMPI_DIR=%s' % openmpi_prefix_path,
#'-DMVAPICH_DIR=%s' % mvapich_prefix_path,
python_vers='%d.%d' % spec['python'].version[:2]
cmake('..',
'-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64,
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
'-DINSTRUMENTOR=%s' % instrumentor_setting,
'-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
'-DLIBELF_DIR=%s' % spec['libelf'].prefix,
'-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix,
'-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
'-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
'-DPAPI_DIR=%s' % spec['papi'].prefix,
'-DSQLITE3_DIR=%s' % spec['sqlite'].prefix,
'-DQTLIB_DIR=%s' % spec['qt'].prefix,
'-DPYTHON_EXECUTABLE=%s' % join_path(spec['python'].prefix + '/bin/python'),
'-DPYTHON_INCLUDE_DIR=%s' % join_path(spec['python'].prefix.include) + '/python' + python_vers,
'-DPYTHON_LIBRARY=%s' % join_path(spec['python'].prefix.lib) + '/libpython' + python_vers + '.so',
'-DBoost_NO_SYSTEM_PATHS=TRUE',
'-DBOOST_ROOT=%s' % spec['boost'].prefix,
'-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
*std_cmake_args)
make("clean")
make()
make("install")
elif '+cbtf' in spec:
instrumentor_setting = "cbtf"
cmake_prefix_path = join_path(spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix) + ':' + join_path(spec['dyninst'].prefix)
if '+runtime' in spec:
with working_dir('build_cbtf_runtime', create=True):
python_vers='%d.%d' % spec['python'].version[:2]
cmake('..',
'-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64,
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
'-DINSTRUMENTOR=%s' % instrumentor_setting,
'-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
'-DLIBELF_DIR=%s' % spec['libelf'].prefix,
'-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix,
'-DCBTF_DIR=%s' % spec['cbtf'].prefix,
'-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
'-DPYTHON_EXECUTABLE=%s' % join_path(spec['python'].prefix + '/bin/python'),
'-DPYTHON_INCLUDE_DIR=%s' % join_path(spec['python'].prefix.include) + '/python' + python_vers,
'-DPYTHON_LIBRARY=%s' % join_path(spec['python'].prefix.lib) + '/libpython' + python_vers + '.so',
'-DBoost_NO_SYSTEM_PATHS=TRUE',
'-DBOOST_ROOT=%s' % spec['boost'].prefix,
'-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
*std_cmake_args)
make("clean")
make()
make("install")
else:
with working_dir('build_cbtf', create=True):
python_vers='%d.%d' % spec['python'].version[:2]
#python_vers=join_path(spec['python'].version[:2])
cmake('..',
'-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64,
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
'-DINSTRUMENTOR=%s' % instrumentor_setting,
'-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
'-DLIBELF_DIR=%s' % spec['libelf'].prefix,
'-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix,
'-DSQLITE3_DIR=%s' % spec['sqlite'].prefix,
'-DCBTF_DIR=%s' % spec['cbtf'].prefix,
'-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
'-DQTLIB_DIR=%s' % spec['qt'].prefix,
'-DPYTHON_EXECUTABLE=%s' % join_path(spec['python'].prefix + '/bin/python'),
'-DPYTHON_INCLUDE_DIR=%s' % join_path(spec['python'].prefix.include) + '/python' + python_vers,
'-DPYTHON_LIBRARY=%s' % join_path(spec['python'].prefix.lib) + '/libpython' + python_vers + '.so',
'-DBoost_NO_SYSTEM_PATHS=TRUE',
'-DBOOST_ROOT=%s' % spec['boost'].prefix,
'-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
*std_cmake_args)
make("clean")
make()
make("install")
#if '+frontend' in spec:
# with working_dir('build_frontend', create=True):
# tbd
#if '+intelmic' in spec:
# with working_dir('build_intelmic_compute', create=True):
# tbd
# with working_dir('build_intelmic_frontend', create=True):
# tbd
#if '+cray' in spec:
# with working_dir('build_cray_compute', create=True):
# tbd
# with working_dir('build_cray_frontend', create=True):
# tbd

View File

@@ -10,6 +10,8 @@ class Openssl(Package):
url = "http://www.openssl.org/source/openssl-1.0.1h.tar.gz"
version('1.0.1h', '8d6d684a9430d5cc98a62a5d8fbda8cf')
version('1.0.2d', '38dd619b2e77cbac69b99f52a053d25a')
version('1.0.2e', '5262bfa25b60ed9de9f28d5d52d77fc5')
depends_on("zlib")
parallel = False

View File

@@ -11,6 +11,10 @@ class Otf2(Package):
homepage = "http://www.vi-hps.org/score-p"
url = "http://www.vi-hps.org/upload/packages/otf2/otf2-1.4.tar.gz"
version('2.0', '5b546188b25bc1c4e285e06dddf75dfc',
url="http://www.vi-hps.org/upload/packages/otf2/otf2-2.0.tar.gz")
version('1.5.1', '16a9df46e0da78e374f5d12c8cdc1109',
url='http://www.vi-hps.org/upload/packages/otf2/otf2-1.5.1.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',

View File

@@ -11,8 +11,9 @@ class Papi(Package):
components that expose performance measurement opportunites
across the hardware and software stack."""
homepage = "http://icl.cs.utk.edu/papi/index.html"
url = "http://icl.cs.utk.edu/projects/papi/downloads/papi-5.3.0.tar.gz"
url = "http://icl.cs.utk.edu/projects/papi/downloads/papi-5.4.1.tar.gz"
version('5.4.1', '9134a99219c79767a11463a76b0b01a2')
version('5.3.0', '367961dd0ab426e5ae367c2713924ffb')
def install(self, spec, prefix):
@@ -20,13 +21,10 @@ def install(self, spec, prefix):
configure_args=["--prefix=%s" % prefix]
# need to force consistency in the use of compilers
if spec.satisfies('%gcc'):
configure_args.append('CC=gcc')
configure_args.append('MPICH_CC=gcc')
if spec.satisfies('%intel'):
configure_args.append('CC=icc')
configure_args.append('MPICH_CC=icc')
# PAPI uses MPI if MPI is present; since we don't require an
# MPI package, we ensure that all attempts to use MPI fail, so
# that PAPI does not get confused
configure_args.append('MPICC=:')
configure(*configure_args)

View File

@@ -7,8 +7,6 @@ class Paraview(Package):
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')
@@ -18,19 +16,20 @@ class Paraview(Package):
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('py-numpy', when='+python')
depends_on('py-matplotlib', when='+python')
depends_on('tcl', when='+tcl')
depends_on('mpi', when='+mpi')
depends_on('qt', when='+qt')
depends_on('qt@:4', when='+qt')
depends_on('bzip2')
depends_on('freetype')
depends_on('hdf5') # drags in mpi
depends_on('hdf5')
depends_on('hdf5+mpi', when='+mpi')
depends_on('jpeg')
depends_on('libpng')
depends_on('libtiff')
#depends_on('libxml2') # drags in python
depends_on('libxml2')
depends_on('netcdf')
#depends_on('protobuf') # version mismatches?
#depends_on('sqlite') # external version not supported
@@ -49,7 +48,11 @@ def nfeature_to_bool(feature):
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'))
if '+python' in spec:
feature_args.append('-DPYTHON_EXECUTABLE:FILEPATH=%s/bin/python' % spec['python'].prefix)
feature_args.append('-DPARAVIEW_USE_MPI:BOOL=%s' % feature_to_bool('+mpi'))
if '+mpi' in spec:
feature_args.append('-DMPIEXEC:FILEPATH=%s/bin/mpiexec' % spec['mpi'].prefix)
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'))
@@ -63,7 +66,7 @@ def nfeature_to_bool(feature):
'-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_LIBXML2:BOOL=ON',
'-DVTK_USER_SYSTEM_NETCDF:BOOL=ON',
'-DVTK_USER_SYSTEM_TIFF:BOOL=ON',
'-DVTK_USER_SYSTEM_ZLIB:BOOL=ON',

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