summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/LuaJIT/package.py15
-rw-r--r--var/spack/repos/builtin/packages/antlr/package.py47
-rw-r--r--var/spack/repos/builtin/packages/binutils/package.py1
-rw-r--r--var/spack/repos/builtin/packages/bison/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cbtf-argonavis/package.py90
-rw-r--r--var/spack/repos/builtin/packages/cbtf-krell/package.py262
-rw-r--r--var/spack/repos/builtin/packages/cbtf-lanl/package.py65
-rw-r--r--var/spack/repos/builtin/packages/cbtf/package.py88
-rw-r--r--var/spack/repos/builtin/packages/cryptopp/package.py1
-rw-r--r--var/spack/repos/builtin/packages/gdb/package.py1
-rw-r--r--var/spack/repos/builtin/packages/glib/package.py3
-rw-r--r--var/spack/repos/builtin/packages/gmsh/package.py5
-rw-r--r--var/spack/repos/builtin/packages/kripke/package.py32
-rw-r--r--var/spack/repos/builtin/packages/libtermkey/package.py17
-rw-r--r--var/spack/repos/builtin/packages/libuv/package.py21
-rw-r--r--var/spack/repos/builtin/packages/libvterm/package.py12
-rw-r--r--var/spack/repos/builtin/packages/libxcb/package.py1
-rw-r--r--var/spack/repos/builtin/packages/mpich/package.py4
-rw-r--r--var/spack/repos/builtin/packages/msgpack-c/package.py14
-rw-r--r--var/spack/repos/builtin/packages/nccmp/package.py23
-rw-r--r--var/spack/repos/builtin/packages/nco/package.py30
-rw-r--r--var/spack/repos/builtin/packages/openmpi/package.py4
-rw-r--r--var/spack/repos/builtin/packages/openspeedshop/package.py300
-rw-r--r--var/spack/repos/builtin/packages/scotch/Makefile.esmumps5
-rw-r--r--var/spack/repos/builtin/packages/scotch/package.py152
-rw-r--r--var/spack/repos/builtin/packages/unibilium/package.py12
26 files changed, 975 insertions, 232 deletions
diff --git a/var/spack/repos/builtin/packages/LuaJIT/package.py b/var/spack/repos/builtin/packages/LuaJIT/package.py
new file mode 100644
index 0000000000..7b2a269212
--- /dev/null
+++ b/var/spack/repos/builtin/packages/LuaJIT/package.py
@@ -0,0 +1,15 @@
+import os
+from spack import *
+
+class Luajit(Package):
+ """Flast flexible JITed lua"""
+ homepage = "http://www.luajit.org"
+ url = "http://luajit.org/download/LuaJIT-2.0.4.tar.gz"
+
+ version('2.0.4', 'dd9c38307f2223a504cbfb96e477eca0')
+
+ def install(self, spec, prefix):
+ # Linking with the C++ compiler is a dirty hack to deal with the fact
+ # that unwinding symbols are not included by libc, this is necessary
+ # on some platforms for the final link stage to work
+ make("install", "PREFIX=" + prefix, "TARGET_LD=" + os.environ['CXX'])
diff --git a/var/spack/repos/builtin/packages/antlr/package.py b/var/spack/repos/builtin/packages/antlr/package.py
new file mode 100644
index 0000000000..c7c7e3e850
--- /dev/null
+++ b/var/spack/repos/builtin/packages/antlr/package.py
@@ -0,0 +1,47 @@
+from spack import *
+
+class Antlr(Package):
+
+ homepage = "http://www.antlr.org"
+ url = "https://github.com/antlr/antlr/tarball/v2.7.7"
+
+ # NOTE: This requires that a system Java be available.
+ # Spack does not yet know how to install Java compilers
+
+ # Notes from http://nco.sourceforge.net/#bld
+ # The first steps to build (i.e., compile, for the most part) NCO from
+ # source code are to install the pre-requisites: ANTLR version 2.7.7
+ # (like this one not version 3.x or 4.x!) (required for ncap2)... ANTLR
+ # binaries from major distributions are pre-built with the source patch
+ # necessary to allow NCO to link to ANTLR... The ANTLR source file
+ # CharScanner.hpp must include this line: #include <cstring> or else
+ # ncap2 will not compile (this tarball is already patched).
+ version('2.7.7', '914865e853fe8e1e61a9f23d045cb4ab',
+ # Patched version as described above
+ url='http://dust.ess.uci.edu/tmp/antlr-2.7.7.tar.gz')
+ # Unpatched version
+ # url='http://dust.ess.uci.edu/nco/antlr-2.7.7.tar.gz')
+
+ variant('cxx', default=False, description='Enable ANTLR for C++')
+ variant('java', default=False, description='Enable ANTLR for Java')
+ variant('python', default=False, description='Enable ANTLR for Python')
+ variant('csharp', default=False, description='Enable ANTLR for Csharp')
+
+
+ def install(self, spec, prefix):
+ # Check for future enabling of variants
+ for v in ('+java', '+python', '+csharp'):
+ if v in spec:
+ raise Error('Illegal variant %s; for now, Spack only knows how to build antlr or antlr+cxx')
+
+ config_args = [
+ '--prefix=%s' % prefix,
+ '--%s-cxx' % ('enable' if '+cxx' in spec else 'disable'),
+ '--%s-java' % ('enable' if '+java' in spec else 'disable'),
+ '--%s-python' % ('enable' if '+python' in spec else 'disable'),
+ '--%s-csharp' % ('enable' if '+csharp' in spec else 'disable')]
+
+ # which('autoreconf')('-iv')
+ configure(*config_args)
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/binutils/package.py b/var/spack/repos/builtin/packages/binutils/package.py
index b8064093d2..158d722046 100644
--- a/var/spack/repos/builtin/packages/binutils/package.py
+++ b/var/spack/repos/builtin/packages/binutils/package.py
@@ -29,6 +29,7 @@ class Binutils(Package):
configure_args = [
'--prefix=%s' % prefix,
'--disable-dependency-tracking',
+ '--disable-werror',
'--enable-interwork',
'--enable-multilib',
'--enable-shared',
diff --git a/var/spack/repos/builtin/packages/bison/package.py b/var/spack/repos/builtin/packages/bison/package.py
index 7c526fb958..9a2ddcbf96 100644
--- a/var/spack/repos/builtin/packages/bison/package.py
+++ b/var/spack/repos/builtin/packages/bison/package.py
@@ -10,6 +10,8 @@ class Bison(Package):
version('3.0.4', 'a586e11cd4aff49c3ff6d3b6a4c9ccf8')
+ depends_on("m4")
+
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
diff --git a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py
index 7b07933911..90789a98f2 100644
--- a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py
@@ -1,5 +1,5 @@
################################################################################
-# Copyright (c) 2015 Krell Institute. All Rights Reserved.
+# Copyright (c) 2015-2016 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
@@ -24,43 +24,83 @@ class CbtfArgonavis(Package):
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')
+ #url = "file:/home/jeg/OpenSpeedShop_ROOT/SOURCES/cbtf-argonavis-1.6.tar.gz"
+ #version('1.6', '0fafa0008478405c2c2319450f174ed4')
- version('1.6', branch='master', git='http://git.code.sf.net/p/cbtf-argonavis/cbtf-argonavis')
+ version('1.6', branch='master', git='https://github.com/OpenSpeedShop/cbtf-argonavis.git')
- depends_on("cmake@3.0.2:")
+ depends_on("cmake@3.0.2")
+ depends_on("boost@1.50.0:")
depends_on("papi")
+ depends_on("mrnet@5.0.1:+lwthreads+krellpatch")
depends_on("cbtf")
depends_on("cbtf-krell")
- depends_on("cuda")
+ depends_on("cuda@6.0.37")
+ #depends_on("cuda")
parallel = False
+ def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
+ # Sets build type parameters into cmakeOptions the options that will enable the cbtf-krell built type settings
+
+ compile_flags="-O2 -g"
+ BuildTypeOptions = []
+
+ # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the stdcmakeargs
+ for word in cmakeOptions[:]:
+ if word.startswith('-DCMAKE_BUILD_TYPE'):
+ cmakeOptions.remove(word)
+ if word.startswith('-DCMAKE_CXX_FLAGS'):
+ cmakeOptions.remove(word)
+ if word.startswith('-DCMAKE_C_FLAGS'):
+ cmakeOptions.remove(word)
+ if word.startswith('-DCMAKE_VERBOSE_MAKEFILE'):
+ cmakeOptions.remove(word)
+ BuildTypeOptions.extend([
+ '-DCMAKE_VERBOSE_MAKEFILE=ON',
+ '-DCMAKE_BUILD_TYPE=None',
+ '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
+ '-DCMAKE_C_FLAGS=%s' % compile_flags
+ ])
+
+ cmakeOptions.extend(BuildTypeOptions)
+
+
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")
+ cmakeOptions = []
+ cmakeOptions.extend(['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
+ '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
+ '-DCUDA_DIR=%s' % spec['cuda'].prefix,
+ '-DCUDA_INSTALL_PATH=%s' % spec['cuda'].prefix,
+ '-DCUDA_TOOLKIT_ROOT_DIR=%s' % spec['cuda'].prefix,
+ '-DCUPTI_DIR=%s' % join_path(spec['cuda'].prefix + '/extras/CUPTI'),
+ '-DCUPTI_ROOT=%s' % join_path(spec['cuda'].prefix + '/extras/CUPTI'),
+ '-DPAPI_ROOT=%s' % spec['papi'].prefix,
+ '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
+ '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
+ '-DBOOST_ROOT=%s' % spec['boost'].prefix,
+ '-DBoost_DIR=%s' % spec['boost'].prefix,
+ '-DBOOST_LIBRARYDIR=%s' % spec['boost'].prefix.lib,
+ '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
+ '-DBoost_NO_SYSTEM_PATHS=ON'
+ ])
+
+ # Add in the standard cmake arguments
+ cmakeOptions.extend(std_cmake_args)
+
+ # Adjust the standard cmake arguments to what we want the build type, etc to be
+ self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
+
+ # Invoke cmake
+ cmake('..', *cmakeOptions)
+
+ make("clean")
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/cbtf-krell/package.py b/var/spack/repos/builtin/packages/cbtf-krell/package.py
index 9458ac113c..e6050cb4a9 100644
--- a/var/spack/repos/builtin/packages/cbtf-krell/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-krell/package.py
@@ -1,5 +1,5 @@
################################################################################
-# Copyright (c) 2015 Krell Institute. All Rights Reserved.
+# Copyright (c) 2015-2016 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
@@ -26,21 +26,30 @@ class CbtfKrell(Package):
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')
+ #url = "file:/home/jeg/cbtf-krell-1.6.tar.gz"
+ #version('1.6', 'edeb61cd488f16e7b124f77db9ce762d')
- version('1.6', branch='master', git='http://git.code.sf.net/p/cbtf-krell/cbtf-krell')
+ version('1.6', branch='master', git='https://github.com/OpenSpeedShop/cbtf-krell.git')
+ # MPI variants
+ variant('openmpi', default=False, description="Build mpi experiment collector for openmpi MPI when this variant is enabled.")
+ variant('mpt', default=False, description="Build mpi experiment collector for SGI MPT MPI when this variant is enabled.")
+ variant('mvapich2', default=False, description="Build mpi experiment collector for mvapich2 MPI when this variant is enabled.")
+ variant('mvapich', default=False, description="Build mpi experiment collector for mvapich MPI when this variant is enabled.")
+ variant('mpich2', default=False, description="Build mpi experiment collector for mpich2 MPI when this variant is enabled.")
+ variant('mpich', default=False, description="Build mpi experiment collector for mpich MPI when this variant is enabled.")
# Dependencies for cbtf-krell
+ depends_on("cmake@3.0.2")
# 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("boost@1.50.0:")
+ depends_on("dyninst@8.2.1:")
+ depends_on("mrnet@5.0.1:+lwthreads+krellpatch")
+
depends_on("xerces-c@3.1.1:")
depends_on("cbtf")
@@ -51,66 +60,207 @@ class CbtfKrell(Package):
# 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")
+ depends_on("openmpi", when='+openmpi')
+ depends_on("mpich", when='+mpich')
+ depends_on("mpich2", when='+mpich2')
+ depends_on("mvapich2", when='+mvapich2')
+ depends_on("mvapich", when='+mvapich')
+ depends_on("mpt", when='+mpt')
parallel = False
+ def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
+ # Sets build type parameters into cmakeOptions the options that will enable the cbtf-krell built type settings
+
+ compile_flags="-O2 -g"
+ BuildTypeOptions = []
+ # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the stdcmakeargs
+ for word in cmakeOptions[:]:
+ if word.startswith('-DCMAKE_BUILD_TYPE'):
+ cmakeOptions.remove(word)
+ if word.startswith('-DCMAKE_CXX_FLAGS'):
+ cmakeOptions.remove(word)
+ if word.startswith('-DCMAKE_C_FLAGS'):
+ cmakeOptions.remove(word)
+ if word.startswith('-DCMAKE_VERBOSE_MAKEFILE'):
+ cmakeOptions.remove(word)
+ BuildTypeOptions.extend([
+ '-DCMAKE_VERBOSE_MAKEFILE=ON',
+ '-DCMAKE_BUILD_TYPE=None',
+ '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
+ '-DCMAKE_C_FLAGS=%s' % compile_flags
+ ])
+
+ cmakeOptions.extend(BuildTypeOptions)
+
+
+
+ def set_mpi_cmakeOptions(self, spec, cmakeOptions):
+ # Appends to cmakeOptions the options that will enable the appropriate MPI implementations
+
+ MPIOptions = []
+
+ # openmpi
+ if '+openmpi' in spec:
+ MPIOptions.extend([
+ '-DOPENMPI_DIR=%s' % spec['openmpi'].prefix
+ ])
+ # mpich
+ if '+mpich' in spec:
+ MPIOptions.extend([
+ '-DMPICH_DIR=%s' % spec['mpich'].prefix
+ ])
+ # mpich2
+ if '+mpich2' in spec:
+ MPIOptions.extend([
+ '-DMPICH2_DIR=%s' % spec['mpich2'].prefix
+ ])
+ # mvapich
+ if '+mvapich' in spec:
+ MPIOptions.extend([
+ '-DMVAPICH_DIR=%s' % spec['mvapich'].prefix
+ ])
+ # mvapich2
+ if '+mvapich2' in spec:
+ MPIOptions.extend([
+ '-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix
+ ])
+ # mpt
+ if '+mpt' in spec:
+ MPIOptions.extend([
+ '-DMPT_DIR=%s' % spec['mpt'].prefix
+ ])
+
+ cmakeOptions.extend(MPIOptions)
+
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,
+ #cmake_prefix_path = join_path(spec['cbtf'].prefix) + ':' + join_path(spec['dyninst'].prefix)
+ #'-DCMAKE_PREFIX_PATH=%s' % cmake_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)
+ cmakeOptions = []
+ cmakeOptions.extend(['-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
+ ])
+
+
+ # Add any MPI implementations coming from variant settings
+ self.set_mpi_cmakeOptions(spec, cmakeOptions)
+
+ # Add in the standard cmake arguments
+ cmakeOptions.extend(std_cmake_args)
+
+ # Adjust the standard cmake arguments to what we want the build type, etc to be
+ self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
+
+ # Invoke cmake
+ cmake('..', *cmakeOptions)
make("clean")
make()
make("install")
+
+
+ #if '+cray' in spec:
+ #if 'cray' in self.spec.architecture:
+ # if '+runtime' in spec:
+ # with working_dir('build_cbtf_cray_runtime', create=True):
+ # python_vers='%d.%d' % spec['python'].version[:2]
+ # cmake .. \
+ # -DCMAKE_BUILD_TYPE=Debug \
+ # -DTARGET_OS="cray" \
+ # -DRUNTIME_ONLY="true" \
+ # -DCMAKE_INSTALL_PREFIX=${CBTF_KRELL_PREFIX} \
+ # -DCMAKE_PREFIX_PATH=${CBTF_ROOT} \
+ # -DCBTF_DIR=${CBTF_ROOT} \
+ # -DBOOST_ROOT=${BOOST_INSTALL_PREFIX} \
+ # -DXERCESC_DIR=${XERCESC_INSTALL_PREFIX} \
+ # -DBINUTILS_DIR=${KRELL_ROOT} \
+ # -DLIBMONITOR_DIR=${KRELL_ROOT_COMPUTE} \
+ # -DLIBUNWIND_DIR=${KRELL_ROOT_COMPUTE} \
+ # -DPAPI_DIR=${PAPI_ROOT} \
+ # -DDYNINST_DIR=${DYNINST_CN_ROOT} \
+ # -DMRNET_DIR=${MRNET_INSTALL_PREFIX} \
+ # -DMPICH2_DIR=/opt/cray/mpt/7.0.1/gni/mpich2-gnu/48
+ # else:
+ # with working_dir('build_cbtf_cray_frontend', create=True):
+ # python_vers='%d.%d' % spec['python'].version[:2]
+ # cmake .. \
+ # -DCMAKE_BUILD_TYPE=Debug \
+ # -DCMAKE_INSTALL_PREFIX=${CBTF_KRELL_PREFIX} \
+ # -DCMAKE_PREFIX_PATH=${CBTF_ROOT} \
+ # -DCBTF_DIR=${CBTF_ROOT} \
+ # -DRUNTIME_TARGET_OS="cray" \
+ # -DCBTF_KRELL_CN_RUNTIME_DIR=${CBTF_KRELL_CN_RUNTIME_ROOT} \
+ # -DCBTF_CN_RUNTIME_DIR=${CBTF_CN_RUNTIME_ROOT} \
+ # -DLIBMONITOR_CN_RUNTIME_DIR=${LIBMONITOR_CN_ROOT} \
+ # -DLIBUNWIND_CN_RUNTIME_DIR=${LIBUNWIND_CN_ROOT} \
+ # -DPAPI_CN_RUNTIME_DIR=${PAPI_CN_ROOT} \
+ # -DXERCESC_CN_RUNTIME_DIR=/${XERCESC_CN_ROOT} \
+ # -DMRNET_CN_RUNTIME_DIR=${MRNET_CN_ROOT} \
+ # -DBOOST_CN_RUNTIME_DIR=${BOOST_CN_ROOT} \
+ # -DDYNINST_CN_RUNTIME_DIR=${DYNINST_CN_ROOT} \
+ # -DBOOST_ROOT=/${KRELL_ROOT} \
+ # -DXERCESC_DIR=/${KRELL_ROOT} \
+ # -DBINUTILS_DIR=/${KRELL_ROOT} \
+ # -DLIBMONITOR_DIR=${KRELL_ROOT} \
+ # -DLIBUNWIND_DIR=${KRELL_ROOT} \
+ # -DPAPI_DIR=${PAPI_ROOT} \
+ # -DDYNINST_DIR=${KRELL_ROOT} \
+ # -DMRNET_DIR=${KRELL_ROOT} \
+ # -DMPICH2_DIR=/opt/cray/mpt/7.0.1/gni/mpich2-gnu/48
+ # fi
+#
+# make("clean")
+# make()
+# make("install")
+#
+# elif '+mic' in spec:
+# if '+runtime' in spec:
+# with working_dir('build_cbtf_mic_runtime', create=True):
+# python_vers='%d.%d' % spec['python'].version[:2]
+# cmake .. \
+#
+# else:
+# with working_dir('build_cbtf_cray_frontend', create=True):
+# python_vers='%d.%d' % spec['python'].version[:2]
+# cmake .. \
+# fi
+#
+# else:
+# # 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,
+# '-DOPENMPI_DIR=%s' % openmpi_prefix_path,
+# '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
+# *std_cmake_args)
+#
+# make("clean")
+# make()
+# make("install")
+#
+# fi
+#
diff --git a/var/spack/repos/builtin/packages/cbtf-lanl/package.py b/var/spack/repos/builtin/packages/cbtf-lanl/package.py
index 2da9e8a1f7..5ca88601f3 100644
--- a/var/spack/repos/builtin/packages/cbtf-lanl/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-lanl/package.py
@@ -1,5 +1,5 @@
################################################################################
-# Copyright (c) 2015 Krell Institute. All Rights Reserved.
+# Copyright (c) 2015-2016 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
@@ -29,32 +29,65 @@ class CbtfLanl(Package):
version('1.6', branch='master', git='http://git.code.sf.net/p/cbtf-lanl/cbtf-lanl')
-
+ depends_on("cmake@3.0.2")
# Dependencies for cbtf-krell
- depends_on("boost@1.50")
- depends_on("mrnet@4.1.0:+lwthreads")
+ depends_on("mrnet@5.0.1:+lwthreads+krellpatch")
depends_on("xerces-c@3.1.1:")
depends_on("cbtf")
depends_on("cbtf-krell")
parallel = False
+ def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
+ # Sets build type parameters into cmakeOptions the options that will enable the cbtf-krell built type settings
+
+ compile_flags="-O2 -g"
+ BuildTypeOptions = []
+ # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the stdcmakeargs
+ for word in cmakeOptions[:]:
+ if word.startswith('-DCMAKE_BUILD_TYPE'):
+ cmakeOptions.remove(word)
+ if word.startswith('-DCMAKE_CXX_FLAGS'):
+ cmakeOptions.remove(word)
+ if word.startswith('-DCMAKE_C_FLAGS'):
+ cmakeOptions.remove(word)
+ if word.startswith('-DCMAKE_VERBOSE_MAKEFILE'):
+ cmakeOptions.remove(word)
+ BuildTypeOptions.extend([
+ '-DCMAKE_VERBOSE_MAKEFILE=ON',
+ '-DCMAKE_BUILD_TYPE=None',
+ '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
+ '-DCMAKE_C_FLAGS=%s' % compile_flags
+ ])
+
+ cmakeOptions.extend(BuildTypeOptions)
+
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")
+ cmakeOptions = []
+ cmakeOptions.extend(['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
+ '-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')
+ ])
+
+ # Add in the standard cmake arguments
+ cmakeOptions.extend(std_cmake_args)
+
+ # Adjust the standard cmake arguments to what we want the build type, etc to be
+ self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
+
+ # Invoke cmake
+ cmake('..', *cmakeOptions)
+
+ make("clean")
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/cbtf/package.py b/var/spack/repos/builtin/packages/cbtf/package.py
index 52e6a07020..7ce1cd382b 100644
--- a/var/spack/repos/builtin/packages/cbtf/package.py
+++ b/var/spack/repos/builtin/packages/cbtf/package.py
@@ -1,5 +1,5 @@
################################################################################
-# Copyright (c) 2015 Krell Institute. All Rights Reserved.
+# Copyright (c) 2015-2016 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
@@ -25,21 +25,44 @@ class Cbtf(Package):
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')
+ #url = "file:/home/jeg/cbtf-1.6.tar.gz"
+ #version('1.6', 'c1ef4e5aa4e470dffb042abdba0b9987')
# Use when the git repository is available
- version('1.6', branch='master', git='http://git.code.sf.net/p/cbtf/cbtf')
+ version('1.6', branch='master', git='https://github.com/OpenSpeedShop/cbtf.git')
- depends_on("cmake")
- #depends_on("boost@1.42.0:")
- depends_on("boost@1.50.0")
- depends_on("mrnet@4.1.0+lwthreads")
+ variant('runtime', default=False, description="build only the runtime libraries and collectors.")
+
+ depends_on("cmake@3.0.2")
+ depends_on("boost@1.50.0:")
+ depends_on("mrnet@5.0.1:+lwthreads+krellpatch")
depends_on("xerces-c@3.1.1:")
- depends_on("libxml2")
+ # Work around for spack libxml2 package bug, take off python when fixed
+ depends_on("libxml2+python")
parallel = False
+ def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
+ # Sets build type parameters into cmakeOptions the options that will enable the cbtf-krell built type settings
+
+ compile_flags="-O2 -g"
+ BuildTypeOptions = []
+ # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the stdcmakeargs
+ for word in cmakeOptions[:]:
+ if word.startswith('-DCMAKE_BUILD_TYPE'):
+ cmakeOptions.remove(word)
+ if word.startswith('-DCMAKE_CXX_FLAGS'):
+ cmakeOptions.remove(word)
+ if word.startswith('-DCMAKE_C_FLAGS'):
+ cmakeOptions.remove(word)
+ BuildTypeOptions.extend([
+ '-DCMAKE_BUILD_TYPE=None',
+ '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
+ '-DCMAKE_C_FLAGS=%s' % compile_flags
+ ])
+
+ cmakeOptions.extend(BuildTypeOptions)
+
def install(self, spec, prefix):
with working_dir('build', create=True):
@@ -48,14 +71,45 @@ class Cbtf(Package):
# 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)
+ if '+runtime' in spec:
+ # Install message tag include file for use in Intel MIC cbtf-krell build
+ # FIXME
+ cmakeOptions = []
+ cmakeOptions.extend(['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
+ '-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')
+ ])
+
+ # Add in the standard cmake arguments
+ cmakeOptions.extend(std_cmake_args)
+
+ # Adjust the standard cmake arguments to what we want the build type, etc to be
+ self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
+
+ # Invoke cmake
+ cmake('..', *cmakeOptions)
+
+ else:
+ cmakeOptions = []
+ cmakeOptions.extend(['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
+ '-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')
+ ])
+
+ # Add in the standard cmake arguments
+ cmakeOptions.extend(std_cmake_args)
+
+ # Adjust the standard cmake arguments to what we want the build type, etc to be
+ self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
+
+ # Invoke cmake
+ cmake('..', *cmakeOptions)
make("clean")
make()
diff --git a/var/spack/repos/builtin/packages/cryptopp/package.py b/var/spack/repos/builtin/packages/cryptopp/package.py
index bc83cb2b65..c2778e14da 100644
--- a/var/spack/repos/builtin/packages/cryptopp/package.py
+++ b/var/spack/repos/builtin/packages/cryptopp/package.py
@@ -13,6 +13,7 @@ class Cryptopp(Package):
version('5.6.3', '3c5b70e2ec98b7a24988734446242d07')
version('5.6.2', '7ed022585698df48e65ce9218f6c6a67')
+ version('5.6.1', '96cbeba0907562b077e26bcffb483828')
def install(self, spec, prefix):
make()
diff --git a/var/spack/repos/builtin/packages/gdb/package.py b/var/spack/repos/builtin/packages/gdb/package.py
index b346fe80c2..0e9e8fc099 100644
--- a/var/spack/repos/builtin/packages/gdb/package.py
+++ b/var/spack/repos/builtin/packages/gdb/package.py
@@ -34,6 +34,7 @@ class Gdb(Package):
homepage = "https://www.gnu.org/software/gdb"
url = "http://ftp.gnu.org/gnu/gdb/gdb-7.10.tar.gz"
+ version('7.11', 'f585059252836a981ea5db9a5f8ce97f')
version('7.10.1', 'b93a2721393e5fa226375b42d567d90b')
version('7.10', 'fa6827ad0fd2be1daa418abb11a54d86')
version('7.9.1', 'f3b97de919a9dba84490b2e076ec4cb0')
diff --git a/var/spack/repos/builtin/packages/glib/package.py b/var/spack/repos/builtin/packages/glib/package.py
index 67ead5f941..a3fc3f79eb 100644
--- a/var/spack/repos/builtin/packages/glib/package.py
+++ b/var/spack/repos/builtin/packages/glib/package.py
@@ -1,4 +1,5 @@
from spack import *
+import sys
class Glib(Package):
"""The GLib package contains a low-level libraries useful for
@@ -12,6 +13,8 @@ class Glib(Package):
depends_on("libffi")
depends_on("zlib")
+ depends_on("pkg-config")
+ depends_on('gettext', sys.platform=='darwin')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
diff --git a/var/spack/repos/builtin/packages/gmsh/package.py b/var/spack/repos/builtin/packages/gmsh/package.py
index 9d759303cb..5f659c56df 100644
--- a/var/spack/repos/builtin/packages/gmsh/package.py
+++ b/var/spack/repos/builtin/packages/gmsh/package.py
@@ -63,6 +63,11 @@ class Gmsh(Package):
build_directory = join_path(self.stage.path, 'spack-build')
source_directory = self.stage.source_path
+ options.append('-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % prefix)
+
+ # Prevent GMsh from using its own strange directory structure on OSX
+ options.append('-DENABLE_OS_SPECIFIC_INSTALL=OFF')
+
if '+shared' in spec:
options.extend(['-DENABLE_BUILD_SHARED:BOOL=ON',
'-DENABLE_BUILD_DYNAMIC:BOOL=ON']) # Builds dynamic executable and installs shared library
diff --git a/var/spack/repos/builtin/packages/kripke/package.py b/var/spack/repos/builtin/packages/kripke/package.py
new file mode 100644
index 0000000000..7d067ea44d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/kripke/package.py
@@ -0,0 +1,32 @@
+from spack import *
+
+class Kripke(Package):
+ """Kripke is a simple, scalable, 3D Sn deterministic particle
+ transport proxy/mini app.
+ """
+ homepage = "https://codesign.llnl.gov/kripke.php"
+ url = "https://codesign.llnl.gov/downloads/kripke-openmp-1.1.tar.gz"
+
+ version('1.1', '7fe6f2b26ed983a6ce5495ab701f85bf')
+
+ variant('mpi', default=True, description='Build with MPI.')
+ variant('openmp', default=True, description='Build with OpenMP enabled.')
+
+ depends_on('mpi', when="+mpi")
+
+ def install(self, spec, prefix):
+ with working_dir('build', create=True):
+ def enabled(variant):
+ return (1 if variant in spec else 0)
+
+ cmake('-DCMAKE_INSTALL_PREFIX:PATH=.',
+ '-DENABLE_OPENMP=%d' % enabled('+openmp'),
+ '-DENABLE_MPI=%d' % enabled('+mpi'),
+ '..',
+ *std_cmake_args)
+ make()
+
+ # Kripke does not provide install target, so we have to copy
+ # things into place.
+ mkdirp(prefix.bin)
+ install('kripke', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/libtermkey/package.py b/var/spack/repos/builtin/packages/libtermkey/package.py
new file mode 100644
index 0000000000..7f25edaf76
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libtermkey/package.py
@@ -0,0 +1,17 @@
+from spack import *
+
+class Libtermkey(Package):
+ """Easy keyboard entry processing for terminal programs"""
+ homepage = "http://www.leonerd.org.uk/code/libtermkey/"
+ url = "http://www.leonerd.org.uk/code/libtermkey/libtermkey-0.18.tar.gz"
+
+ version('0.18' , '3be2e3e5a851a49cc5e8567ac108b520')
+ version('0.17' , '20edb99e0d95ec1690fe90e6a555ae6d')
+ version('0.16' , '7a24b675aaeb142d30db28e7554987d4')
+ version('0.15b', '27689756e6c86c56ae454f2ac259bc3d')
+ version('0.14' , 'e08ce30f440f9715c459060e0e048978')
+
+
+ def install(self, spec, prefix):
+ make()
+ make("install", "PREFIX=" + prefix)
diff --git a/var/spack/repos/builtin/packages/libuv/package.py b/var/spack/repos/builtin/packages/libuv/package.py
new file mode 100644
index 0000000000..eace94d1a6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libuv/package.py
@@ -0,0 +1,21 @@
+from spack import *
+
+class Libuv(Package):
+ """Multi-platform library with a focus on asynchronous IO"""
+ homepage = "http://libuv.org"
+ url = "https://github.com/libuv/libuv/archive/v1.9.0.tar.gz"
+
+ version('1.9.0', '14737f9c76123a19a290dabb7d1cd04c')
+
+ depends_on('automake')
+ depends_on('autoconf')
+ depends_on('libtool')
+
+ def install(self, spec, prefix):
+ bash = which("bash")
+ bash('autogen.sh')
+ configure('--prefix=%s' % prefix)
+
+ make()
+ make("check")
+ make("install")
diff --git a/var/spack/repos/builtin/packages/libvterm/package.py b/var/spack/repos/builtin/packages/libvterm/package.py
new file mode 100644
index 0000000000..3212f6550d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libvterm/package.py
@@ -0,0 +1,12 @@
+from spack import *
+
+class Libvterm(Package):
+ """An abstract library implementation of a terminal emulator"""
+ homepage = "http://www.leonerd.org.uk/code/libvterm/"
+ url = "http://www.leonerd.org.uk/code/libvterm/libvterm-0+bzr681.tar.gz"
+
+ version('681', '7a4325a7350b7092245c04e8ee185ac3')
+
+ def install(self, spec, prefix):
+ make()
+ make("install", "PREFIX=" + prefix)
diff --git a/var/spack/repos/builtin/packages/libxcb/package.py b/var/spack/repos/builtin/packages/libxcb/package.py
index d7d94c4546..b2543be5da 100644
--- a/var/spack/repos/builtin/packages/libxcb/package.py
+++ b/var/spack/repos/builtin/packages/libxcb/package.py
@@ -13,6 +13,7 @@ class Libxcb(Package):
version('1.11.1', '118623c15a96b08622603a71d8789bf3')
depends_on("python")
depends_on("xcb-proto")
+ depends_on("pkg-config")
# depends_on('pthread') # Ubuntu: apt-get install libpthread-stubs0-dev
# depends_on('xau') # Ubuntu: apt-get install libxau-dev
diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py
index 5d68f20351..2179086fe5 100644
--- a/var/spack/repos/builtin/packages/mpich/package.py
+++ b/var/spack/repos/builtin/packages/mpich/package.py
@@ -43,6 +43,8 @@ class Mpich(Package):
version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0')
variant('verbs', default=False, description='Build support for OpenFabrics verbs.')
+ variant('pmi', default=True, description='Build with PMI support')
+ variant('hydra', default=True, description='Build the hydra process manager')
provides('mpi@:3.0', when='@3:')
provides('mpi@:1.3', when='@1:')
@@ -62,6 +64,8 @@ class Mpich(Package):
def install(self, spec, prefix):
config_args = ["--prefix=" + prefix,
+ "--with-pmi=" + ("yes" if '+pmi' in spec else 'no'),
+ "--with-pm=" + ('hydra' if '+hydra' in spec else 'no'),
"--enable-shared"]
# Variants
diff --git a/var/spack/repos/builtin/packages/msgpack-c/package.py b/var/spack/repos/builtin/packages/msgpack-c/package.py
new file mode 100644
index 0000000000..a363bc89be
--- /dev/null
+++ b/var/spack/repos/builtin/packages/msgpack-c/package.py
@@ -0,0 +1,14 @@
+from spack import *
+
+class MsgpackC(Package):
+ """A small, fast binary interchange format convertible to/from JSON"""
+ homepage = "http://www.msgpack.org"
+ url = "https://github.com/msgpack/msgpack-c/archive/cpp-1.4.1.tar.gz"
+
+ version('1.4.1', 'e2fd3a7419b9bc49e5017fdbefab87e0')
+
+ def install(self, spec, prefix):
+ cmake('.', *std_cmake_args)
+
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/nccmp/package.py b/var/spack/repos/builtin/packages/nccmp/package.py
new file mode 100644
index 0000000000..72e86831c6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/nccmp/package.py
@@ -0,0 +1,23 @@
+from spack import *
+
+class Nccmp(Package):
+ """Compare NetCDF Files"""
+ homepage = "http://nccmp.sourceforge.net/"
+ url = "http://downloads.sourceforge.net/project/nccmp/nccmp-1.8.2.0.tar.gz"
+
+ version('1.8.2.0', '81e6286d4413825aec4327e61a28a580')
+
+ depends_on('netcdf')
+
+ def install(self, spec, prefix):
+ # Configure says: F90 and F90FLAGS are replaced by FC and
+ # FCFLAGS respectively in this configure, please unset
+ # F90/F90FLAGS and set FC/FCFLAGS instead and rerun configure
+ # again.
+ env.pop('F90', None)
+ env.pop('F90FLAGS', None)
+
+ configure('--prefix=%s' % prefix)
+ make()
+ make("check")
+ make("install")
diff --git a/var/spack/repos/builtin/packages/nco/package.py b/var/spack/repos/builtin/packages/nco/package.py
new file mode 100644
index 0000000000..3a9aeaa656
--- /dev/null
+++ b/var/spack/repos/builtin/packages/nco/package.py
@@ -0,0 +1,30 @@
+from spack import *
+import os
+
+class Nco(Package):
+ """The NCO toolkit manipulates and analyzes data stored in
+ netCDF-accessible formats"""
+
+ homepage = "https://sourceforge.net/projects/nco"
+ url = "https://github.com/nco/nco/archive/4.5.5.tar.gz"
+
+ version('4.5.5', '9f1f1cb149ad6407c5a03c20122223ce')
+
+ # See "Compilation Requirements" at:
+ # http://nco.sourceforge.net/#bld
+
+ depends_on('netcdf')
+ depends_on('antlr@2.7.7+cxx') # (required for ncap2)
+ depends_on('gsl') # (desirable for ncap2)
+ depends_on('udunits2') # (allows dimensional unit transformations)
+ # depends_on('opendap') # (enables network transparency),
+
+ def install(self, spec, prefix):
+ opts = [
+ '--prefix=%s' % prefix,
+ '--disable-openmp', # TODO: Make this a variant
+ '--disable-dap', # TODO: Make this a variant
+ '--disable-esmf']
+ configure(*opts)
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py
index 776fb6eeaa..d0dd2d657f 100644
--- a/var/spack/repos/builtin/packages/openmpi/package.py
+++ b/var/spack/repos/builtin/packages/openmpi/package.py
@@ -26,6 +26,7 @@ class Openmpi(Package):
patch('configure.patch', when="@1.10.0:1.10.1")
variant('psm', default=False, description='Build support for the PSM library.')
+ variant('pmi', default=True, description='Build support for PMI-based launchers')
variant('verbs', default=False, description='Build support for OpenFabrics verbs.')
# TODO : variant support for other schedulers is missing
@@ -67,6 +68,9 @@ class Openmpi(Package):
if '+psm' in spec:
config_args.append("--with-psm")
+ if '+pmi' in spec:
+ config_args.append("--with-pmi") #TODO: let user specify directory when possible
+
if '+verbs' in spec:
# Up through version 1.6, this option was previously named --with-openib
if spec.satisfies('@:1.6'):
diff --git a/var/spack/repos/builtin/packages/openspeedshop/package.py b/var/spack/repos/builtin/packages/openspeedshop/package.py
index 8c71bcb7c3..bcd77351aa 100644
--- a/var/spack/repos/builtin/packages/openspeedshop/package.py
+++ b/var/spack/repos/builtin/packages/openspeedshop/package.py
@@ -1,5 +1,5 @@
################################################################################
-# Copyright (c) 2015 Krell Institute. All Rights Reserved.
+# Copyright (c) 2015-2016 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
@@ -28,20 +28,15 @@ class Openspeedshop(Package):
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"
+ url = "https://github.com/OpenSpeedShop"
version('2.2', '16cb051179c2038de4e8a845edf1d573')
+ # Use when the git repository is available
+ version('2.2', branch='master', git='https://github.com/OpenSpeedShop/openspeedshop.git')
- #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')
-
-
+ # Optional mirror template
+ #url = "file:/home/jeg/OpenSpeedShop_ROOT/SOURCES/openspeedshop-2.2.tar.gz"
+ #version('2.2', '643337740dc6c2faca60f42d3620b0e1')
parallel = False
@@ -51,11 +46,17 @@ class Openspeedshop(Package):
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.")
+ # MPI variants
+ variant('openmpi', default=False, description="Build mpi experiment collector for openmpi MPI when this variant is enabled.")
+ variant('mpt', default=False, description="Build mpi experiment collector for SGI MPT MPI when this variant is enabled.")
+ variant('mvapich2', default=False, description="Build mpi experiment collector for mvapich2 MPI when this variant is enabled.")
+ variant('mvapich', default=False, description="Build mpi experiment collector for mvapich MPI when this variant is enabled.")
+ variant('mpich2', default=False, description="Build mpi experiment collector for mpich2 MPI when this variant is enabled.")
+ variant('mpich', default=False, description="Build mpi experiment collector for mpich MPI when this variant is enabled.")
+
+ depends_on("cmake@3.0.2")
# Dependencies for openspeedshop that are common to all the variants of the OpenSpeedShop build
depends_on("bison")
depends_on("flex")
@@ -63,8 +64,8 @@ class Openspeedshop(Package):
depends_on("libelf")
depends_on("libdwarf")
depends_on("sqlite")
- depends_on("boost@1.50.0")
- depends_on("dyninst@8.2.1")
+ depends_on("boost@1.50.0:")
+ depends_on("dyninst@9.1.0")
depends_on("python")
depends_on("qt@3.3.8b+krellpatch")
@@ -72,15 +73,78 @@ class Openspeedshop(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')
+ depends_on("openmpi", when='+offline+openmpi')
+ depends_on("mpich", when='+offline+mpich')
+ depends_on("mpich2", when='+offline+mpich2')
+ depends_on("mvapich2", when='+offline+mvapich2')
+ depends_on("mvapich", when='+offline+mvapich')
+ depends_on("mpt", when='+offline+mpt')
# 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')
+ depends_on("cbtf-argonavis", when='+cbtf+cuda')
+ depends_on("mrnet@5.0.1:+lwthreads+krellpatch", when='+cbtf')
+
+ def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
+ # Sets build type parameters into cmakeOptions the options that will enable the cbtf-krell built type settings
+
+ compile_flags="-O2 -g"
+ BuildTypeOptions = []
+ # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the stdcmakeargs
+ for word in cmakeOptions[:]:
+ if word.startswith('-DCMAKE_BUILD_TYPE'):
+ cmakeOptions.remove(word)
+ if word.startswith('-DCMAKE_CXX_FLAGS'):
+ cmakeOptions.remove(word)
+ if word.startswith('-DCMAKE_C_FLAGS'):
+ cmakeOptions.remove(word)
+ BuildTypeOptions.extend([
+ '-DCMAKE_BUILD_TYPE=None',
+ '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
+ '-DCMAKE_C_FLAGS=%s' % compile_flags
+ ])
+
+ cmakeOptions.extend(BuildTypeOptions)
+
+ def set_mpi_cmakeOptions(self, spec, cmakeOptions):
+ # Appends to cmakeOptions the options that will enable the appropriate MPI implementations
+
+ MPIOptions = []
+
+ # openmpi
+ if '+openmpi' in spec:
+ MPIOptions.extend([
+ '-DOPENMPI_DIR=%s' % spec['openmpi'].prefix
+ ])
+ # mpich
+ if '+mpich' in spec:
+ MPIOptions.extend([
+ '-DMPICH_DIR=%s' % spec['mpich'].prefix
+ ])
+ # mpich2
+ if '+mpich2' in spec:
+ MPIOptions.extend([
+ '-DMPICH2_DIR=%s' % spec['mpich2'].prefix
+ ])
+ # mvapich
+ if '+mvapich' in spec:
+ MPIOptions.extend([
+ '-DMVAPICH_DIR=%s' % spec['mvapich'].prefix
+ ])
+ # mvapich2
+ if '+mvapich2' in spec:
+ MPIOptions.extend([
+ '-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix
+ ])
+ # mpt
+ if '+mpt' in spec:
+ MPIOptions.extend([
+ '-DMPT_DIR=%s' % spec['mpt'].prefix
+ ])
+
+ cmakeOptions.extend(MPIOptions)
+
def install(self, spec, prefix):
@@ -100,51 +164,118 @@ class Openspeedshop(Package):
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)
+
+ cmakeOptions = []
+ cmakeOptions.extend(['-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
+ ])
+
+ # Add any MPI implementations coming from variant settings
+ self.set_mpi_cmakeOptions(spec, cmakeOptions)
+ cmakeOptions.extend(std_cmake_args)
+
+ # Adjust the build options to the favored ones for this build
+ self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
+
+ cmake('..', *cmakeOptions)
+
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,
+ #'-DMPICH_DIR=%s' % spec['mpich'].prefix,
+ #'-DMPICH2_DIR=%s' % spec['mpich2'].prefix,
+ #'-DBoost_NO_SYSTEM_PATHS=TRUE',
+ #'-DBOOST_ROOT=%s' % spec['boost'].prefix,
+ #'-DOPENMPI_DIR=%s' % spec['openmpi'].prefix,
+
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)
+
+ cmakeOptions = []
+ cmakeOptions.extend(['-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
+ ])
+
+ # Add any MPI implementations coming from variant settings
+ self.set_mpi_cmakeOptions(spec, cmakeOptions)
+ cmakeOptions.extend(std_cmake_args)
+
+ # Adjust the build options to the favored ones for this build
+ self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
+
+ cmake('..', *cmakeOptions)
+
make("clean")
make()
make("install")
elif '+cbtf' in spec:
instrumentor_setting = "cbtf"
+ resolve_symbols = "symtabapi"
cmake_prefix_path = join_path(spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix) + ':' + join_path(spec['dyninst'].prefix)
+ #runtime_platform_cray = "cray"
+ #if '+cray' in spec:
+ # if '+runtime' in spec:
+ # #-DCBTF_KRELL_CN_RUNTIME_DIR=${CBTF_KRELL_CN_INSTALL_DIR} \
+ # with working_dir('build_cbtf_cray_runtime', create=True):
+ # python_vers='%d.%d' % spec['python'].version[:2]
+ # cmake('..',
+ # '-DCMAKE_INSTALL_PREFIX=%s' % prefix,
+ # '-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64,
+ # '-DRUNTIME_PLATFORM=%s' % runtime_platform_cray,
+ # '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
+ # '-DRESOLVE_SYMBOLS=%s' % resolve_symbols,
+ # '-DINSTRUMENTOR=%s' % instrumentor_setting,
+ # '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
+ # '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
+ # '-DCBTF_KRELL_CN_RUNTIME_DIR=%s' % spec['cbtf-krell'].prefix,
+ # '-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
+ # '-DLIBELF_DIR=%s' % spec['libelf'].prefix,
+ # '-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix,
+ # '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
+ # '-DPAPI_DIR=%s' % spec['papi'].prefix,
+ # '-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
+ # '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
+ # '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
+ # '-DBoost_NO_SYSTEM_PATHS=TRUE',
+ # '-DBOOST_ROOT=%s' % spec['boost'].prefix,
+ # *std_cmake_args)
+
+ # make("clean")
+ # make()
+ # make("install")
+
+
+ #elif '+mic' in spec:
+ # comment out else and shift over the default case below until arch detection is in
+ #else:
+
if '+runtime' in spec:
with working_dir('build_cbtf_runtime', create=True):
python_vers='%d.%d' % spec['python'].version[:2]
@@ -203,14 +334,63 @@ class Openspeedshop(Package):
# 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
+ #if '+cbtf' in spec:
+ # if cray build type detected:
+ # if '+runtime' in spec:
+ # with working_dir('build_cray_cbtf_compute', create=True):
+ # tbd
+ # else:
+ # with working_dir('build_cray_cbtf_frontend', create=True):
+ # tbd
+ # with working_dir('build_cray_osscbtf_frontend', create=True):
+ # tbd
+ # fi
+ # elif '+intelmic' in spec:
+ # if '+runtime' in spec:
+ # with working_dir('build_intelmic_cbtf_compute', create=True):
+ # tbd
+ # else:
+ # with working_dir('build_intelmic_cbtf_frontend', create=True):
+ # tbd
+ # with working_dir('build_intelmic_osscbtf_frontend', create=True):
+ # fi
+ # else
+ # with working_dir('build_cluster_cbtf', create=True):
+ # tbd
+ # with working_dir('build_cluster osscbtf', create=True):
+ # tbd
+ # fi
+ #elif '+offline' in spec:
+ # if cray build type detected:
+ # if '+runtime' in spec:
+ # with working_dir('build_cray_ossoff_compute', create=True):
+ # tbd
+ # else:
+ # with working_dir('build_cray_ossoff_frontend', create=True):
+ # tbd
+ # fi
+ # elif '+intelmic' in spec:
+ # if '+runtime' in spec:
+ # with working_dir('build_intelmic_ossoff_compute', create=True):
+ # tbd
+ # else:
+ # with working_dir('build_intelmic_ossoff_frontend', create=True):
+ # tbd
+ # fi
+ # elif bgq build type detected:
+ # if '+runtime' in spec:
+ # with working_dir('build_bgq_ossoff_compute', create=True):
+ # tbd
+ # else:
+ # with working_dir('build_bgq_ossoff_frontend', create=True):
+ # tbd
+ # fi
+ # else
+ # with working_dir('build_cluster ossoff', create=True):
+ # tbd
+ # fi
+ #fi
+
+
+
diff --git a/var/spack/repos/builtin/packages/scotch/Makefile.esmumps b/var/spack/repos/builtin/packages/scotch/Makefile.esmumps
new file mode 100644
index 0000000000..4bfc760197
--- /dev/null
+++ b/var/spack/repos/builtin/packages/scotch/Makefile.esmumps
@@ -0,0 +1,5 @@
+esmumps : scotch
+ (cd esmumps ; $(MAKE) scotch && $(MAKE) install)
+
+ptesmumps : ptscotch
+ (cd esmumps ; $(MAKE) ptscotch && $(MAKE) ptinstall)
diff --git a/var/spack/repos/builtin/packages/scotch/package.py b/var/spack/repos/builtin/packages/scotch/package.py
index 8229ed8686..8fad74b24f 100644
--- a/var/spack/repos/builtin/packages/scotch/package.py
+++ b/var/spack/repos/builtin/packages/scotch/package.py
@@ -1,88 +1,125 @@
from spack import *
-import os
+import os, re
class Scotch(Package):
"""Scotch is a software package for graph and mesh/hypergraph
partitioning, graph clustering, and sparse matrix ordering."""
+
homepage = "http://www.labri.fr/perso/pelegrin/scotch/"
- url = "http://gforge.inria.fr/frs/download.php/file/34099/scotch_6.0.3.tar.gz"
+ url = "http://gforge.inria.fr/frs/download.php/latestfile/298/scotch_6.0.3.tar.gz"
+ base_url = "http://gforge.inria.fr/frs/download.php/latestfile/298"
list_url = "http://gforge.inria.fr/frs/?group_id=248"
version('6.0.3', '10b0cc0f184de2de99859eafaca83cfc')
+ version('6.0.0', 'c50d6187462ba801f9a82133ee666e8e')
+ version('5.1.10b', 'f587201d6cf5cf63527182fbfba70753')
variant('mpi', default=False, description='Activate the compilation of PT-Scotch')
variant('compression', default=True, description='Activate the posibility to use compressed files')
variant('esmumps', default=False, description='Activate the compilation of the lib esmumps needed by mumps')
variant('shared', default=True, description='Build shared libraries')
- depends_on('mpi', when='+mpi')
- depends_on('zlib', when='+compression')
depends_on('flex')
depends_on('bison')
+ depends_on('mpi', when='+mpi')
+ depends_on('zlib', when='+compression')
- def compiler_specifics(self, makefile_inc, defines):
- if self.compiler.name == 'gcc':
- defines.append('-Drestrict=__restrict')
- elif self.compiler.name == 'intel':
- defines.append('-restrict')
+ # NOTE: Versions of Scotch up to version 6.0.0 don't include support for
+ # building with 'esmumps' in their default packages. In order to enable
+ # support for this feature, we must grab the 'esmumps' enabled archives
+ # from the Scotch hosting site. These alternative archives include a strict
+ # superset of the behavior in their default counterparts, so we choose to
+ # always grab these versions for older Scotch versions for simplicity.
+ @when('@:6.0.0')
+ def url_for_version(self, version):
+ return '%s/scotch_%s_esmumps.tar.gz' % (Scotch.base_url, version)
+
+ @when('@6.0.1:')
+ def url_for_version(self, version):
+ return super(Scotch, self).url_for_version(version)
+
+ # NOTE: Several of the 'esmumps' enabled Scotch releases up to version 6.0.0
+ # have broken build scripts that don't properly build 'esmumps' as a separate
+ # target, so we need a patch procedure to remove 'esmumps' from existing targets
+ # and to add it as a standalone target.
+ @when('@:6.0.0')
+ def patch(self):
+ makefile_path = os.path.join('src', 'Makefile')
+ with open(makefile_path, 'r') as makefile:
+ esmumps_enabled = any(re.search(r'^esmumps(\s*):(.*)$', line) for line in makefile.readlines())
- makefile_inc.append('CCS = $(CC)')
+ if not esmumps_enabled:
+ mff = FileFilter(makefile_path)
+ mff.filter(r'^.*((esmumps)|(ptesmumps)).*(install).*$', '')
- if '+mpi' in self.spec:
+ makefile_esmumps_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'Makefile.esmumps')
+ with open(makefile_path, 'a') as makefile:
+ makefile.write('\ninclude %s\n' % makefile_esmumps_path)
+
+ @when('@6.0.1:')
+ def patch(self):
+ pass
+
+ # NOTE: Configuration of Scotch is achieved by writing a 'Makefile.inc' file
+ # that contains all of the configuration variables and their desired values
+ # for the installation. This function writes this file based on the given
+ # installation variants.
+ def configure(self):
+ makefile_inc = []
+ cflags = [
+ '-O3',
+ '-DCOMMON_RANDOM_FIXED_SEED',
+ '-DSCOTCH_DETERMINISTIC',
+ '-DSCOTCH_RENAME',
+ '-DIDXSIZE64'
+ ]
+
+ ## Library Build Type ##
+
+ if '+shared' in self.spec:
makefile_inc.extend([
- 'CCP = %s' % os.path.join(self.spec['mpi'].prefix.bin, 'mpicc'),
- 'CCD = $(CCP)'
- ])
+ 'LIB = .so',
+ 'CLIBFLAGS = -shared -fPIC',
+ 'RANLIB = echo',
+ 'AR = $(CC)',
+ 'ARFLAGS = -shared $(LDFLAGS) -o'
+ ])
+ cflags.append('-fPIC')
else:
makefile_inc.extend([
- 'CCP = mpicc', # It is set but not used
- 'CCD = $(CCS)'
- ])
+ 'LIB = .a',
+ 'CLIBFLAGS = ',
+ 'RANLIB = ranlib',
+ 'AR = ar',
+ 'ARFLAGS = -ruv '
+ ])
+ ## Compiler-Specific Options ##
+ if self.compiler.name == 'gcc':
+ cflags.append('-Drestrict=__restrict')
+ elif self.compiler.name == 'intel':
+ cflags.append('-restrict')
- def library_build_type(self, makefile_inc, defines):
- makefile_inc.extend([
- 'LIB = .a',
- 'CLIBFLAGS = ',
- 'RANLIB = ranlib',
- 'AR = ar',
- 'ARFLAGS = -ruv '
- ])
+ makefile_inc.append('CCS = $(CC)')
+ makefile_inc.append('CCP = %s' %
+ (self.spec['mpi'].mpicc if '+mpi' in self.spec else 'mpicc'))
+ makefile_inc.append('CCD = $(CCS)')
- @when('+shared')
- def library_build_type(self, makefile_inc, defines):
- makefile_inc.extend([
- 'LIB = .so',
- 'CLIBFLAGS = -shared -fPIC',
- 'RANLIB = echo',
- 'AR = $(CC)',
- 'ARFLAGS = -shared $(LDFLAGS) -o'
- ])
+ ## Extra Features ##
- def extra_features(self, makefile_inc, defines):
ldflags = []
-
+
if '+compression' in self.spec:
- defines.append('-DCOMMON_FILE_COMPRESS_GZ')
+ cflags.append('-DCOMMON_FILE_COMPRESS_GZ')
ldflags.append('-L%s -lz' % (self.spec['zlib'].prefix.lib))
- defines.append('-DCOMMON_PTHREAD')
+ cflags.append('-DCOMMON_PTHREAD')
ldflags.append('-lm -lrt -pthread')
-
- makefile_inc.append('LDFLAGS = %s' % ' '.join(ldflags))
- def patch(self):
- makefile_inc = []
- defines = [
- '-DCOMMON_RANDOM_FIXED_SEED',
- '-DSCOTCH_DETERMINISTIC',
- '-DSCOTCH_RENAME',
- '-DIDXSIZE64' ]
+ makefile_inc.append('LDFLAGS = %s' % ' '.join(ldflags))
- self.library_build_type(makefile_inc, defines)
- self.compiler_specifics(makefile_inc, defines)
- self.extra_features(makefile_inc, defines)
+ ## General Features ##
makefile_inc.extend([
'EXE =',
@@ -93,18 +130,19 @@ class Scotch(Package):
'MKDIR = mkdir',
'MV = mv',
'CP = cp',
- 'CFLAGS = -O3 %s' % (' '.join(defines)),
+ 'CFLAGS = %s' % ' '.join(cflags),
'LEX = %s -Pscotchyy -olex.yy.c' % os.path.join(self.spec['flex'].prefix.bin , 'flex'),
'YACC = %s -pscotchyy -y -b y' % os.path.join(self.spec['bison'].prefix.bin, 'bison'),
- 'prefix = %s' % self.prefix,
- ''
+ 'prefix = %s' % self.prefix
])
with working_dir('src'):
with open('Makefile.inc', 'w') as fh:
fh.write('\n'.join(makefile_inc))
-
+
def install(self, spec, prefix):
+ self.configure()
+
targets = ['scotch']
if '+mpi' in self.spec:
targets.append('ptscotch')
@@ -115,12 +153,10 @@ class Scotch(Package):
targets.append('ptesmumps')
with working_dir('src'):
- for app in targets:
- make(app, parallel=(not app=='ptesmumps'))
+ for target in targets:
+ make(target, parallel=(target!='ptesmumps'))
-
install_tree('bin', prefix.bin)
install_tree('lib', prefix.lib)
install_tree('include', prefix.include)
install_tree('man/man1', prefix.share_man1)
-
diff --git a/var/spack/repos/builtin/packages/unibilium/package.py b/var/spack/repos/builtin/packages/unibilium/package.py
new file mode 100644
index 0000000000..ef5de56f79
--- /dev/null
+++ b/var/spack/repos/builtin/packages/unibilium/package.py
@@ -0,0 +1,12 @@
+from spack import *
+
+class Unibilium(Package):
+ """A terminfo parsing library"""
+ homepage = "https://github.com/mauke/unibilium"
+ url = "https://github.com/mauke/unibilium/archive/v1.2.0.tar.gz"
+
+ version('1.2.0', '9b1c97839a880a373da6c097443b43c4')
+
+ def install(self, spec, prefix):
+ make("PREFIX="+prefix)
+ make("install", "PREFIX="+prefix)