summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
Diffstat (limited to 'var')
-rw-r--r--var/spack/mock_packages/callpath/package.py2
-rw-r--r--var/spack/mock_packages/direct_mpich/package.py2
-rw-r--r--var/spack/mock_packages/dyninst/package.py2
-rw-r--r--var/spack/mock_packages/fake/package.py2
-rw-r--r--var/spack/mock_packages/indirect_mpich/package.py2
-rw-r--r--var/spack/mock_packages/libdwarf/package.py2
-rw-r--r--var/spack/mock_packages/libelf/package.py2
-rw-r--r--var/spack/mock_packages/mpich/package.py2
-rw-r--r--var/spack/mock_packages/mpich2/package.py2
-rw-r--r--var/spack/mock_packages/mpileaks/package.py2
-rw-r--r--var/spack/mock_packages/multimethod/package.py2
-rw-r--r--var/spack/mock_packages/netlib-blas/package.py36
-rw-r--r--var/spack/mock_packages/netlib-lapack/package.py37
-rw-r--r--var/spack/mock_packages/openblas/package.py37
-rw-r--r--var/spack/mock_packages/trivial_install_test_package/package.py2
-rw-r--r--var/spack/mock_packages/zmpi/package.py2
-rw-r--r--var/spack/packages/Mitos/package.py13
-rw-r--r--var/spack/packages/R/package.py64
-rw-r--r--var/spack/packages/SAMRAI/package.py7
-rw-r--r--var/spack/packages/adept-utils/package.py6
-rw-r--r--var/spack/packages/atop/package.py16
-rw-r--r--var/spack/packages/automaded/package.py6
-rw-r--r--var/spack/packages/binutils/binutilskrell-2.24.patch52
-rw-r--r--var/spack/packages/binutils/cr16.patch26
-rw-r--r--var/spack/packages/binutils/package.py22
-rw-r--r--var/spack/packages/boost/package.py90
-rw-r--r--var/spack/packages/callpath/package.py6
-rw-r--r--var/spack/packages/cbtf-argonavis/package.py66
-rw-r--r--var/spack/packages/cbtf-krell/package.py116
-rw-r--r--var/spack/packages/cbtf-lanl/package.py60
-rw-r--r--var/spack/packages/cbtf/package.py62
-rw-r--r--var/spack/packages/cereal/Werror.patch33
-rw-r--r--var/spack/packages/cereal/package.py34
-rw-r--r--var/spack/packages/cfitsio/package.py18
-rw-r--r--var/spack/packages/cgal/package.py73
-rw-r--r--var/spack/packages/cityhash/package.py16
-rw-r--r--var/spack/packages/cleverleaf/package.py4
-rw-r--r--var/spack/packages/cmake/package.py16
-rw-r--r--var/spack/packages/cram/package.py5
-rw-r--r--var/spack/packages/cube/package.py82
-rw-r--r--var/spack/packages/curl/package.py25
-rw-r--r--var/spack/packages/czmq/package.py16
-rw-r--r--var/spack/packages/damselfly/package.py6
-rw-r--r--var/spack/packages/dyninst/package.py7
-rw-r--r--var/spack/packages/expat/package.py17
-rw-r--r--var/spack/packages/fftw/package.py75
-rw-r--r--var/spack/packages/fltk/font.patch44
-rw-r--r--var/spack/packages/fltk/package.py58
-rw-r--r--var/spack/packages/flux/package.py7
-rw-r--r--var/spack/packages/fontconfig/package.py3
-rw-r--r--var/spack/packages/gcc/package.py27
-rw-r--r--var/spack/packages/gdb/package.py48
-rw-r--r--var/spack/packages/git/package.py46
-rw-r--r--var/spack/packages/glib/package.py1
-rw-r--r--var/spack/packages/global/package.py6
-rw-r--r--var/spack/packages/glpk/package.py53
-rw-r--r--var/spack/packages/gmp/package.py3
-rw-r--r--var/spack/packages/gmsh/package.py84
-rw-r--r--var/spack/packages/gnuplot/package.py61
-rw-r--r--var/spack/packages/gperftools/package.py5
-rw-r--r--var/spack/packages/gsl/package.py46
-rw-r--r--var/spack/packages/hdf5/package.py45
-rw-r--r--var/spack/packages/hwloc/package.py5
-rw-r--r--var/spack/packages/jemalloc/package.py12
-rw-r--r--var/spack/packages/julia/gc.patch11
-rw-r--r--var/spack/packages/julia/package.py70
-rw-r--r--var/spack/packages/launchmon/package.py4
-rw-r--r--var/spack/packages/libNBC/package.py2
-rw-r--r--var/spack/packages/libcerf/package.py42
-rw-r--r--var/spack/packages/libdwarf/package.py2
-rw-r--r--var/spack/packages/libedit/package.py14
-rw-r--r--var/spack/packages/libelf/package.py2
-rw-r--r--var/spack/packages/libgd/package.py (renamed from var/spack/packages/clang/package.py)32
-rw-r--r--var/spack/packages/libmonitor/libmonitorkrell-0000.patch18
-rw-r--r--var/spack/packages/libmonitor/libmonitorkrell-0001.patch395
-rw-r--r--var/spack/packages/libmonitor/libmonitorkrell-0002.patch106
-rw-r--r--var/spack/packages/libmonitor/package.py9
-rw-r--r--var/spack/packages/libpciaccess/package.py16
-rw-r--r--var/spack/packages/libtool/package.py1
-rw-r--r--var/spack/packages/libunwind/package.py2
-rw-r--r--var/spack/packages/libxml2/package.py10
-rw-r--r--var/spack/packages/llvm-lld/package.py2
-rw-r--r--var/spack/packages/llvm/package.py178
-rw-r--r--var/spack/packages/lmod/package.py26
-rw-r--r--var/spack/packages/lua/package.py12
-rw-r--r--var/spack/packages/mbedtls/package.py22
-rw-r--r--var/spack/packages/memaxes/package.py5
-rw-r--r--var/spack/packages/mesa/package.py2
-rw-r--r--var/spack/packages/metis/package.py92
-rw-r--r--var/spack/packages/mpc/package.py3
-rw-r--r--var/spack/packages/mpfr/package.py6
-rw-r--r--var/spack/packages/mpich/package.py18
-rw-r--r--var/spack/packages/mpileaks/package.py2
-rw-r--r--var/spack/packages/mrnet/package.py8
-rw-r--r--var/spack/packages/muster/package.py4
-rw-r--r--var/spack/packages/mvapich2/package.py30
-rw-r--r--var/spack/packages/ncurses/package.py25
-rw-r--r--var/spack/packages/ncurses/patch_gcc_5.txt12
-rw-r--r--var/spack/packages/netcdf/package.py1
-rw-r--r--var/spack/packages/netgauge/package.py2
-rw-r--r--var/spack/packages/ninja/package.py22
-rw-r--r--var/spack/packages/ompt-openmp/package.py2
-rw-r--r--var/spack/packages/opari2/package.py83
-rw-r--r--var/spack/packages/openblas/package.py25
-rw-r--r--var/spack/packages/openmpi/package.py48
-rw-r--r--var/spack/packages/openspeedshop/package.py216
-rw-r--r--var/spack/packages/openssl/package.py17
-rw-r--r--var/spack/packages/otf2/package.py89
-rw-r--r--var/spack/packages/papi/package.py2
-rw-r--r--var/spack/packages/paraview/package.py7
-rw-r--r--var/spack/packages/parmetis/package.py103
-rw-r--r--var/spack/packages/patchelf/package.py16
-rw-r--r--var/spack/packages/pcre/package.py1
-rw-r--r--var/spack/packages/pcre2/package.py15
-rw-r--r--var/spack/packages/pdt/package.py45
-rw-r--r--var/spack/packages/petsc/package.py8
-rw-r--r--var/spack/packages/pmgr_collective/package.py2
-rw-r--r--var/spack/packages/py-astropy/package.py28
-rw-r--r--var/spack/packages/py-basemap/package.py4
-rw-r--r--var/spack/packages/py-blessings/package.py15
-rw-r--r--var/spack/packages/py-cffi/package.py2
-rw-r--r--var/spack/packages/py-coverage/package.py16
-rw-r--r--var/spack/packages/py-funcsigs/package.py19
-rw-r--r--var/spack/packages/py-matplotlib/package.py6
-rw-r--r--var/spack/packages/py-mock/package.py1
-rw-r--r--var/spack/packages/py-mysqldb1/package.py15
-rw-r--r--var/spack/packages/py-numexpr/package.py15
-rw-r--r--var/spack/packages/py-numpy/package.py24
-rw-r--r--var/spack/packages/py-pbr/package.py18
-rw-r--r--var/spack/packages/py-periodictable/package.py17
-rw-r--r--var/spack/packages/py-pillow/package.py14
-rw-r--r--var/spack/packages/py-pytables/package.py19
-rw-r--r--var/spack/packages/py-setuptools/package.py1
-rw-r--r--var/spack/packages/py-tappy/package.py15
-rw-r--r--var/spack/packages/py-urwid/package.py16
-rw-r--r--var/spack/packages/python/package.py39
-rw-r--r--var/spack/packages/qhull/package.py3
-rw-r--r--var/spack/packages/qhull/qhull-iterator.patch45
-rw-r--r--var/spack/packages/qt/package.py22
-rw-r--r--var/spack/packages/qt/qt3krell.patch68
-rw-r--r--var/spack/packages/ravel/package.py4
-rw-r--r--var/spack/packages/rsync/package.py1
-rw-r--r--var/spack/packages/scalasca/package.py96
-rw-r--r--var/spack/packages/scorep/package.py116
-rw-r--r--var/spack/packages/scotch/package.py114
-rw-r--r--var/spack/packages/scr/package.py2
-rw-r--r--var/spack/packages/sparsehash/package.py14
-rw-r--r--var/spack/packages/spindle/package.py2
-rw-r--r--var/spack/packages/spot/package.py18
-rw-r--r--var/spack/packages/sqlite/package.py2
-rw-r--r--var/spack/packages/sundials/package.py2
-rw-r--r--var/spack/packages/swig/package.py2
-rw-r--r--var/spack/packages/szip/package.py21
-rw-r--r--var/spack/packages/tar/package.py13
-rw-r--r--var/spack/packages/tau/package.py117
-rw-r--r--var/spack/packages/texinfo/package.py46
-rw-r--r--var/spack/packages/tmuxinator/package.py5
-rw-r--r--var/spack/packages/valgrind/package.py55
-rw-r--r--var/spack/packages/wget/package.py5
-rw-r--r--var/spack/packages/wx/package.py2
-rw-r--r--var/spack/packages/xerces-c/package.py36
161 files changed, 4146 insertions, 565 deletions
diff --git a/var/spack/mock_packages/callpath/package.py b/var/spack/mock_packages/callpath/package.py
index 5b6b70ba2a..abc576f78f 100644
--- a/var/spack/mock_packages/callpath/package.py
+++ b/var/spack/mock_packages/callpath/package.py
@@ -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
diff --git a/var/spack/mock_packages/direct_mpich/package.py b/var/spack/mock_packages/direct_mpich/package.py
index 2ced82521b..efe7fc2afc 100644
--- a/var/spack/mock_packages/direct_mpich/package.py
+++ b/var/spack/mock_packages/direct_mpich/package.py
@@ -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
diff --git a/var/spack/mock_packages/dyninst/package.py b/var/spack/mock_packages/dyninst/package.py
index 7998578da1..ea57950865 100644
--- a/var/spack/mock_packages/dyninst/package.py
+++ b/var/spack/mock_packages/dyninst/package.py
@@ -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
diff --git a/var/spack/mock_packages/fake/package.py b/var/spack/mock_packages/fake/package.py
index fb3c2bdd2e..5f81ef20fc 100644
--- a/var/spack/mock_packages/fake/package.py
+++ b/var/spack/mock_packages/fake/package.py
@@ -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
diff --git a/var/spack/mock_packages/indirect_mpich/package.py b/var/spack/mock_packages/indirect_mpich/package.py
index daf8b4b166..0b1773a27b 100644
--- a/var/spack/mock_packages/indirect_mpich/package.py
+++ b/var/spack/mock_packages/indirect_mpich/package.py
@@ -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
diff --git a/var/spack/mock_packages/libdwarf/package.py b/var/spack/mock_packages/libdwarf/package.py
index 0b8df04cfb..e486a5de03 100644
--- a/var/spack/mock_packages/libdwarf/package.py
+++ b/var/spack/mock_packages/libdwarf/package.py
@@ -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
diff --git a/var/spack/mock_packages/libelf/package.py b/var/spack/mock_packages/libelf/package.py
index 94c8f942cd..5e5b0b7143 100644
--- a/var/spack/mock_packages/libelf/package.py
+++ b/var/spack/mock_packages/libelf/package.py
@@ -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
diff --git a/var/spack/mock_packages/mpich/package.py b/var/spack/mock_packages/mpich/package.py
index f77d3efc5d..55bf97f2cf 100644
--- a/var/spack/mock_packages/mpich/package.py
+++ b/var/spack/mock_packages/mpich/package.py
@@ -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
diff --git a/var/spack/mock_packages/mpich2/package.py b/var/spack/mock_packages/mpich2/package.py
index 827b94c8a4..90f969b898 100644
--- a/var/spack/mock_packages/mpich2/package.py
+++ b/var/spack/mock_packages/mpich2/package.py
@@ -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
diff --git a/var/spack/mock_packages/mpileaks/package.py b/var/spack/mock_packages/mpileaks/package.py
index 3989f1b452..9a18c5e1f2 100644
--- a/var/spack/mock_packages/mpileaks/package.py
+++ b/var/spack/mock_packages/mpileaks/package.py
@@ -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
diff --git a/var/spack/mock_packages/multimethod/package.py b/var/spack/mock_packages/multimethod/package.py
index 75b1606ffc..ea103fe175 100644
--- a/var/spack/mock_packages/multimethod/package.py
+++ b/var/spack/mock_packages/multimethod/package.py
@@ -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
diff --git a/var/spack/mock_packages/netlib-blas/package.py b/var/spack/mock_packages/netlib-blas/package.py
new file mode 100644
index 0000000000..39f2c92ae5
--- /dev/null
+++ b/var/spack/mock_packages/netlib-blas/package.py
@@ -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
diff --git a/var/spack/mock_packages/netlib-lapack/package.py b/var/spack/mock_packages/netlib-lapack/package.py
new file mode 100644
index 0000000000..331844e544
--- /dev/null
+++ b/var/spack/mock_packages/netlib-lapack/package.py
@@ -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
diff --git a/var/spack/mock_packages/openblas/package.py b/var/spack/mock_packages/openblas/package.py
new file mode 100644
index 0000000000..c7771b92a3
--- /dev/null
+++ b/var/spack/mock_packages/openblas/package.py
@@ -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
diff --git a/var/spack/mock_packages/trivial_install_test_package/package.py b/var/spack/mock_packages/trivial_install_test_package/package.py
index c4db9f5f07..fec5849e67 100644
--- a/var/spack/mock_packages/trivial_install_test_package/package.py
+++ b/var/spack/mock_packages/trivial_install_test_package/package.py
@@ -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
diff --git a/var/spack/mock_packages/zmpi/package.py b/var/spack/mock_packages/zmpi/package.py
index 8c6ceda6d3..201fac2fbf 100644
--- a/var/spack/mock_packages/zmpi/package.py
+++ b/var/spack/mock_packages/zmpi/package.py
@@ -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
diff --git a/var/spack/packages/Mitos/package.py b/var/spack/packages/Mitos/package.py
index e312da3ffc..ea131872dd 100644
--- a/var/spack/packages/Mitos/package.py
+++ b/var/spack/packages/Mitos/package.py
@@ -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):
diff --git a/var/spack/packages/R/package.py b/var/spack/packages/R/package.py
index 2e6f65a742..2471dff09b 100644
--- a/var/spack/packages/R/package.py
+++ b/var/spack/packages/R/package.py
@@ -1,33 +1,49 @@
from spack import *
+
class R(Package):
- """R is 'GNU S', a freely available language and environment for
- statistical computing and graphics which provides a wide va
- riety of statistical and graphical techniques: linear and
- nonlinear modelling, statistical tests, time series analysis,
- classification, clustering, etc. Please consult the R project
- homepage for further information."""
- homepage = "http://www.example.com"
- url = "http://cran.cnr.berkeley.edu/src/base/R-3/R-3.1.2.tar.gz"
+ """
+ R is 'GNU S', a freely available language and environment for statistical computing and graphics which provides a
+ wide variety of statistical and graphical techniques: linear and nonlinear modelling, statistical tests, time series
+ analysis, classification, clustering, etc. Please consult the R project homepage for further information.
+ """
+ homepage = "https://www.r-project.org"
+ url = "http://cran.cnr.berkeley.edu/src/base/R-3/R-3.1.2.tar.gz"
+ version('3.2.3', '1ba3dac113efab69e706902810cc2970')
+ version('3.2.2', '57cef5c2e210a5454da1979562a10e5b')
+ version('3.2.1', 'c2aac8b40f84e08e7f8c9068de9239a3')
+ version('3.2.0', '66fa17ad457d7e618191aa0f52fc402e')
+ version('3.1.3', '53a85b884925aa6b5811dfc361d73fc4')
version('3.1.2', '3af29ec06704cbd08d4ba8d69250ae74')
- depends_on("readline")
- depends_on("ncurses")
- depends_on("icu")
- depends_on("glib")
- depends_on("zlib")
- depends_on("libtiff")
- depends_on("jpeg")
- depends_on("cairo")
- depends_on("pango")
- depends_on("freetype")
- depends_on("tcl")
- depends_on("tk")
+ variant('external-lapack', default=False, description='Links to externally installed BLAS/LAPACK')
+
+ # Virtual dependencies
+ depends_on('blas', when='+external-lapack')
+ depends_on('lapack', when='+external-lapack')
+
+ # Concrete dependencies
+ depends_on('readline')
+ depends_on('ncurses')
+ depends_on('icu')
+ depends_on('glib')
+ depends_on('zlib')
+ depends_on('libtiff')
+ depends_on('jpeg')
+ depends_on('cairo')
+ depends_on('pango')
+ depends_on('freetype')
+ depends_on('tcl')
+ depends_on('tk')
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix,
- "--enable-R-shlib",
- "--enable-BLAS-shlib")
+ options = ['--prefix=%s' % prefix,
+ '--enable-R-shlib',
+ '--enable-BLAS-shlib']
+ if '+external-lapack' in spec:
+ options.extend(['--with-blas', '--with-lapack'])
+
+ configure(*options)
make()
- make("install")
+ make('install')
diff --git a/var/spack/packages/SAMRAI/package.py b/var/spack/packages/SAMRAI/package.py
index 5ee90cf400..2c3b9180af 100644
--- a/var/spack/packages/SAMRAI/package.py
+++ b/var/spack/packages/SAMRAI/package.py
@@ -25,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
@@ -33,11 +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-hdf5=%s" % spec['hdf5'].prefix,
"--with-boost=%s" % spec['boost'].prefix,
"--with-zlib=%s" % spec['zlib'].prefix,
diff --git a/var/spack/packages/adept-utils/package.py b/var/spack/packages/adept-utils/package.py
index e4a2e1523f..fb59576c21 100644
--- a/var/spack/packages/adept-utils/package.py
+++ b/var/spack/packages/adept-utils/package.py
@@ -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 @@ from spack import *
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')
diff --git a/var/spack/packages/atop/package.py b/var/spack/packages/atop/package.py
new file mode 100644
index 0000000000..346ab0763c
--- /dev/null
+++ b/var/spack/packages/atop/package.py
@@ -0,0 +1,16 @@
+from spack import *
+
+class Atop(Package):
+ """Atop is an ASCII full-screen performance monitor for Linux"""
+ homepage = "http://www.atoptool.nl/index.php"
+ url = "http://www.atoptool.nl/download/atop-2.2-3.tar.gz"
+
+ version('2.2-3', '034dc1544f2ec4e4d2c739d320dc326d')
+
+ def install(self, spec, prefix):
+ make()
+ mkdirp(prefix.bin)
+ install("atop", join_path(prefix.bin, "atop"))
+ mkdirp(join_path(prefix.man, "man1"))
+ install(join_path("man", "atop.1"),
+ join_path(prefix.man, "man1", "atop.1"))
diff --git a/var/spack/packages/automaded/package.py b/var/spack/packages/automaded/package.py
index 9fbd93e3b3..e0bc7efb8b 100644
--- a/var/spack/packages/automaded/package.py
+++ b/var/spack/packages/automaded/package.py
@@ -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')
diff --git a/var/spack/packages/binutils/binutilskrell-2.24.patch b/var/spack/packages/binutils/binutilskrell-2.24.patch
new file mode 100644
index 0000000000..f48291a6c9
--- /dev/null
+++ b/var/spack/packages/binutils/binutilskrell-2.24.patch
@@ -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
diff --git a/var/spack/packages/binutils/cr16.patch b/var/spack/packages/binutils/cr16.patch
new file mode 100644
index 0000000000..2727c70b23
--- /dev/null
+++ b/var/spack/packages/binutils/cr16.patch
@@ -0,0 +1,26 @@
+--- old/opcodes/cr16-dis.c 2014-10-14 03:32:04.000000000 -0400
++++ new/opcodes/cr16-dis.c 2016-01-14 21:54:26.000000000 -0500
+@@ -78,7 +78,7 @@
+ REG_ARG_TYPE;
+
+ /* Current opcode table entry we're disassembling. */
+-const inst *instruction;
++extern const inst *instruction;
+ /* Current instruction we're disassembling. */
+ ins cr16_currInsn;
+ /* The current instruction is read into 3 consecutive words. */
+@@ -86,12 +86,12 @@
+ /* Contains all words in appropriate order. */
+ ULONGLONG cr16_allWords;
+ /* Holds the current processed argument number. */
+-int processing_argument_number;
++extern int processing_argument_number;
+ /* Nonzero means a IMM4 instruction. */
+ int imm4flag;
+ /* Nonzero means the instruction's original size is
+ incremented (escape sequence is used). */
+-int size_changed;
++extern int size_changed;
+
+
+ /* Print the constant expression length. */
diff --git a/var/spack/packages/binutils/package.py b/var/spack/packages/binutils/package.py
index cac0a0407f..de04221e33 100644
--- a/var/spack/packages/binutils/package.py
+++ b/var/spack/packages/binutils/package.py
@@ -3,12 +3,18 @@ from spack import *
class Binutils(Package):
"""GNU binutils, which contain the linker, assembler, objdump and others"""
homepage = "http://www.gnu.org/software/binutils/"
- url = "ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.bz2"
- version('2.25', 'd9f3303f802a5b6b0bb73a335ab89d66')
- version('2.24', 'e0f71a7b2ddab0f8612336ac81d9636b')
- version('2.23.2', '4f8fa651e35ef262edc01d60fb45702e')
- version('2.20.1', '2b9dc8f2b7dbd5ec5992c6e29de0b764')
+ version('2.25', 'd9f3303f802a5b6b0bb73a335ab89d66',url="ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.bz2")
+ version('2.24', 'e0f71a7b2ddab0f8612336ac81d9636b',url="ftp://ftp.gnu.org/gnu/binutils/binutils-2.24.tar.bz2")
+ version('2.23.2', '4f8fa651e35ef262edc01d60fb45702e',url="ftp://ftp.gnu.org/gnu/binutils/binutils-2.23.2.tar.bz2")
+ version('2.20.1', '2b9dc8f2b7dbd5ec5992c6e29de0b764',url="ftp://ftp.gnu.org/gnu/binutils/binutils-2.20.1.tar.bz2")
+
+ # Add a patch that creates binutils libiberty_pic.a which is preferred by OpenSpeedShop and cbtf-krell
+ variant('krellpatch', default=False, description="build with openspeedshop based patch.")
+ variant('gold', default=True, description="build the gold linker")
+ patch('binutilskrell-2.24.patch', when='@2.24+krellpatch')
+
+ patch('cr16.patch')
variant('libiberty', default=False, description='Also install libiberty.')
@@ -20,7 +26,11 @@ class Binutils(Package):
'--enable-multilib',
'--enable-shared',
'--enable-64-bit-bfd',
- '--enable-targets=all']
+ '--enable-targets=all',
+ '--with-sysroot=/']
+
+ if '+gold' in spec:
+ configure_args.append('--enable-gold')
if '+libiberty' in spec:
configure_args.append('--enable-install-libiberty')
diff --git a/var/spack/packages/boost/package.py b/var/spack/packages/boost/package.py
index 35824d53a2..3427b74ad6 100644
--- a/var/spack/packages/boost/package.py
+++ b/var/spack/packages/boost/package.py
@@ -14,6 +14,7 @@ class Boost(Package):
list_url = "http://sourceforge.net/projects/boost/files/boost/"
list_depth = 2
+ version('1.60.0', '65a840e1a0b13a558ff19eeb2c4f0cbe')
version('1.59.0', '6aa9a5c6a4ca1016edd0ed1178e3cb87')
version('1.58.0', 'b8839650e61e9c1c0a89f371dd475546')
version('1.57.0', '1be49befbdd9a5ce9def2983ba3e7b76')
@@ -43,6 +44,15 @@ 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('python', when='+python')
+ depends_on('mpi', when='+mpi')
+ depends_on('bzip2', when='+compression')
+ depends_on('zlib', when='+compression')
def url_for_version(self, version):
"""Handle Boost's weird URLs, which write the version two different ways."""
@@ -52,15 +62,87 @@ class Boost(Package):
return "http://downloads.sourceforge.net/project/boost/boost/%s/boost_%s.tar.bz2" % (
dots, underscores)
+ def determine_toolset(self, spec):
+ if spec.satisfies("=darwin-x86_64"):
+ return 'darwin'
+
+ toolsets = {'g++': 'gcc',
+ 'icpc': 'intel',
+ 'clang++': 'clang'}
+
+ for cc, toolset in toolsets.iteritems():
+ if cc in self.compiler.cxx_names:
+ return toolset
+
+ # fallback to gcc if no toolset found
+ return 'gcc'
+
+ def determine_bootstrap_options(self, spec, options):
+ options.append('--with-toolset=%s' % self.determine_toolset(spec))
+
+ without_libs = []
+ if '~mpi' in spec:
+ without_libs.append('mpi')
+ if '~python' in spec:
+ without_libs.append('python')
+ else:
+ options.append('--with-python=%s' %
+ join_path(spec['python'].prefix.bin, 'python'))
+
+ if without_libs:
+ options.append('--without-libraries=%s' % ','.join(without_libs))
+
+ with open('user-config.jam', 'w') as f:
+ if '+mpi' in spec:
+ f.write('using mpi : %s ;\n' %
+ join_path(spec['mpi'].prefix.bin, 'mpicxx'))
+ if '+python' in spec:
+ f.write('using python : %s : %s ;\n' %
+ (spec['python'].version,
+ join_path(spec['python'].prefix.bin, 'python')))
+
+ def determine_b2_options(self, spec, options):
+ if '+debug' in spec:
+ options.append('variant=debug')
+ else:
+ options.append('variant=release')
+
+ if '~compression' in spec:
+ options.extend([
+ '-s', 'NO_BZIP2=1',
+ '-s', 'NO_ZLIB=1'])
+
+ if '+compression' in spec:
+ options.extend([
+ '-s', 'BZIP2_INCLUDE=%s' % spec['bzip2'].prefix.include,
+ '-s', 'BZIP2_LIBPATH=%s' % spec['bzip2'].prefix.lib,
+ '-s', 'ZLIB_INCLUDE=%s' % spec['zlib'].prefix.include,
+ '-s', 'ZLIB_LIBPATH=%s' % spec['zlib'].prefix.lib,
+ ])
+
+ options.extend([
+ 'toolset=%s' % self.determine_toolset(spec),
+ 'link=static,shared',
+ 'threading=single,multi',
+ '--layout=tagged'])
def install(self, spec, prefix):
+ # to make Boost find the user-config.jam
+ env['BOOST_BUILD_PATH'] = './'
+
bootstrap = Executable('./bootstrap.sh')
- bootstrap()
+
+ 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', *b2_options)
diff --git a/var/spack/packages/callpath/package.py b/var/spack/packages/callpath/package.py
index f8a1eab9f7..3d2d96249e 100644
--- a/var/spack/packages/callpath/package.py
+++ b/var/spack/packages/callpath/package.py
@@ -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')
diff --git a/var/spack/packages/cbtf-argonavis/package.py b/var/spack/packages/cbtf-argonavis/package.py
new file mode 100644
index 0000000000..7b07933911
--- /dev/null
+++ b/var/spack/packages/cbtf-argonavis/package.py
@@ -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")
+
diff --git a/var/spack/packages/cbtf-krell/package.py b/var/spack/packages/cbtf-krell/package.py
new file mode 100644
index 0000000000..9458ac113c
--- /dev/null
+++ b/var/spack/packages/cbtf-krell/package.py
@@ -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")
+
diff --git a/var/spack/packages/cbtf-lanl/package.py b/var/spack/packages/cbtf-lanl/package.py
new file mode 100644
index 0000000000..2da9e8a1f7
--- /dev/null
+++ b/var/spack/packages/cbtf-lanl/package.py
@@ -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")
+
diff --git a/var/spack/packages/cbtf/package.py b/var/spack/packages/cbtf/package.py
new file mode 100644
index 0000000000..52e6a07020
--- /dev/null
+++ b/var/spack/packages/cbtf/package.py
@@ -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")
diff --git a/var/spack/packages/cereal/Werror.patch b/var/spack/packages/cereal/Werror.patch
new file mode 100644
index 0000000000..d39eaaffdb
--- /dev/null
+++ b/var/spack/packages/cereal/Werror.patch
@@ -0,0 +1,33 @@
+--- old/sandbox/CMakeLists.txt
++++ new/sandbox/CMakeLists.txt
+@@ -4,9 +4,11 @@
+ add_executable(sandbox_json sandbox_json.cpp)
+ add_executable(sandbox_rtti sandbox_rtti.cpp)
+
++if(Boost_FOUND)
+ add_executable(sandbox_vs sandbox_vs.cpp)
+ target_link_libraries(sandbox_vs sandbox_vs_dll)
+ include_directories(sandbox_shared_lib)
++endif(Boost_FOUND)
+
+ if(Boost_FOUND)
+ add_executable(performance performance.cpp)
+--- old/include/cereal/types/common.hpp
++++ new/include/cereal/types/common.hpp
+@@ -106,14 +106,16 @@
+ t = reinterpret_cast<typename common_detail::is_enum<T>::type const &>( value );
+ }
+
++#ifndef CEREAL_ENABLE_RAW_POINTER_SERIALIZATION
+ //! Serialization for raw pointers
+ /*! This exists only to throw a static_assert to let users know we don't support raw pointers. */
+ template <class Archive, class T> inline
+ void CEREAL_SERIALIZE_FUNCTION_NAME( Archive &, T * & )
+ {
+ static_assert(cereal::traits::detail::delay_static_assert<T>::value,
+ "Cereal does not support serializing raw pointers - please use a smart pointer");
+ }
++#endif
+
+ //! Serialization for C style arrays
+ template <class Archive, class T> inline
diff --git a/var/spack/packages/cereal/package.py b/var/spack/packages/cereal/package.py
new file mode 100644
index 0000000000..a83927456f
--- /dev/null
+++ b/var/spack/packages/cereal/package.py
@@ -0,0 +1,34 @@
+from spack import *
+import shutil
+
+class Cereal(Package):
+ """cereal is a header-only C++11 serialization library. cereal takes arbitrary data types and reversibly turns them into different representations, such as compact binary encodings, XML, or JSON. cereal was designed to be fast, light-weight, and easy to extend - it has no external dependencies and can be easily bundled with other code or used standalone."""
+ homepage = "http://uscilab.github.io/cereal/"
+ url = "https://github.com/USCiLab/cereal/archive/v1.1.2.tar.gz"
+
+ version('1.1.2', '34d4ad174acbff005c36d4d10e48cbb9')
+ version('1.1.1', '0ceff308c38f37d5b5f6df3927451c27')
+ version('1.1.0', '9f2d5f72e935c54f4c6d23e954ce699f')
+ version('1.0.0', 'd1bacca70a95cec0ddbff68b0871296b')
+ version('0.9.1', '8872d4444ff274ce6cd1ed364d0fc0ad')
+
+ patch("Werror.patch")
+
+ depends_on("cmake @2.6.2:")
+
+ def install(self, spec, prefix):
+ # Don't use -Werror
+ filter_file(r'-Werror', '', 'CMakeLists.txt')
+
+ # configure
+ # Boost is only used for self-tests, which we are not running (yet?)
+ cmake('.', '-DCMAKE_DISABLE_FIND_PACKAGE_Boost=TRUE', *std_cmake_args)
+
+ # Build
+ make()
+
+ # Install
+ shutil.rmtree(join_path(prefix, 'doc'), ignore_errors=True)
+ shutil.rmtree(join_path(prefix, 'include'), ignore_errors=True)
+ shutil.copytree('doc', join_path(prefix, 'doc'), symlinks=True)
+ shutil.copytree('include', join_path(prefix, 'include'), symlinks=True)
diff --git a/var/spack/packages/cfitsio/package.py b/var/spack/packages/cfitsio/package.py
new file mode 100644
index 0000000000..ff450cb5f3
--- /dev/null
+++ b/var/spack/packages/cfitsio/package.py
@@ -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')
diff --git a/var/spack/packages/cgal/package.py b/var/spack/packages/cgal/package.py
new file mode 100644
index 0000000000..97356433be
--- /dev/null
+++ b/var/spack/packages/cgal/package.py
@@ -0,0 +1,73 @@
+##############################################################################
+# Copyright (c) 2013, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License (as published by
+# the Free Software Foundation) version 2.1 dated February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Cgal(Package):
+ """
+ CGAL is a software project that provides easy access to efficient and reliable geometric algorithms in the form of
+ a C++ library. CGAL is used in various areas needing geometric computation, such as geographic information systems,
+ computer aided design, molecular biology, medical imaging, computer graphics, and robotics.
+ """
+ homepage = 'http://www.cgal.org/'
+ url = 'https://github.com/CGAL/cgal/archive/releases/CGAL-4.7.tar.gz'
+
+ version('4.7', '4826714810f3b4c65cac96b90fb03b67')
+ version('4.6.3', 'e8ee2ecc8d2b09b94a121c09257b576d')
+
+ # Installation instructions : http://doc.cgal.org/latest/Manual/installation.html
+ variant('shared', default=True, description='Enables the build of shared libraries')
+ variant('debug', default=False, description='Builds a debug version of the libraries')
+
+ depends_on('boost')
+ depends_on('mpfr')
+ depends_on('gmp')
+ depends_on('zlib')
+
+ # FIXME : Qt5 dependency missing (needs Qt5 and OpenGL)
+ # FIXME : Optional third party libraries missing
+
+ def install(self, spec, prefix):
+
+ options = []
+ options.extend(std_cmake_args)
+ # CGAL supports only Release and Debug build type. Any other build type will raise an error at configure time
+ if '+debug' in spec:
+ options.append('-DCMAKE_BUILD_TYPE:STRING=Debug')
+ else:
+ options.append('-DCMAKE_BUILD_TYPE:STRING=Release')
+
+ if '+shared' in spec:
+ options.append('-DBUILD_SHARED_LIBS:BOOL=ON')
+ else:
+ options.append('-DBUILD_SHARED_LIBS:BOOL=OFF')
+
+ build_directory = join_path(self.stage.path, 'spack-build')
+ source_directory = self.stage.source_path
+ with working_dir(build_directory, create=True):
+ cmake(source_directory, *options)
+ make()
+ make("install")
diff --git a/var/spack/packages/cityhash/package.py b/var/spack/packages/cityhash/package.py
new file mode 100644
index 0000000000..1643cc3b42
--- /dev/null
+++ b/var/spack/packages/cityhash/package.py
@@ -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")
+
diff --git a/var/spack/packages/cleverleaf/package.py b/var/spack/packages/cleverleaf/package.py
index ddbe57f019..fb400b25c3 100644
--- a/var/spack/packages/cleverleaf/package.py
+++ b/var/spack/packages/cleverleaf/package.py
@@ -13,7 +13,9 @@ class Cleverleaf(Package):
version('develop', git='https://github.com/UK-MAC/CleverLeaf_ref.git', branch='develop')
- depends_on("SAMRAI@3.8.0")
+ depends_on("SAMRAI@3.8.0:")
+ depends_on("hdf5+mpi")
+ depends_on("boost")
def install(self, spec, prefix):
cmake(*std_cmake_args)
diff --git a/var/spack/packages/cmake/package.py b/var/spack/packages/cmake/package.py
index fcfbca0705..f67ae21ebd 100644
--- a/var/spack/packages/cmake/package.py
+++ b/var/spack/packages/cmake/package.py
@@ -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,18 +31,20 @@ class Cmake(Package):
version('2.8.10.2', '097278785da7182ec0aea8769d06860c',
url = 'http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz')
-
+
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')
+ url = 'http://cmake.org/files/v3.4/cmake-3.4.0.tar.gz')
+
+ variant('ncurses', default=True, description='Enables the build of the ncurses gui')
-# version('3.0.1', 'e2e05d84cb44a42f1371d9995631dcf5')
-# version('3.0.0', '21a1c85e1a3b803c4b48e7ff915a863e')
+ depends_on('ncurses', when='+ncurses')
def install(self, spec, prefix):
configure('--prefix=' + prefix,
- '--parallel=' + str(make_jobs))
+ '--parallel=' + str(make_jobs),
+ '--', '-DCMAKE_USE_OPENSSL=ON')
make()
make('install')
diff --git a/var/spack/packages/cram/package.py b/var/spack/packages/cram/package.py
index 4b8ec56f25..b19422b8a8 100644
--- a/var/spack/packages/cram/package.py
+++ b/var/spack/packages/cram/package.py
@@ -2,11 +2,12 @@ from spack import *
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):
diff --git a/var/spack/packages/cube/package.py b/var/spack/packages/cube/package.py
index d97cd25636..17d388c33d 100644
--- a/var/spack/packages/cube/package.py
+++ b/var/spack/packages/cube/package.py
@@ -1,55 +1,55 @@
-# FIXME: Add copyright statement
+##############################################################################
+# 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 *
-from contextlib import closing
+
class Cube(Package):
- """Cube the profile viewer for Score-P and Scalasca profiles. It
- displays a multi-dimensional performance space consisting
- of the dimensions (i) performance metric, (ii) call path,
- and (iii) system resource."""
+ """
+ Cube the profile viewer for Score-P and Scalasca profiles. It displays a multi-dimensional performance space
+ consisting of the dimensions:
+ - performance metric
+ - call path
+ - system resource
+ """
homepage = "http://www.scalasca.org/software/cube-4.x/download.html"
- url = "http://apps.fz-juelich.de/scalasca/releases/cube/4.2/dist/cube-4.2.3.tar.gz"
-
- version('4.2.3', '8f95b9531f5a8f8134f279c2767c9b20')
-
- version('4.3TP1', 'a2090fbc7b2ba394bd5c09ba971e237f',
- url = 'http://apps.fz-juelich.de/scalasca/releases/cube/4.3/dist/cube-4.3-TP1.tar.gz')
-
- # Using CC as C++ compiler provides quirky workaround for a Score-P build system attempt
- # to guess a matching C compiler when configuring scorep-score
- backend_user_provided = """\
-CC=cc
-CXX=CC
-F77=f77
-FC=f90
-#CFLAGS=-fPIC
-#CXXFLAGS=-fPIC
-"""
- frontend_user_provided = """\
-CC_FOR_BUILD=cc
-CXX_FOR_BUILD=CC
-F77_FOR_BUILD=f70
-FC_FOR_BUILD=f90
-"""
+ url = "http://apps.fz-juelich.de/scalasca/releases/cube/4.2/dist/cube-4.2.3.tar.gz"
- def install(self, spec, prefix):
- # Use a custom compiler configuration, otherwise the score-p
- # build system messes with spack's compiler settings.
- # Create these three files in the build directory
+ 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',
+ url="http://apps.fz-juelich.de/scalasca/releases/cube/4.2/dist/cube-4.2.3.tar.gz")
- with closing(open("vendor/common/build-config/platforms/platform-backend-user-provided", "w")) as backend_file:
- backend_file.write(self.backend_user_provided)
- with closing(open("vendor/common/build-config/platforms/platform-frontend-user-provided", "w")) as frontend_file:
- frontend_file.write(self.frontend_user_provided)
+ # TODO : add variant that builds GUI on top of Qt
+ def install(self, spec, prefix):
configure_args = ["--prefix=%s" % prefix,
- "--with-custom-compilers",
- "--without-paraver",
+ "--without-paraver",
"--without-gui"]
-
configure(*configure_args)
-
make(parallel=False)
make("install", parallel=False)
diff --git a/var/spack/packages/curl/package.py b/var/spack/packages/curl/package.py
new file mode 100644
index 0000000000..9e684445c7
--- /dev/null
+++ b/var/spack/packages/curl/package.py
@@ -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")
diff --git a/var/spack/packages/czmq/package.py b/var/spack/packages/czmq/package.py
index a2f1947554..0665332179 100644
--- a/var/spack/packages/czmq/package.py
+++ b/var/spack/packages/czmq/package.py
@@ -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()
diff --git a/var/spack/packages/damselfly/package.py b/var/spack/packages/damselfly/package.py
index 54df528c4a..96666d1abe 100644
--- a/var/spack/packages/damselfly/package.py
+++ b/var/spack/packages/damselfly/package.py
@@ -2,10 +2,10 @@ from spack import *
class Damselfly(Package):
"""Damselfly is a model-based parallel network simulator."""
- homepage = "https://github.com/scalability-llnl/damselfly"
- url = "https://github.com/scalability-llnl/damselfly"
+ homepage = "https://github.com/llnl/damselfly"
+ url = "https://github.com/llnl/damselfly"
- version('1.0', '05cf7e2d8ece4408c0f2abb7ab63fd74c0d62895', git='https://github.com/scalability-llnl/damselfly.git', tag='v1.0')
+ 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):
diff --git a/var/spack/packages/dyninst/package.py b/var/spack/packages/dyninst/package.py
index 41ec57dd2f..0111dcbe08 100644
--- a/var/spack/packages/dyninst/package.py
+++ b/var/spack/packages/dyninst/package.py
@@ -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 @@ class Dyninst(Package):
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")
diff --git a/var/spack/packages/expat/package.py b/var/spack/packages/expat/package.py
new file mode 100644
index 0000000000..082da5bf0b
--- /dev/null
+++ b/var/spack/packages/expat/package.py
@@ -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')
+
diff --git a/var/spack/packages/fftw/package.py b/var/spack/packages/fftw/package.py
new file mode 100644
index 0000000000..4d2b964242
--- /dev/null
+++ b/var/spack/packages/fftw/package.py
@@ -0,0 +1,75 @@
+##############################################################################
+# 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')
+
+ variant('float', default=True, description='Produces a single precision version of the library')
+ variant('long_double', default=True, description='Produces a long double precision version of the library')
+ variant('quad', 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')
+
+ def install(self, spec, prefix):
+ options = ['--prefix=%s' % prefix,
+ '--enable-shared',
+ '--enable-threads',
+ '--enable-openmp']
+ if not self.compiler.f77 or not self.compiler.fc:
+ options.append("--disable-fortran")
+ if '+mpi' in spec:
+ options.append('--enable-mpi')
+
+ configure(*options)
+ make()
+ make("install")
+
+ if '+float' in spec:
+ configure('--enable-float', *options)
+ make()
+ make("install")
+ if '+long_double' in spec:
+ configure('--enable-long-double', *options)
+ make()
+ make("install")
+ if '+quad' in spec:
+ configure('--enable-quad-precision', *options)
+ make()
+ make("install")
diff --git a/var/spack/packages/fltk/font.patch b/var/spack/packages/fltk/font.patch
new file mode 100644
index 0000000000..7706a1b4ee
--- /dev/null
+++ b/var/spack/packages/fltk/font.patch
@@ -0,0 +1,44 @@
+Index: FL/x.H
+===================================================================
+--- a/FL/x.H (revision 10476)
++++ b/FL/x.H (working copy)
+@@ -132,6 +132,7 @@
+ XFontStruct *ptr;
+ };
+ extern FL_EXPORT Fl_XFont_On_Demand fl_xfont;
++extern FL_EXPORT XFontStruct* fl_core_font();
+
+ // this object contains all X-specific stuff about a window:
+ // Warning: this object is highly subject to change!
+Index: src/fl_font.cxx
+===================================================================
+--- a/src/fl_font.cxx (revision 10476)
++++ b/src/fl_font.cxx (working copy)
+@@ -55,6 +55,14 @@
+ # include "fl_font_x.cxx"
+ #endif // WIN32
+
++#ifdef WIN32
++#elif defined(__APPLE__)
++#else
++XFontStruct *fl_core_font()
++{
++ return fl_xfont.value();
++}
++#endif
+
+ double fl_width(const char* c) {
+ if (c) return fl_width(c, (int) strlen(c));
+Index: src/gl_draw.cxx
+===================================================================
+--- a/src/gl_draw.cxx (revision 10476)
++++ b/src/gl_draw.cxx (working copy)
+@@ -84,7 +84,7 @@
+ * then sorting through them at draw time (for normal X rendering) to find which one can
+ * render the current glyph... But for now, just use the first font in the list for GL...
+ */
+- XFontStruct *font = fl_xfont;
++ XFontStruct *font = fl_core_font();
+ int base = font->min_char_or_byte2;
+ int count = font->max_char_or_byte2-base+1;
+ fl_fontsize->listbase = glGenLists(256);
diff --git a/var/spack/packages/fltk/package.py b/var/spack/packages/fltk/package.py
new file mode 100644
index 0000000000..0b462f83f8
--- /dev/null
+++ b/var/spack/packages/fltk/package.py
@@ -0,0 +1,58 @@
+##############################################################################
+# 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 Fltk(Package):
+ """
+ FLTK (pronounced "fulltick") is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, and
+ MacOS X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL and its
+ built-in GLUT emulation.
+
+ FLTK is designed to be small and modular enough to be statically linked, but works fine as a shared library. FLTK
+ also includes an excellent UI builder called FLUID that can be used to create applications in minutes.
+ """
+ homepage = 'http://www.fltk.org/'
+ url = 'http://fltk.org/pub/fltk/1.3.3/fltk-1.3.3-source.tar.gz'
+
+ version('1.3.3', '9ccdb0d19dc104b87179bd9fd10822e3')
+
+ patch('font.patch', when='@1.3.3')
+
+ variant('shared', default=True, description='Enables the build of shared libraries')
+
+ def install(self, spec, prefix):
+ options = ['--prefix=%s' % prefix,
+ '--enable-localjpeg',
+ '--enable-localpng',
+ '--enable-localzlib']
+
+ if '+shared' in spec:
+ options.append('--enable-shared')
+
+ # FLTK needs to be built in-source
+ configure(*options)
+ make()
+ make('install')
diff --git a/var/spack/packages/flux/package.py b/var/spack/packages/flux/package.py
index c128f46be8..dc4e0594c5 100644
--- a/var/spack/packages/flux/package.py
+++ b/var/spack/packages/flux/package.py
@@ -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,
diff --git a/var/spack/packages/fontconfig/package.py b/var/spack/packages/fontconfig/package.py
index 89b13604e8..517c9d1813 100644
--- a/var/spack/packages/fontconfig/package.py
+++ b/var/spack/packages/fontconfig/package.py
@@ -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")
diff --git a/var/spack/packages/gcc/package.py b/var/spack/packages/gcc/package.py
index a49a1348aa..61b16f3fd8 100644
--- a/var/spack/packages/gcc/package.py
+++ b/var/spack/packages/gcc/package.py
@@ -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')
@@ -47,11 +48,14 @@ class Gcc(Package):
version('4.7.4', '4c696da46297de6ae77a82797d2abe28')
version('4.6.4', 'b407a3d1480c11667f293bfb1f17d1a4')
version('4.5.4', '27e459c2566b8209ab064570e1b378f7')
+
+ variant('gold', default=True, description="Build the gold linker plugin for ld-based LTO")
depends_on("mpfr")
depends_on("gmp")
depends_on("mpc") # when @4.5:
- depends_on("binutils~libiberty")
+ depends_on("binutils~libiberty", when='~gold')
+ depends_on("binutils~libiberty+gold", when='+gold')
# Save these until we can do optional deps.
depends_on("isl", when=DEPENDS_ON_ISL_PREDICATE)
@@ -79,8 +83,10 @@ class Gcc(Package):
"--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 +95,14 @@ class Gcc(Package):
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()
diff --git a/var/spack/packages/gdb/package.py b/var/spack/packages/gdb/package.py
new file mode 100644
index 0000000000..85ed3215e2
--- /dev/null
+++ b/var/spack/packages/gdb/package.py
@@ -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://scalability-llnl.github.io/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License (as published by
+# the Free Software Foundation) version 2.1 dated February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class 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.gz"
+
+ version('7.10.1', 'b93a2721393e5fa226375b42d567d90b')
+ version('7.10', 'fa6827ad0fd2be1daa418abb11a54d86')
+ version('7.9.1', 'f3b97de919a9dba84490b2e076ec4cb0')
+ version('7.9', '8f8ced422fe462a00e0135a643544f17')
+ version('7.8.2', '8b0ea8b3559d3d90b3ff4952f0aeafbc')
+
+ depends_on('texinfo')
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+ make()
+ make("install")
diff --git a/var/spack/packages/git/package.py b/var/spack/packages/git/package.py
index 0f1a3ba05b..ddc5078c4d 100644
--- a/var/spack/packages/git/package.py
+++ b/var/spack/packages/git/package.py
@@ -5,12 +5,27 @@ class Git(Package):
system designed to handle everything from small to very large
projects with speed and efficiency."""
homepage = "http://git-scm.com"
- url = "https://www.kernel.org/pub/software/scm/git/git-2.2.1.tar.xz"
+ url = "https://www.kernel.org/pub/software/scm/git/git-2.2.1.tar.gz"
- version('2.2.1', '43e01f9d96ba8c11611e0eef0d9f9f28')
+ version('2.6.3', 'b711be7628a4a2c25f38d859ee81b423')
+ version('2.6.2', 'da293290da69f45a86a311ad3cd43dc8')
+ version('2.6.1', '4c62ee9c5991fe93d99cf2a6b68397fd')
+ version('2.6.0', 'eb76a07148d94802a1745d759716a57e')
+ version('2.5.4', '3eca2390cf1fa698b48e2a233563a76b')
+ version('2.2.1', 'ff41fdb094eed1ec430aed8ee9b9849c')
- # 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")
+
+
+
+
+
+
+
diff --git a/var/spack/packages/glib/package.py b/var/spack/packages/glib/package.py
index 178f0b9df5..baca1a5a45 100644
--- a/var/spack/packages/glib/package.py
+++ b/var/spack/packages/glib/package.py
@@ -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)
diff --git a/var/spack/packages/global/package.py b/var/spack/packages/global/package.py
index a77b1bdc09..e8f06516d9 100644
--- a/var/spack/packages/global/package.py
+++ b/var/spack/packages/global/package.py
@@ -4,7 +4,7 @@ import os
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)
diff --git a/var/spack/packages/glpk/package.py b/var/spack/packages/glpk/package.py
new file mode 100644
index 0000000000..855f459fb3
--- /dev/null
+++ b/var/spack/packages/glpk/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# 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 Glpk(Package):
+ """
+ The GLPK (GNU Linear Programming Kit) package is intended for solving large-scale linear programming (LP), mixed
+ integer programming (MIP), and other related problems. It is a set of routines written in ANSI C and organized in
+ the form of a callable library
+ """
+ homepage = "https://www.gnu.org/software/glpk"
+ url = "http://ftp.gnu.org/gnu/glpk/glpk-4.57.tar.gz"
+
+ version('4.57', '237531a54f73155842f8defe51aedb0f')
+
+ variant('gmp', default=False, description='Activates support for GMP library')
+
+ depends_on('gmp', when='+gmp')
+
+ def install(self, spec, prefix):
+
+ options = ['--prefix=%s' % prefix]
+
+ if '+gmp' in spec:
+ options.append('--with-gmp')
+
+ configure(*options)
+ make()
+ make("install")
diff --git a/var/spack/packages/gmp/package.py b/var/spack/packages/gmp/package.py
index d6af821b34..fe13de3b95 100644
--- a/var/spack/packages/gmp/package.py
+++ b/var/spack/packages/gmp/package.py
@@ -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')
diff --git a/var/spack/packages/gmsh/package.py b/var/spack/packages/gmsh/package.py
new file mode 100644
index 0000000000..9d759303cb
--- /dev/null
+++ b/var/spack/packages/gmsh/package.py
@@ -0,0 +1,84 @@
+##############################################################################
+# 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 Gmsh(Package):
+ """
+ Gmsh is a free 3D finite element grid generator with a built-in CAD engine and post-processor. Its design goal is
+ to provide a fast, light and user-friendly meshing tool with parametric input and advanced visualization
+ capabilities. Gmsh is built around four modules: geometry, mesh, solver and post-processing. The specification of
+ any input to these modules is done either interactively using the graphical user interface or in ASCII text files
+ using Gmsh's own scripting language.
+ """
+ homepage = 'http://gmsh.info'
+ url = 'http://gmsh.info/src/gmsh-2.11.0-source.tgz'
+
+ version('2.11.0', 'f15b6e7ac9ca649c9a74440e1259d0db')
+
+ # FIXME : Misses dependencies on gmm, PetsC, TetGen
+
+ variant('shared', default=True, description='Enables the build of shared libraries')
+ variant('debug', default=False, description='Builds the library in debug mode')
+ variant('mpi', default=False, description='Builds MPI support for parser and solver')
+ variant('fltk', default=False, description='Enables the build of the FLTK GUI')
+ variant('hdf5', default=False, description='Enables HDF5 support')
+ variant('compression', default=True, description='Enables IO compression through zlib')
+
+ depends_on('blas')
+ depends_on('lapack')
+ depends_on('gmp')
+ depends_on('mpi', when='+mpi')
+ depends_on('fltk', when='+fltk') # Assumes OpenGL with GLU is already provided by the system
+ depends_on('hdf5', when='+hdf5')
+ depends_on('zlib', when='+compression')
+
+ def install(self, spec, prefix):
+
+ options = []
+ options.extend(std_cmake_args)
+
+ build_directory = join_path(self.stage.path, 'spack-build')
+ source_directory = self.stage.source_path
+
+ if '+shared' in spec:
+ options.extend(['-DENABLE_BUILD_SHARED:BOOL=ON',
+ '-DENABLE_BUILD_DYNAMIC:BOOL=ON']) # Builds dynamic executable and installs shared library
+ else:
+ options.append('-DENABLE_BUILD_LIB:BOOL=ON') # Builds and installs static library
+
+ if '+debug' in spec:
+ options.append('-DCMAKE_BUILD_TYPE:STRING=Debug')
+
+ if '+mpi' in spec:
+ options.append('-DENABLE_MPI:BOOL=ON')
+
+ if '+compression' in spec:
+ options.append('-DENABLE_COMPRESSED_IO:BOOL=ON')
+
+ with working_dir(build_directory, create=True):
+ cmake(source_directory, *options)
+ make()
+ make('install')
diff --git a/var/spack/packages/gnuplot/package.py b/var/spack/packages/gnuplot/package.py
new file mode 100644
index 0000000000..71c09bd43d
--- /dev/null
+++ b/var/spack/packages/gnuplot/package.py
@@ -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")
diff --git a/var/spack/packages/gperftools/package.py b/var/spack/packages/gperftools/package.py
index 8900462324..22b2e6c424 100644
--- a/var/spack/packages/gperftools/package.py
+++ b/var/spack/packages/gperftools/package.py
@@ -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
@@ -30,8 +30,11 @@ class Gperftools(Package):
homepage = "https://code.google.com/p/gperftools"
url = "https://googledrive.com/host/0B6NtGsLhIcf7MWxMMF9JdTN3UVk/gperftools-2.3.tar.gz"
+ version('2.4', '2171cea3bbe053036fb5d5d25176a160', url="https://github.com/gperftools/gperftools/releases/download/gperftools-2.4/gperftools-2.4.tar.gz")
version('2.3', 'f54dd119f0e46ac1f13264f8d97adf90', url="https://googledrive.com/host/0B6NtGsLhIcf7MWxMMF9JdTN3UVk/gperftools-2.3.tar.gz")
+ depends_on("libunwind")
+
def install(self, spec, prefix):
configure("--prefix=" + prefix)
make()
diff --git a/var/spack/packages/gsl/package.py b/var/spack/packages/gsl/package.py
new file mode 100644
index 0000000000..789eb49d85
--- /dev/null
+++ b/var/spack/packages/gsl/package.py
@@ -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")
diff --git a/var/spack/packages/hdf5/package.py b/var/spack/packages/hdf5/package.py
index 48997425cd..9a40164341 100644
--- a/var/spack/packages/hdf5/package.py
+++ b/var/spack/packages/hdf5/package.py
@@ -10,24 +10,59 @@ class Hdf5(Package):
url = "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.13/src/hdf5-1.8.13.tar.gz"
list_url = "http://www.hdfgroup.org/ftp/HDF5/releases"
list_depth = 3
-
+
version('1.8.16', 'b8ed9a36ae142317f88b0c7ef4b9c618')
version('1.8.15', '03cccb5b33dbe975fdcd8ae9dc021f24')
version('1.8.13', 'c03426e9e77d7766944654280b467289')
- depends_on("mpi")
+ variant('cxx', default=True, description='Enable C++ support')
+ variant('fortran', default=True, description='Enable Fortran support')
+ variant('mpi', default=False, description='Enable MPI support')
+ variant('threadsafe', default=False, description='Enable multithreading')
+
+ depends_on("mpi", when='+mpi')
depends_on("zlib")
# TODO: currently hard-coded to use OpenMPI
def install(self, spec, prefix):
+ extra_args = []
+ if '+cxx' in spec:
+ extra_args.extend([
+ '--enable-cxx'
+ ])
+ if '+fortran' in spec:
+ extra_args.extend([
+ '--enable-fortran',
+ '--enable-fortran2003'
+ ])
+ if '+mpi' in spec:
+ # The HDF5 configure script warns if cxx and mpi are enabled
+ # together. There doesn't seem to be a real reason for this, except
+ # that parts of the MPI interface are not accessible via the C++
+ # interface. Since they are still accessible via the C interface,
+ # this is not actually a problem.
+ extra_args.extend([
+ "--enable-parallel",
+ "--enable-unsupported",
+ "CC=%s" % spec['mpi'].prefix.bin + "/mpicc",
+ "CXX=%s" % spec['mpi'].prefix.bin + "/mpic++",
+ "FC=%s" % spec['mpi'].prefix.bin + "/mpifort",
+ ])
+ if '+threads' in spec:
+ if '+cxx' in spec or '+fortran' in spec:
+ die("Cannot use variant +threads with either +cxx or +fortran")
+ extra_args.extend([
+ '--enable-threadsafe',
+ '--disable-hl',
+ 'CPPFLAGS=-DHDatexit=""',
+ 'CFLAGS=-DHDatexit=""'
+ ])
configure(
"--prefix=%s" % prefix,
"--with-zlib=%s" % spec['zlib'].prefix,
- "--enable-parallel",
"--enable-shared",
- "CC=%s" % spec['mpi'].prefix.bin + "/mpicc",
- "CXX=%s" % spec['mpi'].prefix.bin + "/mpic++")
+ *extra_args)
make()
make("install")
diff --git a/var/spack/packages/hwloc/package.py b/var/spack/packages/hwloc/package.py
index 2f46399afd..7ebede76a3 100644
--- a/var/spack/packages/hwloc/package.py
+++ b/var/spack/packages/hwloc/package.py
@@ -15,13 +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")
-
diff --git a/var/spack/packages/jemalloc/package.py b/var/spack/packages/jemalloc/package.py
index ff946ae821..8cec9ea75b 100644
--- a/var/spack/packages/jemalloc/package.py
+++ b/var/spack/packages/jemalloc/package.py
@@ -7,8 +7,18 @@ class Jemalloc(Package):
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('--prefix=%s' % 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")
diff --git a/var/spack/packages/julia/gc.patch b/var/spack/packages/julia/gc.patch
new file mode 100644
index 0000000000..6db69c6c1b
--- /dev/null
+++ b/var/spack/packages/julia/gc.patch
@@ -0,0 +1,11 @@
+--- julia/src/gc.c
++++ julia/src/gc.c
+@@ -162,7 +162,7 @@
+ // A region is contiguous storage for up to REGION_PG_COUNT naturally aligned GC_PAGE_SZ pages
+ // It uses a very naive allocator (see malloc_page & free_page)
+ #if defined(_P64) && !defined(_COMPILER_MICROSOFT_)
+-#define REGION_PG_COUNT 16*8*4096 // 8G because virtual memory is cheap
++#define REGION_PG_COUNT 8*4096 // 512M
+ #else
+ #define REGION_PG_COUNT 8*4096 // 512M
+ #endif
diff --git a/var/spack/packages/julia/package.py b/var/spack/packages/julia/package.py
new file mode 100644
index 0000000000..6900af38e4
--- /dev/null
+++ b/var/spack/packages/julia/package.py
@@ -0,0 +1,70 @@
+from spack import *
+import os
+
+class Julia(Package):
+ """The Julia Language: A fresh approach to technical computing"""
+ homepage = "http://julialang.org"
+ url = "http://github.com/JuliaLang/julia/releases/download/v0.4.2/julia-0.4.2.tar.gz"
+
+ version('0.4.3', '7b9f096798fca4bef262a64674bc2b52')
+ version('0.4.2', 'ccfeb4f4090c8b31083f5e1ccb03eb06')
+
+ patch('gc.patch')
+
+ # Build-time dependencies
+ depends_on("cmake @2.8:")
+ # depends_on("awk")
+ # depends_on("m4")
+ # depends_on("pkg-config")
+ depends_on("python @2.6:2.9")
+
+ # I think that Julia requires the dependencies above, but it builds find (on
+ # my system) without these. We should enable them as necessary.
+
+ # Run-time dependencies
+ # depends_on("arpack")
+ # depends_on("fftw +float")
+ # depends_on("gmp")
+ # depends_on("mpfr")
+ # depends_on("pcre2")
+
+ # ARPACK: Requires BLAS and LAPACK; needs to use the same version as Julia.
+
+ # BLAS and LAPACK: Julia prefers 64-bit versions on 64-bit systems. OpenBLAS
+ # has an option for this; make it available as variant.
+
+ # FFTW: Something doesn't work when using a pre-installed FFTW library; need
+ # to investigate.
+
+ # GMP, MPFR: Something doesn't work when using a pre-installed FFTW library;
+ # need to investigate.
+
+ # LLVM: Julia works only with specific versions, and might require patches.
+ # Thus we let Julia install its own LLVM.
+
+ # Other possible dependencies:
+ # USE_SYSTEM_OPENLIBM=0
+ # USE_SYSTEM_OPENSPECFUN=0
+ # USE_SYSTEM_DSFMT=0
+ # USE_SYSTEM_SUITESPARSE=0
+ # USE_SYSTEM_UTF8PROC=0
+ # USE_SYSTEM_LIBGIT2=0
+
+ def install(self, spec, prefix):
+ # Explicitly setting CC, CXX, or FC breaks building libuv, one of
+ # Julia's dependencies. This might be a Darwin-specific problem. Given
+ # how Spack sets up compilers, Julia should still use Spack's compilers,
+ # even if we don't specify them explicitly.
+ options = [#"CC=cc",
+ #"CXX=c++",
+ #"FC=fc",
+ #"USE_SYSTEM_ARPACK=1",
+ #"USE_SYSTEM_FFTW=1",
+ #"USE_SYSTEM_GMP=1",
+ #"USE_SYSTEM_MPFR=1",
+ #TODO "USE_SYSTEM_PCRE=1",
+ "prefix=%s" % prefix]
+ with open('Make.user', 'w') as f:
+ f.write('\n'.join(options) + '\n')
+ make()
+ make("install")
diff --git a/var/spack/packages/launchmon/package.py b/var/spack/packages/launchmon/package.py
index 6fbe6a68d0..f97384a249 100644
--- a/var/spack/packages/launchmon/package.py
+++ b/var/spack/packages/launchmon/package.py
@@ -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')
diff --git a/var/spack/packages/libNBC/package.py b/var/spack/packages/libNBC/package.py
index 6d08f3219c..550568e97d 100644
--- a/var/spack/packages/libNBC/package.py
+++ b/var/spack/packages/libNBC/package.py
@@ -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
diff --git a/var/spack/packages/libcerf/package.py b/var/spack/packages/libcerf/package.py
new file mode 100644
index 0000000000..15e87ce4fe
--- /dev/null
+++ b/var/spack/packages/libcerf/package.py
@@ -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")
diff --git a/var/spack/packages/libdwarf/package.py b/var/spack/packages/libdwarf/package.py
index 099a974e93..addb557519 100644
--- a/var/spack/packages/libdwarf/package.py
+++ b/var/spack/packages/libdwarf/package.py
@@ -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
diff --git a/var/spack/packages/libedit/package.py b/var/spack/packages/libedit/package.py
new file mode 100644
index 0000000000..bcd5212b9e
--- /dev/null
+++ b/var/spack/packages/libedit/package.py
@@ -0,0 +1,14 @@
+from spack import *
+
+class Libedit(Package):
+ """An autotools compatible port of the NetBSD editline library"""
+ homepage = "http://thrysoee.dk/editline/"
+ url = "http://thrysoee.dk/editline/libedit-20150325-3.1.tar.gz"
+
+ version('3.1', '43cdb5df3061d78b5e9d59109871b4f6', url="http://thrysoee.dk/editline/libedit-20150325-3.1.tar.gz")
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+
+ make()
+ make("install")
diff --git a/var/spack/packages/libelf/package.py b/var/spack/packages/libelf/package.py
index 9338b8f393..29bc21b65c 100644
--- a/var/spack/packages/libelf/package.py
+++ b/var/spack/packages/libelf/package.py
@@ -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
diff --git a/var/spack/packages/clang/package.py b/var/spack/packages/libgd/package.py
index 4f977bf9a4..d920957ef1 100644
--- a/var/spack/packages/clang/package.py
+++ b/var/spack/packages/libgd/package.py
@@ -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,30 +22,32 @@
# 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 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.
+
+class Libgd(Package):
"""
- homepage = 'http://clang.llvm.org'
- url = 'http://llvm.org/releases/3.7.0/cfe-3.7.0.src.tar.xz'
+ 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"
- depends_on('llvm@3.7.0', when='@3.7.0')
- depends_on('llvm@3.6.2', when='@3.6.2')
- depends_on('llvm@3.5.1', when='@3.5.1')
+ version('2.1.1', 'e91a1a99903e460e7ba00a794e72cc1e')
- version('3.7.0', '8f9d27335e7331cf0a4711e952f21f01', url='http://llvm.org/releases/3.7.0/cfe-3.7.0.src.tar.xz')
- version('3.6.2', 'ff862793682f714bb7862325b9c06e20', url='http://llvm.org/releases/3.6.2/cfe-3.6.2.src.tar.xz')
- version('3.5.1', '93f9532f8f7e6f1d8e5c1116907051cb', url='http://llvm.org/releases/3.5.1/cfe-3.5.1.src.tar.xz')
+ depends_on('libpng')
def install(self, spec, prefix):
- env['CXXFLAGS'] = self.compiler.cxx11_flag
with working_dir('spack-build', create=True):
cmake('..',
- '-DCLANG_PATH_TO_LLVM_BUILD=%s' % spec['llvm'].prefix,
- '-DLLVM_MAIN_SRC_DIR=%s' % spec['llvm'].prefix,
+ '-DENABLE_JPEG:BOOL=ON',
+ '-DENABLE_PNG:BOOL=ON',
+ '-DENABLE_TIFF:BOOL=ON',
*std_cmake_args)
make()
make("install")
diff --git a/var/spack/packages/libmonitor/libmonitorkrell-0000.patch b/var/spack/packages/libmonitor/libmonitorkrell-0000.patch
new file mode 100644
index 0000000000..3a90106850
--- /dev/null
+++ b/var/spack/packages/libmonitor/libmonitorkrell-0000.patch
@@ -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
diff --git a/var/spack/packages/libmonitor/libmonitorkrell-0001.patch b/var/spack/packages/libmonitor/libmonitorkrell-0001.patch
new file mode 100644
index 0000000000..85d69595c0
--- /dev/null
+++ b/var/spack/packages/libmonitor/libmonitorkrell-0001.patch
@@ -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 =
diff --git a/var/spack/packages/libmonitor/libmonitorkrell-0002.patch b/var/spack/packages/libmonitor/libmonitorkrell-0002.patch
new file mode 100644
index 0000000000..514dfdf13e
--- /dev/null
+++ b/var/spack/packages/libmonitor/libmonitorkrell-0002.patch
@@ -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);
+ }
diff --git a/var/spack/packages/libmonitor/package.py b/var/spack/packages/libmonitor/package.py
index 3b95b86ddf..eecf1963e3 100644
--- a/var/spack/packages/libmonitor/package.py
+++ b/var/spack/packages/libmonitor/package.py
@@ -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)
diff --git a/var/spack/packages/libpciaccess/package.py b/var/spack/packages/libpciaccess/package.py
index 6022fc34a3..0c0847d323 100644
--- a/var/spack/packages/libpciaccess/package.py
+++ b/var/spack/packages/libpciaccess/package.py
@@ -1,21 +1,23 @@
from spack import *
+import os.path
class Libpciaccess(Package):
"""Generic PCI access library."""
homepage = "http://cgit.freedesktop.org/xorg/lib/libpciaccess/"
- url = "http://cgit.freedesktop.org/xorg/lib/libpciaccess/"
+ url = "http://xorg.freedesktop.org/archive/individual/lib/libpciaccess-0.13.4.tar.bz2"
- version('0.13.4', git='http://anongit.freedesktop.org/git/xorg/lib/libpciaccess.git',
- tag='libpciaccess-0.13.4')
+ version('0.13.4', 'ace78aec799b1cf6dfaea55d3879ed9f')
- depends_on('autoconf')
depends_on('libtool')
def install(self, spec, prefix):
- from subprocess import call
- call(["./autogen.sh"])
- configure("--prefix=%s" % prefix)
+ # libpciaccess does not support OS X
+ if spec.satisfies('=darwin-x86_64'):
+ # create a dummy directory
+ mkdir(prefix.lib)
+ return
+ configure("--prefix=%s" % prefix)
make()
make("install")
diff --git a/var/spack/packages/libtool/package.py b/var/spack/packages/libtool/package.py
index a07daf9781..82a54953b2 100644
--- a/var/spack/packages/libtool/package.py
+++ b/var/spack/packages/libtool/package.py
@@ -5,6 +5,7 @@ class Libtool(Package):
homepage = "https://www.gnu.org/software/libtool/"
url = "http://ftpmirror.gnu.org/libtool/libtool-2.4.2.tar.gz"
+ version('2.4.6' , 'addf44b646ddb4e3919805aa88fa7c5e')
version('2.4.2' , 'd2f3b7d4627e69e13514a40e72a24d50')
def install(self, spec, prefix):
diff --git a/var/spack/packages/libunwind/package.py b/var/spack/packages/libunwind/package.py
index 239fcbcfd5..6f162f7b08 100644
--- a/var/spack/packages/libunwind/package.py
+++ b/var/spack/packages/libunwind/package.py
@@ -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
diff --git a/var/spack/packages/libxml2/package.py b/var/spack/packages/libxml2/package.py
index 5d84fad22d..134e596963 100644
--- a/var/spack/packages/libxml2/package.py
+++ b/var/spack/packages/libxml2/package.py
@@ -1,4 +1,5 @@
from spack import *
+import os
class Libxml2(Package):
"""Libxml2 is the XML C parser and toolkit developed for the Gnome
@@ -11,18 +12,19 @@ class Libxml2(Package):
variant('python', default=False, description='Enable Python support')
- extends('python', when='+python')
+ 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):
if '+python' in spec:
- python_arg = "--with-python=%s" % spec['python'].prefix
+ 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_arg = "--without-python"
+ python_args = ["--without-python"]
configure("--prefix=%s" % prefix,
- python_arg)
+ *python_args)
make()
make("install")
diff --git a/var/spack/packages/llvm-lld/package.py b/var/spack/packages/llvm-lld/package.py
index f229211396..cb91aa22a5 100644
--- a/var/spack/packages/llvm-lld/package.py
+++ b/var/spack/packages/llvm-lld/package.py
@@ -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
diff --git a/var/spack/packages/llvm/package.py b/var/spack/packages/llvm/package.py
index a6759c3033..d4be2b9541 100644
--- a/var/spack/packages/llvm/package.py
+++ b/var/spack/packages/llvm/package.py
@@ -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
@@ -23,6 +23,7 @@
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
+import os, shutil
class Llvm(Package):
@@ -35,19 +36,180 @@ class Llvm(Package):
homepage = 'http://llvm.org/'
url = 'http://llvm.org/releases/3.7.0/llvm-3.7.0.src.tar.xz'
- version('3.7.0', 'b98b9495e5655a672d6cb83e1a180f8e', url='http://llvm.org/releases/3.7.0/llvm-3.7.0.src.tar.xz')
- version('3.6.2', '0c1ee3597d75280dee603bae9cbf5cc2', url='http://llvm.org/releases/3.6.2/llvm-3.6.2.src.tar.xz')
- version('3.5.1', '2d3d8004f38852aa679e5945b8ce0b14', url='http://llvm.org/releases/3.5.1/llvm-3.5.1.src.tar.xz')
+ version('3.0', 'a8e5f5f1c1adebae7b4a654c376a6005', url='http://llvm.org/releases/3.0/llvm-3.0.tar.gz') # currently required by mesa package
+ variant('debug', default=False, description="Build a debug version of LLVM, this increases binary size by an order of magnitude, make sure you have 20-30gb of space available to build this")
+ variant('clang', default=True, description="Build the LLVM C/C++/Objective-C compiler frontend")
+ variant('lldb', default=True, description="Build the LLVM debugger")
+ variant('internal_unwind', default=True, description="Build the libcxxabi libunwind")
+ variant('polly', default=True, description="Build the LLVM polyhedral optimization plugin, only builds for 3.7.0+")
+ variant('libcxx', default=True, description="Build the LLVM C++ standard library")
+ variant('compiler-rt', default=True, description="Build the LLVM compiler runtime, including sanitizers")
+ variant('gold', default=True, description="Add support for LTO with the gold linker plugin")
+
+
+ # Universal dependency
depends_on('python@2.7:')
+ # lldb dependencies
+ depends_on('ncurses', when='+lldb')
+ depends_on('swig', when='+lldb')
+ depends_on('libedit', when='+lldb')
+
+ # gold support
+ depends_on('binutils+gold', when='+gold')
+
+ # polly plugin
+ depends_on('gmp', when='+polly')
+ depends_on('isl', when='+polly')
+
+ base_url = 'http://llvm.org/releases/%%(version)s/%(pkg)s-%%(version)s.src.tar.xz'
+ llvm_url = base_url % { 'pkg' : 'llvm'}
+
+ resources = {
+ 'compiler-rt' : {
+ 'url' : base_url % { 'pkg' : 'compiler-rt'},
+ 'destination' : 'projects',
+ 'placement' : 'compiler-rt',
+ },
+ 'openmp' : {
+ 'url' : base_url % { 'pkg' : 'openmp'},
+ 'destination' : 'projects',
+ 'placement' : 'openmp',
+ },
+ 'libcxx' : {
+ 'url' : base_url % { 'pkg' : 'libcxx'},
+ 'destination' : 'projects',
+ 'placement' : 'libcxx',
+ },
+ 'libcxxabi' : {
+ 'url' : base_url % { 'pkg' : 'libcxxabi'},
+ 'destination' : 'projects',
+ 'placement' : 'libcxxabi',
+ },
+ 'clang' : {
+ 'url' : base_url % { 'pkg' : 'cfe'},
+ 'destination' : 'tools',
+ 'placement' : 'clang',
+ },
+ 'clang-tools-extra' : {
+ 'url' : base_url % { 'pkg' : 'clang-tools-extra'},
+ 'destination' : 'tools/clang/tools',
+ 'placement' : 'extra',
+ },
+ 'lldb' : {
+ 'url' : base_url % { 'pkg' : 'lldb'},
+ 'destination' : 'tools',
+ 'placement' : 'lldb',
+ },
+ 'polly' : {
+ 'url' : base_url % { 'pkg' : 'polly'},
+ 'destination' : 'tools',
+ 'placement' : 'polly',
+ },
+ 'llvm-libunwind' : {
+ 'url' : base_url % { 'pkg' : 'libunwind'},
+ 'destination' : 'projects',
+ 'placement' : 'libunwind',
+ },
+ }
+ releases = [
+ {
+ 'version' : '3.7.0',
+ 'md5':'b98b9495e5655a672d6cb83e1a180f8e',
+ 'resources' : {
+ 'compiler-rt' : '383c10affd513026f08936b5525523f5',
+ 'openmp' : 'f482c86fdead50ba246a1a2b0bbf206f',
+ 'polly' : '32f93ffc9cc7e042df22089761558f8b',
+ 'libcxx' : '46aa5175cbe1ad42d6e9c995968e56dd',
+ 'libcxxabi' : '5aa769e2fca79fa5335cfae8f6258772',
+ 'clang' : '8f9d27335e7331cf0a4711e952f21f01',
+ 'clang-tools-extra' : 'd5a87dacb65d981a427a536f6964642e',
+ 'lldb' : 'e5931740400d1dc3e7db4c7ba2ceff68',
+ 'llvm-libunwind' : '9a75392eb7eb8ed5c0840007e212baf5',
+ }
+ },
+ {
+ 'version' : '3.6.2',
+ 'md5':'0c1ee3597d75280dee603bae9cbf5cc2',
+ 'resources' : {
+ 'compiler-rt' : 'e3bc4eb7ba8c39a6fe90d6c988927f3c',
+ 'openmp' : '65dd5863b9b270960a96817e9152b123',
+ 'libcxx' : '22214c90697636ef960a49aef7c1823a',
+ 'libcxxabi' : '17518e361e4e228f193dd91e8ef54ba2',
+ 'clang' : 'ff862793682f714bb7862325b9c06e20',
+ 'clang-tools-extra' : '3ebc1dc41659fcec3db1b47d81575e06',
+ 'lldb' : '51e5eb552f777b950bb0ff326e60d5f0',
+ }
+ },
+ {
+ 'version' : '3.5.1',
+ 'md5':'2d3d8004f38852aa679e5945b8ce0b14',
+ 'resources' : {
+ 'compiler-rt' : 'd626cfb8a9712cb92b820798ab5bc1f8',
+ 'openmp' : '121ddb10167d7fc38b1f7e4b029cf059',
+ 'libcxx' : '406f09b1dab529f3f7879f4d548329d2',
+ 'libcxxabi' : 'b22c707e8d474a99865ad3c521c3d464',
+ 'clang' : '93f9532f8f7e6f1d8e5c1116907051cb',
+ 'clang-tools-extra' : 'f13f31ed3038acadc6fa63fef812a246',
+ 'lldb' : 'cc5ea8a414c62c33e760517f8929a204',
+ }
+ },
+ ]
+
+ for release in releases:
+ version(release['version'], release['md5'], url=llvm_url % release)
+
+ for name, md5 in release['resources'].items():
+ resource(name=name,
+ url=resources[name]['url'] % release,
+ md5=md5,
+ destination=resources[name]['destination'],
+ when='@%(version)s' % release,
+ placement=resources[name].get('placement', None))
+
def install(self, spec, prefix):
env['CXXFLAGS'] = self.compiler.cxx11_flag
+ cmake_args = [ arg for arg in std_cmake_args if 'BUILD_TYPE' not in arg ]
+
+ build_type = 'RelWithDebInfo' if '+debug' in spec else 'Release'
+ cmake_args.extend([
+ '..',
+ '-DCMAKE_BUILD_TYPE=' + build_type,
+ '-DLLVM_REQUIRES_RTTI:BOOL=ON',
+ '-DCLANG_DEFAULT_OPENMP_RUNTIME:STRING=libomp',
+ '-DPYTHON_EXECUTABLE:PATH=%s/bin/python' % spec['python'].prefix ])
+
+ if '+gold' in spec:
+ cmake_args.append('-DLLVM_BINUTILS_INCDIR=' + os.path.join( spec['binutils'].prefix, 'include'))
+ if '+polly' in spec:
+ cmake_args.append('-DLINK_POLLY_INTO_TOOLS:Bool=ON')
+ else:
+ cmake_args.append('-DLLVM_EXTERNAL_POLLY_BUILD:Bool=OFF')
+
+ if '+clang' not in spec:
+ cmake_args.append('-DLLVM_EXTERNAL_CLANG_BUILD:Bool=OFF')
+ if '+lldb' not in spec:
+ cmake_args.append('-DLLVM_EXTERNAL_LLDB_BUILD:Bool=OFF')
+ if '+internal_unwind' not in spec:
+ cmake_args.append('-DLLVM_EXTERNAL_LIBUNWIND_BUILD:Bool=OFF')
+ if '+libcxx' not in spec:
+ cmake_args.append('-DLLVM_EXTERNAL_LIBCXX_BUILD:Bool=OFF')
+ cmake_args.append('-DLLVM_EXTERNAL_LIBCXXABI_BUILD:Bool=OFF')
+ if '+compiler-rt' not in spec:
+ cmake_args.append('-DLLVM_EXTERNAL_COMPILER_RT_BUILD:Bool=OFF')
+
+ if '+clang' not in spec:
+ if '+clang_extra' in spec:
+ raise SpackException('The clang_extra variant requires the clang variant to be selected')
+ if '+lldb' in spec:
+ raise SpackException('The lldb variant requires the clang variant to be selected')
with working_dir('spack-build', create=True):
- cmake('..',
- '-DLLVM_REQUIRES_RTTI=1',
- '-DPYTHON_EXECUTABLE=%s/bin/python' % spec['python'].prefix,
- *std_cmake_args)
+ cmake(*cmake_args)
make()
make("install")
+ query_path = os.path.join('bin', 'clang-query')
+ # Manually install clang-query, because llvm doesn't...
+ if os.path.exists(query_path):
+ shutil.copy(query_path, os.path.join(prefix, 'bin'))
diff --git a/var/spack/packages/lmod/package.py b/var/spack/packages/lmod/package.py
new file mode 100644
index 0000000000..d642594f92
--- /dev/null
+++ b/var/spack/packages/lmod/package.py
@@ -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")
diff --git a/var/spack/packages/lua/package.py b/var/spack/packages/lua/package.py
index fa4b4f9edc..ca8cfc5365 100644
--- a/var/spack/packages/lua/package.py
+++ b/var/spack/packages/lua/package.py
@@ -6,6 +6,7 @@ class Lua(Package):
homepage = "http://www.lua.org"
url = "http://www.lua.org/ftp/lua-5.1.5.tar.gz"
+ version('5.3.2', '33278c2ab5ee3c1a875be8d55c1ca2a1')
version('5.3.1', '797adacada8d85761c079390ff1d9961')
version('5.3.0', 'a1b0a7e92d0c85bbff7a8d27bf29f8af')
version('5.2.4', '913fdb32207046b273fdb17aad70be13')
@@ -18,11 +19,16 @@ class Lua(Package):
version('5.1.3', 'a70a8dfaa150e047866dc01a46272599')
depends_on('ncurses')
+ depends_on('readline')
def install(self, spec, prefix):
+ if spec.satisfies("=darwin-i686") or spec.satisfies("=darwin-x86_64"):
+ target = 'macosx'
+ else:
+ target = 'linux'
make('INSTALL_TOP=%s' % prefix,
- 'MYLDFLAGS=-L%s/lib' % spec['ncurses'].prefix,
- 'linux')
+ 'MYLDFLAGS=-L%s -lncurses' % spec['ncurses'].prefix.lib,
+ target)
make('INSTALL_TOP=%s' % prefix,
- 'MYLDFLAGS=-L%s/lib' % spec['ncurses'].prefix,
+ 'MYLDFLAGS=-L%s -lncurses' % spec['ncurses'].prefix.lib,
'install')
diff --git a/var/spack/packages/mbedtls/package.py b/var/spack/packages/mbedtls/package.py
new file mode 100644
index 0000000000..3da00cf417
--- /dev/null
+++ b/var/spack/packages/mbedtls/package.py
@@ -0,0 +1,22 @@
+from spack import *
+
+class Mbedtls(Package):
+ """
+ mbed TLS (formerly known as PolarSSL) makes it trivially easy for developers to include cryptographic and SSL/TLS capabilities in their (embedded) products, facilitating this functionality with a minimal coding footprint.
+ """
+ homepage = "https://tls.mbed.org"
+ url = "https://github.com/ARMmbed/mbedtls/archive/mbedtls-2.2.1.tar.gz"
+
+ version('2.2.1' , '73a38f96898d6d03e32f55dd9f9a67be')
+ version('2.2.0' , 'eaf4586c1ef93ae872e606b6c1203942')
+ version('2.1.4' , '40cdf67b6c6d92c9cbcfd552d39ea3ae')
+ version('2.1.3' , '7eb4cf1dfa68578a2c8dbd0b6fa752dd')
+ version('1.3.16', '4144d7320c691f721aeb9e67a1bc38e0')
+
+ depends_on('cmake')
+
+ def install(self, spec, prefix):
+ cmake('.', *std_cmake_args)
+
+ make()
+ make("install")
diff --git a/var/spack/packages/memaxes/package.py b/var/spack/packages/memaxes/package.py
index 76d5d3f831..4b1da558a2 100644
--- a/var/spack/packages/memaxes/package.py
+++ b/var/spack/packages/memaxes/package.py
@@ -3,10 +3,10 @@ from spack import *
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 @@ class Memaxes(Package):
cmake('..', *std_cmake_args)
make()
make("install")
-
diff --git a/var/spack/packages/mesa/package.py b/var/spack/packages/mesa/package.py
index 2a04a8fd51..62da8c993b 100644
--- a/var/spack/packages/mesa/package.py
+++ b/var/spack/packages/mesa/package.py
@@ -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
diff --git a/var/spack/packages/metis/package.py b/var/spack/packages/metis/package.py
index 7ce5ae1925..bbfc4de7d1 100644
--- a/var/spack/packages/metis/package.py
+++ b/var/spack/packages/metis/package.py
@@ -1,27 +1,83 @@
+##############################################################################
+# 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 Metis(Package):
- """METIS is a set of serial programs for partitioning graphs,
- partitioning finite element meshes, and producing fill reducing
- orderings for sparse matrices. The algorithms implemented in
- METIS are based on the multilevel recursive-bisection,
- multilevel k-way, and multi-constraint partitioning schemes."""
+ """
+ METIS is a set of serial programs for partitioning graphs, partitioning finite element meshes, and producing fill
+ reducing orderings for sparse matrices. The algorithms implemented in METIS are based on the multilevel
+ recursive-bisection, multilevel k-way, and multi-constraint partitioning schemes.
+ """
- homepage = "http://glaros.dtc.umn.edu/gkhome/metis/metis/overview"
- url = "http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz"
+ homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/metis/overview'
+ url = "http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz"
version('5.1.0', '5465e67079419a69e0116de24fce58fe')
- depends_on('mpi')
+ variant('shared', default=True, description='Enables the build of shared libraries')
+ variant('debug', default=False, description='Builds the library in debug mode')
+ variant('gdb', default=False, description='Enables gdb support')
+
+ variant('idx64', default=False, description='Use int64_t as default index type')
+ variant('double', default=False, description='Use double precision floating point types')
+
+ depends_on('cmake @2.8:') # build-time dependency
+
+ depends_on('gdb', when='+gdb')
def install(self, spec, prefix):
- cmake(".",
- '-DGKLIB_PATH=%s/GKlib' % pwd(),
- '-DSHARED=1',
- '-DCMAKE_C_COMPILER=mpicc',
- '-DCMAKE_CXX_COMPILER=mpicxx',
- '-DSHARED=1',
- *std_cmake_args)
-
- make()
- make("install")
+
+ options = []
+ options.extend(std_cmake_args)
+
+ build_directory = join_path(self.stage.path, 'spack-build')
+ source_directory = self.stage.source_path
+
+ options.append('-DGKLIB_PATH:PATH={metis_source}/GKlib'.format(metis_source=source_directory))
+
+ if '+shared' in spec:
+ options.append('-DSHARED:BOOL=ON')
+
+ if '+debug' in spec:
+ options.extend(['-DDEBUG:BOOL=ON',
+ '-DCMAKE_BUILD_TYPE:STRING=Debug'])
+
+ if '+gdb' in spec:
+ options.append('-DGDB:BOOL=ON')
+
+ metis_header = join_path(source_directory, 'include', 'metis.h')
+
+ if '+idx64' in spec:
+ filter_file('IDXTYPEWIDTH 32', 'IDXTYPEWIDTH 64', metis_header)
+
+ if '+double' in spec:
+ filter_file('REALTYPEWIDTH 32', 'REALTYPEWIDTH 64', metis_header)
+
+ with working_dir(build_directory, create=True):
+ cmake(source_directory, *options)
+ make()
+ make("install") \ No newline at end of file
diff --git a/var/spack/packages/mpc/package.py b/var/spack/packages/mpc/package.py
index 6fbfca3007..50477a0ccb 100644
--- a/var/spack/packages/mpc/package.py
+++ b/var/spack/packages/mpc/package.py
@@ -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")
diff --git a/var/spack/packages/mpfr/package.py b/var/spack/packages/mpfr/package.py
index 9c744a22df..2758b0da2e 100644
--- a/var/spack/packages/mpfr/package.py
+++ b/var/spack/packages/mpfr/package.py
@@ -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,9 +31,9 @@ class Mpfr(Package):
url = "http://www.mpfr.org/mpfr-current/mpfr-3.1.3.tar.bz2"
version('3.1.3', '5fdfa3cfa5c86514ee4a241a1affa138')
- # version('3.1.2', 'ee2c3ac63bf0c2359bf08fc3ee094c19')
+ version('3.1.2', 'ee2c3ac63bf0c2359bf08fc3ee094c19')
- depends_on('gmp')
+ depends_on('gmp@4.1.0:')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
diff --git a/var/spack/packages/mpich/package.py b/var/spack/packages/mpich/package.py
index d48bf878f6..00b7dfda75 100644
--- a/var/spack/packages/mpich/package.py
+++ b/var/spack/packages/mpich/package.py
@@ -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
@@ -33,11 +33,12 @@ class Mpich(Package):
list_url = "http://www.mpich.org/static/downloads/"
list_depth = 2
+ version('3.2', 'f414cfa77099cd1fa1a5ae4e22db508a')
version('3.1.4', '2ab544607986486562e076b83937bba2')
version('3.1.3', '93cb17f91ac758cbf9174ecb03563778')
version('3.1.2', '7fbf4b81dcb74b07ae85939d1ceee7f1')
version('3.1.1', '40dc408b1e03cc36d80209baaa2d32b7')
- version('3.1', '5643dd176499bfb7d25079aaff25f2ec')
+ version('3.1', '5643dd176499bfb7d25079aaff25f2ec')
version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0')
provides('mpi@:3.0', when='@3:')
@@ -85,8 +86,13 @@ class Mpich(Package):
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)
diff --git a/var/spack/packages/mpileaks/package.py b/var/spack/packages/mpileaks/package.py
index 4ef866588c..661d9d66bf 100644
--- a/var/spack/packages/mpileaks/package.py
+++ b/var/spack/packages/mpileaks/package.py
@@ -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
diff --git a/var/spack/packages/mrnet/package.py b/var/spack/packages/mrnet/package.py
index 6e9766f275..fed944e45f 100644
--- a/var/spack/packages/mrnet/package.py
+++ b/var/spack/packages/mrnet/package.py
@@ -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")
diff --git a/var/spack/packages/muster/package.py b/var/spack/packages/muster/package.py
index 722daf3d7f..0dc2e5e086 100644
--- a/var/spack/packages/muster/package.py
+++ b/var/spack/packages/muster/package.py
@@ -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')
diff --git a/var/spack/packages/mvapich2/package.py b/var/spack/packages/mvapich2/package.py
index dc2b2cb23f..23a11b3171 100644
--- a/var/spack/packages/mvapich2/package.py
+++ b/var/spack/packages/mvapich2/package.py
@@ -1,5 +1,5 @@
from spack import *
-
+import os
class Mvapich2(Package):
"""MVAPICH2 is an MPI implementation for Infiniband networks."""
@@ -154,3 +154,31 @@ class Mvapich2(Package):
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)
diff --git a/var/spack/packages/ncurses/package.py b/var/spack/packages/ncurses/package.py
index cc180bbae1..8dc808caac 100644
--- a/var/spack/packages/ncurses/package.py
+++ b/var/spack/packages/ncurses/package.py
@@ -14,20 +14,17 @@ class Ncurses(Package):
version('6.0', 'ee13d052e1ead260d7c28071f46eefb1',
url='http://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.0.tar.gz')
- def install(self, spec, prefix):
- configure("--prefix=%s" % prefix,
- "--with-shared",
- "--enable-widec",
- "--disable-pc-files",
- "--without-ada")
- make()
- make("install")
+ patch('patch_gcc_5.txt', when='%gcc@5.0:')
- configure("--prefix=%s" % prefix,
- "--with-shared",
- "--disable-widec",
- "--disable-pc-files",
- "--without-ada")
+ def install(self, spec, prefix):
+ opts = [
+ "--prefix=%s" % prefix,
+ "--with-shared",
+ "--with-cxx-shared",
+ "--enable-widec",
+ "--enable-overwrite",
+ "--disable-lib-suffixes",
+ "--without-ada"]
+ configure(*opts)
make()
make("install")
-
diff --git a/var/spack/packages/ncurses/patch_gcc_5.txt b/var/spack/packages/ncurses/patch_gcc_5.txt
new file mode 100644
index 0000000000..f85e07cb8d
--- /dev/null
+++ b/var/spack/packages/ncurses/patch_gcc_5.txt
@@ -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 > $@
diff --git a/var/spack/packages/netcdf/package.py b/var/spack/packages/netcdf/package.py
index e1e0d836c6..239644d894 100644
--- a/var/spack/packages/netcdf/package.py
+++ b/var/spack/packages/netcdf/package.py
@@ -13,6 +13,7 @@ class Netcdf(Package):
patch('netcdf-4.3.3-mpi.patch')
# Dependencies:
+ depends_on("cmake @2.8.12:")
# >HDF5
depends_on("hdf5")
diff --git a/var/spack/packages/netgauge/package.py b/var/spack/packages/netgauge/package.py
index c2378b0718..0ea42175c6 100644
--- a/var/spack/packages/netgauge/package.py
+++ b/var/spack/packages/netgauge/package.py
@@ -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
diff --git a/var/spack/packages/ninja/package.py b/var/spack/packages/ninja/package.py
new file mode 100644
index 0000000000..9e6bf4e358
--- /dev/null
+++ b/var/spack/packages/ninja/package.py
@@ -0,0 +1,22 @@
+from spack import *
+import os
+
+class Ninja(Package):
+ """ A small, fast Make alternative """
+ homepage = "https://martine.github.io/ninja/"
+ url = "https://github.com/martine/ninja/archive/v1.6.0.tar.gz"
+
+ version('1.6.0', '254133059f2da79d8727f654d7198f43')
+
+ extends('python')
+
+ def install(self, spec, prefix):
+ sh = which('sh')
+ python('configure.py', '--bootstrap')
+
+ cp = which('cp')
+
+ bindir = os.path.join(prefix, 'bin')
+ mkdir(bindir)
+ cp('-a', '-t', bindir, 'ninja')
+ cp('-ra', 'misc', prefix)
diff --git a/var/spack/packages/ompt-openmp/package.py b/var/spack/packages/ompt-openmp/package.py
index 9c1b4b9570..e5bcfb51f0 100644
--- a/var/spack/packages/ompt-openmp/package.py
+++ b/var/spack/packages/ompt-openmp/package.py
@@ -5,7 +5,7 @@ class OmptOpenmp(Package):
homepage = "https://github.com/OpenMPToolsInterface/LLVM-openmp"
url = "http://github.com/khuck/LLVM-openmp/archive/v0.1.tar.gz"
- version('0.1', '3375b5ce67a48cae107371fcd811f639')
+ version('0.1', '2334e6a84b52da41b27afd9831ed5370')
# depends_on("foo")
diff --git a/var/spack/packages/opari2/package.py b/var/spack/packages/opari2/package.py
index daaee61e3a..c68978f5c0 100644
--- a/var/spack/packages/opari2/package.py
+++ b/var/spack/packages/opari2/package.py
@@ -1,65 +1,48 @@
-# FIXME: Add copyright statement here
+##############################################################################
+# 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 *
-from contextlib import closing
class Opari2(Package):
- """OPARI2 is a source-to-source instrumentation tool for OpenMP and
- hybrid codes. It surrounds OpenMP directives and runtime library
- calls with calls to the POMP2 measurement interface.
- OPARI2 will provide you with a new initialization method that allows
- for multi-directory and parallel builds as well as the usage of
- pre-instrumented libraries. Furthermore, an efficient way of
- tracking parent-child relationships was added. Additionally, we
- extended OPARI2 to support instrumentation of OpenMP 3.0
- tied tasks. """
+ """
+ OPARI2 is a source-to-source instrumentation tool for OpenMP and hybrid codes. It surrounds OpenMP directives and
+ runtime library calls with calls to the POMP2 measurement interface. OPARI2 will provide you with a new
+ initialization method that allows for multi-directory and parallel builds as well as the usage of pre-instrumented
+ libraries. Furthermore, an efficient way of tracking parent-child relationships was added. Additionally, we extended
+ OPARI2 to support instrumentation of OpenMP 3.0 tied tasks.
+ """
homepage = "http://www.vi-hps.org/projects/score-p"
url = "http://www.vi-hps.org/upload/packages/opari2/opari2-1.1.2.tar.gz"
+ version('1.1.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 = """\
-CC=cc
-CXX=c++
-F77=f77
-FC=f90
-CFLAGS=-fPIC
-CXXFLAGS=-fPIC
-"""
- frontend_user_provided = """\
-CC_FOR_BUILD=cc
-CXX_FOR_BUILD=c++
-F77_FOR_BUILD=f70
-FC_FOR_BUILD=f90
-CFLAGS_FOR_BUILD=-fPIC
-CXXFLAGS_FOR_BUILD=-fPIC
-"""
- mpi_user_provided = """\
-MPICC=mpicc
-MPICXX=mpicxx
-MPIF77=mpif77
-MPIFC=mpif90
-MPI_CFLAGS=-fPIC
-MPI_CXXFLAGS=-fPIC
-"""
-
def install(self, spec, prefix):
- # Use a custom compiler configuration, otherwise the score-p
- # build system messes with spack's compiler settings.
- # Create these three files in the build directory
- with closing(open("platform-backend-user-provided", "w")) as backend_file:
- backend_file.write(self.backend_user_provided)
- with closing(open("platform-frontend-user-provided", "w")) as frontend_file:
- frontend_file.write(self.frontend_user_provided)
- with closing(open("platform-mpi-user-provided", "w")) as mpi_file:
- mpi_file.write(self.mpi_user_provided)
-
- # FIXME: Modify the configure line to suit your build system here.
configure("--prefix=%s" % prefix,
- "--with-custom-compilers",
"--enable-shared")
-
- # FIXME: Add logic to build and install here
make()
make("install")
diff --git a/var/spack/packages/openblas/package.py b/var/spack/packages/openblas/package.py
new file mode 100644
index 0000000000..9c8fa1c694
--- /dev/null
+++ b/var/spack/packages/openblas/package.py
@@ -0,0 +1,25 @@
+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')
+
+ # Lapack virtual package should provide liblapack.a
+ with working_dir(prefix.lib):
+ symlink('libopenblas.a', 'liblapack.a')
diff --git a/var/spack/packages/openmpi/package.py b/var/spack/packages/openmpi/package.py
index be2202fbbd..463719f9db 100644
--- a/var/spack/packages/openmpi/package.py
+++ b/var/spack/packages/openmpi/package.py
@@ -13,29 +13,33 @@ class Openmpi(Package):
"""
homepage = "http://www.open-mpi.org"
+ url = "http://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.1.tar.bz2"
+ list_url = "http://www.open-mpi.org/software/ompi/"
+ list_depth = 3
- 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',
- url = 'http://www.open-mpi.org/software/ompi/v1.8/downloads/openmpi-1.8.8.tar.bz2')
- version('1.6.5', '03aed2a4aa4d0b27196962a2a65fc475',
- url = "http://www.open-mpi.org/software/ompi/v1.6/downloads/openmpi-1.6.5.tar.bz2")
+ version('1.10.1', 'f0fcd77ed345b7eafb431968124ba16e')
+ version('1.10.0', '280cf952de68369cebaca886c5ce0304')
+ version('1.8.8', '0dab8e602372da1425e9242ae37faf8c')
+ version('1.6.5', '03aed2a4aa4d0b27196962a2a65fc475')
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
+ variant('psm', default=False, description='Build support for the PSM library.')
+ variant('verbs', default=False, description='Build support for OpenFabrics verbs.')
+
+ provides('mpi@:2.2', when='@1.6.5')
+ provides('mpi@:3.0', when='@1.7.5:')
depends_on('hwloc')
+ def url_for_version(self, version):
+ return "http://www.open-mpi.org/software/ompi/v%s/downloads/openmpi-%s.tar.bz2" % (version.up_to(2), version)
+
+
def setup_dependent_environment(self, module, spec, dep_spec):
"""For dependencies, make mpicc's use spack wrapper."""
os.environ['OMPI_CC'] = 'cc'
@@ -45,9 +49,23 @@ class Openmpi(Package):
def install(self, spec, prefix):
- config_args = ["--prefix=%s" % prefix]
-
- config_args.append("--with-hwloc=%s" % spec['hwloc'].prefix)
+ config_args = ["--prefix=%s" % prefix,
+ "--with-hwloc=%s" % spec['hwloc'].prefix,
+ "--with-tm", # necessary for Torque support
+ "--enable-shared",
+ "--enable-static"]
+
+ # Variants
+ if '+psm' in spec:
+ config_args.append("--with-psm")
+
+ if '+verbs' in spec:
+ # Up through version 1.6, this option was previously named --with-openib
+ if spec.satisfies('@:1.6'):
+ config_args.append("--with-openib")
+ # In version 1.7, it was renamed to be --with-verbs
+ elif spec.satisfies('@1.7:'):
+ config_args.append("--with-verbs")
# TODO: use variants for this, e.g. +lanl, +llnl, etc.
# use this for LANL builds, but for LLNL builds, we need:
diff --git a/var/spack/packages/openspeedshop/package.py b/var/spack/packages/openspeedshop/package.py
new file mode 100644
index 0000000000..8c71bcb7c3
--- /dev/null
+++ b/var/spack/packages/openspeedshop/package.py
@@ -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
diff --git a/var/spack/packages/openssl/package.py b/var/spack/packages/openssl/package.py
index 43b8771be0..bbb169ec6b 100644
--- a/var/spack/packages/openssl/package.py
+++ b/var/spack/packages/openssl/package.py
@@ -11,19 +11,30 @@ class Openssl(Package):
version('1.0.1h', '8d6d684a9430d5cc98a62a5d8fbda8cf')
version('1.0.2d', '38dd619b2e77cbac69b99f52a053d25a')
+ version('1.0.2e', '5262bfa25b60ed9de9f28d5d52d77fc5')
depends_on("zlib")
parallel = False
def install(self, spec, prefix):
- env['KERNEL_BITS'] = '64' # Only on 64-bit Mac
-
+ # OpenSSL uses a variable APPS in its Makefile. If it happens to be set
+ # in the environment, then this will override what is set in the
+ # Makefile, leading to build errors.
+ env.pop('APPS', None)
+ if spec.satisfies("=darwin-x86_64") or spec.satisfies("=ppc64"):
+ # This needs to be done for all 64-bit architectures (except Linux,
+ # where it happens automatically?)
+ env['KERNEL_BITS'] = '64'
config = Executable("./config")
config("--prefix=%s" % prefix,
- "--openssldir=%s/etc/openssl" % prefix,
+ "--openssldir=%s" % join_path(prefix, 'etc', 'openssl'),
"zlib",
"no-krb5",
"shared")
+ # Remove non-standard compiler options if present. These options are
+ # present e.g. on Darwin. They are non-standard, i.e. most compilers
+ # (e.g. gcc) will not accept them.
+ filter_file(r'-arch x86_64', '', 'Makefile')
make()
make("install")
diff --git a/var/spack/packages/otf2/package.py b/var/spack/packages/otf2/package.py
index fa0a5898b6..c3d61bc228 100644
--- a/var/spack/packages/otf2/package.py
+++ b/var/spack/packages/otf2/package.py
@@ -1,16 +1,43 @@
-# FIXME: Add copyright
+##############################################################################
+# 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 *
-from contextlib import closing
-import os
+
class Otf2(Package):
- """The Open Trace Format 2 is a highly scalable, memory efficient event
- trace data format plus support library."""
+ """
+ The Open Trace Format 2 is a highly scalable, memory efficient event trace data format plus support library.
+ """
homepage = "http://www.vi-hps.org/score-p"
url = "http://www.vi-hps.org/upload/packages/otf2/otf2-1.4.tar.gz"
+ version('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',
@@ -18,57 +45,11 @@ class Otf2(Package):
version('1.2.1', '8fb3e11fb7489896596ae2c7c83d7fc8',
url="http://www.vi-hps.org/upload/packages/otf2/otf2-1.2.1.tar.gz")
- backend_user_provided = """\
-CC=cc
-CXX=c++
-F77=f77
-FC=f90
-CFLAGS=-fPIC
-CXXFLAGS=-fPIC
-"""
- frontend_user_provided = """\
-CC_FOR_BUILD=cc
-CXX_FOR_BUILD=c++
-F77_FOR_BUILD=f70
-FC_FOR_BUILD=f90
-CFLAGS_FOR_BUILD=-fPIC
-CXXFLAGS_FOR_BUILD=-fPIC
-"""
- mpi_user_provided = """\
-MPICC=cc
-MPICXX=c++
-MPIF77=f77
-MPIFC=f90
-MPI_CFLAGS=-fPIC
-MPI_CXXFLAGS=-fPIC
-"""
-
- @when('@:1.2.1')
- def version_specific_args(self):
- return ["--with-platform=disabled", "CC=cc", "CXX=c++", "F77=f77", "F90=f90", "CFLAGS=-fPIC", "CXXFLAGS=-fPIC"]
-
- @when('@1.3:')
- def version_specific_args(self):
- # TODO: figure out what scorep's build does as of otf2 1.3
- return ["--with-custom-compilers"]
-
def install(self, spec, prefix):
- # Use a custom compiler configuration, otherwise the score-p
- # build system messes with spack's compiler settings.
- # Create these three files in the build directory
- with closing(open("platform-backend-user-provided", "w")) as backend_file:
- backend_file.write(self.backend_user_provided)
- with closing(open("platform-frontend-user-provided", "w")) as frontend_file:
- frontend_file.write(self.frontend_user_provided)
- with closing(open("platform-mpi-user-provided", "w")) as mpi_file:
- mpi_file.write(self.mpi_user_provided)
-
configure_args=["--prefix=%s" % prefix,
- "--enable-shared"]
-
- configure_args.extend(self.version_specific_args())
-
+ "--enable-shared",
+ "CFLAGS=-fPIC",
+ "CXXFLAGS=-fPIC"]
configure(*configure_args)
-
make()
make("install")
diff --git a/var/spack/packages/papi/package.py b/var/spack/packages/papi/package.py
index 097b8c41ec..910e0aa9f9 100644
--- a/var/spack/packages/papi/package.py
+++ b/var/spack/packages/papi/package.py
@@ -11,8 +11,8 @@ 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')
diff --git a/var/spack/packages/paraview/package.py b/var/spack/packages/paraview/package.py
index b0893237e9..aaab352e66 100644
--- a/var/spack/packages/paraview/package.py
+++ b/var/spack/packages/paraview/package.py
@@ -24,7 +24,8 @@ class Paraview(Package):
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')
@@ -59,6 +60,10 @@ class Paraview(Package):
feature_args.extend(std_cmake_args)
+ if 'darwin' in self.spec.architecture:
+ feature_args.append('-DVTK_USE_X:BOOL=OFF')
+ feature_args.append('-DPARAVIEW_DO_UNIX_STYLE_INSTALLS:BOOL=ON')
+
cmake('..',
'-DCMAKE_INSTALL_PREFIX:PATH=%s' % prefix,
'-DBUILD_TESTING:BOOL=OFF',
diff --git a/var/spack/packages/parmetis/package.py b/var/spack/packages/parmetis/package.py
index d8cd337304..c897dec7e4 100644
--- a/var/spack/packages/parmetis/package.py
+++ b/var/spack/packages/parmetis/package.py
@@ -1,26 +1,95 @@
+##############################################################################
+# 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 *
+# FIXME : lot of code is duplicated from packages/metis/package.py . Inheriting from there may reduce
+# FIXME : the installation rules to just a few lines
+
+
class Parmetis(Package):
- """ParMETIS is an MPI-based parallel library that implements a
- variety of algorithms for partitioning unstructured graphs,
- meshes, and for computing fill-reducing orderings of sparse
- matrices."""
- homepage = "http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview"
- url = "http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/parmetis-4.0.3.tar.gz"
+ """
+ ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured
+ graphs, meshes, and for computing fill-reducing orderings of sparse matrices.
+ """
+ homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview'
+ url = 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/parmetis-4.0.3.tar.gz'
version('4.0.3', 'f69c479586bf6bb7aff6a9bc0c739628')
+ variant('shared', default=True, description='Enables the build of shared libraries')
+ variant('debug', default=False, description='Builds the library in debug mode')
+ variant('gdb', default=False, description='Enables gdb support')
+
+ variant('idx64', default=False, description='Use int64_t as default index type')
+ variant('double', default=False, description='Use double precision floating point types')
+
+ depends_on('cmake @2.8:') # build dependency
depends_on('mpi')
+ # FIXME : this should conflict with metis as it builds its own version internally
+
+ depends_on('gdb', when='+gdb')
+
def install(self, spec, prefix):
- cmake(".",
- '-DGKLIB_PATH=%s/metis/GKlib' % pwd(),
- '-DMETIS_PATH=%s/metis' % pwd(),
- '-DSHARED=1',
- '-DCMAKE_C_COMPILER=mpicc',
- '-DCMAKE_CXX_COMPILER=mpicxx',
- '-DSHARED=1',
- *std_cmake_args)
-
- make()
- make("install")
+ options = []
+ options.extend(std_cmake_args)
+
+ build_directory = join_path(self.stage.path, 'spack-build')
+ source_directory = self.stage.source_path
+ metis_source = join_path(source_directory, 'metis')
+
+ # FIXME : Once a contract is defined, MPI compilers should be retrieved indirectly via spec['mpi'] in case
+ # FIXME : they use a non-standard name
+ options.extend(['-DGKLIB_PATH:PATH={metis_source}/GKlib'.format(metis_source=metis_source),
+ '-DMETIS_PATH:PATH={metis_source}'.format(metis_source=metis_source),
+ '-DCMAKE_C_COMPILER:STRING=mpicc',
+ '-DCMAKE_CXX_COMPILER:STRING=mpicxx'])
+
+ if '+shared' in spec:
+ options.append('-DSHARED:BOOL=ON')
+
+ if '+debug' in spec:
+ options.extend(['-DDEBUG:BOOL=ON',
+ '-DCMAKE_BUILD_TYPE:STRING=Debug'])
+
+ if '+gdb' in spec:
+ options.append('-DGDB:BOOL=ON')
+
+ metis_header = join_path(metis_source, 'include', 'metis.h')
+
+ if '+idx64' in spec:
+ filter_file('IDXTYPEWIDTH 32', 'IDXTYPEWIDTH 64', metis_header)
+
+ if '+double' in spec:
+ filter_file('REALTYPEWIDTH 32', 'REALTYPEWIDTH 64', metis_header)
+
+ with working_dir(build_directory, create=True):
+ cmake(source_directory, *options)
+ make()
+ make("install")
+ # Parmetis build system doesn't allow for an external metis to be used, but doesn't copy the required
+ # metis header either
+ install(metis_header, self.prefix.include)
diff --git a/var/spack/packages/patchelf/package.py b/var/spack/packages/patchelf/package.py
new file mode 100644
index 0000000000..036dc6bd17
--- /dev/null
+++ b/var/spack/packages/patchelf/package.py
@@ -0,0 +1,16 @@
+from spack import *
+
+class Patchelf(Package):
+ """PatchELF is a small utility to modify the dynamic linker and RPATH of ELF executables."""
+
+ homepage = "https://nixos.org/patchelf.html"
+ url = "http://nixos.org/releases/patchelf/patchelf-0.8/patchelf-0.8.tar.gz"
+ list_url = "http://nixos.org/releases/patchelf/"
+ list_depth = 2
+
+ version('0.8', '407b229e6a681ffb0e2cdd5915cb2d01')
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+ make()
+ make("install")
diff --git a/var/spack/packages/pcre/package.py b/var/spack/packages/pcre/package.py
index 3424048a6c..e38d337e3d 100644
--- a/var/spack/packages/pcre/package.py
+++ b/var/spack/packages/pcre/package.py
@@ -8,6 +8,7 @@ class Pcre(Package):
url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.bz2"
version('8.36', 'b767bc9af0c20bc9c1fe403b0d41ad97')
+ version('8.38', '00aabbfe56d5a48b270f999b508c5ad2')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
diff --git a/var/spack/packages/pcre2/package.py b/var/spack/packages/pcre2/package.py
new file mode 100644
index 0000000000..6a0244a15e
--- /dev/null
+++ b/var/spack/packages/pcre2/package.py
@@ -0,0 +1,15 @@
+from spack import *
+
+class Pcre2(Package):
+ """The PCRE2 package contains Perl Compatible Regular Expression
+ libraries. These are useful for implementing regular expression
+ pattern matching using the same syntax and semantics as Perl 5."""
+ homepage = "http://www.pcre.org"""
+ url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-10.20.tar.bz2"
+
+ version('10.20', 'dcd027c57ecfdc8a6c3af9d0acf5e3f7')
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix)
+ make()
+ make("install")
diff --git a/var/spack/packages/pdt/package.py b/var/spack/packages/pdt/package.py
new file mode 100644
index 0000000000..ce3b793e30
--- /dev/null
+++ b/var/spack/packages/pdt/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# 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 Pdt(Package):
+ """
+ Program Database Toolkit (PDT) is a framework for analyzing source code written in several programming languages
+ and for making rich program knowledge accessible to developers of static and dynamic analysis tools. PDT implements
+ a standard program representation, the program database (PDB), that can be accessed in a uniform way through a
+ class library supporting common PDB operations.
+ """
+ homepage = "https://www.cs.uoregon.edu/research/pdt/home.php"
+ url = "https://www.cs.uoregon.edu/research/tau/pdt_releases/pdt-3.21.tar.gz"
+
+ version('3.21', '8df94298b71703decf680709a4ddf68f')
+ version('3.19', 'ba5591994998771fdab216699e362228')
+
+ def install(self, spec, prefix):
+ configure('-prefix=%s' % prefix)
+ make()
+ make("install")
diff --git a/var/spack/packages/petsc/package.py b/var/spack/packages/petsc/package.py
index 4864e39bf1..87f700629d 100644
--- a/var/spack/packages/petsc/package.py
+++ b/var/spack/packages/petsc/package.py
@@ -12,20 +12,19 @@ class Petsc(Package):
version('3.5.2', 'ad170802b3b058b5deb9cd1f968e7e13')
version('3.5.1', 'a557e029711ebf425544e117ffa44d8f')
+ depends_on("python @2.6:2.9") # requires Python for building
+
depends_on("boost")
depends_on("blas")
depends_on("lapack")
depends_on("hypre")
depends_on("parmetis")
depends_on("metis")
- depends_on("hdf5")
+ depends_on("hdf5+mpi")
depends_on("mpi")
def install(self, spec, prefix):
configure("--prefix=%s" % prefix,
- "CC=cc",
- "CXX=c++",
- "FC=f90",
"--with-blas-lib=%s/libblas.a" % spec['blas'].prefix.lib,
"--with-lapack-lib=%s/liblapack.a" % spec['lapack'].prefix.lib,
"--with-boost-dir=%s" % spec['boost'].prefix,
@@ -33,6 +32,7 @@ class Petsc(Package):
"--with-parmetis-dir=%s" % spec['parmetis'].prefix,
"--with-metis-dir=%s" % spec['metis'].prefix,
"--with-hdf5-dir=%s" % spec['hdf5'].prefix,
+ "--with-mpi-dir=%s" % spec['mpi'].prefix,
"--with-shared-libraries=0")
# PETSc has its own way of doing parallel make.
diff --git a/var/spack/packages/pmgr_collective/package.py b/var/spack/packages/pmgr_collective/package.py
index 5d9b02acc3..1fc47c658f 100644
--- a/var/spack/packages/pmgr_collective/package.py
+++ b/var/spack/packages/pmgr_collective/package.py
@@ -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
diff --git a/var/spack/packages/py-astropy/package.py b/var/spack/packages/py-astropy/package.py
new file mode 100644
index 0000000000..d138a514f6
--- /dev/null
+++ b/var/spack/packages/py-astropy/package.py
@@ -0,0 +1,28 @@
+from spack import *
+
+class PyAstropy(Package):
+ """
+ The Astropy Project is a community effort to develop a single core
+ package for Astronomy in Python and foster interoperability between
+ Python astronomy packages.
+ """
+ homepage = 'http://www.astropy.org/'
+
+ version('1.1.post1', 'b52919f657a37d45cc45f5cb0f58c44d')
+
+ def url_for_version(self, version):
+ return 'https://pypi.python.org/packages/source/a/astropy/astropy-{0}.tar.gz'.format(version)
+
+ extends('python')
+
+ depends_on('cfitsio')
+ depends_on('expat')
+ depends_on('py-h5py')
+ depends_on('py-numpy')
+ depends_on('py-scipy')
+
+ def install(self, spec, prefix):
+ python('setup.py', 'build', '--use-system-cfitsio',
+ '--use-system-expat')
+ python('setup.py', 'install', '--prefix=' + prefix)
+
diff --git a/var/spack/packages/py-basemap/package.py b/var/spack/packages/py-basemap/package.py
index 45f1085ba1..8dfc99b28d 100644
--- a/var/spack/packages/py-basemap/package.py
+++ b/var/spack/packages/py-basemap/package.py
@@ -11,8 +11,8 @@ class PyBasemap(Package):
extends('python')
depends_on('py-setuptools')
depends_on('py-numpy')
- depends_on('py-matplotlib')
- depends_on('py-pil')
+ depends_on('py-matplotlib+gui')
+ depends_on('py-pillow')
depends_on("geos")
def install(self, spec, prefix):
diff --git a/var/spack/packages/py-blessings/package.py b/var/spack/packages/py-blessings/package.py
new file mode 100644
index 0000000000..f2475a0efd
--- /dev/null
+++ b/var/spack/packages/py-blessings/package.py
@@ -0,0 +1,15 @@
+from spack import *
+
+class PyBlessings(Package):
+ """A nicer, kinder way to write to the terminal """
+ homepage = "https://github.com/erikrose/blessings"
+ url = "https://pypi.python.org/packages/source/b/blessings/blessings-1.6.tar.gz"
+
+ version('1.6', '4f552a8ebcd4982693c92571beb99394')
+
+ depends_on('py-setuptools')
+
+ extends("python")
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-cffi/package.py b/var/spack/packages/py-cffi/package.py
index a4d37483fe..909049a67c 100644
--- a/var/spack/packages/py-cffi/package.py
+++ b/var/spack/packages/py-cffi/package.py
@@ -4,7 +4,7 @@ class PyCffi(Package):
"""Foreign Function Interface for Python calling C code"""
homepage = "http://cffi.readthedocs.org/en/latest/"
# base https://pypi.python.org/pypi/cffi
- url = "https://pypi.python.org/packages/source/c/cffi/cffi-1.1.2.tar.gz#md5="
+ url = "https://pypi.python.org/packages/source/c/cffi/cffi-1.1.2.tar.gz"
version('1.1.2', 'ca6e6c45b45caa87aee9adc7c796eaea')
diff --git a/var/spack/packages/py-coverage/package.py b/var/spack/packages/py-coverage/package.py
new file mode 100644
index 0000000000..39b2ac3b01
--- /dev/null
+++ b/var/spack/packages/py-coverage/package.py
@@ -0,0 +1,16 @@
+from spack import *
+
+class PyCoverage(Package):
+ """ Testing coverage checker for python """
+ # FIXME: add a proper url for your package's homepage here.
+ homepage = "http://nedbatchelder.com/code/coverage/"
+ url = "https://pypi.python.org/packages/source/c/coverage/coverage-4.0a6.tar.gz"
+
+ version('4.0a6', '1bb4058062646148965bef0796b61efc')
+
+ depends_on('py-setuptools')
+
+ extends('python')
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-funcsigs/package.py b/var/spack/packages/py-funcsigs/package.py
new file mode 100644
index 0000000000..a428890288
--- /dev/null
+++ b/var/spack/packages/py-funcsigs/package.py
@@ -0,0 +1,19 @@
+from spack import *
+import os
+
+class PyFuncsigs(Package):
+ """Python function signatures from PEP362 for Python 2.6, 2.7 and 3.2."""
+ homepage = "https://pypi.python.org/pypi/funcsigs"
+ url = "https://pypi.python.org/packages/source/f/funcsigs/funcsigs-0.4.tar.gz"
+
+ version('0.4', 'fb1d031f284233e09701f6db1281c2a5')
+
+ extends('python')
+
+ depends_on('py-setuptools')
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
+
+
+
diff --git a/var/spack/packages/py-matplotlib/package.py b/var/spack/packages/py-matplotlib/package.py
index a5fee39d42..2167735fb8 100644
--- a/var/spack/packages/py-matplotlib/package.py
+++ b/var/spack/packages/py-matplotlib/package.py
@@ -12,7 +12,7 @@ class PyMatplotlib(Package):
variant('gui', default=False, description='Enable GUI')
variant('ipython', default=False, description='Enable ipython support')
- extends('python', ignore=r'bin/nosetests.*$')
+ extends('python', ignore=r'bin/nosetests.*$|bin/pbr$')
depends_on('py-pyside', when='+gui')
depends_on('py-ipython', when='+ipython')
@@ -22,7 +22,11 @@ class PyMatplotlib(Package):
depends_on('py-pytz')
depends_on('py-nose')
depends_on('py-numpy')
+ depends_on('py-mock')
+ depends_on('py-pbr')
+ depends_on('py-funcsigs')
+ depends_on('freetype')
depends_on('qt', when='+gui')
depends_on('bzip2')
depends_on('tcl', when='+gui')
diff --git a/var/spack/packages/py-mock/package.py b/var/spack/packages/py-mock/package.py
index 3b08428ba0..e89af8802a 100644
--- a/var/spack/packages/py-mock/package.py
+++ b/var/spack/packages/py-mock/package.py
@@ -11,6 +11,7 @@ class PyMock(Package):
version('1.3.0', '73ee8a4afb3ff4da1b4afa287f39fdeb')
extends('python')
+ depends_on('py-pbr')
depends_on('py-setuptools@17.1:')
def install(self, spec, prefix):
diff --git a/var/spack/packages/py-mysqldb1/package.py b/var/spack/packages/py-mysqldb1/package.py
new file mode 100644
index 0000000000..fda02b4982
--- /dev/null
+++ b/var/spack/packages/py-mysqldb1/package.py
@@ -0,0 +1,15 @@
+from spack import *
+
+class PyMysqldb1(Package):
+ """Legacy mysql bindings for python"""
+ homepage = "https://github.com/farcepest/MySQLdb1"
+ url = "https://github.com/farcepest/MySQLdb1/archive/MySQLdb-1.2.5.tar.gz"
+
+ version('1.2.5', '332c8f4955b6bc0c79ea15170bf7321b')
+
+ extends('python')
+ depends_on('py-setuptools')
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
+
diff --git a/var/spack/packages/py-numexpr/package.py b/var/spack/packages/py-numexpr/package.py
new file mode 100644
index 0000000000..89f8a525b1
--- /dev/null
+++ b/var/spack/packages/py-numexpr/package.py
@@ -0,0 +1,15 @@
+from spack import *
+import re
+
+class PyNumexpr(Package):
+ """Fast numerical expression evaluator for NumPy"""
+ homepage = "https://pypi.python.org/pypi/numexpr"
+ url = "https://pypi.python.org/packages/source/n/numexpr/numexpr-2.4.6.tar.gz"
+
+ version('2.4.6', '17ac6fafc9ea1ce3eb970b9abccb4fbd')
+
+ extends('python')
+ depends_on('py-numpy')
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-numpy/package.py b/var/spack/packages/py-numpy/package.py
index efa109a3e9..0354811186 100644
--- a/var/spack/packages/py-numpy/package.py
+++ b/var/spack/packages/py-numpy/package.py
@@ -7,22 +7,18 @@ class PyNumpy(Package):
version('1.9.1', '78842b73560ec378142665e712ae4ad9')
version('1.9.2', 'a1ed53432dbcd256398898d35bc8e645')
-
+
+ variant('blas', default=True)
+
extends('python')
depends_on('py-nose')
- depends_on('netlib-blas+fpic')
- depends_on('netlib-lapack+shared')
-
- def patch(self):
- filter_file(
- "possible_executables = \['(gfortran|g77|ifort|efl)",
- "possible_executables = ['fc",
- "numpy/distutils/fcompiler/gnu.py",
- "numpy/distutils/fcompiler/intel.py")
+ depends_on('netlib-blas+fpic', when='+blas')
+ depends_on('netlib-lapack+shared', when='+blas')
def install(self, spec, prefix):
- with open('site.cfg', 'w') as f:
- f.write('[DEFAULT]\n')
- f.write('libraries=lapack,blas\n')
- f.write('library_dirs=%s/lib:%s/lib\n' % (spec['blas'].prefix, spec['lapack'].prefix))
+ if '+blas' in spec:
+ with open('site.cfg', 'w') as f:
+ f.write('[DEFAULT]\n')
+ f.write('libraries=lapack,blas\n')
+ f.write('library_dirs=%s/lib:%s/lib\n' % (spec['blas'].prefix, spec['lapack'].prefix))
python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-pbr/package.py b/var/spack/packages/py-pbr/package.py
new file mode 100644
index 0000000000..02957483d4
--- /dev/null
+++ b/var/spack/packages/py-pbr/package.py
@@ -0,0 +1,18 @@
+from spack import *
+import os
+
+class PyPbr(Package):
+ """PBR is a library that injects some useful and sensible default behaviors into your setuptools run."""
+ homepage = "https://pypi.python.org/pypi/pbr"
+ url = "https://pypi.python.org/packages/source/p/pbr/pbr-1.8.1.tar.gz"
+
+ version('1.8.1', 'c8f9285e1a4ca6f9654c529b158baa3a')
+
+ extends('python')
+
+ depends_on('py-setuptools')
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
+
+
diff --git a/var/spack/packages/py-periodictable/package.py b/var/spack/packages/py-periodictable/package.py
new file mode 100644
index 0000000000..6a495a1cc8
--- /dev/null
+++ b/var/spack/packages/py-periodictable/package.py
@@ -0,0 +1,17 @@
+from spack import *
+
+class PyPeriodictable(Package):
+ """nose extends the test loading and running features of unittest,
+ making it easier to write, find and run tests."""
+
+ homepage = "https://pypi.python.org/pypi/periodictable"
+ url = "https://pypi.python.org/packages/source/p/periodictable/periodictable-1.4.1.tar.gz"
+
+ version('1.4.1', '7246b63cc0b6b1be6e86b6616f9e866e')
+
+ depends_on('py-numpy')
+ depends_on('py-pyparsing')
+ extends('python')
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-pillow/package.py b/var/spack/packages/py-pillow/package.py
new file mode 100644
index 0000000000..adc8507bd5
--- /dev/null
+++ b/var/spack/packages/py-pillow/package.py
@@ -0,0 +1,14 @@
+from spack import *
+
+class PyPillow(Package):
+ """Pillow is the friendly PIL fork by Alex Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and Contributors. The Python Imaging Library (PIL) adds image processing capabilities to your Python interpreter. This library supports many file formats, and provides powerful image processing and graphics capabilities."""
+
+ homepage = "https://python-pillow.github.io/"
+ url = "https://pypi.python.org/packages/source/P/Pillow/Pillow-3.0.0.tar.gz"
+
+ version('3.0.0', 'fc8ac44e93da09678eac7e30c9b7377d')
+ extends('python')
+ depends_on('py-setuptools')
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-pytables/package.py b/var/spack/packages/py-pytables/package.py
new file mode 100644
index 0000000000..a5b1e78ab3
--- /dev/null
+++ b/var/spack/packages/py-pytables/package.py
@@ -0,0 +1,19 @@
+from spack import *
+import re
+
+class PyPytables(Package):
+ """PyTables is a package for managing hierarchical datasets and designed to efficiently and easily cope with extremely large amounts of data."""
+ homepage = "http://www.pytables.org/"
+ url = "https://github.com/PyTables/PyTables/archive/v.3.2.2.tar.gz"
+
+ version('3.2.2', '7cbb0972e4d6580f629996a5bed92441')
+
+ extends('python')
+ depends_on('hdf5')
+ depends_on('py-numpy')
+ depends_on('py-numexpr')
+ depends_on('py-cython')
+
+ def install(self, spec, prefix):
+ env["HDF5_DIR"] = spec['hdf5'].prefix
+ python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-setuptools/package.py b/var/spack/packages/py-setuptools/package.py
index 760ad4d6db..26c048bfd4 100644
--- a/var/spack/packages/py-setuptools/package.py
+++ b/var/spack/packages/py-setuptools/package.py
@@ -8,6 +8,7 @@ class PySetuptools(Package):
version('11.3.1', '01f69212e019a2420c1693fb43593930')
version('16.0', '0ace0b96233516fc5f7c857d086aa3ad')
version('18.1', 'f72e87f34fbf07f299f6cb46256a0b06')
+ version('19.2', '78353b1f80375ca5e088f4b4627ffe03')
extends('python')
diff --git a/var/spack/packages/py-tappy/package.py b/var/spack/packages/py-tappy/package.py
new file mode 100644
index 0000000000..df61a909da
--- /dev/null
+++ b/var/spack/packages/py-tappy/package.py
@@ -0,0 +1,15 @@
+from spack import *
+
+class PyTappy(Package):
+ """Python TAP interface module for unit tests"""
+ homepage = "https://github.com/mblayman/tappy"
+ # base https://pypi.python.org/pypi/cffi
+ url = "https://pypi.python.org/packages/source/t/tap.py/tap.py-1.6.tar.gz"
+
+ version('1.6', 'c8bdb93ad66e05f939905172a301bedf')
+
+ extends('python')
+ depends_on('py-setuptools')
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-urwid/package.py b/var/spack/packages/py-urwid/package.py
new file mode 100644
index 0000000000..aaa11c681d
--- /dev/null
+++ b/var/spack/packages/py-urwid/package.py
@@ -0,0 +1,16 @@
+from spack import *
+
+class PyUrwid(Package):
+ """A full-featured console UI library"""
+ homepage = "http://urwid.org/"
+ url = "https://pypi.python.org/packages/source/u/urwid/urwid-1.3.0.tar.gz"
+
+ version('1.3.0', 'a989acd54f4ff1a554add464803a9175')
+
+ depends_on('py-setuptools')
+
+ extends("python")
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
+
diff --git a/var/spack/packages/python/package.py b/var/spack/packages/python/package.py
index 31fb8b3d5a..a1ce06feb0 100644
--- a/var/spack/packages/python/package.py
+++ b/var/spack/packages/python/package.py
@@ -2,6 +2,7 @@ import os
import re
from contextlib import closing
from llnl.util.lang import match_predicate
+from spack.util.environment import *
from spack import *
import spack
@@ -10,28 +11,47 @@ import spack
class Python(Package):
"""The Python programming language."""
homepage = "http://www.python.org"
- url = "http://www.python.org/ftp/python/2.7.8/Python-2.7.8.tar.xz"
+ url = "http://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz"
extendable = True
- version('2.7.8', 'd235bdfa75b8396942e360a70487ee00')
- version('2.7.10', 'c685ef0b8e9f27b5e3db5db12b268ac6')
+ version('3.5.1', 'be78e48cdfc1a7ad90efff146dce6cfe')
+ version('3.5.0', 'a56c0c0b45d75a0ec9c6dee933c41c36')
+ version('2.7.11', '6b6076ec9e93f05dd63e47eb9c15728b', preferred=True)
+ version('2.7.10', 'd7547558fd673bd9d38e2108c6b42521')
+ version('2.7.9', '5eebcaa0030dc4061156d3429657fb83')
+ version('2.7.8', 'd4bca0159acb0b44a781292b5231936f')
depends_on("openssl")
depends_on("bzip2")
depends_on("readline")
depends_on("ncurses")
depends_on("sqlite")
+ depends_on("zlib")
def install(self, spec, prefix):
# Need this to allow python build to find the Python installation.
env['PYTHONHOME'] = prefix
env['MACOSX_DEPLOYMENT_TARGET'] = '10.6'
- # Rest of install is pretty standard.
- configure("--prefix=%s" % prefix,
+ # Rest of install is pretty standard except setup.py needs to be able to read the CPPFLAGS
+ # and LDFLAGS as it scans for the library and headers to build
+ configure_args= [
+ "--prefix=%s" % prefix,
"--with-threads",
- "--enable-shared")
+ "--enable-shared",
+ "CPPFLAGS=-I%s/include -I%s/include -I%s/include -I%s/include -I%s/include -I%s/include" % (
+ spec['openssl'].prefix, spec['bzip2'].prefix,
+ spec['readline'].prefix, spec['ncurses'].prefix,
+ spec['sqlite'].prefix, spec['zlib'].prefix),
+ "LDFLAGS=-L%s/lib -L%s/lib -L%s/lib -L%s/lib -L%s/lib -L%s/lib" % (
+ spec['openssl'].prefix, spec['bzip2'].prefix,
+ spec['readline'].prefix, spec['ncurses'].prefix,
+ spec['sqlite'].prefix, spec['zlib'].prefix)
+ ]
+ if spec.satisfies('@3:'):
+ configure_args.append('--without-ensurepip')
+ configure(*configure_args)
make()
make("install")
@@ -63,7 +83,10 @@ class Python(Package):
python('setup.py', 'install', '--prefix=%s' % prefix)
"""
# Python extension builds can have a global python executable function
- module.python = Executable(join_path(spec.prefix.bin, 'python'))
+ if self.version >= Version("3.0.0") and self.version < Version("4.0.0"):
+ module.python = Executable(join_path(spec.prefix.bin, 'python3'))
+ else:
+ module.python = Executable(join_path(spec.prefix.bin, 'python'))
# Add variables for lib/pythonX.Y and lib/pythonX.Y/site-packages dirs.
module.python_lib_dir = os.path.join(ext_spec.prefix, self.python_lib_dir)
@@ -95,7 +118,7 @@ class Python(Package):
# Ignore pieces of setuptools installed by other packages.
if ext_pkg.name != 'py-setuptools':
- patterns.append(r'/site\.pyc?$')
+ patterns.append(r'/site[^/]*\.pyc?$')
patterns.append(r'setuptools\.pth')
patterns.append(r'bin/easy_install[^/]*$')
patterns.append(r'setuptools.*egg$')
diff --git a/var/spack/packages/qhull/package.py b/var/spack/packages/qhull/package.py
index 9da4078a70..f6712ced38 100644
--- a/var/spack/packages/qhull/package.py
+++ b/var/spack/packages/qhull/package.py
@@ -20,6 +20,9 @@ class Qhull(Package):
version('1.0', 'd0f978c0d8dfb2e919caefa56ea2953c',
url="http://www.qhull.org/download/qhull-2012.1-src.tgz")
+ # https://github.com/qhull/qhull/pull/5
+ patch('qhull-iterator.patch')
+
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
cmake('..', *std_cmake_args)
diff --git a/var/spack/packages/qhull/qhull-iterator.patch b/var/spack/packages/qhull/qhull-iterator.patch
new file mode 100644
index 0000000000..88e931d84f
--- /dev/null
+++ b/var/spack/packages/qhull/qhull-iterator.patch
@@ -0,0 +1,45 @@
+From 93f4b306c54bb5be7724dcc19c6e747b62ac76dd Mon Sep 17 00:00:00 2001
+From: Ben Boeckel <mathstuf@gmail.com>
+Date: Thu, 28 May 2015 11:12:25 -0400
+Subject: [PATCH] iterator: use the header
+
+Standard libraries are doing funky things with inline namespaces which
+make these declarations impossible to get right. Just include the
+header.
+---
+ src/libqhullcpp/QhullIterator.h | 3 +--
+ src/libqhullcpp/QhullLinkedList.h | 5 +----
+ 2 files changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/src/libqhullcpp/QhullIterator.h b/src/libqhullcpp/QhullIterator.h
+index 9dde894..49f3a3b 100644
+--- a/src/libqhullcpp/QhullIterator.h
++++ b/src/libqhullcpp/QhullIterator.h
+@@ -14,10 +14,9 @@ extern "C" {
+ }
+
+ #include <assert.h>
++#include <iterator>
+ #include <string>
+ #include <vector>
+-//! Avoid dependence on <iterator>
+-namespace std { struct bidirectional_iterator_tag; struct random_access_iterator_tag; }
+
+ namespace orgQhull {
+
+diff --git a/src/libqhullcpp/QhullLinkedList.h b/src/libqhullcpp/QhullLinkedList.h
+index d828ac6..00b9008 100644
+--- a/src/libqhullcpp/QhullLinkedList.h
++++ b/src/libqhullcpp/QhullLinkedList.h
+@@ -9,10 +9,7 @@
+ #ifndef QHULLLINKEDLIST_H
+ #define QHULLLINKEDLIST_H
+
+-namespace std {
+- struct bidirectional_iterator_tag;
+- struct random_access_iterator_tag;
+-}//std
++#include <iterator>
+
+ #include "QhullError.h"
+ extern "C" {
diff --git a/var/spack/packages/qt/package.py b/var/spack/packages/qt/package.py
index 0e4abe3b1d..e8d843519d 100644
--- a/var/spack/packages/qt/package.py
+++ b/var/spack/packages/qt/package.py
@@ -10,14 +10,23 @@ class Qt(Package):
version('5.4.0', 'e8654e4b37dd98039ba20da7a53877e6',
url='http://download.qt-project.org/official_releases/qt/5.4/5.4.0/single/qt-everywhere-opensource-src-5.4.0.tar.gz')
+
version('5.3.2', 'febb001129927a70174467ecb508a682',
url='http://download.qt.io/archive/qt/5.3/5.3.2/single/qt-everywhere-opensource-src-5.3.2.tar.gz')
version('5.2.1', 'a78408c887c04c34ce615da690e0b4c8',
url='http://download.qt.io/archive/qt/5.2/5.2.1/single/qt-everywhere-opensource-src-5.2.1.tar.gz')
+
version('4.8.6', '2edbe4d6c2eff33ef91732602f3518eb',
url="http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz")
+ version('3.3.8b', '9f05b4125cfe477cc52c9742c3c09009',
+ url="http://download.qt.io/archive/qt/3/qt-x11-free-3.3.8b.tar.gz")
+
+ # Add patch for compile issues with qt3 found with use in the OpenSpeedShop project
+ variant('krellpatch', default=False, description="build with openspeedshop based patch.")
+ patch('qt3krell.patch', when='@3.3.8b+krellpatch')
+
# Use system openssl for security.
#depends_on("openssl")
@@ -25,7 +34,7 @@ class Qt(Package):
depends_on("gtkplus")
depends_on("libxml2")
depends_on("zlib")
- depends_on("dbus")
+ depends_on("dbus", when='@4:')
depends_on("libtiff")
depends_on("libpng")
depends_on("libmng")
@@ -39,7 +48,7 @@ class Qt(Package):
# depends_on("icu4c")
# OpenGL hardware acceleration
- depends_on("mesa")
+ depends_on("mesa", when='@4:')
depends_on("libxcb")
@@ -85,6 +94,15 @@ class Qt(Package):
# Don't disable all the database drivers, but should
# really get them into spack at some point.
+ @when('@3')
+ def configure(self):
+ configure('-prefix', self.prefix,
+ '-v',
+ '-thread',
+ '-shared',
+ '-release',
+ '-fast'
+ )
@when('@4')
def configure(self):
diff --git a/var/spack/packages/qt/qt3krell.patch b/var/spack/packages/qt/qt3krell.patch
new file mode 100644
index 0000000000..3333eeacd4
--- /dev/null
+++ b/var/spack/packages/qt/qt3krell.patch
@@ -0,0 +1,68 @@
+--- qt-x11-free-3.3.8b/src/tools/qmap.h 2008-01-15 13:09:13.000000000 -0600
++++ qt-x11-free-3.3.8b-fixes/src/tools/qmap.h 2015-07-08 15:47:34.757565247 -0500
+@@ -52,6 +52,7 @@
+ #ifndef QT_NO_STL
+ #include <iterator>
+ #include <map>
++#include <cstddef>
+ #endif
+
+ //#define QT_CHECK_MAP_RANGE
+--- qt-x11-free-3.3.8b/src/tools/qvaluelist.h 2008-01-15 13:09:13.000000000 -0600
++++ qt-x11-free-3.3.8b-fixes/src/tools/qvaluelist.h 2015-07-08 15:47:34.758565247 -0500
+@@ -50,6 +50,7 @@
+ #ifndef QT_NO_STL
+ #include <iterator>
+ #include <list>
++#include <cstddef>
+ #endif
+
+ //#define QT_CHECK_VALUELIST_RANGE
+--- qt-x11-free-3.3.8b/src/tools/qvaluevector.h 2008-01-15 13:09:13.000000000 -0600
++++ qt-x11-free-3.3.8b-fixes/src/tools/qvaluevector.h 2015-07-08 15:47:34.758565247 -0500
+@@ -47,6 +47,7 @@
+
+ #ifndef QT_NO_STL
+ #include <vector>
++#include <cstddef>
+ #endif
+
+ template <class T>
+--- qt-x11-free-3.3.8b/configure 2008-01-15 13:09:15.000000000 -0600
++++ qt-x11-free-3.3.8b-fixes/configure 2015-07-08 15:49:03.379560633 -0500
+@@ -2339,7 +2339,7 @@
+ else
+ echo "Do you accept the terms of the $TheLicense? \c"
+ fi
+- read acceptance
++ acceptance=yes
+ echo
+ if [ "$acceptance" = yes ]; then
+ break
+@@ -2397,7 +2397,7 @@
+ else
+ echo "Do you accept the terms of $affix license? \c"
+ fi
+- read acceptance
++ acceptance=yes
+ echo
+ if [ "$acceptance" = "yes" ]; then
+ break
+@@ -2443,7 +2443,7 @@
+ else
+ echo "Do you accept the terms of the license? \c"
+ fi
+- read acceptance
++ acceptance=yes
+ echo
+ if [ "$acceptance" = "yes" ]; then
+ break
+@@ -2524,7 +2524,7 @@
+ else
+ echo "Do you accept the terms of the $Platform License? \c"
+ fi
+- read acceptance
++ acceptance=yes
+ echo
+ if [ "$acceptance" = "yes" ]; then
+ break
diff --git a/var/spack/packages/ravel/package.py b/var/spack/packages/ravel/package.py
index 01fa941cfe..d774a0ab86 100644
--- a/var/spack/packages/ravel/package.py
+++ b/var/spack/packages/ravel/package.py
@@ -4,8 +4,8 @@ class Ravel(Package):
"""Ravel is a parallel communication trace visualization tool that
orders events according to logical time."""
- homepage = "https://github.com/scalability-llnl/ravel"
- url = 'https://github.com/scalability-llnl/ravel/archive/v1.0.0.tar.gz'
+ homepage = "https://github.com/llnl/ravel"
+ url = 'https://github.com/llnl/ravel/archive/v1.0.0.tar.gz'
version('1.0.0', 'b25fece58331c2adfcce76c5036485c2')
diff --git a/var/spack/packages/rsync/package.py b/var/spack/packages/rsync/package.py
index 8ae21b1cb9..76aec3096d 100644
--- a/var/spack/packages/rsync/package.py
+++ b/var/spack/packages/rsync/package.py
@@ -5,6 +5,7 @@ class Rsync(Package):
homepage = "https://rsync.samba.org"
url = "https://download.samba.org/pub/rsync/rsync-3.1.1.tar.gz"
+ version('3.1.2', '0f758d7e000c0f7f7d3792610fad70cb')
version('3.1.1', '43bd6676f0b404326eee2d63be3cdcfe')
def install(self, spec, prefix):
diff --git a/var/spack/packages/scalasca/package.py b/var/spack/packages/scalasca/package.py
index cf7a40c1f5..6de14564b2 100644
--- a/var/spack/packages/scalasca/package.py
+++ b/var/spack/packages/scalasca/package.py
@@ -1,65 +1,63 @@
-# FIXME: Add copyright
+##############################################################################
+# 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 Scalasca(Package):
- """Scalasca is a software tool that supports the performance optimization
- of parallel programs by measuring and analyzing their runtime behavior.
- The analysis identifies potential performance bottlenecks - in
- particular those concerning communication and synchronization - and
- offers guidance in exploring their causes."""
+ """
+ Scalasca is a software tool that supports the performance optimization of parallel programs by measuring and
+ analyzing their runtime behavior. The analysis identifies potential performance bottlenecks - in particular those
+ concerning communication and synchronization - and offers guidance in exploring their causes.
+ """
- # FIXME: add a proper url for your package's homepage here.
homepage = "http://www.scalasca.org"
- url = "http://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz"
+ url = "http://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz"
- version('2.1', 'bab9c2b021e51e2ba187feec442b96e6',
- url = 'http://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz' )
+ version('2.2.2', '2bafce988b0522d18072f7771e491ab9',
+ url='http://apps.fz-juelich.de/scalasca/releases/scalasca/2.2/dist/scalasca-2.2.2.tar.gz')
- depends_on("mpi")
- depends_on("otf2@1.4")
- depends_on("cube@4.2.3")
+ version('2.1', 'bab9c2b021e51e2ba187feec442b96e6',
+ url='http://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz')
- backend_user_provided = """\
-CC=cc
-CXX=c++
-F77=f77
-FC=f90
-CFLAGS=-fPIC
-CXXFLAGS=-fPIC
-"""
- frontend_user_provided = """\
-CC_FOR_BUILD=cc
-CXX_FOR_BUILD=c++
-F77_FOR_BUILD=f70
-FC_FOR_BUILD=f90
-CFLAGS_FOR_BUILD=-fPIC
-CXXFLAGS_FOR_BUILD=-fPIC
-"""
- mpi_user_provided = """\
-MPICC=mpicc
-MPICXX=mpicxx
-MPIF77=mpif77
-MPIFC=mpif90
-MPI_CFLAGS=-fPIC
-MPI_CXXFLAGS=-fPIC
-"""
+ depends_on("mpi")
+ ##########
+ # Hard-code dependencies for Scalasca according to what stated in the release page
+ # The OTF2 library path should be detected automatically from SCOREP
+ # SCALASCA 2.2.2
+ depends_on("scorep@1.4:", when='@2.2.2')
+ depends_on("cube@4.3:", when='@2.2.2')
+ # SCALASCA 2.1
+ depends_on("scorep@1.3", when='@2.1')
+ depends_on("cube@4.2:", when='@2.1')
+ ##########
def install(self, spec, prefix):
configure_args = ["--prefix=%s" % prefix,
- "--with-custom-compilers",
- "--with-otf2=%s" % spec['otf2'].prefix.bin,
"--with-cube=%s" % spec['cube'].prefix.bin,
"--enable-shared"]
-
configure(*configure_args)
-
- make()
- make("install")
-
- # FIXME: Modify the configure line to suit your build system here.
- configure("--prefix=%s" % prefix)
-
- # FIXME: Add logic to build and install here
make()
- make("install")
+ make("install") \ No newline at end of file
diff --git a/var/spack/packages/scorep/package.py b/var/spack/packages/scorep/package.py
index f013bd1cbb..5127e814b6 100644
--- a/var/spack/packages/scorep/package.py
+++ b/var/spack/packages/scorep/package.py
@@ -1,74 +1,72 @@
-# FIXME: Add copyright statement
+##############################################################################
+# 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 Scorep(Package):
- """The Score-P measurement infrastructure is a highly scalable and
- easy-to-use tool suite for profiling, event tracing, and online
- analysis of HPC applications."""
+ """
+ The Score-P measurement infrastructure is a highly scalable and easy-to-use tool suite for profiling, event
+ tracing, and online analysis of HPC applications.
+ """
- # FIXME: add a proper url for your package's homepage here.
homepage = "http://www.vi-hps.org/projects/score-p"
url = "http://www.vi-hps.org/upload/packages/scorep/scorep-1.2.3.tar.gz"
+ version('1.4.2', '3b9a042b13bdd5836452354e6567f71e',
+ url='http://www.vi-hps.org/upload/packages/scorep/scorep-1.4.2.tar.gz')
version('1.3', '9db6f957b7f51fa01377a9537867a55c',
- url = 'http://www.vi-hps.org/upload/packages/scorep/scorep-1.3.tar.gz')
+ url='http://www.vi-hps.org/upload/packages/scorep/scorep-1.3.tar.gz')
- version('1.2.3', '4978084e7cbd05b94517aa8beaea0817')
+ ##########
+ # Dependencies for SCORE-P are quite tight. See the homepage for more information.
+ # SCOREP 1.4.2
+ depends_on('otf2@1.5:1.6', when='@1.4.2')
+ depends_on('opari2@1.1.4', when='@1.4.2')
+ depends_on('cube@4.3:4.4', when='@1.4.2')
+ # SCOREP 1.3
+ depends_on("otf2@1.4", when='@1.3')
+ depends_on("opari2@1.1.4", when='@1.3')
+ depends_on("cube@4.2.3", when='@1.3')
+ ##########
depends_on("mpi")
depends_on("papi")
- # depends_on("otf2@1.2:1.2.1") # only Score-P 1.2.x
- depends_on("otf2")
- depends_on("opari2")
- depends_on("cube@4.2:4.2.3")
-
- backend_user_provided = """\
-CC=cc
-CXX=c++
-F77=f77
-FC=f90
-CFLAGS=-fPIC
-CXXFLAGS=-fPIC
-"""
- frontend_user_provided = """\
-CC_FOR_BUILD=cc
-CXX_FOR_BUILD=c++
-F77_FOR_BUILD=f70
-FC_FOR_BUILD=f90
-CFLAGS_FOR_BUILD=-fPIC
-CXXFLAGS_FOR_BUILD=-fPIC
-"""
- mpi_user_provided = """\
-MPICC=mpicc
-MPICXX=mpicxx
-MPIF77=mpif77
-MPIFC=mpif90
-MPI_CFLAGS=-fPIC
-MPI_CXXFLAGS=-fPIC
-"""
def install(self, spec, prefix):
- # Use a custom compiler configuration, otherwise the score-p
- # build system messes with spack's compiler settings.
- # Create these three files in the build directory
- with open("platform-backend-user-provided", "w") as backend_file:
- backend_file.write(self.backend_user_provided)
- with open("platform-frontend-user-provided", "w") as frontend_file:
- frontend_file.write(self.frontend_user_provided)
- with open("platform-mpi-user-provided", "w") as mpi_file:
- mpi_file.write(self.mpi_user_provided)
-
- configure_args = ["--prefix=%s" % prefix,
- "--with-custom-compilers",
- "--with-otf2=%s" % spec['otf2'].prefix.bin,
- "--with-opari2=%s" % spec['opari2'].prefix.bin,
- "--with-cube=%s" % spec['cube'].prefix.bin,
- "--with-papi-header=%s" % spec['papi'].prefix.include,
- "--with-papi-lib=%s" % spec['papi'].prefix.lib,
- "--enable-shared"]
-
- configure(*configure_args)
-
- make()
- make("install")
+ configure = Executable( join_path(self.stage.source_path, 'configure') )
+ with working_dir('spack-build', create=True):
+ configure_args = ["--prefix=%s" % prefix,
+ "--with-otf2=%s" % spec['otf2'].prefix.bin,
+ "--with-opari2=%s" % spec['opari2'].prefix.bin,
+ "--with-cube=%s" % spec['cube'].prefix.bin,
+ "--with-papi-header=%s" % spec['papi'].prefix.include,
+ "--with-papi-lib=%s" % spec['papi'].prefix.lib,
+ "--enable-shared",
+ "CFLAGS=-fPIC",
+ "CXXFLAGS=-fPIC"]
+ configure(*configure_args)
+ make()
+ make("install")
diff --git a/var/spack/packages/scotch/package.py b/var/spack/packages/scotch/package.py
index 79289ff2ad..8229ed8686 100644
--- a/var/spack/packages/scotch/package.py
+++ b/var/spack/packages/scotch/package.py
@@ -1,5 +1,4 @@
from spack import *
-import glob
import os
class Scotch(Package):
@@ -11,28 +10,115 @@ class Scotch(Package):
version('6.0.3', '10b0cc0f184de2de99859eafaca83cfc')
- depends_on('mpi')
+ 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')
+
+ def compiler_specifics(self, makefile_inc, defines):
+ if self.compiler.name == 'gcc':
+ defines.append('-Drestrict=__restrict')
+ elif self.compiler.name == 'intel':
+ defines.append('-restrict')
+
+ makefile_inc.append('CCS = $(CC)')
+
+ if '+mpi' in self.spec:
+ makefile_inc.extend([
+ 'CCP = %s' % os.path.join(self.spec['mpi'].prefix.bin, 'mpicc'),
+ 'CCD = $(CCP)'
+ ])
+ else:
+ makefile_inc.extend([
+ 'CCP = mpicc', # It is set but not used
+ 'CCD = $(CCS)'
+ ])
+
+
+
+ def library_build_type(self, makefile_inc, defines):
+ makefile_inc.extend([
+ 'LIB = .a',
+ 'CLIBFLAGS = ',
+ 'RANLIB = ranlib',
+ 'AR = ar',
+ 'ARFLAGS = -ruv '
+ ])
+
+ @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'
+ ])
+
+ def extra_features(self, makefile_inc, defines):
+ ldflags = []
+
+ if '+compression' in self.spec:
+ defines.append('-DCOMMON_FILE_COMPRESS_GZ')
+ ldflags.append('-L%s -lz' % (self.spec['zlib'].prefix.lib))
+
+ defines.append('-DCOMMON_PTHREAD')
+ ldflags.append('-lm -lrt -pthread')
+
+ makefile_inc.append('LDFLAGS = %s' % ' '.join(ldflags))
def patch(self):
- with working_dir('src/Make.inc'):
- makefiles = glob.glob('Makefile.inc.x86-64_pc_linux2*')
- filter_file(r'^CCS\s*=.*$', 'CCS = cc', *makefiles)
- filter_file(r'^CCD\s*=.*$', 'CCD = cc', *makefiles)
+ makefile_inc = []
+ defines = [
+ '-DCOMMON_RANDOM_FIXED_SEED',
+ '-DSCOTCH_DETERMINISTIC',
+ '-DSCOTCH_RENAME',
+ '-DIDXSIZE64' ]
+ self.library_build_type(makefile_inc, defines)
+ self.compiler_specifics(makefile_inc, defines)
+ self.extra_features(makefile_inc, defines)
+ makefile_inc.extend([
+ 'EXE =',
+ 'OBJ = .o',
+ 'MAKE = make',
+ 'CAT = cat',
+ 'LN = ln',
+ 'MKDIR = mkdir',
+ 'MV = mv',
+ 'CP = cp',
+ 'CFLAGS = -O3 %s' % (' '.join(defines)),
+ '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,
+ ''
+ ])
+
+ with working_dir('src'):
+ with open('Makefile.inc', 'w') as fh:
+ fh.write('\n'.join(makefile_inc))
+
def install(self, spec, prefix):
- # Currently support gcc and icc on x86_64 (maybe others with
- # vanilla makefile)
- makefile = 'Make.inc/Makefile.inc.x86-64_pc_linux2'
- if spec.satisfies('%icc'):
- makefile += '.icc'
+ targets = ['scotch']
+ if '+mpi' in self.spec:
+ targets.append('ptscotch')
+
+ if '+esmumps' in self.spec:
+ targets.append('esmumps')
+ if '+mpi' in self.spec:
+ targets.append('ptesmumps')
with working_dir('src'):
- force_symlink(makefile, 'Makefile.inc')
- for app in ('scotch', 'ptscotch'):
- make(app)
+ for app in targets:
+ make(app, parallel=(not app=='ptesmumps'))
+
install_tree('bin', prefix.bin)
install_tree('lib', prefix.lib)
install_tree('include', prefix.include)
diff --git a/var/spack/packages/scr/package.py b/var/spack/packages/scr/package.py
index 9fb758f072..1408dce678 100644
--- a/var/spack/packages/scr/package.py
+++ b/var/spack/packages/scr/package.py
@@ -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
diff --git a/var/spack/packages/sparsehash/package.py b/var/spack/packages/sparsehash/package.py
new file mode 100644
index 0000000000..7decaeb89b
--- /dev/null
+++ b/var/spack/packages/sparsehash/package.py
@@ -0,0 +1,14 @@
+from spack import *
+
+class Sparsehash(Package):
+ """Sparse and dense hash-tables for C++ by Google"""
+ homepage = "https://github.com/sparsehash/sparsehash"
+ url = "https://github.com/sparsehash/sparsehash/archive/sparsehash-2.0.3.tar.gz"
+
+ version('2.0.3', 'd8d5e2538c1c25577b3f066d7a55e99e')
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+
+ make()
+ make("install")
diff --git a/var/spack/packages/spindle/package.py b/var/spack/packages/spindle/package.py
index 06a1e14284..a20753458a 100644
--- a/var/spack/packages/spindle/package.py
+++ b/var/spack/packages/spindle/package.py
@@ -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
diff --git a/var/spack/packages/spot/package.py b/var/spack/packages/spot/package.py
new file mode 100644
index 0000000000..9e539277ae
--- /dev/null
+++ b/var/spack/packages/spot/package.py
@@ -0,0 +1,18 @@
+from spack import *
+import os
+
+class Spot(Package):
+ """Spot is a C++11 library for omega-automata manipulation and model checking."""
+ homepage = "https://spot.lrde.epita.fr/index.html"
+ url = "http://www.lrde.epita.fr/dload/spot/spot-1.99.3.tar.gz"
+
+ version('1.99.3', 'd53adcb2d0fe7c69f45d4e595a58254e')
+
+ #depends_on("gcc@4.8:")
+ depends_on("python@3.2:")
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+
+ make()
+ make("install")
diff --git a/var/spack/packages/sqlite/package.py b/var/spack/packages/sqlite/package.py
index 734b0b6cb6..1cf2d30239 100644
--- a/var/spack/packages/sqlite/package.py
+++ b/var/spack/packages/sqlite/package.py
@@ -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
diff --git a/var/spack/packages/sundials/package.py b/var/spack/packages/sundials/package.py
index 8b784c8c3c..7e025a8244 100644
--- a/var/spack/packages/sundials/package.py
+++ b/var/spack/packages/sundials/package.py
@@ -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
diff --git a/var/spack/packages/swig/package.py b/var/spack/packages/swig/package.py
index ee536d7063..8d46c4fe46 100644
--- a/var/spack/packages/swig/package.py
+++ b/var/spack/packages/swig/package.py
@@ -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
diff --git a/var/spack/packages/szip/package.py b/var/spack/packages/szip/package.py
new file mode 100644
index 0000000000..c48c5b431e
--- /dev/null
+++ b/var/spack/packages/szip/package.py
@@ -0,0 +1,21 @@
+from spack import *
+
+class Szip(Package):
+ """Szip is an implementation of the extended-Rice lossless compression algorithm.
+ It provides lossless compression of scientific data, and is provided with HDF
+ software products."""
+
+ homepage = "https://www.hdfgroup.org/doc_resource/SZIP/"
+ url = "http://www.hdfgroup.org/ftp/lib-external/szip/2.1/src/szip-2.1.tar.gz"
+
+ version('2.1', '902f831bcefb69c6b635374424acbead')
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix,
+ '--enable-production',
+ '--enable-shared',
+ '--enable-static',
+ '--enable-encoding')
+
+ make()
+ make("install")
diff --git a/var/spack/packages/tar/package.py b/var/spack/packages/tar/package.py
new file mode 100644
index 0000000000..539174017c
--- /dev/null
+++ b/var/spack/packages/tar/package.py
@@ -0,0 +1,13 @@
+from spack import *
+
+class Tar(Package):
+ """GNU Tar provides the ability to create tar archives, as well as various other kinds of manipulation."""
+ homepage = "https://www.gnu.org/software/tar/"
+ url = "http://ftp.gnu.org/gnu/tar/tar-1.28.tar.gz"
+
+ version('1.28', '6ea3dbea1f2b0409b234048e021a9fd7')
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix)
+ make()
+ make('install')
diff --git a/var/spack/packages/tau/package.py b/var/spack/packages/tau/package.py
index 048fac80aa..31492397d8 100644
--- a/var/spack/packages/tau/package.py
+++ b/var/spack/packages/tau/package.py
@@ -1,32 +1,135 @@
+##############################################################################
+# 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
+import os.path
+
from llnl.util.filesystem import join_path
class Tau(Package):
- """A portable profiling and tracing toolkit for performance
- analysis of parallel programs written in Fortran, C, C++, UPC,
- Java, Python."""
+ """
+ A portable profiling and tracing toolkit for performance
+ analysis of parallel programs written in Fortran, C, C++, UPC,
+ Java, Python.
+ """
homepage = "http://www.cs.uoregon.edu/research/tau"
- url = "http://www.cs.uoregon.edu/research/paracomp/tau/tauprofile/dist/tau-2.23.1.tar.gz"
+ url = "https://www.cs.uoregon.edu/research/tau/tau_releases/tau-2.25.tar.gz"
+ version('2.25', '46cd48fa3f3c4ce0197017b3158a2b43')
+ version('2.24.1', '6635ece6d1f08215b02f5d0b3c1e971b')
+ version('2.24', '57ce33539c187f2e5ec68f0367c76db4')
version('2.23.1', '6593b47ae1e7a838e632652f0426fe72')
+ # TODO : shmem variant missing
+ variant('download', default=False, description='Downloads and builds various dependencies')
+ variant('scorep', default=False, description='Activates SCOREP support')
+ variant('openmp', default=True, description='Use OpenMP threads')
+ variant('mpi', default=True, description='Specify use of TAU MPI wrapper library')
+ variant('phase', default=True, description='Generate phase based profiles')
+ variant('comm', default=True, description=' Generate profiles with MPI communicator info')
+
+ # TODO : Try to build direct OTF2 support? Some parts of the OTF support library in TAU are non-conformant,
+ # TODO : and fail at compile-time. Further, SCOREP is compiled with OTF2 support.
+ depends_on('pdt') # Required for TAU instrumentation
+ depends_on('scorep', when='+scorep')
+ depends_on('binutils', when='~download')
+ depends_on('mpi', when='+mpi')
+
+ def set_compiler_options(self):
+
+ useropt = ["-O2", self.rpath_args]
+
+ ##########
+ # Selecting a compiler with TAU configure is quite tricky:
+ # 1 - compilers are mapped to a given set of strings (and spack cc, cxx, etc. wrappers are not among them)
+ # 2 - absolute paths are not allowed
+ # 3 - the usual environment variables seems not to be checked ('CC', 'CXX' and 'FC')
+ # 4 - if no -cc=<compiler> -cxx=<compiler> is passed tau is built with system compiler silently
+ # (regardless of what %<compiler> is used in the spec)
+ #
+ # In the following we give TAU what he expects and put compilers into PATH
+ compiler_path = os.path.dirname(self.compiler.cc)
+ os.environ['PATH'] = ':'.join([compiler_path, os.environ['PATH']])
+ compiler_options = ['-c++=%s' % self.compiler.cxx_names[0],
+ '-cc=%s' % self.compiler.cc_names[0]]
+ if self.compiler.fc:
+ compiler_options.append('-fortran=%s' % self.compiler.fc_names[0])
+ ##########
+
+ # Construct the string of custom compiler flags and append it to compiler related options
+ useropt = ' '.join(useropt)
+ useropt = "-useropt=%s" % useropt
+ compiler_options.append(useropt)
+ return compiler_options
+
def install(self, spec, prefix):
# TAU isn't happy with directories that have '@' in the path. Sigh.
change_sed_delimiter('@', ';', 'configure')
change_sed_delimiter('@', ';', 'utils/FixMakefile')
change_sed_delimiter('@', ';', 'utils/FixMakefile.sed.default')
- # After that, it's relatively standard.
- configure("-prefix=%s" % prefix)
+ # TAU configure, despite the name , seems to be a manually written script (nothing related to autotools).
+ # As such it has a few #peculiarities# that make this build quite hackish.
+ options = ["-prefix=%s" % prefix,
+ "-iowrapper",
+ "-pdt=%s" % spec['pdt'].prefix]
+ # If download is active, download and build suggested dependencies
+ if '+download' in spec:
+ options.extend(['-bfd=download',
+ '-unwind=download',
+ '-asmdex=download'])
+ else:
+ options.extend(["-bfd=%s" % spec['binutils'].prefix])
+ # TODO : unwind and asmdex are still missing
+
+ if '+scorep' in spec:
+ options.append("-scorep=%s" % spec['scorep'].prefix)
+
+ if '+openmp' in spec:
+ options.append('-openmp')
+
+ if '+mpi' in spec:
+ options.append('-mpi')
+
+ if '+phase' in spec:
+ options.append('-PROFILEPHASE')
+
+ if '+comm' in spec:
+ options.append('-PROFILECOMMUNICATORS')
+
+ compiler_specific_options = self.set_compiler_options()
+ options.extend(compiler_specific_options)
+ configure(*options)
make("install")
# Link arch-specific directories into prefix since there is
# only one arch per prefix the way spack installs.
self.link_tau_arch_dirs()
-
def link_tau_arch_dirs(self):
for subdir in os.listdir(self.prefix):
for d in ('bin', 'lib'):
diff --git a/var/spack/packages/texinfo/package.py b/var/spack/packages/texinfo/package.py
new file mode 100644
index 0000000000..1b22c72e72
--- /dev/null
+++ b/var/spack/packages/texinfo/package.py
@@ -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://scalability-llnl.github.io/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License (as published by
+# the Free Software Foundation) version 2.1 dated February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Texinfo(Package):
+ """
+ Texinfo is the official documentation format of the GNU project. It was invented by Richard Stallman and Bob
+ Chassell many years ago, loosely based on Brian Reid's Scribe and other formatting languages of the time. It is
+ used by many non-GNU projects as well.FIXME: put a proper description of your package here.
+ """
+ homepage = "https://www.gnu.org/software/texinfo/"
+ url = "http://ftp.gnu.org/gnu/texinfo/texinfo-6.0.tar.gz"
+
+ version('6.0', 'e1a2ef5dce5018b53f0f6eed45b247a7')
+ version('5.2', '1b8f98b80a8e6c50422125e07522e8db')
+ version('5.1', '54e250014fe698fb4832016158747c03')
+ version('5.0', '918432285abe6fe96c98355594c5656a')
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+ make()
+ make("install")
diff --git a/var/spack/packages/tmuxinator/package.py b/var/spack/packages/tmuxinator/package.py
index 26c061cbd6..77ae063e5d 100644
--- a/var/spack/packages/tmuxinator/package.py
+++ b/var/spack/packages/tmuxinator/package.py
@@ -5,7 +5,7 @@ class Tmuxinator(Package):
homepage = "https://github.com/tmuxinator/tmuxinator"
url = "https://github.com/tmuxinator/tmuxinator"
- version('0.6.11',
+ version('0.6.11',
git='https://github.com/tmuxinator/tmuxinator',
tag='v0.6.11')
@@ -13,5 +13,4 @@ class Tmuxinator(Package):
def install(self, spec, prefix):
gem('build', 'tmuxinator.gemspec')
- gem('install', 'tmuxinator-{}.gem'.format(self.version))
-
+ gem('install', 'tmuxinator-{0}.gem'.format(self.version))
diff --git a/var/spack/packages/valgrind/package.py b/var/spack/packages/valgrind/package.py
new file mode 100644
index 0000000000..0b030d73e9
--- /dev/null
+++ b/var/spack/packages/valgrind/package.py
@@ -0,0 +1,55 @@
+##############################################################################
+# 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 Valgrind(Package):
+ """
+ Valgrind is an instrumentation framework for building dynamic analysis tools. There are Valgrind tools that can
+ automatically detect many memory management and threading bugs, and profile your programs in detail. You can also
+ use Valgrind to build new tools.
+
+ Valgrind is Open Source / Free Software, and is freely available under the GNU General Public License, version 2.
+ """
+ homepage = "http://valgrind.org/"
+ url = "http://valgrind.org/downloads/valgrind-3.11.0.tar.bz2"
+
+ version('3.11.0', '4ea62074da73ae82e0162d6550d3f129')
+ version('3.10.1', '60ddae962bc79e7c95cfc4667245707f')
+ version('3.10.0', '7c311a72a20388aceced1aa5573ce970')
+
+ variant('mpi', default=True, description='Activates MPI support for valgrind')
+ variant('boost', default=True, description='Activates boost support for valgrind')
+
+ depends_on('mpi', when='+mpi')
+ depends_on('boost', when='+boost')
+
+ def install(self, spec, prefix):
+ options = ['--prefix=%s' % prefix,
+ '--enable-ubsan']
+ configure(*options)
+ make()
+ make("install")
diff --git a/var/spack/packages/wget/package.py b/var/spack/packages/wget/package.py
index c8fd025122..55728b0515 100644
--- a/var/spack/packages/wget/package.py
+++ b/var/spack/packages/wget/package.py
@@ -8,9 +8,10 @@ class Wget(Package):
etc."""
homepage = "http://www.gnu.org/software/wget/"
- url = "http://ftp.gnu.org/gnu/wget/wget-1.16.tar.xz"
+ url = "http://ftp.gnu.org/gnu/wget/wget-1.16.tar.gz"
- version('1.16', 'fe102975ab3a6c049777883f1bb9ad07')
+ version('1.17', 'c4c4727766f24ac716936275014a0536')
+ version('1.16', '293a37977c41b5522f781d3a3a078426')
depends_on("openssl")
diff --git a/var/spack/packages/wx/package.py b/var/spack/packages/wx/package.py
index 1813a8c8a5..206fde7775 100644
--- a/var/spack/packages/wx/package.py
+++ b/var/spack/packages/wx/package.py
@@ -16,6 +16,8 @@ class Wx(Package):
version('3.0.1', 'dad1f1cd9d4c370cbc22700dc492da31',
url="https://sourceforge.net/projects/wxwindows/files/3.0.1/wxWidgets-3.0.1.tar.bz2")
+ depends_on('gtkplus')
+
def install(self, spec, prefix):
configure("--prefix=%s" % prefix, "--enable-unicode", "--disable-precomp-headers")
diff --git a/var/spack/packages/xerces-c/package.py b/var/spack/packages/xerces-c/package.py
new file mode 100644
index 0000000000..b59ab178ae
--- /dev/null
+++ b/var/spack/packages/xerces-c/package.py
@@ -0,0 +1,36 @@
+# FIXME:
+# This is a template package file for Spack. We've conveniently
+# put "FIXME" labels next to all the things you'll want to change.
+#
+# Once you've edited all the FIXME's, delete this whole message,
+# save this file, and test out your package like this:
+#
+# spack install xerces-c
+#
+# You can always get back here to change things with:
+#
+# spack edit xerces-c
+#
+# See the spack documentation for more information on building
+# packages.
+#
+from spack import *
+
+class XercesC(Package):
+ """ Xerces-C++ is a validating XML parser written in a portable subset of C++.
+ Xerces-C++ makes it easy to give your application the ability to read and
+ write XML data. A shared library is provided for parsing, generating,
+ manipulating, and validating XML documents using the DOM, SAX, and SAX2 APIs.
+ """
+
+ homepage = "https://xerces.apache.org/xerces-c"
+ url = "https://www.apache.org/dist/xerces/c/3/sources/xerces-c-3.1.2.tar.gz"
+ version('3.1.2', '9eb1048939e88d6a7232c67569b23985')
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix,
+ "--disable-network")
+ make("clean")
+ make()
+ make("install")
+