From 1ad474f1a9afa7ccc8d596caa08278e19a69eb97 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Wed, 30 Jul 2014 23:30:07 -0700 Subject: Allow per-version URLs instead of one single URL per package. --- var/spack/mock_packages/callpath/package.py | 6 +-- var/spack/mock_packages/direct_mpich/package.py | 2 +- var/spack/mock_packages/dyninst/package.py | 5 +-- var/spack/mock_packages/fake/package.py | 3 +- var/spack/mock_packages/indirect_mpich/package.py | 2 +- var/spack/mock_packages/libdwarf/package.py | 8 ++-- var/spack/mock_packages/libelf/package.py | 6 +-- var/spack/mock_packages/mpich/package.py | 10 ++--- var/spack/mock_packages/mpich2/package.py | 12 ++--- var/spack/mock_packages/mpileaks/package.py | 8 ++-- .../trivial_install_test_package/package.py | 2 +- var/spack/mock_packages/zmpi/package.py | 2 +- var/spack/packages/SAMRAI/package.py | 20 ++++----- var/spack/packages/boost/package.py | 51 +++++++++++----------- var/spack/packages/cmake/package.py | 3 +- var/spack/packages/dyninst/package.py | 4 +- var/spack/packages/graphlib/package.py | 2 +- var/spack/packages/hdf5/package.py | 4 +- var/spack/packages/launchmon/package.py | 2 +- var/spack/packages/libdwarf/package.py | 6 +-- var/spack/packages/libelf/package.py | 4 +- var/spack/packages/libevent/package.py | 23 +++++----- var/spack/packages/libunwind/package.py | 2 +- var/spack/packages/mpich/package.py | 2 +- var/spack/packages/mrnet/package.py | 5 ++- var/spack/packages/mvapich2/package.py | 7 +-- var/spack/packages/ncurses/package.py | 6 +-- var/spack/packages/openmpi/package.py | 2 +- var/spack/packages/parmetis/package.py | 2 +- var/spack/packages/pmgr_collective/package.py | 2 +- var/spack/packages/scr/package.py | 2 +- var/spack/packages/spindle/package.py | 2 +- var/spack/packages/stat/package.py | 4 +- var/spack/packages/tau/package.py | 3 +- var/spack/packages/tmux/package.py | 2 +- var/spack/packages/vim/package.py | 24 +++++----- var/spack/packages/zlib/package.py | 2 +- 37 files changed, 124 insertions(+), 128 deletions(-) (limited to 'var') diff --git a/var/spack/mock_packages/callpath/package.py b/var/spack/mock_packages/callpath/package.py index b4fd0f4482..5b6b70ba2a 100644 --- a/var/spack/mock_packages/callpath/package.py +++ b/var/spack/mock_packages/callpath/package.py @@ -28,9 +28,9 @@ class Callpath(Package): homepage = "https://github.com/tgamblin/callpath" url = "http://github.com/tgamblin/callpath-1.0.tar.gz" - versions = { 0.8 : 'foobarbaz', - 0.9 : 'foobarbaz', - 1.0 : 'foobarbaz' } + version(0.8, 'foobarbaz') + version(0.9, 'foobarbaz') + version(1.0, 'foobarbaz') depends_on("dyninst") depends_on("mpi") diff --git a/var/spack/mock_packages/direct_mpich/package.py b/var/spack/mock_packages/direct_mpich/package.py index d702e4481b..2ced82521b 100644 --- a/var/spack/mock_packages/direct_mpich/package.py +++ b/var/spack/mock_packages/direct_mpich/package.py @@ -28,7 +28,7 @@ class DirectMpich(Package): homepage = "http://www.example.com" url = "http://www.example.com/direct_mpich-1.0.tar.gz" - versions = { 1.0 : 'foobarbaz' } + version('1.0', 'foobarbaz') depends_on('mpich') diff --git a/var/spack/mock_packages/dyninst/package.py b/var/spack/mock_packages/dyninst/package.py index d32c4b5504..7657e2c33f 100644 --- a/var/spack/mock_packages/dyninst/package.py +++ b/var/spack/mock_packages/dyninst/package.py @@ -29,9 +29,8 @@ class Dyninst(Package): url = "http://www.dyninst.org/sites/default/files/downloads/dyninst/8.1.2/DyninstAPI-8.1.2.tgz" list_url = "http://www.dyninst.org/downloads/dyninst-8.x" - versions = { - '8.1.2' : 'bf03b33375afa66fe0efa46ce3f4b17a', - '8.1.1' : '1f8743e3a5662b25ce64a7edf647e77d' } + version('8.1.2', 'bf03b33375afa66fe0efa46ce3f4b17a') + version('8.1.1', '1f8743e3a5662b25ce64a7edf647e77d') depends_on("libelf") depends_on("libdwarf") diff --git a/var/spack/mock_packages/fake/package.py b/var/spack/mock_packages/fake/package.py index 88bc6d8669..fb3c2bdd2e 100644 --- a/var/spack/mock_packages/fake/package.py +++ b/var/spack/mock_packages/fake/package.py @@ -27,7 +27,8 @@ from spack import * class Fake(Package): homepage = "http://www.fake-spack-example.org" url = "http://www.fake-spack-example.org/downloads/fake-1.0.tar.gz" - versions = { '1.0' : 'foobarbaz' } + + version('1.0', 'foobarbaz') def install(self, spec, prefix): pass diff --git a/var/spack/mock_packages/indirect_mpich/package.py b/var/spack/mock_packages/indirect_mpich/package.py index a53cb9330c..daf8b4b166 100644 --- a/var/spack/mock_packages/indirect_mpich/package.py +++ b/var/spack/mock_packages/indirect_mpich/package.py @@ -32,7 +32,7 @@ class IndirectMpich(Package): homepage = "http://www.example.com" url = "http://www.example.com/indirect_mpich-1.0.tar.gz" - versions = { 1.0 : 'foobarbaz' } + version(1.0, 'foobarbaz') depends_on('mpi') depends_on('direct_mpich') diff --git a/var/spack/mock_packages/libdwarf/package.py b/var/spack/mock_packages/libdwarf/package.py index 0f4d55fd88..0b8df04cfb 100644 --- a/var/spack/mock_packages/libdwarf/package.py +++ b/var/spack/mock_packages/libdwarf/package.py @@ -33,10 +33,10 @@ class Libdwarf(Package): url = "http://www.prevanders.net/libdwarf-20130729.tar.gz" list_url = homepage - versions = { 20130729 : "64b42692e947d5180e162e46c689dfbf", - 20130207 : 'foobarbaz', - 20111030 : 'foobarbaz', - 20070703 : 'foobarbaz' } + version(20130729, "64b42692e947d5180e162e46c689dfbf") + version(20130207, 'foobarbaz') + version(20111030, 'foobarbaz') + version(20070703, 'foobarbaz') depends_on("libelf") diff --git a/var/spack/mock_packages/libelf/package.py b/var/spack/mock_packages/libelf/package.py index 5ac07de4e3..94c8f942cd 100644 --- a/var/spack/mock_packages/libelf/package.py +++ b/var/spack/mock_packages/libelf/package.py @@ -28,9 +28,9 @@ class Libelf(Package): homepage = "http://www.mr511.de/software/english.html" url = "http://www.mr511.de/software/libelf-0.8.13.tar.gz" - versions = {'0.8.13' : '4136d7b4c04df68b686570afa26988ac', - '0.8.12' : 'e21f8273d9f5f6d43a59878dc274fec7', - '0.8.10' : '9db4d36c283d9790d8fa7df1f4d7b4d9' } + version('0.8.13', '4136d7b4c04df68b686570afa26988ac') + version('0.8.12', 'e21f8273d9f5f6d43a59878dc274fec7') + version('0.8.10', '9db4d36c283d9790d8fa7df1f4d7b4d9') def install(self, spec, prefix): configure("--prefix=%s" % prefix, diff --git a/var/spack/mock_packages/mpich/package.py b/var/spack/mock_packages/mpich/package.py index 2a8e1cebe3..e86c1a68ac 100644 --- a/var/spack/mock_packages/mpich/package.py +++ b/var/spack/mock_packages/mpich/package.py @@ -30,11 +30,11 @@ class Mpich(Package): list_url = "http://www.mpich.org/static/downloads/" list_depth = 2 - versions = { '3.0.4' : '9c5d5d4fe1e17dd12153f40bc5b6dbc0', - '3.0.3' : 'foobarbaz', - '3.0.2' : 'foobarbaz', - '3.0.1' : 'foobarbaz', - '3.0' : 'foobarbaz' } + version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0') + version('3.0.3', 'foobarbaz') + version('3.0.2', 'foobarbaz') + version('3.0.1', 'foobarbaz') + version('3.0', 'foobarbaz') provides('mpi@:3', when='@3:') provides('mpi@:1', when='@1:') diff --git a/var/spack/mock_packages/mpich2/package.py b/var/spack/mock_packages/mpich2/package.py index 84dce4cccb..827b94c8a4 100644 --- a/var/spack/mock_packages/mpich2/package.py +++ b/var/spack/mock_packages/mpich2/package.py @@ -30,12 +30,12 @@ class Mpich2(Package): list_url = "http://www.mpich.org/static/downloads/" list_depth = 2 - versions = { '1.5' : '9c5d5d4fe1e17dd12153f40bc5b6dbc0', - '1.4' : 'foobarbaz', - '1.3' : 'foobarbaz', - '1.2' : 'foobarbaz', - '1.1' : 'foobarbaz', - '1.0' : 'foobarbaz' } + version('1.5', '9c5d5d4fe1e17dd12153f40bc5b6dbc0') + version('1.4', 'foobarbaz') + version('1.3', 'foobarbaz') + version('1.2', 'foobarbaz') + version('1.1', 'foobarbaz') + version('1.0', 'foobarbaz') provides('mpi@:2.0') provides('mpi@:2.1', when='@1.1:') diff --git a/var/spack/mock_packages/mpileaks/package.py b/var/spack/mock_packages/mpileaks/package.py index c34d5991e6..c6be37bc13 100644 --- a/var/spack/mock_packages/mpileaks/package.py +++ b/var/spack/mock_packages/mpileaks/package.py @@ -28,10 +28,10 @@ class Mpileaks(Package): homepage = "http://www.llnl.gov" url = "http://www.llnl.gov/mpileaks-1.0.tar.gz" - versions = { 1.0 : 'foobarbaz', - 2.1 : 'foobarbaz', - 2.2 : 'foobarbaz', - 2.3 : 'foobarbaz' } + version(1.0, 'foobarbaz') + version(2.1, 'foobarbaz') + version(2.2, 'foobarbaz') + version(2.3, 'foobarbaz') depends_on("mpi") depends_on("callpath") 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 b665825b32..c4db9f5f07 100644 --- a/var/spack/mock_packages/trivial_install_test_package/package.py +++ b/var/spack/mock_packages/trivial_install_test_package/package.py @@ -30,7 +30,7 @@ class TrivialInstallTestPackage(Package): homepage = "http://www.example.com/trivial_install" url = "http://www.unit-test-should-replace-this-url/trivial_install-1.0.tar.gz" - versions = { '1.0' : 'foobarbaz' } + version('1.0', 'foobarbaz') def install(self, spec, prefix): configure('--prefix=%s' % prefix) diff --git a/var/spack/mock_packages/zmpi/package.py b/var/spack/mock_packages/zmpi/package.py index a86bd706bb..8c6ceda6d3 100644 --- a/var/spack/mock_packages/zmpi/package.py +++ b/var/spack/mock_packages/zmpi/package.py @@ -30,7 +30,7 @@ class Zmpi(Package): homepage = "http://www.spack-fake-zmpi.org" url = "http://www.spack-fake-zmpi.org/downloads/zmpi-1.0.tar.gz" - versions = { '1.0' : 'foobarbaz' } + version('1.0', 'foobarbaz') provides('mpi@:10.0') depends_on('fake') diff --git a/var/spack/packages/SAMRAI/package.py b/var/spack/packages/SAMRAI/package.py index bb88ec3292..3dfb00b391 100644 --- a/var/spack/packages/SAMRAI/package.py +++ b/var/spack/packages/SAMRAI/package.py @@ -11,17 +11,15 @@ class Samrai(Package): url = "https://computation-rnd.llnl.gov/SAMRAI/download/SAMRAI-v3.7.3.tar.gz" list_url = homepage - versions = { - '3.7.3' : '12d574eacadf8c9a70f1bb4cd1a69df6', - '3.7.2' : 'f6a716f171c9fdbf3cb12f71fa6e2737', - '3.6.3-beta' : 'ef0510bf2893042daedaca434e5ec6ce', - '3.5.2-beta' : 'd072d9d681eeb9ada15ce91bea784274', - '3.5.0-beta' : '1ad18a319fc573e12e2b1fbb6f6b0a19', - '3.4.1-beta' : '00814cbee2cb76bf8302aff56bbb385b', - '3.3.3-beta' : '1db3241d3e1cab913dc310d736c34388', - '3.3.2-beta' : 'e598a085dab979498fcb6c110c4dd26c', - '2.4.4' : '04fb048ed0efe7c531ac10c81cc5f6ac', - } + version('3.7.3', '12d574eacadf8c9a70f1bb4cd1a69df6') + version('3.7.2', 'f6a716f171c9fdbf3cb12f71fa6e2737') + version('3.6.3-beta', 'ef0510bf2893042daedaca434e5ec6ce') + version('3.5.2-beta', 'd072d9d681eeb9ada15ce91bea784274') + version('3.5.0-beta', '1ad18a319fc573e12e2b1fbb6f6b0a19') + version('3.4.1-beta', '00814cbee2cb76bf8302aff56bbb385b') + version('3.3.3-beta', '1db3241d3e1cab913dc310d736c34388') + version('3.3.2-beta', 'e598a085dab979498fcb6c110c4dd26c') + version('2.4.4', '04fb048ed0efe7c531ac10c81cc5f6ac') depends_on("mpi") depends_on("zlib") diff --git a/var/spack/packages/boost/package.py b/var/spack/packages/boost/package.py index 71c3058d79..d3231c3baa 100644 --- a/var/spack/packages/boost/package.py +++ b/var/spack/packages/boost/package.py @@ -14,32 +14,31 @@ class Boost(Package): list_url = "http://sourceforge.net/projects/boost/files/boost/" list_depth = 2 - versions = { - '1.55.0' : 'd6eef4b4cacb2183f2bf265a5a03a354', - '1.54.0' : '15cb8c0803064faef0c4ddf5bc5ca279', - '1.53.0' : 'a00d22605d5dbcfb4c9936a9b35bc4c2', - '1.52.0' : '3a855e0f919107e0ca4de4d84ad3f750', - '1.51.0' : '4b6bd483b692fd138aef84ed2c8eb679', - '1.50.0' : '52dd00be775e689f55a987baebccc462', - '1.49.0' : '0d202cb811f934282dea64856a175698', - '1.48.0' : 'd1e9a7a7f532bb031a3c175d86688d95', - '1.47.0' : 'a2dc343f7bc7f83f8941e47ed4a18200', - '1.46.1' : '7375679575f4c8db605d426fc721d506', - '1.46.0' : '37b12f1702319b73876b0097982087e0', - '1.45.0' : 'd405c606354789d0426bc07bea617e58', - '1.44.0' : 'f02578f5218f217a9f20e9c30e119c6a', - '1.43.0' : 'dd49767bfb726b0c774f7db0cef91ed1', - '1.42.0' : '7bf3b4eb841b62ffb0ade2b82218ebe6', - '1.41.0' : '8bb65e133907db727a2a825c5400d0a6', - '1.40.0' : 'ec3875caeac8c52c7c129802a8483bd7', - '1.39.0' : 'a17281fd88c48e0d866e1a12deecbcc0', - '1.38.0' : '5eca2116d39d61382b8f8235915cb267', - '1.37.0' : '8d9f990bfb7e83769fa5f1d6f065bc92', - '1.36.0' : '328bfec66c312150e4c2a78dcecb504b', - '1.35.0' : 'dce952a7214e72d6597516bcac84048b', - '1.34.1' : '2d938467e8a448a2c9763e0a9f8ca7e5', - '1.34.0' : 'ed5b9291ffad776f8757a916e1726ad0' - } + version('1.55.0', 'd6eef4b4cacb2183f2bf265a5a03a354') + version('1.54.0', '15cb8c0803064faef0c4ddf5bc5ca279') + version('1.53.0', 'a00d22605d5dbcfb4c9936a9b35bc4c2') + version('1.52.0', '3a855e0f919107e0ca4de4d84ad3f750') + version('1.51.0', '4b6bd483b692fd138aef84ed2c8eb679') + version('1.50.0', '52dd00be775e689f55a987baebccc462') + version('1.49.0', '0d202cb811f934282dea64856a175698') + version('1.48.0', 'd1e9a7a7f532bb031a3c175d86688d95') + version('1.47.0', 'a2dc343f7bc7f83f8941e47ed4a18200') + version('1.46.1', '7375679575f4c8db605d426fc721d506') + version('1.46.0', '37b12f1702319b73876b0097982087e0') + version('1.45.0', 'd405c606354789d0426bc07bea617e58') + version('1.44.0', 'f02578f5218f217a9f20e9c30e119c6a') + version('1.43.0', 'dd49767bfb726b0c774f7db0cef91ed1') + version('1.42.0', '7bf3b4eb841b62ffb0ade2b82218ebe6') + version('1.41.0', '8bb65e133907db727a2a825c5400d0a6') + version('1.40.0', 'ec3875caeac8c52c7c129802a8483bd7') + version('1.39.0', 'a17281fd88c48e0d866e1a12deecbcc0') + version('1.38.0', '5eca2116d39d61382b8f8235915cb267') + version('1.37.0', '8d9f990bfb7e83769fa5f1d6f065bc92') + version('1.36.0', '328bfec66c312150e4c2a78dcecb504b') + version('1.35.0', 'dce952a7214e72d6597516bcac84048b') + version('1.34.1', '2d938467e8a448a2c9763e0a9f8ca7e5') + version('1.34.0', 'ed5b9291ffad776f8757a916e1726ad0') + def url_for_version(self, version): """Handle Boost's weird URLs, which write the version two different ways.""" diff --git a/var/spack/packages/cmake/package.py b/var/spack/packages/cmake/package.py index 70406610b6..ca6553df84 100644 --- a/var/spack/packages/cmake/package.py +++ b/var/spack/packages/cmake/package.py @@ -27,7 +27,8 @@ from spack import * class Cmake(Package): homepage = 'https://www.cmake.org' url = 'http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz' - versions = { '2.8.10.2' : '097278785da7182ec0aea8769d06860c' } + + version('2.8.10.2', '097278785da7182ec0aea8769d06860c') def install(self, spec, prefix): configure('--prefix=' + prefix, diff --git a/var/spack/packages/dyninst/package.py b/var/spack/packages/dyninst/package.py index 3f8696b6d8..069237f7ff 100644 --- a/var/spack/packages/dyninst/package.py +++ b/var/spack/packages/dyninst/package.py @@ -29,8 +29,8 @@ class Dyninst(Package): url = "http://www.dyninst.org/sites/default/files/downloads/dyninst/8.1.2/DyninstAPI-8.1.2.tgz" list_url = "http://www.dyninst.org/downloads/dyninst-8.x" - versions = {'8.1.2' : 'bf03b33375afa66fe0efa46ce3f4b17a', - '8.1.1' : '1f8743e3a5662b25ce64a7edf647e77d' } + version('8.1.2', 'bf03b33375afa66fe0efa46ce3f4b17a') + version('8.1.1', '1f8743e3a5662b25ce64a7edf647e77d') depends_on("libelf") depends_on("libdwarf") diff --git a/var/spack/packages/graphlib/package.py b/var/spack/packages/graphlib/package.py index c959135147..ddac0b2b66 100644 --- a/var/spack/packages/graphlib/package.py +++ b/var/spack/packages/graphlib/package.py @@ -5,7 +5,7 @@ class Graphlib(Package): homepage = "http://https://github.com/lee218llnl/graphlib" url = "https://github.com/lee218llnl/graphlib/archive/v2.0.0.tar.gz" - versions = { '2.0.0' : '43c6df84f1d38ba5a5dce0ae19371a70', } + version('2.0.0', '43c6df84f1d38ba5a5dce0ae19371a70') def install(self, spec, prefix): cmake(".", *std_cmake_args) diff --git a/var/spack/packages/hdf5/package.py b/var/spack/packages/hdf5/package.py index 7705676dba..615c2a7fe4 100644 --- a/var/spack/packages/hdf5/package.py +++ b/var/spack/packages/hdf5/package.py @@ -11,10 +11,10 @@ class Hdf5(Package): list_url = "http://www.hdfgroup.org/ftp/HDF5/releases" list_depth = 3 - versions = { '1.8.13' : 'c03426e9e77d7766944654280b467289', } + version('1.8.13', 'c03426e9e77d7766944654280b467289') depends_on("mpi") - depends_on("zlib") + depends_on("zlib") # TODO: currently hard-coded to use OpenMPI def install(self, spec, prefix): diff --git a/var/spack/packages/launchmon/package.py b/var/spack/packages/launchmon/package.py index 7f12f41308..b6773a85bc 100644 --- a/var/spack/packages/launchmon/package.py +++ b/var/spack/packages/launchmon/package.py @@ -28,7 +28,7 @@ class Launchmon(Package): homepage = "http://sourceforge.net/projects/launchmon" url = "http://downloads.sourceforge.net/project/launchmon/launchmon/1.0.1%20release/launchmon-1.0.1.tar.gz" - versions = { '1.0.1' : '2f12465803409fd07f91174a4389eb2b' } + version('1.0.1', '2f12465803409fd07f91174a4389eb2b') def install(self, spec, prefix): configure( diff --git a/var/spack/packages/libdwarf/package.py b/var/spack/packages/libdwarf/package.py index abd6d1f4a1..c4d71ebc01 100644 --- a/var/spack/packages/libdwarf/package.py +++ b/var/spack/packages/libdwarf/package.py @@ -44,9 +44,9 @@ class Libdwarf(Package): url = "http://www.prevanders.net/libdwarf-20130729.tar.gz" list_url = homepage - versions = { '20130729' : '4cc5e48693f7b93b7aa0261e63c0e21d', - '20130207' : '64b42692e947d5180e162e46c689dfbf', - '20130126' : 'ded74a5e90edb5a12aac3c29d260c5db' } + version('20130729', '4cc5e48693f7b93b7aa0261e63c0e21d') + version('20130207', '64b42692e947d5180e162e46c689dfbf') + version('20130126', 'ded74a5e90edb5a12aac3c29d260c5db') depends_on("libelf") diff --git a/var/spack/packages/libelf/package.py b/var/spack/packages/libelf/package.py index f663ba750d..bf2fefabd5 100644 --- a/var/spack/packages/libelf/package.py +++ b/var/spack/packages/libelf/package.py @@ -33,8 +33,8 @@ class Libelf(Package): homepage = "http://www.mr511.de/software/english.html" url = "http://www.mr511.de/software/libelf-0.8.13.tar.gz" - versions = { '0.8.13' : '4136d7b4c04df68b686570afa26988ac', - '0.8.12' : 'e21f8273d9f5f6d43a59878dc274fec7', } + version('0.8.13', '4136d7b4c04df68b686570afa26988ac') + version('0.8.12', 'e21f8273d9f5f6d43a59878dc274fec7') def install(self, spec, prefix): configure("--prefix=" + prefix, diff --git a/var/spack/packages/libevent/package.py b/var/spack/packages/libevent/package.py index 9b45b532d7..11b1083d67 100644 --- a/var/spack/packages/libevent/package.py +++ b/var/spack/packages/libevent/package.py @@ -11,18 +11,17 @@ class Libevent(Package): url = "https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz" list_url = "http://libevent.org/old-releases.html" - versions = { - '2.0.21' : 'b2405cc9ebf264aa47ff615d9de527a2', - '2.0.20' : '94270cdee32c0cd0aa9f4ee6ede27e8e', - '2.0.19' : '91111579769f46055b0a438f5cc59572', - '2.0.18' : 'aa1ce9bc0dee7b8084f6855765f2c86a', - '2.0.17' : 'dad64aaaaff16b5fbec25160c06fee9a', - '2.0.16' : '899efcffccdb3d5111419df76e7dc8df', - '2.0.15' : '2643abe7ba242df15c08b2cc14ec8759', - '2.0.14' : 'cac0f379da35d3b98f83ac16fcfe1df4', - '2.0.13' : 'af786b4b3f790c9d3279792edf7867fc', - '2.0.12' : '42986228baf95e325778ed328a93e070', - } + version('2.0.21', 'b2405cc9ebf264aa47ff615d9de527a2') + version('2.0.20', '94270cdee32c0cd0aa9f4ee6ede27e8e') + version('2.0.19', '91111579769f46055b0a438f5cc59572') + version('2.0.18', 'aa1ce9bc0dee7b8084f6855765f2c86a') + version('2.0.17', 'dad64aaaaff16b5fbec25160c06fee9a') + version('2.0.16', '899efcffccdb3d5111419df76e7dc8df') + version('2.0.15', '2643abe7ba242df15c08b2cc14ec8759') + version('2.0.14', 'cac0f379da35d3b98f83ac16fcfe1df4') + version('2.0.13', 'af786b4b3f790c9d3279792edf7867fc') + version('2.0.12', '42986228baf95e325778ed328a93e070') + def install(self, spec, prefix): configure("--prefix=%s" % prefix) diff --git a/var/spack/packages/libunwind/package.py b/var/spack/packages/libunwind/package.py index c93b5b2c98..aeadc85eb3 100644 --- a/var/spack/packages/libunwind/package.py +++ b/var/spack/packages/libunwind/package.py @@ -28,7 +28,7 @@ class Libunwind(Package): homepage = "http://www.nongnu.org/libunwind/" url = "http://download.savannah.gnu.org/releases/libunwind/libunwind-1.1.tar.gz" - versions = { '1.1' : 'fb4ea2f6fbbe45bf032cd36e586883ce' } + version('1.1', 'fb4ea2f6fbbe45bf032cd36e586883ce') def install(self, spec, prefix): configure("--prefix=" + prefix) diff --git a/var/spack/packages/mpich/package.py b/var/spack/packages/mpich/package.py index 703614a587..19a1efe9c3 100644 --- a/var/spack/packages/mpich/package.py +++ b/var/spack/packages/mpich/package.py @@ -32,7 +32,7 @@ class Mpich(Package): list_url = "http://www.mpich.org/static/downloads/" list_depth = 2 - versions = { '3.0.4' : '9c5d5d4fe1e17dd12153f40bc5b6dbc0' } + version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0') provides('mpi@:3', when='@3:') provides('mpi@:1', when='@1:') diff --git a/var/spack/packages/mrnet/package.py b/var/spack/packages/mrnet/package.py index 89eeaf1e71..6e9766f275 100644 --- a/var/spack/packages/mrnet/package.py +++ b/var/spack/packages/mrnet/package.py @@ -5,8 +5,9 @@ class Mrnet(Package): homepage = "http://paradyn.org/mrnet" url = "ftp://ftp.cs.wisc.edu/paradyn/mrnet/mrnet_4.0.0.tar.gz" - versions = { '4.0.0' : 'd00301c078cba57ef68613be32ceea2f', } - versions = { '4.1.0' : '5a248298b395b329e2371bf25366115c', } + version('4.0.0', 'd00301c078cba57ef68613be32ceea2f') + version('4.1.0', '5a248298b395b329e2371bf25366115c') + parallel = False depends_on("boost") diff --git a/var/spack/packages/mvapich2/package.py b/var/spack/packages/mvapich2/package.py index f372679f49..5b62835bf9 100644 --- a/var/spack/packages/mvapich2/package.py +++ b/var/spack/packages/mvapich2/package.py @@ -2,11 +2,12 @@ from spack import * class Mvapich2(Package): """mvapich2 is an MPI implmenetation for infiniband networks.""" - homepage = "http://mvapich.cse.ohio-state.edu/" - url = "http://mvapich.cse.ohio-state.edu/download/mvapich2/mv2/mvapich2-1.9.tgz" - versions = { '1.9' : '5dc58ed08fd3142c260b70fe297e127c', } + version('1.9', '5dc58ed08fd3142c260b70fe297e127c', + url="http://mvapich.cse.ohio-state.edu/download/mvapich2/mv2/mvapich2-1.9.tgz") + version('2.0', '9fbb68a4111a8b6338e476dc657388b4', + url='http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.0.tar.gz') provides('mpi@:1', when='@1.9:') diff --git a/var/spack/packages/ncurses/package.py b/var/spack/packages/ncurses/package.py index 221860374b..4885caa628 100644 --- a/var/spack/packages/ncurses/package.py +++ b/var/spack/packages/ncurses/package.py @@ -8,14 +8,12 @@ class Ncurses(Package): """ homepage = "http://invisible-island.net/ncurses/ncurses.html" - url = "http://invisible-island.net/datafiles/release/ncurses.tar.gz" - versions = { 'stable' : '8cb9c412e5f2d96bc6f459aa8c6282a1' } + version('5.9', '8cb9c412e5f2d96bc6f459aa8c6282a1', + url='http://invisible-island.net/datafiles/release/ncurses.tar.gz') def install(self, spec, prefix): configure("--prefix=%s" % prefix) make() make("install") - def url_for_version(self, version): - return "http://invisible-island.net/datafiles/release/ncurses.tar.gz" diff --git a/var/spack/packages/openmpi/package.py b/var/spack/packages/openmpi/package.py index 5ac231a33f..0ce09bdd8d 100644 --- a/var/spack/packages/openmpi/package.py +++ b/var/spack/packages/openmpi/package.py @@ -12,7 +12,7 @@ class Openmpi(Package): homepage = "http://www.open-mpi.org" url = "http://www.open-mpi.org/software/ompi/v1.6/downloads/openmpi-1.6.5.tar.bz2" - versions = { '1.6.5' : '03aed2a4aa4d0b27196962a2a65fc475', } + version('1.6.5', '03aed2a4aa4d0b27196962a2a65fc475') provides('mpi@:2') diff --git a/var/spack/packages/parmetis/package.py b/var/spack/packages/parmetis/package.py index 10a48503b2..d8cd337304 100644 --- a/var/spack/packages/parmetis/package.py +++ b/var/spack/packages/parmetis/package.py @@ -8,7 +8,7 @@ class Parmetis(Package): 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" - versions = { '4.0.3' : 'f69c479586bf6bb7aff6a9bc0c739628', } + version('4.0.3', 'f69c479586bf6bb7aff6a9bc0c739628') depends_on('mpi') diff --git a/var/spack/packages/pmgr_collective/package.py b/var/spack/packages/pmgr_collective/package.py index 0874e2d17b..5d9b02acc3 100644 --- a/var/spack/packages/pmgr_collective/package.py +++ b/var/spack/packages/pmgr_collective/package.py @@ -30,7 +30,7 @@ class PmgrCollective(Package): homepage = "http://www.sourceforge.net/projects/pmgrcollective" url = "http://downloads.sourceforge.net/project/pmgrcollective/pmgrcollective/PMGR_COLLECTIVE-1.0/pmgr_collective-1.0.tgz" - versions = { '1.0' : '0384d008774274cc3fc7b4d810dfd07e' } + version('1.0', '0384d008774274cc3fc7b4d810dfd07e') def install(self, spec, prefix): make('PREFIX="' + prefix + '"') diff --git a/var/spack/packages/scr/package.py b/var/spack/packages/scr/package.py index cb908e830e..d480dba62f 100644 --- a/var/spack/packages/scr/package.py +++ b/var/spack/packages/scr/package.py @@ -30,7 +30,7 @@ class Scr(Package): depends_on("mpi") - versions = { '1.1-7' : 'a5930e9ab27d1b7049447c2fd7734ebd' } + version('1.1-7', 'a5930e9ab27d1b7049447c2fd7734ebd') def install(self, spec, prefix): configure("--prefix=" + prefix, diff --git a/var/spack/packages/spindle/package.py b/var/spack/packages/spindle/package.py index 0d106221d8..bb0b74ab6f 100644 --- a/var/spack/packages/spindle/package.py +++ b/var/spack/packages/spindle/package.py @@ -29,7 +29,7 @@ class Spindle(Package): url = "https://github.com/hpc/Spindle/archive/v0.8.1.tar.gz" list_url = "https://github.com/hpc/Spindle/releases" - versions = {'0.8.1' : 'f11793a6b9d8df2cd231fccb2857d912' } + version('0.8.1', 'f11793a6b9d8df2cd231fccb2857d912') depends_on("launchmon") diff --git a/var/spack/packages/stat/package.py b/var/spack/packages/stat/package.py index 9f156d53e7..583ae48e82 100644 --- a/var/spack/packages/stat/package.py +++ b/var/spack/packages/stat/package.py @@ -5,8 +5,8 @@ class Stat(Package): homepage = "http://paradyn.org/STAT/STAT.html" url = "https://github.com/lee218llnl/stat/archive/v2.0.0.tar.gz" - versions = { '2.0.0' : 'c7494210b0ba26b577171b92838e1a9b', } - versions = { '2.1.0' : 'ece26beaf057aa9134d62adcdda1ba91', } + version('2.0.0', 'c7494210b0ba26b577171b92838e1a9b') + version('2.1.0', 'ece26beaf057aa9134d62adcdda1ba91') depends_on('libdwarf') depends_on('dyninst') diff --git a/var/spack/packages/tau/package.py b/var/spack/packages/tau/package.py index 62c467b572..8d9dbe1759 100644 --- a/var/spack/packages/tau/package.py +++ b/var/spack/packages/tau/package.py @@ -10,7 +10,8 @@ class Tau(Package): 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" - versions = { '2.23.1' : '6593b47ae1e7a838e632652f0426fe72', } + version('2.23.1', '6593b47ae1e7a838e632652f0426fe72') + def install(self, spec, prefix): # TAU isn't happy with directories that have '@' in the path. Sigh. diff --git a/var/spack/packages/tmux/package.py b/var/spack/packages/tmux/package.py index d4e3d9f829..23d36db427 100644 --- a/var/spack/packages/tmux/package.py +++ b/var/spack/packages/tmux/package.py @@ -10,7 +10,7 @@ class Tmux(Package): homepage = "http://tmux.sourceforge.net" url = "http://downloads.sourceforge.net/project/tmux/tmux/tmux-1.9/tmux-1.9a.tar.gz" - versions = { '1.9a' : 'b07601711f96f1d260b390513b509a2d', } + version('1.9a', 'b07601711f96f1d260b390513b509a2d') depends_on('libevent') depends_on('ncurses') diff --git a/var/spack/packages/vim/package.py b/var/spack/packages/vim/package.py index 9398134b50..5c6d7cb56b 100644 --- a/var/spack/packages/vim/package.py +++ b/var/spack/packages/vim/package.py @@ -13,19 +13,17 @@ class Vim(Package): url = "ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2" list_url = "http://ftp.vim.org/pub/vim/unix/" - versions = { - '7.4' : '607e135c559be642f210094ad023dc65', - '7.3' : '5b9510a17074e2b37d8bb38ae09edbf2', - '7.2' : 'f0901284b338e448bfd79ccca0041254', - '7.1' : '44c6b4914f38d6f9aa959640b89da329', - '7.0' : '4ca69757678272f718b1041c810d82d8', - '6.4' : '774c14d93ce58674b3b2c880edd12d77', - '6.3' : '821fda8f14d674346b87e3ef9cb96389', - '6.2' : 'c49d360bbd069d00e2a57804f2a123d9', - '6.1.405' : 'd220ff58f2c72ed606e6d0297c2f2a7c', - '6.1' : '7fd0f915adc7c0dab89772884268b030', - '6.0' : '9d9ca84d489af6b3f54639dd97af3774', - } + version('7.4', '607e135c559be642f210094ad023dc65') + version('7.3', '5b9510a17074e2b37d8bb38ae09edbf2') + version('7.2', 'f0901284b338e448bfd79ccca0041254') + version('7.1', '44c6b4914f38d6f9aa959640b89da329') + version('7.0', '4ca69757678272f718b1041c810d82d8') + version('6.4', '774c14d93ce58674b3b2c880edd12d77') + version('6.3', '821fda8f14d674346b87e3ef9cb96389') + version('6.2', 'c49d360bbd069d00e2a57804f2a123d9') + version('6.1.405', 'd220ff58f2c72ed606e6d0297c2f2a7c') + version('6.1', '7fd0f915adc7c0dab89772884268b030') + version('6.0', '9d9ca84d489af6b3f54639dd97af3774') def install(self, spec, prefix): configure("--prefix=%s" % prefix) diff --git a/var/spack/packages/zlib/package.py b/var/spack/packages/zlib/package.py index 608b27ddd3..2770f781ac 100644 --- a/var/spack/packages/zlib/package.py +++ b/var/spack/packages/zlib/package.py @@ -9,7 +9,7 @@ class Zlib(Package): homepage = "http://zlib.net" url = "http://zlib.net/zlib-1.2.8.tar.gz" - versions = { '1.2.8' : '44d667c142d7cda120332623eab69f40', } + version('1.2.8', '44d667c142d7cda120332623eab69f40') def install(self, spec, prefix): configure("--prefix=%s" % prefix) -- cgit v1.2.3-70-g09d2 From 5dffa2671124024bdb15d292751abd998702ab0d Mon Sep 17 00:00:00 2001 From: Luc Jaulmes Date: Fri, 20 Jun 2014 17:15:32 -0700 Subject: first try for ompss build script --- var/spack/packages/ompss/package.py | 41 +++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 var/spack/packages/ompss/package.py (limited to 'var') diff --git a/var/spack/packages/ompss/package.py b/var/spack/packages/ompss/package.py new file mode 100644 index 0000000000..32c9e13e29 --- /dev/null +++ b/var/spack/packages/ompss/package.py @@ -0,0 +1,41 @@ +from spack import * +import os +import glob +import subprocess + +# working config lines for ompss 14.06 : +#./mcxx-1.99.2/config.log: $ ./configure --prefix=/usr/gapps/exmatex/ompss --with-nanox=/usr/gapps/exmatex/ompss --enable-ompss --with-mpi=/opt/mvapich2-intel-shmem-1.7 --enable-tl-openmp-profile --enable-tl-openmp-intel +#./nanox-0.7/config.log: $ ./configure --prefix=/usr/gapps/exmatex/ompss --with-mcc=/usr/gapps/exmatex/ompss/ --with-hwloc=/usr + +class Ompss(Package): + homepage = "http://pm.bsc.es/" + url = "http://pm.bsc.es/sites/default/files/ftp/ompss/releases/ompss-14.06.tar.gz" + versions = { '14.06' : '99be5dce74c0d7eea42636d26af47b4181ae2e11' } + + # all dependencies are optional, really + depends_on("mpi") + #depends_on("openmp") + #depends_on("hwloc") + + def install(self, spec, prefix): + if 'openmpi' in spec: + mpi = spec['openmpi'] + elif 'mpich' in spec: + mpi = spec['mpich'] + elif 'mvapich' in spec: + mpi = spec['mvapich'] + + os.chdir(glob.glob('./nanox-*').pop()) + #configure("-prefix=" + prefix + " -with-mcc=" + prefix + " -with-hwloc=" + spec['hwloc'].prefix) + #configure("-prefix=" + prefix, "-with-mcc=" + prefix) + subprocess.check_call(["configure", "-prefix=" + prefix, "-with-mcc=" + prefix]) + make() + make("install") + + os.chdir(glob.glob('../mcxx-*').pop()) + #configure("-prefix=" + prefix + " -with-nanox=" + prefix + " -enable-ompss -with-mpi=" + mpi.prefix) + #configure("-prefix=" + prefix, "-with-nanox=" + prefix, "-enable-ompss", "-with-mpi=" + mpi.prefix) + subprocess.check_call(['configure', "-prefix=" + prefix, "-with-nanox=" + prefix, "-enable-ompss", "-with-mpi=" + mpi.prefix]) + make() + make("install") + -- cgit v1.2.3-70-g09d2 From 5a4881c086111a07d93e0e7d5d4f25ba09bb56cc Mon Sep 17 00:00:00 2001 From: Luc Jaulmes Date: Fri, 20 Jun 2014 17:15:32 -0700 Subject: Adding Extrae and OmpSs with some of their dependencies, hwloc and PAPI. Extrae does not compile for latest versions of any MPI implementation. --- var/spack/packages/extrae/package.py | 29 +++++++++++++++++++++++++++++ var/spack/packages/hwloc/package.py | 15 +++++++++++++++ var/spack/packages/mvapich2/package.py | 2 -- var/spack/packages/ompss/package.py | 19 +++++++++---------- var/spack/packages/papi/package.py | 29 +++++++++++++++++++++++++++++ 5 files changed, 82 insertions(+), 12 deletions(-) create mode 100644 var/spack/packages/extrae/package.py create mode 100644 var/spack/packages/hwloc/package.py create mode 100644 var/spack/packages/papi/package.py (limited to 'var') diff --git a/var/spack/packages/extrae/package.py b/var/spack/packages/extrae/package.py new file mode 100644 index 0000000000..a06f02d3df --- /dev/null +++ b/var/spack/packages/extrae/package.py @@ -0,0 +1,29 @@ +from spack import * + +class Extrae(Package): + homepage = "http://www.bsc.es/computer-sciences/extrae" + url = "http://www.bsc.es/ssl/apps/performanceTools/files/extrae-2.5.1.tar.bz2" + versions = { '2.5.1' : '422376b9c68243bd36a8a73fa62de106', } + + depends_on("mpi") + depends_on("dyninst") + depends_on("libunwind") + depends_on("boost") + depends_on("libdwarf") + depends_on("papi") + + def install(self, spec, prefix): + if 'openmpi' in spec: + mpi = spec['openmpi'] + if spec.satisfies('@2.5.1') and spec.satisfies('^openmpi@1.6.5'): + tty.error("Some headers conflict when using OpenMPI 1.6.5. Please use 1.6 instead.") + elif 'mpich' in spec: + mpi = spec['mpich'] + elif 'mvapich2' in spec: + mpi = spec['mvapich2'] + + configure("--prefix=%s" % prefix, "--with-mpi=%s" % mpi.prefix, "--with-unwind=%s" % spec['libunwind'].prefix, "--with-dyninst=%s" % spec['dyninst'].prefix, "--with-boost=%s" % spec['boost'].prefix, "--with-dwarf=%s" % spec['libdwarf'].prefix, "--with-papi=%s" % spec['papi'].prefix, "--with-dyninst-headers=%s" % spec['dyninst'].prefix.include, "--with-dyninst-libs=%s" % spec['dyninst'].prefix.lib) + + make() + make("install", parallel=False) + diff --git a/var/spack/packages/hwloc/package.py b/var/spack/packages/hwloc/package.py new file mode 100644 index 0000000000..57c2ae2fa9 --- /dev/null +++ b/var/spack/packages/hwloc/package.py @@ -0,0 +1,15 @@ +from spack import * + +class Hwloc(Package): + """The Portable Hardware Locality (hwloc) software package provides a portable abstraction (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. It also gathers various system attributes such as cache and memory information as well as the locality of I/O devices such as network interfaces, InfiniBand HCAs or GPUs. It primarily aims at helping applications with gathering information about modern computing hardware so as to exploit it accordingly and efficiently.""" + homepage = "http://www.open-mpi.org/projects/hwloc/" + url = "http://www.open-mpi.org/software/hwloc/v1.9/downloads/hwloc-1.9.tar.gz" + + versions = { '1.9' : '1f9f9155682fe8946a97c08896109508', } + + def install(self, spec, prefix): + configure("--prefix=%s" % prefix) + + make() + make("install") + diff --git a/var/spack/packages/mvapich2/package.py b/var/spack/packages/mvapich2/package.py index 5b62835bf9..0f0f849c51 100644 --- a/var/spack/packages/mvapich2/package.py +++ b/var/spack/packages/mvapich2/package.py @@ -11,8 +11,6 @@ class Mvapich2(Package): provides('mpi@:1', when='@1.9:') - patch('ad_lustre_rwcontig_open_source.patch', when='@1.9:') - def install(self, spec, prefix): configure( "--prefix=" + prefix, diff --git a/var/spack/packages/ompss/package.py b/var/spack/packages/ompss/package.py index 32c9e13e29..66a126579e 100644 --- a/var/spack/packages/ompss/package.py +++ b/var/spack/packages/ompss/package.py @@ -1,11 +1,10 @@ from spack import * import os import glob -import subprocess # working config lines for ompss 14.06 : -#./mcxx-1.99.2/config.log: $ ./configure --prefix=/usr/gapps/exmatex/ompss --with-nanox=/usr/gapps/exmatex/ompss --enable-ompss --with-mpi=/opt/mvapich2-intel-shmem-1.7 --enable-tl-openmp-profile --enable-tl-openmp-intel -#./nanox-0.7/config.log: $ ./configure --prefix=/usr/gapps/exmatex/ompss --with-mcc=/usr/gapps/exmatex/ompss/ --with-hwloc=/usr +#./nanox-0.7/config.log: $ ./configure --prefix=/usr/gapps/exmatex/ompss --with-mcc=/usr/gapps/exmatex/ompss/ --with-hwloc=/usr +#./mcxx-1.99.2/config.log: $ ./configure --prefix=/usr/gapps/exmatex/ompss --with-nanox=/usr/gapps/exmatex/ompss --enable-ompss --with-mpi=/opt/mvapich2-intel-shmem-1.7 --enable-tl-openmp-profile --enable-tl-openmp-intel class Ompss(Package): homepage = "http://pm.bsc.es/" @@ -15,7 +14,7 @@ class Ompss(Package): # all dependencies are optional, really depends_on("mpi") #depends_on("openmp") - #depends_on("hwloc") + depends_on("hwloc") def install(self, spec, prefix): if 'openmpi' in spec: @@ -25,17 +24,17 @@ class Ompss(Package): elif 'mvapich' in spec: mpi = spec['mvapich'] + openmp_options = ["--enable-tl-openmp-profile"] + if spec.satisfies('%intel'): + openmp_options.append( "--enable-tl-openmp-intel" ) + os.chdir(glob.glob('./nanox-*').pop()) - #configure("-prefix=" + prefix + " -with-mcc=" + prefix + " -with-hwloc=" + spec['hwloc'].prefix) - #configure("-prefix=" + prefix, "-with-mcc=" + prefix) - subprocess.check_call(["configure", "-prefix=" + prefix, "-with-mcc=" + prefix]) + configure("--prefix=%s" % prefix, "--with-mcc=%s" % prefix, "--with-hwloc=%s" % spec['hwloc'].prefix) make() make("install") os.chdir(glob.glob('../mcxx-*').pop()) - #configure("-prefix=" + prefix + " -with-nanox=" + prefix + " -enable-ompss -with-mpi=" + mpi.prefix) - #configure("-prefix=" + prefix, "-with-nanox=" + prefix, "-enable-ompss", "-with-mpi=" + mpi.prefix) - subprocess.check_call(['configure', "-prefix=" + prefix, "-with-nanox=" + prefix, "-enable-ompss", "-with-mpi=" + mpi.prefix]) + configure("--prefix=%s" % prefix, "--with-nanox=%s" % prefix, "--enable-ompss", "--with-mpi=%s" % mpi.prefix, *openmp_options) make() make("install") diff --git a/var/spack/packages/papi/package.py b/var/spack/packages/papi/package.py new file mode 100644 index 0000000000..15a621985b --- /dev/null +++ b/var/spack/packages/papi/package.py @@ -0,0 +1,29 @@ +from spack import * +import os + +class Papi(Package): + """PAPI provides the tool designer and application engineer with a consistent interface and methodology for use of the performance counter hardware found in most major microprocessors. PAPI enables software engineers to see, in near real time, the relation between software performance and processor events. + In addition Component PAPI provides access to a collection of 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" + + versions = { '5.3.0' : '367961dd0ab426e5ae367c2713924ffb', } + + def install(self, spec, prefix): + os.chdir("src/") + + configure_args=["--prefix=%s" % prefix] + + # need to force consistency in the use of compilers + if spec.satisfies('%gcc'): + configure_args.append('CC=gcc') + configure_args.append('MPICH_CC=gcc') + if spec.satisfies('%intel'): + configure_args.append('CC=icc') + configure_args.append('MPICH_CC=icc') + + configure(*configure_args) + + make() + make("install") + -- cgit v1.2.3-70-g09d2 From 853784d3829166f0d5b797dffcc2a8b63723e350 Mon Sep 17 00:00:00 2001 From: Luc Jaulmes Date: Tue, 24 Jun 2014 11:06:09 -0700 Subject: Added Paraver and dependencies, restricted Extrae to OpenMPI 1.6 --- var/spack/packages/extrae/package.py | 8 ++++--- var/spack/packages/ompss/package.py | 1 + var/spack/packages/paraver/package.py | 40 ++++++++++++++++++++++++++++++++ var/spack/packages/wx/package.py | 17 ++++++++++++++ var/spack/packages/wxpropgrid/package.py | 17 ++++++++++++++ 5 files changed, 80 insertions(+), 3 deletions(-) create mode 100644 var/spack/packages/paraver/package.py create mode 100644 var/spack/packages/wx/package.py create mode 100644 var/spack/packages/wxpropgrid/package.py (limited to 'var') diff --git a/var/spack/packages/extrae/package.py b/var/spack/packages/extrae/package.py index a06f02d3df..a4dae485b5 100644 --- a/var/spack/packages/extrae/package.py +++ b/var/spack/packages/extrae/package.py @@ -1,11 +1,13 @@ from spack import * class Extrae(Package): + """Extrae is the package devoted to generate tracefiles which can be analyzed later by Paraver. Extrae is a tool that uses different interposition mechanisms to inject probes into the target application so as to gather information regarding the application performance. The Extrae instrumentation package can instrument the MPI programin model, and the following parallel programming models either alone or in conjunction with MPI : OpenMP, CUDA, OpenCL, pthread, OmpSs""" homepage = "http://www.bsc.es/computer-sciences/extrae" url = "http://www.bsc.es/ssl/apps/performanceTools/files/extrae-2.5.1.tar.bz2" versions = { '2.5.1' : '422376b9c68243bd36a8a73fa62de106', } - depends_on("mpi") + #depends_on("mpi") + depends_on("openmpi@:1.6") depends_on("dyninst") depends_on("libunwind") depends_on("boost") @@ -15,8 +17,8 @@ class Extrae(Package): def install(self, spec, prefix): if 'openmpi' in spec: mpi = spec['openmpi'] - if spec.satisfies('@2.5.1') and spec.satisfies('^openmpi@1.6.5'): - tty.error("Some headers conflict when using OpenMPI 1.6.5. Please use 1.6 instead.") + #if spec.satisfies('@2.5.1') and spec.satisfies('^openmpi@1.6.5'): + # tty.error("Some headers conflict when using OpenMPI 1.6.5. Please use 1.6 instead.") elif 'mpich' in spec: mpi = spec['mpich'] elif 'mvapich2' in spec: diff --git a/var/spack/packages/ompss/package.py b/var/spack/packages/ompss/package.py index 66a126579e..4878a589bf 100644 --- a/var/spack/packages/ompss/package.py +++ b/var/spack/packages/ompss/package.py @@ -7,6 +7,7 @@ import glob #./mcxx-1.99.2/config.log: $ ./configure --prefix=/usr/gapps/exmatex/ompss --with-nanox=/usr/gapps/exmatex/ompss --enable-ompss --with-mpi=/opt/mvapich2-intel-shmem-1.7 --enable-tl-openmp-profile --enable-tl-openmp-intel class Ompss(Package): + """OmpSs is an effort to integrate features from the StarSs programming model developed by BSC into a single programming model. In particular, our objective is to extend OpenMP with new directives to support asynchronous parallelism and heterogeneity (devices like GPUs). However, it can also be understood as new directives extending other accelerator based APIs like CUDA or OpenCL. Our OmpSs environment is built on top of our Mercurium compiler and Nanos++ runtime system.""" homepage = "http://pm.bsc.es/" url = "http://pm.bsc.es/sites/default/files/ftp/ompss/releases/ompss-14.06.tar.gz" versions = { '14.06' : '99be5dce74c0d7eea42636d26af47b4181ae2e11' } diff --git a/var/spack/packages/paraver/package.py b/var/spack/packages/paraver/package.py new file mode 100644 index 0000000000..d437adfa5d --- /dev/null +++ b/var/spack/packages/paraver/package.py @@ -0,0 +1,40 @@ +from spack import * +import os + +class Paraver(Package): + """"A very powerful performance visualization and analysis tool based on + traces that can be used to analyse any information that is expressed on its input trace format. + Traces for parallel MPI, OpenMP and other programs can be genereated with Extrae.""" + homepage = "http://www.bsc.es/computer-sciences/performance-tools/paraver" + url = "http://www.bsc.es/ssl/apps/performanceTools/files/paraver-sources-4.5.2.tar.gz" + + versions = { '4.5.2' : 'ea463dd494519395c99ebae294edee17', } + + depends_on("boost") + #depends_on("extrae") + depends_on("wx") + depends_on("wxpropgrid") + + def install(self, spec, prefix): + os.chdir("ptools_common_files") + configure("--prefix=%s" % prefix) + make() + make("install") + + os.chdir("../paraver-kernel") + #"--with-extrae=%s" % spec['extrae'].prefix, + configure("--prefix=%s" % prefix, "--with-ptools-common-files=%s" % prefix, "--with-boost=%s" % spec['boost'].prefix, "--with-boost-serialization=boost_serialization") + make() + make("install") + + os.chdir("../paraver-toolset") + configure("--prefix=%s" % prefix) + make() + make("install") + + os.chdir("../wxparaver") + #"--with-extrae=%s" % spec['extrae'].prefix, + configure("--prefix=%s" % prefix, "--with-paraver=%s" % prefix, "--with-boost=%s" % spec['boost'].prefix, "--with-boost-serialization=boost_serialization", "--with-wxdir=%s" % spec['wx'].prefix.bin) + make() + make("install") + diff --git a/var/spack/packages/wx/package.py b/var/spack/packages/wx/package.py new file mode 100644 index 0000000000..de12f141b8 --- /dev/null +++ b/var/spack/packages/wx/package.py @@ -0,0 +1,17 @@ +from spack import * + +class Wx(Package): + """wxWidgets is a C++ library that lets developers create applications for Windows, Mac OS X, Linux and other platforms with a single code base. It has popular language bindings for Python, Perl, Ruby and many other languages, and unlike other cross-platform toolkits, wxWidgets gives applications a truly native look and feel because it uses the platform's native API rather than emulating the GUI. It's also extensive, free, open-source and mature.""" + homepage = "http://www.wxwidgets.org/" + + url = "https://sourceforge.net/projects/wxwindows/files/2.8.12/wxWidgets-2.8.12.tar.gz" + versions = { '2.8.12' : '2fa39da14bc06ea86fe902579fedc5b1', } +# url = "https://sourceforge.net/projects/wxwindows/files/3.0.1/wxWidgets-3.0.1.tar.bz2" +# versions = { '3.0.1' : 'dad1f1cd9d4c370cbc22700dc492da31', } + + def install(self, spec, prefix): + configure("--prefix=%s" % prefix, "--enable-unicode", "--disable-precomp-headers") + + make(parallel=False) + make("install") + diff --git a/var/spack/packages/wxpropgrid/package.py b/var/spack/packages/wxpropgrid/package.py new file mode 100644 index 0000000000..5cc244ca65 --- /dev/null +++ b/var/spack/packages/wxpropgrid/package.py @@ -0,0 +1,17 @@ +from spack import * + +class Wxpropgrid(Package): + """wxPropertyGrid is a property sheet control for wxWidgets. In other words, it is a specialized two-column grid for editing properties such as strings, numbers, flagsets, string arrays, and colours.""" + homepage = "http://wxpropgrid.sourceforge.net/" + url = "http://prdownloads.sourceforge.net/wxpropgrid/wxpropgrid-1.4.15-src.tar.gz" + + versions = { '1.4.15' : 'f44b5cd6fd60718bacfabbf7994f1e93', } + + depends_on("wx") + + def install(self, spec, prefix): + configure("--prefix=%s" % prefix, "--with-wxdir=%s" % spec['wx'].prefix.bin, "--enable-unicode") + + make() + make("install") + -- cgit v1.2.3-70-g09d2 From 5f3bcbfded0a4db4ec3979b82cfdb2c072f6c742 Mon Sep 17 00:00:00 2001 From: Luc Jaulmes Date: Tue, 29 Jul 2014 09:11:06 -0700 Subject: Addind missing dependency nanos->extrae necessary for traces --- var/spack/packages/ompss/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'var') diff --git a/var/spack/packages/ompss/package.py b/var/spack/packages/ompss/package.py index 4878a589bf..8335ef0a80 100644 --- a/var/spack/packages/ompss/package.py +++ b/var/spack/packages/ompss/package.py @@ -16,6 +16,7 @@ class Ompss(Package): depends_on("mpi") #depends_on("openmp") depends_on("hwloc") + depends_on("extrae") def install(self, spec, prefix): if 'openmpi' in spec: @@ -30,7 +31,7 @@ class Ompss(Package): openmp_options.append( "--enable-tl-openmp-intel" ) os.chdir(glob.glob('./nanox-*').pop()) - configure("--prefix=%s" % prefix, "--with-mcc=%s" % prefix, "--with-hwloc=%s" % spec['hwloc'].prefix) + configure("--prefix=%s" % prefix, "--with-mcc=%s" % prefix, "--with-extrae=%s" % spec['extrae'].prefix, "--with-hwloc=%s" % spec['hwloc'].prefix) make() make("install") -- cgit v1.2.3-70-g09d2 From e011b767fafc1c7287db1cfd254266171e4e382f Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Thu, 31 Jul 2014 14:09:38 -0700 Subject: Converting Luc's packages to the new version format. --- var/spack/packages/extrae/package.py | 11 +++++++++-- var/spack/packages/hwloc/package.py | 14 ++++++++++++-- var/spack/packages/ompss/package.py | 11 +++++++++-- var/spack/packages/papi/package.py | 12 +++++++++--- var/spack/packages/paraver/package.py | 13 +++++++------ var/spack/packages/wx/package.py | 17 ++++++++++++----- var/spack/packages/wxpropgrid/package.py | 7 +++++-- 7 files changed, 63 insertions(+), 22 deletions(-) (limited to 'var') diff --git a/var/spack/packages/extrae/package.py b/var/spack/packages/extrae/package.py index a4dae485b5..3b842bc1ec 100644 --- a/var/spack/packages/extrae/package.py +++ b/var/spack/packages/extrae/package.py @@ -1,10 +1,17 @@ from spack import * class Extrae(Package): - """Extrae is the package devoted to generate tracefiles which can be analyzed later by Paraver. Extrae is a tool that uses different interposition mechanisms to inject probes into the target application so as to gather information regarding the application performance. The Extrae instrumentation package can instrument the MPI programin model, and the following parallel programming models either alone or in conjunction with MPI : OpenMP, CUDA, OpenCL, pthread, OmpSs""" + """Extrae is the package devoted to generate tracefiles which can + be analyzed later by Paraver. Extrae is a tool that uses + different interposition mechanisms to inject probes into the + target application so as to gather information regarding the + application performance. The Extrae instrumentation package can + instrument the MPI programin model, and the following parallel + programming models either alone or in conjunction with MPI : + OpenMP, CUDA, OpenCL, pthread, OmpSs""" homepage = "http://www.bsc.es/computer-sciences/extrae" url = "http://www.bsc.es/ssl/apps/performanceTools/files/extrae-2.5.1.tar.bz2" - versions = { '2.5.1' : '422376b9c68243bd36a8a73fa62de106', } + version('2.5.1', '422376b9c68243bd36a8a73fa62de106') #depends_on("mpi") depends_on("openmpi@:1.6") diff --git a/var/spack/packages/hwloc/package.py b/var/spack/packages/hwloc/package.py index 57c2ae2fa9..31a31f376a 100644 --- a/var/spack/packages/hwloc/package.py +++ b/var/spack/packages/hwloc/package.py @@ -1,11 +1,21 @@ from spack import * class Hwloc(Package): - """The Portable Hardware Locality (hwloc) software package provides a portable abstraction (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. It also gathers various system attributes such as cache and memory information as well as the locality of I/O devices such as network interfaces, InfiniBand HCAs or GPUs. It primarily aims at helping applications with gathering information about modern computing hardware so as to exploit it accordingly and efficiently.""" + """The Portable Hardware Locality (hwloc) software package + provides a portable abstraction (across OS, versions, + architectures, ...) of the hierarchical topology of modern + architectures, including NUMA memory nodes, sockets, shared + caches, cores and simultaneous multithreading. It also gathers + various system attributes such as cache and memory information + as well as the locality of I/O devices such as network + interfaces, InfiniBand HCAs or GPUs. It primarily aims at + helping applications with gathering information about modern + computing hardware so as to exploit it accordingly and + efficiently.""" homepage = "http://www.open-mpi.org/projects/hwloc/" url = "http://www.open-mpi.org/software/hwloc/v1.9/downloads/hwloc-1.9.tar.gz" - versions = { '1.9' : '1f9f9155682fe8946a97c08896109508', } + version('1.9', '1f9f9155682fe8946a97c08896109508') def install(self, spec, prefix): configure("--prefix=%s" % prefix) diff --git a/var/spack/packages/ompss/package.py b/var/spack/packages/ompss/package.py index 8335ef0a80..544671de38 100644 --- a/var/spack/packages/ompss/package.py +++ b/var/spack/packages/ompss/package.py @@ -7,10 +7,17 @@ import glob #./mcxx-1.99.2/config.log: $ ./configure --prefix=/usr/gapps/exmatex/ompss --with-nanox=/usr/gapps/exmatex/ompss --enable-ompss --with-mpi=/opt/mvapich2-intel-shmem-1.7 --enable-tl-openmp-profile --enable-tl-openmp-intel class Ompss(Package): - """OmpSs is an effort to integrate features from the StarSs programming model developed by BSC into a single programming model. In particular, our objective is to extend OpenMP with new directives to support asynchronous parallelism and heterogeneity (devices like GPUs). However, it can also be understood as new directives extending other accelerator based APIs like CUDA or OpenCL. Our OmpSs environment is built on top of our Mercurium compiler and Nanos++ runtime system.""" + """OmpSs is an effort to integrate features from the StarSs + programming model developed by BSC into a single programming + model. In particular, our objective is to extend OpenMP with + new directives to support asynchronous parallelism and + heterogeneity (devices like GPUs). However, it can also be + understood as new directives extending other accelerator based + APIs like CUDA or OpenCL. Our OmpSs environment is built on top + of our Mercurium compiler and Nanos++ runtime system.""" homepage = "http://pm.bsc.es/" url = "http://pm.bsc.es/sites/default/files/ftp/ompss/releases/ompss-14.06.tar.gz" - versions = { '14.06' : '99be5dce74c0d7eea42636d26af47b4181ae2e11' } + version('14.06', '99be5dce74c0d7eea42636d26af47b4181ae2e11') # all dependencies are optional, really depends_on("mpi") diff --git a/var/spack/packages/papi/package.py b/var/spack/packages/papi/package.py index 15a621985b..596f7114d6 100644 --- a/var/spack/packages/papi/package.py +++ b/var/spack/packages/papi/package.py @@ -2,12 +2,18 @@ from spack import * import os class Papi(Package): - """PAPI provides the tool designer and application engineer with a consistent interface and methodology for use of the performance counter hardware found in most major microprocessors. PAPI enables software engineers to see, in near real time, the relation between software performance and processor events. - In addition Component PAPI provides access to a collection of components that expose performance measurement opportunites across the hardware and software stack.""" + """PAPI provides the tool designer and application engineer with a + consistent interface and methodology for use of the performance + counter hardware found in most major microprocessors. PAPI + enables software engineers to see, in near real time, the + relation between software performance and processor events. In + addition Component PAPI provides access to a collection of + 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" - versions = { '5.3.0' : '367961dd0ab426e5ae367c2713924ffb', } + version('5.3.0', '367961dd0ab426e5ae367c2713924ffb') def install(self, spec, prefix): os.chdir("src/") diff --git a/var/spack/packages/paraver/package.py b/var/spack/packages/paraver/package.py index d437adfa5d..45bac95b28 100644 --- a/var/spack/packages/paraver/package.py +++ b/var/spack/packages/paraver/package.py @@ -2,13 +2,14 @@ from spack import * import os class Paraver(Package): - """"A very powerful performance visualization and analysis tool based on - traces that can be used to analyse any information that is expressed on its input trace format. - Traces for parallel MPI, OpenMP and other programs can be genereated with Extrae.""" + """"A very powerful performance visualization and analysis tool + based on traces that can be used to analyse any information that + is expressed on its input trace format. Traces for parallel MPI, + OpenMP and other programs can be genereated with Extrae.""" homepage = "http://www.bsc.es/computer-sciences/performance-tools/paraver" url = "http://www.bsc.es/ssl/apps/performanceTools/files/paraver-sources-4.5.2.tar.gz" - versions = { '4.5.2' : 'ea463dd494519395c99ebae294edee17', } + version('4.5.2', 'ea463dd494519395c99ebae294edee17') depends_on("boost") #depends_on("extrae") @@ -22,7 +23,7 @@ class Paraver(Package): make("install") os.chdir("../paraver-kernel") - #"--with-extrae=%s" % spec['extrae'].prefix, + #"--with-extrae=%s" % spec['extrae'].prefix, configure("--prefix=%s" % prefix, "--with-ptools-common-files=%s" % prefix, "--with-boost=%s" % spec['boost'].prefix, "--with-boost-serialization=boost_serialization") make() make("install") @@ -33,7 +34,7 @@ class Paraver(Package): make("install") os.chdir("../wxparaver") - #"--with-extrae=%s" % spec['extrae'].prefix, + #"--with-extrae=%s" % spec['extrae'].prefix, configure("--prefix=%s" % prefix, "--with-paraver=%s" % prefix, "--with-boost=%s" % spec['boost'].prefix, "--with-boost-serialization=boost_serialization", "--with-wxdir=%s" % spec['wx'].prefix.bin) make() make("install") diff --git a/var/spack/packages/wx/package.py b/var/spack/packages/wx/package.py index de12f141b8..1813a8c8a5 100644 --- a/var/spack/packages/wx/package.py +++ b/var/spack/packages/wx/package.py @@ -1,13 +1,20 @@ from spack import * class Wx(Package): - """wxWidgets is a C++ library that lets developers create applications for Windows, Mac OS X, Linux and other platforms with a single code base. It has popular language bindings for Python, Perl, Ruby and many other languages, and unlike other cross-platform toolkits, wxWidgets gives applications a truly native look and feel because it uses the platform's native API rather than emulating the GUI. It's also extensive, free, open-source and mature.""" + """wxWidgets is a C++ library that lets developers create + applications for Windows, Mac OS X, Linux and other platforms + with a single code base. It has popular language bindings for + Python, Perl, Ruby and many other languages, and unlike other + cross-platform toolkits, wxWidgets gives applications a truly + native look and feel because it uses the platform's native API + rather than emulating the GUI. It's also extensive, free, + open-source and mature.""" homepage = "http://www.wxwidgets.org/" - url = "https://sourceforge.net/projects/wxwindows/files/2.8.12/wxWidgets-2.8.12.tar.gz" - versions = { '2.8.12' : '2fa39da14bc06ea86fe902579fedc5b1', } -# url = "https://sourceforge.net/projects/wxwindows/files/3.0.1/wxWidgets-3.0.1.tar.bz2" -# versions = { '3.0.1' : 'dad1f1cd9d4c370cbc22700dc492da31', } + version('2.8.12', '2fa39da14bc06ea86fe902579fedc5b1', + url="https://sourceforge.net/projects/wxwindows/files/2.8.12/wxWidgets-2.8.12.tar.gz") + version('3.0.1', 'dad1f1cd9d4c370cbc22700dc492da31', + url="https://sourceforge.net/projects/wxwindows/files/3.0.1/wxWidgets-3.0.1.tar.bz2") def install(self, spec, prefix): configure("--prefix=%s" % prefix, "--enable-unicode", "--disable-precomp-headers") diff --git a/var/spack/packages/wxpropgrid/package.py b/var/spack/packages/wxpropgrid/package.py index 5cc244ca65..790cead517 100644 --- a/var/spack/packages/wxpropgrid/package.py +++ b/var/spack/packages/wxpropgrid/package.py @@ -1,11 +1,14 @@ from spack import * class Wxpropgrid(Package): - """wxPropertyGrid is a property sheet control for wxWidgets. In other words, it is a specialized two-column grid for editing properties such as strings, numbers, flagsets, string arrays, and colours.""" + """wxPropertyGrid is a property sheet control for wxWidgets. In + other words, it is a specialized two-column grid for editing + properties such as strings, numbers, flagsets, string arrays, + and colours.""" homepage = "http://wxpropgrid.sourceforge.net/" url = "http://prdownloads.sourceforge.net/wxpropgrid/wxpropgrid-1.4.15-src.tar.gz" - versions = { '1.4.15' : 'f44b5cd6fd60718bacfabbf7994f1e93', } + version('1.4.15', 'f44b5cd6fd60718bacfabbf7994f1e93') depends_on("wx") -- cgit v1.2.3-70-g09d2 From e377abc18c2cda1b967c2e663d1d9b56828ccfc0 Mon Sep 17 00:00:00 2001 From: David Boehme Date: Thu, 31 Jul 2014 17:51:23 -0700 Subject: Add Score-P packages. --- var/spack/packages/cube/package.py | 30 ++++++++++++++++++++++++ var/spack/packages/opari2/package.py | 28 ++++++++++++++++++++++ var/spack/packages/otf2/package.py | 38 ++++++++++++++++++++++++++++++ var/spack/packages/scalasca/package.py | 43 ++++++++++++++++++++++++++++++++++ var/spack/packages/scorep/package.py | 41 ++++++++++++++++++++++++++++++++ 5 files changed, 180 insertions(+) create mode 100644 var/spack/packages/cube/package.py create mode 100644 var/spack/packages/opari2/package.py create mode 100644 var/spack/packages/otf2/package.py create mode 100644 var/spack/packages/scalasca/package.py create mode 100644 var/spack/packages/scorep/package.py (limited to 'var') diff --git a/var/spack/packages/cube/package.py b/var/spack/packages/cube/package.py new file mode 100644 index 0000000000..3a4f9542c6 --- /dev/null +++ b/var/spack/packages/cube/package.py @@ -0,0 +1,30 @@ +# FIXME: Add copyright statement +# +from spack import * + +class Cube(Package): + """Cube the profile viewer for Score-P and Scalasca profiles. It + displays a multi-dimensional performance space consisting + of the dimensions (i) performance metric, (ii) call path, + and (iii) system resource.""" + + homepage = "http://www.scalasca.org/software/cube-4.x/download.html" + url = "http://apps.fz-juelich.de/scalasca/releases/cube/4.2/dist/cube-4.2.3.tar.gz" + + version('4.2.3', '8f95b9531f5a8f8134f279c2767c9b20') + + def install(self, spec, prefix): + configure_args = ["--prefix=%s" % prefix, + "--without-paraver", + "--without-gui", + "--enable-shared"] + + if spec.satisfies('%gcc'): + configure_args.append('--with-nocross-compiler-suite=gcc') + if spec.satisfies('%intel'): + configure_args.append('--with-nocross-compiler-suite=intel') + + configure(*configure_args) + + make(parallel=False) + make("install", parallel=False) diff --git a/var/spack/packages/opari2/package.py b/var/spack/packages/opari2/package.py new file mode 100644 index 0000000000..b571145195 --- /dev/null +++ b/var/spack/packages/opari2/package.py @@ -0,0 +1,28 @@ +# FIXME: Add copyright statement here + +from spack import * + +class Opari2(Package): + """OPARI2 is a source-to-source instrumentation tool for OpenMP and + hybrid codes. It surrounds OpenMP directives and runtime library + calls with calls to the POMP2 measurement interface. + OPARI2 will provide you with a new initialization method that allows + for multi-directory and parallel builds as well as the usage of + pre-instrumented libraries. Furthermore, an efficient way of + tracking parent-child relationships was added. Additionally, we + extended OPARI2 to support instrumentation of OpenMP 3.0 + tied tasks. """ + + homepage = "http://www.vi-hps.org/projects/score-p" + url = "http://www.vi-hps.org/upload/packages/opari2/opari2-1.1.2.tar.gz" + + version('1.1.2', '9a262c7ca05ff0ab5f7775ae96f3539e') + + def install(self, spec, prefix): + # FIXME: Modify the configure line to suit your build system here. + configure("--prefix=%s" % prefix, + "--enable-shared") + + # FIXME: Add logic to build and install here + make() + make("install") diff --git a/var/spack/packages/otf2/package.py b/var/spack/packages/otf2/package.py new file mode 100644 index 0000000000..6e8c398d7d --- /dev/null +++ b/var/spack/packages/otf2/package.py @@ -0,0 +1,38 @@ +# FIXME: Add copyright + +from spack import * +import os + +class Otf2(Package): + """The Open Trace Format 2 is a highly scalable, memory efficient event + trace data format plus support library.""" + + homepage = "http://www.vi-hps.org/score-p" + url = "http://www.vi-hps.org/upload/packages/otf2/otf2-1.4.tar.gz" + + version('1.4', 'a23c42e936eb9209c4e08b61c3cf5092', + url="http://www.vi-hps.org/upload/packages/otf2/otf2-1.4.tar.gz") + version('1.3.1', 'd0ffc4e858455ace4f596f910e68c9f2', + url="http://www.vi-hps.org/upload/packages/otf2/otf2-1.3.1.tar.gz") + version('1.2.1', '8fb3e11fb7489896596ae2c7c83d7fc8', + url="http://www.vi-hps.org/upload/packages/otf2/otf2-1.2.1.tar.gz") + + def install(self, spec, prefix): + # FIXME: Modify the configure line to suit your build system here. + cc = os.environ["SPACK_CC"] + + configure_args=["--prefix=%s" % prefix, + "--enable-shared"] + + if spec.satisfies('%gcc'): + configure_args.append('--with-nocross-compiler-suite=gcc') + if spec.satisfies('%intel'): + configure_args.append('--with-nocross-compiler-suite=intel') + if spec.satisfies('%pgi'): + configure_args.append('--with-nocross-compiler-suite=pgi') + + configure(*configure_args) + + # FIXME: Add logic to build and install here + make() + make("install") diff --git a/var/spack/packages/scalasca/package.py b/var/spack/packages/scalasca/package.py new file mode 100644 index 0000000000..b76d0a7df5 --- /dev/null +++ b/var/spack/packages/scalasca/package.py @@ -0,0 +1,43 @@ +# FIXME: Add copyright + +from spack import * + +class Scalasca(Package): + """Scalasca is a software tool that supports the performance optimization + of parallel programs by measuring and analyzing their runtime behavior. + The analysis identifies potential performance bottlenecks - in + particular those concerning communication and synchronization - and + offers guidance in exploring their causes.""" + + # FIXME: add a proper url for your package's homepage here. + homepage = "http://www.scalasca.org" + url = "http://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1-rc2.tar.gz" + + version('2.1-rc2', '1a95a39e5430539753e956a7524a756b') + + depends_on("mpi") + depends_on("otf2@1.4") + depends_on("cube") + + def install(self, spec, prefix): + configure_args = ["--prefix=%s" % prefix, + "--with-otf2=%s" % spec['otf2'].prefix.bin, + "--with-cube=%s" % spec['cube'].prefix.bin, + "--enable-shared"] + + if spec.satisfies('%gcc'): + configure_args.append('--with-nocross-compiler-suite=gcc') + if spec.satisfies('%intel'): + configure_args.append('--with-nocross-compiler-suite=intel') + + 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") diff --git a/var/spack/packages/scorep/package.py b/var/spack/packages/scorep/package.py new file mode 100644 index 0000000000..5c42cfdbf2 --- /dev/null +++ b/var/spack/packages/scorep/package.py @@ -0,0 +1,41 @@ +# FIXME: Add copyright statement + +from spack import * + +class Scorep(Package): + """The Score-P measurement infrastructure is a highly scalable and + easy-to-use tool suite for profiling, event tracing, and online + analysis of HPC applications.""" + + # FIXME: add a proper url for your package's homepage here. + homepage = "http://www.vi-hps.org/projects/score-p" + url = "http://www.vi-hps.org/upload/packages/scorep/scorep-1.2.3.tar.gz" + + version('1.2.3', '4978084e7cbd05b94517aa8beaea0817') + + depends_on("mpi") + depends_on("papi") + depends_on("otf2@1.2:1.2.1") + depends_on("opari2") + depends_on("cube") + + def install(self, spec, prefix): + 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"] + + if spec.satisfies('%gcc'): + configure_args.append('--with-nocross-compiler-suite=gcc') + if spec.satisfies('%intel'): + configure_args.append('--with-nocross-compiler-suite=intel') + if spec.satisfies('%pgi'): + configure_args.append('--with-nocross-compiler-suite=pgi') + + configure(*configure_args) + + make() + make("install") -- cgit v1.2.3-70-g09d2 From 61e2cb56a440e0f1f3ddf84fdfeb048d8fb80443 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Fri, 1 Aug 2014 09:04:36 -0700 Subject: Got version 1.2.1 building, but 1.3 and onwards are different. --- var/spack/packages/otf2/package.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'var') diff --git a/var/spack/packages/otf2/package.py b/var/spack/packages/otf2/package.py index 6e8c398d7d..7e28414623 100644 --- a/var/spack/packages/otf2/package.py +++ b/var/spack/packages/otf2/package.py @@ -4,7 +4,7 @@ from spack import * import os class Otf2(Package): - """The Open Trace Format 2 is a highly scalable, memory efficient event + """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" @@ -17,20 +17,26 @@ class Otf2(Package): version('1.2.1', '8fb3e11fb7489896596ae2c7c83d7fc8', url="http://www.vi-hps.org/upload/packages/otf2/otf2-1.2.1.tar.gz") + + @when('@:1.2') + def version_specific_args(self, args): + return ["--with-platform=disabled"] + + @when('@1.3:') + def version_specific_args(self, args): + # TODO: figure out what scorep's build does as of otf2 1.3 + return [] + + def install(self, spec, prefix): # FIXME: Modify the configure line to suit your build system here. cc = os.environ["SPACK_CC"] configure_args=["--prefix=%s" % prefix, - "--enable-shared"] - - if spec.satisfies('%gcc'): - configure_args.append('--with-nocross-compiler-suite=gcc') - if spec.satisfies('%intel'): - configure_args.append('--with-nocross-compiler-suite=intel') - if spec.satisfies('%pgi'): - configure_args.append('--with-nocross-compiler-suite=pgi') - + "--enable-shared"]) + + configure_args.extend(self.version_specific_args()) + configure(*configure_args) # FIXME: Add logic to build and install here -- cgit v1.2.3-70-g09d2 From 513b5aecf1e34e775d98f12c41c9bd526a8504a5 Mon Sep 17 00:00:00 2001 From: David Boehme Date: Fri, 1 Aug 2014 10:16:08 -0700 Subject: Improve compiler configuration in otf2 package --- var/spack/packages/otf2/package.py | 46 +++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 8 deletions(-) (limited to 'var') diff --git a/var/spack/packages/otf2/package.py b/var/spack/packages/otf2/package.py index 7e28414623..6f4ab997af 100644 --- a/var/spack/packages/otf2/package.py +++ b/var/spack/packages/otf2/package.py @@ -1,6 +1,7 @@ # FIXME: Add copyright from spack import * +from contextlib import closing import os class Otf2(Package): @@ -17,28 +18,57 @@ 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') - def version_specific_args(self, args): + def version_specific_args(self): return ["--with-platform=disabled"] @when('@1.3:') - def version_specific_args(self, args): + def version_specific_args(self): # TODO: figure out what scorep's build does as of otf2 1.3 - return [] - + return ["--with-custom-compilers"] def install(self, spec, prefix): - # FIXME: Modify the configure line to suit your build system here. - cc = os.environ["SPACK_CC"] + # 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"]) + "--enable-shared"] configure_args.extend(self.version_specific_args()) configure(*configure_args) - # FIXME: Add logic to build and install here make() make("install") -- cgit v1.2.3-70-g09d2 From d1de958daac3991bf673c4e5b10a0564a9a610d8 Mon Sep 17 00:00:00 2001 From: Matthew LeGendre Date: Fri, 1 Aug 2014 15:48:59 -0700 Subject: Add libmonitor to spack. Still needs svn support for checkout --- var/spack/packages/libmonitor/package.py | 36 ++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 var/spack/packages/libmonitor/package.py (limited to 'var') diff --git a/var/spack/packages/libmonitor/package.py b/var/spack/packages/libmonitor/package.py new file mode 100644 index 0000000000..ac84f2e9ac --- /dev/null +++ b/var/spack/packages/libmonitor/package.py @@ -0,0 +1,36 @@ +############################################################################## +# 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 Libmonitor(Package): + homepage = "http://hpctoolkit.org" + url = "file:///g/g0/legendre/tools/oss/openspeedshop-release-2.1/SOURCES/libmonitor-20130218.tar.gz" + + version('20130218', 'aa85c2c580e2dafb823cc47b09374279') + + def install(self, spec, prefix): + configure("--prefix=" + prefix) + make() + make("install") -- cgit v1.2.3-70-g09d2 From b7fbc77babea727ee7620c8dbe48fd91ac953ff2 Mon Sep 17 00:00:00 2001 From: Matthew LeGendre Date: Fri, 1 Aug 2014 15:50:43 -0700 Subject: Add sqlite to spack --- var/spack/packages/sqlite/package.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 var/spack/packages/sqlite/package.py (limited to 'var') diff --git a/var/spack/packages/sqlite/package.py b/var/spack/packages/sqlite/package.py new file mode 100644 index 0000000000..19013fb324 --- /dev/null +++ b/var/spack/packages/sqlite/package.py @@ -0,0 +1,35 @@ +############################################################################## +# 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 Sqlite(Package): + homepage = "www.sqlite.org" + + version('3.8.5', '0544ef6d7afd8ca797935ccc2685a9ed', url='http://www.sqlite.org/2014/sqlite-autoconf-3080500.tar.gz') + + def install(self, spec, prefix): + configure("--prefix=" + prefix) + make() + make("install") -- cgit v1.2.3-70-g09d2 From 557ae64d51f4b53eb7836b9b56b0a536836b3c55 Mon Sep 17 00:00:00 2001 From: David Boehme Date: Fri, 1 Aug 2014 16:39:29 -0700 Subject: Fix cube compiler configuration --- var/spack/packages/cube/package.py | 39 ++++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) (limited to 'var') diff --git a/var/spack/packages/cube/package.py b/var/spack/packages/cube/package.py index 3a4f9542c6..16babb0b58 100644 --- a/var/spack/packages/cube/package.py +++ b/var/spack/packages/cube/package.py @@ -1,6 +1,7 @@ # FIXME: Add copyright statement # from spack import * +from contextlib import closing class Cube(Package): """Cube the profile viewer for Score-P and Scalasca profiles. It @@ -13,16 +14,38 @@ class Cube(Package): 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') + + 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 +""" + def install(self, spec, prefix): - configure_args = ["--prefix=%s" % prefix, - "--without-paraver", - "--without-gui", - "--enable-shared"] + # 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 - if spec.satisfies('%gcc'): - configure_args.append('--with-nocross-compiler-suite=gcc') - if spec.satisfies('%intel'): - configure_args.append('--with-nocross-compiler-suite=intel') + with closing(open("vendor/common/build-config/platforms/platform-backend-user-provided", "w")) as backend_file: + backend_file.write(self.backend_user_provided) + with closing(open("vendor/common/build-config/platforms/platform-frontend-user-provided", "w")) as frontend_file: + frontend_file.write(self.frontend_user_provided) + + configure_args = ["--prefix=%s" % prefix, + "--with-custom-compilers", + "--without-paraver", + "--without-gui"] configure(*configure_args) -- cgit v1.2.3-70-g09d2 From d7a3c7e555bfd93fbf93ec55608d7fc6aa8052f8 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Sun, 3 Aug 2014 12:57:09 -0700 Subject: Fix up Matt's openss packages. --- lib/spack/spack/cmd/info.py | 10 ++++++---- var/spack/packages/libmonitor/package.py | 1 + var/spack/packages/sqlite/package.py | 7 ++++++- 3 files changed, 13 insertions(+), 5 deletions(-) (limited to 'var') diff --git a/lib/spack/spack/cmd/info.py b/lib/spack/spack/cmd/info.py index 648dbf905a..bb147b30f5 100644 --- a/lib/spack/spack/cmd/info.py +++ b/lib/spack/spack/cmd/info.py @@ -37,15 +37,17 @@ def info(parser, args): package = spack.db.get(args.name) print "Package: ", package.name print "Homepage: ", package.homepage - print "Download: ", package.url print print "Safe versions: " - if package.versions: - colify(reversed(sorted(package.versions)), indent=4) + if not package.versions: + print("None.") else: - print "None. Use spack versions %s to get a list of downloadable versions." % package.name + maxlen = max(len(str(v)) for v in package.versions) + fmt = "%%-%ss" % maxlen + for v in reversed(sorted(package.versions)): + print " " + (fmt % v) + " " + package.url_for_version(v) print print "Dependencies:" diff --git a/var/spack/packages/libmonitor/package.py b/var/spack/packages/libmonitor/package.py index ac84f2e9ac..210712436a 100644 --- a/var/spack/packages/libmonitor/package.py +++ b/var/spack/packages/libmonitor/package.py @@ -25,6 +25,7 @@ from spack import * class Libmonitor(Package): + """Libmonitor is a library for process and thread control.""" homepage = "http://hpctoolkit.org" url = "file:///g/g0/legendre/tools/oss/openspeedshop-release-2.1/SOURCES/libmonitor-20130218.tar.gz" diff --git a/var/spack/packages/sqlite/package.py b/var/spack/packages/sqlite/package.py index 19013fb324..734b0b6cb6 100644 --- a/var/spack/packages/sqlite/package.py +++ b/var/spack/packages/sqlite/package.py @@ -25,9 +25,14 @@ from spack import * class Sqlite(Package): + """SQLite3 is an SQL database engine in a C library. Programs that + link the SQLite3 library can have SQL database access without + running a separate RDBMS process. + """ homepage = "www.sqlite.org" - version('3.8.5', '0544ef6d7afd8ca797935ccc2685a9ed', url='http://www.sqlite.org/2014/sqlite-autoconf-3080500.tar.gz') + version('3.8.5', '0544ef6d7afd8ca797935ccc2685a9ed', + url='http://www.sqlite.org/2014/sqlite-autoconf-3080500.tar.gz') def install(self, spec, prefix): configure("--prefix=" + prefix) -- cgit v1.2.3-70-g09d2 From 741084faf4194424a582bf9dd15580601f20fe9a Mon Sep 17 00:00:00 2001 From: Adam Moody Date: Thu, 10 Jul 2014 16:55:38 -0700 Subject: add mvapich2 package to handle different compilers and variants --- var/spack/packages/mvapich2/package.py | 86 ++++++++++++++++++++++++++++++++-- 1 file changed, 82 insertions(+), 4 deletions(-) (limited to 'var') diff --git a/var/spack/packages/mvapich2/package.py b/var/spack/packages/mvapich2/package.py index 0f0f849c51..ca0b1287c1 100644 --- a/var/spack/packages/mvapich2/package.py +++ b/var/spack/packages/mvapich2/package.py @@ -1,3 +1,4 @@ +import os from spack import * class Mvapich2(Package): @@ -6,21 +7,98 @@ class Mvapich2(Package): version('1.9', '5dc58ed08fd3142c260b70fe297e127c', url="http://mvapich.cse.ohio-state.edu/download/mvapich2/mv2/mvapich2-1.9.tgz") + patch('ad_lustre_rwcontig_open_source.patch', when='@1.9') + version('2.0', '9fbb68a4111a8b6338e476dc657388b4', url='http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.0.tar.gz') - provides('mpi@:1', when='@1.9:') + provides('mpi@:2.2', when='@1.9') # MVAPICH2-1.9 supports MPI 2.2 + provides('mpi@:3.0', when='@2.0') # MVAPICH2-2.0 supports MPI 3.0 + def install(self, spec, prefix): + # we'll set different configure flags depending on our environment + configure_args = [] + + # TODO: The MPICH*_FLAGS have a different name for 1.9 + + if '+debug' in spec: + # set configure flags for debug build + configure_args.append("--disable-fast") + configure_args.append("--enable-g=dbg") + configure_args.append("--enable-error-checking=runtime") + configure_args.append("--enable-error-messages=all") + configure_args.append("--enable-nmpi-as-mpi") + + if "%gnu" in spec: + # set variables for GNU compilers + os.environ['MPICHLIB_CFLAGS'] = "-g -O0" + os.environ['MPICHLIB_CXXFLAGS'] = "-g -O0" + os.environ['MPICHLIB_FFLAGS'] = "-g -O0 -fno-second-underscore" + os.environ['MPICHLIB_F90FLAGS'] = "-g -O0 -fno-second-underscore" + elif "%intel" in spec: + # set variables for Inel compilers + os.environ['MPICHLIB_CFLAGS'] = "-g -O0" + os.environ['MPICHLIB_CXXFLAGS'] = "-g -O0" + os.environ['MPICHLIB_FFLAGS'] = "-g -O0" + os.environ['MPICHLIB_F90FLAGS'] = "-g -O0" + elif "%pgi" in spec: + # set variables for PGI compilers + os.environ['MPICHLIB_CFLAGS'] = "-g -O0 -fPIC" + os.environ['MPICHLIB_CXXFLAGS'] = "-g -O0 -fPIC" + os.environ['MPICHLIB_FFLAGS'] = "-g -O0 -fPIC" + os.environ['MPICHLIB_F90FLAGS'] = "-g -O0 -fPIC" + + else: + # set configure flags for normal optimizations + configure_args.append("--enable-fast=all") + configure_args.append("--enable-g=dbg") + configure_args.append("--enable-nmpi-as-mpi") + + if "%gnu" in spec: + # set variables for what compilers + os.environ['MPICHLIB_CFLAGS'] = "-g -O2" + os.environ['MPICHLIB_CXXFLAGS'] = "-g -O2" + os.environ['MPICHLIB_FFLAGS'] = "-g -O2 -fno-second-underscore" + os.environ['MPICHLIB_F90FLAGS'] = "-g -O2 -fno-second-underscore" + elif "%intel" in spec: + # set variables for Inel compilers + os.environ['MPICHLIB_CFLAGS'] = "-g -O2" + os.environ['MPICHLIB_CXXFLAGS'] = "-g -O2" + os.environ['MPICHLIB_FFLAGS'] = "-g -O2" + os.environ['MPICHLIB_F90FLAGS'] = "-g -O2" + elif "%pgi" in spec: + # set variables for PGI compilers + os.environ['MPICHLIB_CFLAGS'] = "-g -O2 -fPIC" + os.environ['MPICHLIB_CXXFLAGS'] = "-g -O2 -fPIC" + os.environ['MPICHLIB_FFLAGS'] = "-g -O2 -fPIC" + os.environ['MPICHLIB_F90FLAGS'] = "-g -O2 -fPIC" + + # determine network type by variant + if "+psm" in spec: + # throw this flag on QLogic systems to use PSM + configure_args.append("--with-device=ch3:psm") + else: + # throw this flag on IB systems + configure_args.append("--with-device=ch3:mrail", "--with-rdma=gen2") + + # TODO: shared-memory build + + # TODO: CUDA + + # TODO: other file systems like panasis + configure( "--prefix=" + prefix, "--enable-f77", "--enable-fc", "--enable-cxx", - "--enable-fast=all", "--enable-g=dbg", "--enable-nmpi-as-mpi", "--enable-shared", "--enable-sharedlibs=gcc", "--enable-debuginfo", "--with-pm=no", "--with-pmi=slurm", - "--with-device=ch3:psm", "--enable-romio", "--with-file-system=lustre+nfs+ufs", - "--disable-mpe", "--without-mpe") + "--disable-mpe", "--without-mpe", + "--disable-silent-rules", + *configure_args) + make() + make("install") -- cgit v1.2.3-70-g09d2 From 3dd8e561b90159de9ee57a7449298a4df09b3186 Mon Sep 17 00:00:00 2001 From: Adam Moody Date: Thu, 31 Jul 2014 16:59:23 -0700 Subject: add lwgrp package --- var/spack/packages/lwgrp/package.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 var/spack/packages/lwgrp/package.py (limited to 'var') diff --git a/var/spack/packages/lwgrp/package.py b/var/spack/packages/lwgrp/package.py new file mode 100644 index 0000000000..d4054e195f --- /dev/null +++ b/var/spack/packages/lwgrp/package.py @@ -0,0 +1,17 @@ +import os +from spack import * + +class Lwgrp(Package): + """Thie light-weight group library provides process group representations using O(log N) space and time.""" + + homepage = "https://github.com/hpc/lwgrp" + url = "https://github.com/hpc/lwgrp/releases/download/v1.0.2/lwgrp-1.0.2.tar.gz" + + versions = { '1.0.2' : 'ab7ba3bdd8534a651da5076f47f27d8a' } + + depends_on('mpi') + + def install(self, spec, prefix): + configure("--prefix=" + prefix) + make() + make("install") -- cgit v1.2.3-70-g09d2 From 6e7a7d127daa5bb2aafad6411f6c3cf4dbc2c640 Mon Sep 17 00:00:00 2001 From: Adam Moody Date: Thu, 31 Jul 2014 18:56:38 -0700 Subject: adding dtcmp package --- var/spack/packages/dtcmp/package.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 var/spack/packages/dtcmp/package.py (limited to 'var') diff --git a/var/spack/packages/dtcmp/package.py b/var/spack/packages/dtcmp/package.py new file mode 100644 index 0000000000..400028bd6f --- /dev/null +++ b/var/spack/packages/dtcmp/package.py @@ -0,0 +1,20 @@ +import os +from spack import * + +class Dtcmp(Package): + """The Datatype Comparison Library provides comparison operations and parallel sort algorithms for MPI applications.""" + + homepage = "https://github.com/hpc/dtcmp" + url = "https://github.com/hpc/dtcmp/releases/download/v1.0.3/dtcmp-1.0.3.tar.gz" + + versions = { '1.0.3' : 'cdd8ccf71e8ff67de2558594a7fcd317' } + #version('1.0.3', 'cdd8ccf71e8ff67de2558594a7fcd317') + + depends_on('mpi') + depends_on('lwgrp') + + def install(self, spec, prefix): + configure("--prefix=" + prefix, + "--with-lwgrp=" + spec['lwgrp'].prefix) + make() + make("install") -- cgit v1.2.3-70-g09d2 From 712a2c374284420c7c6d0a53e43b32577ae9471f Mon Sep 17 00:00:00 2001 From: Adam Moody Date: Fri, 1 Aug 2014 17:24:56 -0700 Subject: fileutils package --- var/spack/packages/fileutils/package.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 var/spack/packages/fileutils/package.py (limited to 'var') diff --git a/var/spack/packages/fileutils/package.py b/var/spack/packages/fileutils/package.py new file mode 100644 index 0000000000..8ddd3d060b --- /dev/null +++ b/var/spack/packages/fileutils/package.py @@ -0,0 +1,23 @@ +import os +from spack import * + +class Fileutils(Package): + """FileUtils provides a suite of MPI-based tools to manage large files and datasets on parallel file systems.""" + + homepage = "https://github.com/hpc/fileutils" + url = "https://github.com/hpc/fileutils/releases/download/v0.0.1-alpha.4/fileutils-0.0.1-alpha.4.tar.gz" + + versions = { '0.0.1-alpha.4' : 'a01dbe5a2e03f3c70c7a98ec0a2554e1' } + + force_url = True + + depends_on('mpi') + depends_on('libcircle') + depends_on('libarchive') + depends_on('dtcmp') + + def install(self, spec, prefix): + configure("--prefix=" + prefix, + "--with-libdtcmp=" + spec['dtcmp'].prefix) + make() + make("install") -- cgit v1.2.3-70-g09d2 From a27e178ac27edf78c9c306a25091d6d1c36316e1 Mon Sep 17 00:00:00 2001 From: Adam Moody Date: Fri, 1 Aug 2014 10:37:14 -0700 Subject: add libcircle package --- var/spack/packages/libcircle/package.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 var/spack/packages/libcircle/package.py (limited to 'var') diff --git a/var/spack/packages/libcircle/package.py b/var/spack/packages/libcircle/package.py new file mode 100644 index 0000000000..ae539969e7 --- /dev/null +++ b/var/spack/packages/libcircle/package.py @@ -0,0 +1,22 @@ +import os +from spack import * + +class Libcircle(Package): + """libcircle provides an efficient distributed queue on a cluster, using self-stabilizing work stealing.""" + + homepage = "https://github.com/hpc/libcircle" + #url = "https://github.com/hpc/lwgrp/releases/download/v1.0.2/lwgrp-1.0.2.tar.gz" + url = "https://github.com/adammoody/libcircle/releases/download/v0.2.1-rc.1/libcircle-0.2.1-rc.1.tar.gz" + + versions = { '0.2.1-rc.1' : 'a10a14e76ac2ad7357a4b21b794e8e4e' } + + # need this hack because the URL plus version string below confuses URL expansion + # at url_for_version() in lib/spack/package.py + force_url = True + + depends_on('mpi') + + def install(self, spec, prefix): + configure("--prefix=" + prefix) + make() + make("install") -- cgit v1.2.3-70-g09d2 From 3779c78c009fb7465bac25b4e59b5f710e3bd0da Mon Sep 17 00:00:00 2001 From: Adam Moody Date: Thu, 31 Jul 2014 21:40:48 -0700 Subject: adding libarchive --- var/spack/packages/libarchive/package.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 var/spack/packages/libarchive/package.py (limited to 'var') diff --git a/var/spack/packages/libarchive/package.py b/var/spack/packages/libarchive/package.py new file mode 100644 index 0000000000..88c6ce45ab --- /dev/null +++ b/var/spack/packages/libarchive/package.py @@ -0,0 +1,15 @@ +from spack import * + +class Libarchive(Package): + """libarchive: C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats.""" + homepage = "http://www.libarchive.org" + url = "http://www.libarchive.org/downloads/libarchive-3.1.2.tar.gz" + + version('3.1.2', 'efad5a503f66329bb9d2f4308b5de98a') + version('3.1.1', '1f3d883daf7161a0065e42a15bbf168f') + version('3.1.0', '095a287bb1fd687ab50c85955692bf3a') + + def install(self, spec, prefix): + configure("--prefix=%s" % prefix) + make() + make("install") -- cgit v1.2.3-70-g09d2 From 782e45e5b1247f636f519c23de4cc54fe0cc21d1 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Sun, 3 Aug 2014 12:30:08 -0700 Subject: Fix up versions to match new version format, minor formatting. --- var/spack/packages/dtcmp/package.py | 6 +++--- var/spack/packages/fileutils/package.py | 7 +++---- var/spack/packages/libarchive/package.py | 3 ++- var/spack/packages/libcircle/package.py | 10 +++------- var/spack/packages/lwgrp/package.py | 5 +++-- 5 files changed, 14 insertions(+), 17 deletions(-) (limited to 'var') diff --git a/var/spack/packages/dtcmp/package.py b/var/spack/packages/dtcmp/package.py index 400028bd6f..9d940583c1 100644 --- a/var/spack/packages/dtcmp/package.py +++ b/var/spack/packages/dtcmp/package.py @@ -2,13 +2,13 @@ import os from spack import * class Dtcmp(Package): - """The Datatype Comparison Library provides comparison operations and parallel sort algorithms for MPI applications.""" + """The Datatype Comparison Library provides comparison operations and + parallel sort algorithms for MPI applications.""" homepage = "https://github.com/hpc/dtcmp" url = "https://github.com/hpc/dtcmp/releases/download/v1.0.3/dtcmp-1.0.3.tar.gz" - versions = { '1.0.3' : 'cdd8ccf71e8ff67de2558594a7fcd317' } - #version('1.0.3', 'cdd8ccf71e8ff67de2558594a7fcd317') + version('1.0.3', 'cdd8ccf71e8ff67de2558594a7fcd317') depends_on('mpi') depends_on('lwgrp') diff --git a/var/spack/packages/fileutils/package.py b/var/spack/packages/fileutils/package.py index 8ddd3d060b..449ed0c72e 100644 --- a/var/spack/packages/fileutils/package.py +++ b/var/spack/packages/fileutils/package.py @@ -2,14 +2,13 @@ import os from spack import * class Fileutils(Package): - """FileUtils provides a suite of MPI-based tools to manage large files and datasets on parallel file systems.""" + """FileUtils provides a suite of MPI-based tools to manage large files + and datasets on parallel file systems.""" homepage = "https://github.com/hpc/fileutils" url = "https://github.com/hpc/fileutils/releases/download/v0.0.1-alpha.4/fileutils-0.0.1-alpha.4.tar.gz" - versions = { '0.0.1-alpha.4' : 'a01dbe5a2e03f3c70c7a98ec0a2554e1' } - - force_url = True + version('0.0.1-alpha.4', 'a01dbe5a2e03f3c70c7a98ec0a2554e1') depends_on('mpi') depends_on('libcircle') diff --git a/var/spack/packages/libarchive/package.py b/var/spack/packages/libarchive/package.py index 88c6ce45ab..cbd4b89cd0 100644 --- a/var/spack/packages/libarchive/package.py +++ b/var/spack/packages/libarchive/package.py @@ -1,7 +1,8 @@ from spack import * class Libarchive(Package): - """libarchive: C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats.""" + """libarchive: C library and command-line tools for reading and + writing tar, cpio, zip, ISO, and other archive formats.""" homepage = "http://www.libarchive.org" url = "http://www.libarchive.org/downloads/libarchive-3.1.2.tar.gz" diff --git a/var/spack/packages/libcircle/package.py b/var/spack/packages/libcircle/package.py index ae539969e7..e398125328 100644 --- a/var/spack/packages/libcircle/package.py +++ b/var/spack/packages/libcircle/package.py @@ -2,17 +2,13 @@ import os from spack import * class Libcircle(Package): - """libcircle provides an efficient distributed queue on a cluster, using self-stabilizing work stealing.""" + """libcircle provides an efficient distributed queue on a cluster, + using self-stabilizing work stealing.""" homepage = "https://github.com/hpc/libcircle" - #url = "https://github.com/hpc/lwgrp/releases/download/v1.0.2/lwgrp-1.0.2.tar.gz" url = "https://github.com/adammoody/libcircle/releases/download/v0.2.1-rc.1/libcircle-0.2.1-rc.1.tar.gz" - versions = { '0.2.1-rc.1' : 'a10a14e76ac2ad7357a4b21b794e8e4e' } - - # need this hack because the URL plus version string below confuses URL expansion - # at url_for_version() in lib/spack/package.py - force_url = True + version('0.2.1-rc.1', 'a10a14e76ac2ad7357a4b21b794e8e4e') depends_on('mpi') diff --git a/var/spack/packages/lwgrp/package.py b/var/spack/packages/lwgrp/package.py index d4054e195f..5963382b92 100644 --- a/var/spack/packages/lwgrp/package.py +++ b/var/spack/packages/lwgrp/package.py @@ -2,12 +2,13 @@ import os from spack import * class Lwgrp(Package): - """Thie light-weight group library provides process group representations using O(log N) space and time.""" + """Thie light-weight group library provides process group + representations using O(log N) space and time.""" homepage = "https://github.com/hpc/lwgrp" url = "https://github.com/hpc/lwgrp/releases/download/v1.0.2/lwgrp-1.0.2.tar.gz" - versions = { '1.0.2' : 'ab7ba3bdd8534a651da5076f47f27d8a' } + version('1.0.2', 'ab7ba3bdd8534a651da5076f47f27d8a') depends_on('mpi') -- cgit v1.2.3-70-g09d2 From 8738a3a88c48fd9ed2a9c6182e71e94e6e2d5c3f Mon Sep 17 00:00:00 2001 From: David Beckingsale Date: Thu, 31 Jul 2014 15:37:35 -0700 Subject: Added LLVM package --- var/spack/packages/llvm/package.py | 48 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 var/spack/packages/llvm/package.py (limited to 'var') diff --git a/var/spack/packages/llvm/package.py b/var/spack/packages/llvm/package.py new file mode 100644 index 0000000000..dab10f77d3 --- /dev/null +++ b/var/spack/packages/llvm/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 David Beckingsale, david@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://scalability-llnl.github.io/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License (as published by +# the Free Software Foundation) version 2.1 dated February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + +class Llvm(Package): + """The LLVM Project is a collection of modular and reusable compiler and + toolchain technologies. Despite its name, LLVM has little to do with + traditional virtual machines, though it does provide helpful libraries + that can be used to build them. The name "LLVM" itself is not an acronym; + it is the full name of the project. + """ + homepage = "http://llvm.org/" + url = "http://llvm.org/releases/3.4.2/llvm-3.4.2.src.tar.gz" + + version('3.4.2', 'a20669f75967440de949ac3b1bad439c') + + def install(self, spec, prefix): + configure("--prefix=%s" % prefix, + "--enable-optimized", + "--enable-debug-runtime", + "--enable-debug-symbols", + "--disable-assertions", + "REQUIRES_RTTI=1") + + make() + make("install") -- cgit v1.2.3-70-g09d2 From c55041e9d47cba97fc461c088c4b935b3355e340 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Fri, 1 Aug 2014 08:33:00 -0700 Subject: Partial commit of more packages. --- README.md | 18 +++++++- lib/spack/llnl/util/filesystem.py | 21 ++++++---- lib/spack/spack/build_environment.py | 5 ++- lib/spack/spack/cmd/create.py | 30 +++++++------- lib/spack/spack/package.py | 2 +- lib/spack/spack/util/executable.py | 2 +- var/spack/packages/clang/package.py | 47 +++++++++++++++++++++ var/spack/packages/llvm-compiler-rt/package.py | 57 ++++++++++++++++++++++++++ var/spack/packages/llvm-lld/package.py | 46 +++++++++++++++++++++ var/spack/packages/llvm/package.py | 18 ++++---- 10 files changed, 210 insertions(+), 36 deletions(-) create mode 100644 var/spack/packages/clang/package.py create mode 100644 var/spack/packages/llvm-compiler-rt/package.py create mode 100644 var/spack/packages/llvm-lld/package.py (limited to 'var') diff --git a/README.md b/README.md index c883cf44b4..11d505a779 100644 --- a/README.md +++ b/README.md @@ -35,4 +35,20 @@ for Spack is also available. Authors ---------------- Spack was written by Todd Gamblin, tgamblin@llnl.gov. -LLNL-CODE-647188 + +Significant contributions were also made by the following awesome +people: + + * David Beckingsale + * David Boehme + * Luc Jaulmes + * Matt Legendre + * Greg Lee + * Adam Moody + +Release +---------------- +Spack is released under an LGPL license. For more details see the +LICENSE file. + +``LLNL-CODE-647188`` diff --git a/lib/spack/llnl/util/filesystem.py b/lib/spack/llnl/util/filesystem.py index 11c3dee604..3782aefcce 100644 --- a/lib/spack/llnl/util/filesystem.py +++ b/lib/spack/llnl/util/filesystem.py @@ -124,8 +124,19 @@ def expand_user(path): return path.replace('%u', username) +def mkdirp(*paths): + for path in paths: + if not os.path.exists(path): + os.makedirs(path) + elif not os.path.isdir(path): + raise OSError(errno.EEXIST, "File alredy exists", path) + + @contextmanager -def working_dir(dirname): +def working_dir(dirname, **kwargs): + if kwargs.get('create', False): + mkdirp(dirname) + orig_dir = os.getcwd() os.chdir(dirname) yield @@ -137,14 +148,6 @@ def touch(path): os.utime(path, None) -def mkdirp(*paths): - for path in paths: - if not os.path.exists(path): - os.makedirs(path) - elif not os.path.isdir(path): - raise OSError(errno.EEXIST, "File alredy exists", path) - - def join_path(prefix, *args): path = str(prefix) for elt in args: diff --git a/lib/spack/spack/build_environment.py b/lib/spack/spack/build_environment.py index 38d5f70282..f72c724420 100644 --- a/lib/spack/spack/build_environment.py +++ b/lib/spack/spack/build_environment.py @@ -153,6 +153,9 @@ def set_module_variables_for_package(pkg): m.make = MakeExecutable('make', pkg.parallel) m.gmake = MakeExecutable('gmake', pkg.parallel) + # easy shortcut to os.environ + m.env = os.environ + # number of jobs spack prefers to build with. m.make_jobs = multiprocessing.cpu_count() @@ -168,7 +171,7 @@ def set_module_variables_for_package(pkg): # standard CMake arguments m.std_cmake_args = ['-DCMAKE_INSTALL_PREFIX=%s' % pkg.prefix, - '-DCMAKE_BUILD_TYPE=None'] + '-DCMAKE_BUILD_TYPE=RelWithDebInfo'] if platform.mac_ver()[0]: m.std_cmake_args.append('-DCMAKE_FIND_FRAMEWORK=LAST') diff --git a/lib/spack/spack/cmd/create.py b/lib/spack/spack/cmd/create.py index 1a1a19a4b6..c98162aca7 100644 --- a/lib/spack/spack/cmd/create.py +++ b/lib/spack/spack/cmd/create.py @@ -87,6 +87,9 @@ def setup_parser(subparser): subparser.add_argument( '--keep-stage', action='store_true', dest='keep_stage', help="Don't clean up staging area when command completes.") + subparser.add_argument( + '-n', '--name', dest='alternate_name', default=None, + help="Override the autodetected name for the created package.") subparser.add_argument( '-f', '--force', action='store_true', dest='force', help="Overwrite any existing package file with the same name.") @@ -121,30 +124,27 @@ def make_version_calls(ver_hash_tuples): return '\n'.join(format % ("'%s'" % v, h) for v, h in ver_hash_tuples) -def get_name(): - """Prompt user to input a package name.""" - name = "" - while not name: - new_name = raw_input("Name: ") - if spack.db.valid_name(name): - name = new_name - else: - print "Package name can only contain A-Z, a-z, 0-9, '_' and '-'" - return name - - def create(parser, args): url = args.url # Try to deduce name and version of the new package from the URL name, version = spack.url.parse_name_and_version(url) - if not name: - tty.msg("Couldn't guess a name for this package.") - name = get_name() + + # Use a user-supplied name if one is present + name = kwargs.get(args, 'alternate_name', False) + if args.name: + name = args.name if not version: tty.die("Couldn't guess a version string from %s." % url) + if not name: + tty.die("Couldn't guess a name for this package. Try running:", "", + "spack create --name ") + + if not spack.db.valid_name(name): + tty.die("Package name can only contain A-Z, a-z, 0-9, '_' and '-'") + tty.msg("This looks like a URL for %s version %s." % (name, version)) tty.msg("Creating template for package %s" % name) diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py index 8df658e660..0375df7dac 100644 --- a/lib/spack/spack/package.py +++ b/lib/spack/spack/package.py @@ -57,7 +57,7 @@ from spack.util.web import get_pages from spack.util.compression import allowed_archive, extension """Allowed URL schemes for spack packages.""" -_ALLOWED_URL_SCHEMES = ["http", "https", "ftp", "file"] +_ALLOWED_URL_SCHEMES = ["http", "https", "ftp", "file", "git"] class Package(object): diff --git a/lib/spack/spack/util/executable.py b/lib/spack/spack/util/executable.py index bc27b25889..923c7c19a5 100644 --- a/lib/spack/spack/util/executable.py +++ b/lib/spack/spack/util/executable.py @@ -121,7 +121,7 @@ def which(name, **kwargs): for dir in path: exe = os.path.join(dir, name) - if os.access(exe, os.X_OK): + if os.path.isfile(exe) and os.access(exe, os.X_OK): return Executable(exe) if required: diff --git a/var/spack/packages/clang/package.py b/var/spack/packages/clang/package.py new file mode 100644 index 0000000000..07948a3ed7 --- /dev/null +++ b/var/spack/packages/clang/package.py @@ -0,0 +1,47 @@ +############################################################################## +# 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 Clang(Package): + """The goal of the Clang project is to create a new C, C++, + Objective C and Objective C++ front-end for the LLVM compiler. + """ + homepage = "http://clang.llvm.org" + url = "http://llvm.org/releases/3.4.2/cfe-3.4.2.src.tar.gz" + + depends_on("llvm") + + version('3.4.2', '87945973b7c73038871c5f849a818588') + + def install(self, spec, prefix): + env['CXXFLAGS'] = '-std=c++11' + + 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, + *std_cmake_args) + make() + make("install") diff --git a/var/spack/packages/llvm-compiler-rt/package.py b/var/spack/packages/llvm-compiler-rt/package.py new file mode 100644 index 0000000000..e3fa176afe --- /dev/null +++ b/var/spack/packages/llvm-compiler-rt/package.py @@ -0,0 +1,57 @@ +############################################################################## +# 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 LlvmCompilerRt(Package): + """Compiler-rt consists of several libraries to be used with LLVM: + basics: + A simple library that provides an implementation of the + low-level target-specific hooks required by code + generation and other runtime components. + + sanitizer runtimes: + Runtime libraries that are required to run the code with + sanitizer instrumentation. + + profiler: + Library used to collect coverage information. + + BlocksRuntime: + A target-independent implementation of Apple "Blocks" + runtime interfaces. + """ + homepage = "http://compiler-rt.llvm.org" + url = "http://llvm.org/releases/3.4/compiler-rt-3.4.src.tar.gz" + + depends_on("clang") + depends_on("llvm") + + version('3.4', '7938353e3a3bda85733a165e7ac4bb84') + + def install(self, spec, prefix): + cmake(".", *std_cmake_args) + + make() + make("install") diff --git a/var/spack/packages/llvm-lld/package.py b/var/spack/packages/llvm-lld/package.py new file mode 100644 index 0000000000..ba0b229228 --- /dev/null +++ b/var/spack/packages/llvm-lld/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 LlvmLld(Package): + """lld - The LLVM Linker + lld is a new set of modular code for creating linker tools.""" + homepage = "http://lld.llvm.org" + url = "http://llvm.org/releases/3.4/lld-3.4.src.tar.gz" + + depends_on('llvm') + + version('3.4', '3b6a17e58c8416c869c14dd37682f78e') + + def install(self, spec, prefix): + env['CXXFLAGS'] = '-std=c++11' + + with working_dir('spack-build', create=True): + cmake('..', + '-DLLD_PATH_TO_LLVM_BUILD=%s' % spec['llvm'].prefix, + '-DLLVM_MAIN_SRC_DIR=%s' % spec['llvm'].prefix, + *std_cmake_args) + make('VERBOSE=1') + make("install") diff --git a/var/spack/packages/llvm/package.py b/var/spack/packages/llvm/package.py index dab10f77d3..08ae7208cd 100644 --- a/var/spack/packages/llvm/package.py +++ b/var/spack/packages/llvm/package.py @@ -37,12 +37,14 @@ class Llvm(Package): version('3.4.2', 'a20669f75967440de949ac3b1bad439c') def install(self, spec, prefix): - configure("--prefix=%s" % prefix, - "--enable-optimized", - "--enable-debug-runtime", - "--enable-debug-symbols", - "--disable-assertions", - "REQUIRES_RTTI=1") + env['CXXFLAGS'] = '-std=c++11' - make() - make("install") + with working_dir('spack-build', create=True): + cmake('..', + '-DLLVM_REQUIRES_RTTI=1', + '-DPYTHON_EXECUTABLE=/usr/bin/python', + '-DPYTHON_INCLUDE_DIR=/usr/include/python2.6', + '-DPYTHON_LIBRARY=/usr/lib64/libpython2.6.so', + *std_cmake_args) + make() + make("install") -- cgit v1.2.3-70-g09d2 From 0740c576a714281b0449e33f1b8e4b00e5d9d9c0 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Thu, 10 Jul 2014 15:54:10 -0700 Subject: Package for postgresql. --- var/spack/packages/postgresql/package.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 var/spack/packages/postgresql/package.py (limited to 'var') diff --git a/var/spack/packages/postgresql/package.py b/var/spack/packages/postgresql/package.py new file mode 100644 index 0000000000..bf14c3b922 --- /dev/null +++ b/var/spack/packages/postgresql/package.py @@ -0,0 +1,24 @@ +from spack import * + +class Postgresql(Package): + """PostgreSQL is a powerful, open source object-relational + database system. It has more than 15 years of active + development and a proven architecture that has earned it a + strong reputation for reliability, data integrity, and + correctness.""" + homepage = "http://www.postgresql.org/" + url = "http://ftp.postgresql.org/pub/source/v9.3.4/postgresql-9.3.4.tar.bz2" + + version('9.3.4', 'd0a41f54c377b2d2fab4a003b0dac762') + + def install(self, spec, prefix): + # 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") + + + def dotkit(self, dk): + dk.setenv('PGDATA', "%s/data" %self.prefix) -- cgit v1.2.3-70-g09d2 From 0b68d1292d9b415b74abc63e909c44399ae9a97a Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Fri, 25 Jul 2014 20:07:05 -0700 Subject: Add package for openssl, have postgres use it. - Updated version wildcard to include [a-z]|alpha|beta to accommodate all the letter suffixes on openssl. --- var/spack/packages/openssl/package.py | 26 ++++++++++++++++++++++++++ var/spack/packages/postgresql/package.py | 8 ++++---- 2 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 var/spack/packages/openssl/package.py (limited to 'var') diff --git a/var/spack/packages/openssl/package.py b/var/spack/packages/openssl/package.py new file mode 100644 index 0000000000..c5a8aeb9dc --- /dev/null +++ b/var/spack/packages/openssl/package.py @@ -0,0 +1,26 @@ +from spack import * + +class Openssl(Package): + """The OpenSSL Project is a collaborative effort to develop a + robust, commercial-grade, full-featured, and Open Source + toolkit implementing the Secure Sockets Layer (SSL v2/v3) and + Transport Layer Security (TLS v1) protocols as well as a + full-strength general purpose cryptography library.""" + homepage = "http://www.openssl.org" + url = "http://www.openssl.org/source/openssl-1.0.1h.tar.gz" + + version('1.0.1h', '8d6d684a9430d5cc98a62a5d8fbda8cf') + + depends_on("zlib") + parallel = False + + def install(self, spec, prefix): + config = Executable("./config") + config("--prefix=%s" % prefix, + "--openssldir=%s/etc/openssl" % prefix, + "zlib", + "no-krb5", + "shared") + + make() + make("install") diff --git a/var/spack/packages/postgresql/package.py b/var/spack/packages/postgresql/package.py index bf14c3b922..a93f87df80 100644 --- a/var/spack/packages/postgresql/package.py +++ b/var/spack/packages/postgresql/package.py @@ -11,11 +11,11 @@ class Postgresql(Package): version('9.3.4', 'd0a41f54c377b2d2fab4a003b0dac762') - def install(self, spec, prefix): - # FIXME: Modify the configure line to suit your build system here. - configure("--prefix=%s" % prefix) + depends_on("openssl") - # FIXME: Add logic to build and install here + def install(self, spec, prefix): + configure("--prefix=%s" % prefix, + "--with-openssl") make() make("install") -- cgit v1.2.3-70-g09d2 From 90cd0c7efa9cc6b1e58530bede25deeaaaf9f52e Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Thu, 31 Jul 2014 13:26:55 -0700 Subject: Add Kevin's experimental TAU version --- var/spack/packages/tau/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'var') diff --git a/var/spack/packages/tau/package.py b/var/spack/packages/tau/package.py index 8d9dbe1759..33320622db 100644 --- a/var/spack/packages/tau/package.py +++ b/var/spack/packages/tau/package.py @@ -11,7 +11,8 @@ class Tau(Package): url = "http://www.cs.uoregon.edu/research/paracomp/tau/tauprofile/dist/tau-2.23.1.tar.gz" version('2.23.1', '6593b47ae1e7a838e632652f0426fe72') - + version('2.23-perfdb', 'c97b404bcd94c7d9b04fa3dc0a32b0d1', + url='http://www.nic.uoregon.edu/~khuck/tau2-latest.tar.gz') def install(self, spec, prefix): # TAU isn't happy with directories that have '@' in the path. Sigh. -- cgit v1.2.3-70-g09d2 From 6127b0baa69fa469cf9a02dcd5dc78f674b746b3 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Wed, 6 Aug 2014 21:58:59 -0700 Subject: new prototype TAU tarball from Kevin --- var/spack/packages/tau/package.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'var') diff --git a/var/spack/packages/tau/package.py b/var/spack/packages/tau/package.py index 33320622db..e58acfb41a 100644 --- a/var/spack/packages/tau/package.py +++ b/var/spack/packages/tau/package.py @@ -10,8 +10,8 @@ class Tau(Package): homepage = "http://www.cs.uoregon.edu/research/tau" url = "http://www.cs.uoregon.edu/research/paracomp/tau/tauprofile/dist/tau-2.23.1.tar.gz" - version('2.23.1', '6593b47ae1e7a838e632652f0426fe72') - version('2.23-perfdb', 'c97b404bcd94c7d9b04fa3dc0a32b0d1', + version('2.23.1', '6593b47ae1e7a838e632652f0426fe72') + version('2.23.2-perfdb', 'f743a65951220f5b46b9d3cf179129d0', url='http://www.nic.uoregon.edu/~khuck/tau2-latest.tar.gz') def install(self, spec, prefix): -- cgit v1.2.3-70-g09d2 From fa3b19000db9ed6f3d6cf31895aeee4ac0d4e633 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Mon, 11 Aug 2014 22:47:13 -0700 Subject: update tau tarball --- var/spack/packages/tau/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'var') diff --git a/var/spack/packages/tau/package.py b/var/spack/packages/tau/package.py index e58acfb41a..caafe4e2c9 100644 --- a/var/spack/packages/tau/package.py +++ b/var/spack/packages/tau/package.py @@ -11,7 +11,7 @@ class Tau(Package): url = "http://www.cs.uoregon.edu/research/paracomp/tau/tauprofile/dist/tau-2.23.1.tar.gz" version('2.23.1', '6593b47ae1e7a838e632652f0426fe72') - version('2.23.2-perfdb', 'f743a65951220f5b46b9d3cf179129d0', + version('2.23.2-perfdb', '4048f693eee246d48eb2619c0f05999e', url='http://www.nic.uoregon.edu/~khuck/tau2-latest.tar.gz') def install(self, spec, prefix): -- cgit v1.2.3-70-g09d2 From e301d623329d3f484316643c6a50dc3df4806dab Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Wed, 20 Aug 2014 11:46:59 -0700 Subject: Remove development TAU version from package. --- var/spack/packages/tau/package.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'var') diff --git a/var/spack/packages/tau/package.py b/var/spack/packages/tau/package.py index caafe4e2c9..048fac80aa 100644 --- a/var/spack/packages/tau/package.py +++ b/var/spack/packages/tau/package.py @@ -10,9 +10,7 @@ class Tau(Package): homepage = "http://www.cs.uoregon.edu/research/tau" url = "http://www.cs.uoregon.edu/research/paracomp/tau/tauprofile/dist/tau-2.23.1.tar.gz" - version('2.23.1', '6593b47ae1e7a838e632652f0426fe72') - version('2.23.2-perfdb', '4048f693eee246d48eb2619c0f05999e', - url='http://www.nic.uoregon.edu/~khuck/tau2-latest.tar.gz') + version('2.23.1', '6593b47ae1e7a838e632652f0426fe72') def install(self, spec, prefix): # TAU isn't happy with directories that have '@' in the path. Sigh. -- cgit v1.2.3-70-g09d2 From ec44791aa3b5583036f469137412fd40caf11b24 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Fri, 5 Sep 2014 10:52:43 -0700 Subject: Remove examples from default STAT build to avoid MPI dependence. --- var/spack/packages/stat/package.py | 1 + 1 file changed, 1 insertion(+) (limited to 'var') diff --git a/var/spack/packages/stat/package.py b/var/spack/packages/stat/package.py index 583ae48e82..956b0dcc8c 100644 --- a/var/spack/packages/stat/package.py +++ b/var/spack/packages/stat/package.py @@ -20,6 +20,7 @@ class Stat(Package): configure( "--enable-gui", "--prefix=%s" % prefix, + "--disable-examples", # Examples require MPI: avoid this dependency. "--with-launchmon=%s" % spec['launchmon'].prefix, "--with-mrnet=%s" % spec['mrnet'].prefix, "--with-graphlib=%s" % spec['graphlib'].prefix, -- cgit v1.2.3-70-g09d2 From 656cf12cdac9bbfdcb583b29eb5d287c430ef6d6 Mon Sep 17 00:00:00 2001 From: Adam Moody Date: Tue, 16 Sep 2014 16:50:54 -0700 Subject: add adeptutils and callpath packages --- var/spack/packages/adeptutils/package.py | 40 ++++++++++++++++++++++++++++++++ var/spack/packages/callpath/package.py | 12 +++++++--- 2 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 var/spack/packages/adeptutils/package.py (limited to 'var') diff --git a/var/spack/packages/adeptutils/package.py b/var/spack/packages/adeptutils/package.py new file mode 100644 index 0000000000..41bf7882db --- /dev/null +++ b/var/spack/packages/adeptutils/package.py @@ -0,0 +1,40 @@ +############################################################################## +# 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 Adeptutils(Package): + """LLNL Utility Libraries""" + + homepage = "https://github.com/scalability-llnl/adept-utils" + url = "https://github.com/scalability-llnl/adept-utils/archive/v1.0.tar.gz" + + version('1.0', '5c6cd9badce56c945ac8551e34804397') + + depends_on("mpi") + + def install(self, spec, prefix): + cmake("-DCMAKE_INSTALL_PREFIX=" + prefix) + make() + make("install") diff --git a/var/spack/packages/callpath/package.py b/var/spack/packages/callpath/package.py index 5d92d77302..3cbfc26060 100644 --- a/var/spack/packages/callpath/package.py +++ b/var/spack/packages/callpath/package.py @@ -25,13 +25,19 @@ from spack import * class Callpath(Package): - homepage = "https://github.com/tgamblin/callpath" - url = "http://github.com/tgamblin/callpath-0.2.tar.gz" + """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" + + version('1.0.1', '0047983d2a52c5c335f8ba7f5bab2325') depends_on("dyninst") + depends_on("adeptutils") depends_on("mpi") def install(self, spec, prefix): - configure("--prefix=" + prefix) + cmake("-DCMAKE_INSTALL_PREFIX=" + prefix, + "-DCALLPATH_WALKER=dyninst") make() make("install") -- cgit v1.2.3-70-g09d2 From a4c8e945c730d9028f90bb941eec98352fe6504e Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Tue, 16 Sep 2014 21:52:39 -0700 Subject: Some fixups for Adam's callpath and adept-utils packages. - Make spack packages RPATH *ALL* dependencies (i.e. the whole tree) - prevents callpath link from finding wrong libelf -- always uses the one dyninst used. --- lib/spack/spack/build_environment.py | 2 +- lib/spack/spack/package.py | 2 +- lib/spack/spack/util/executable.py | 2 +- var/spack/packages/adept-utils/package.py | 41 +++++++++++++++++++++++++++++++ var/spack/packages/adeptutils/package.py | 40 ------------------------------ var/spack/packages/callpath/package.py | 9 ++++--- 6 files changed, 49 insertions(+), 47 deletions(-) create mode 100644 var/spack/packages/adept-utils/package.py delete mode 100644 var/spack/packages/adeptutils/package.py (limited to 'var') diff --git a/lib/spack/spack/build_environment.py b/lib/spack/spack/build_environment.py index ec946cd2d7..182a5629fa 100644 --- a/lib/spack/spack/build_environment.py +++ b/lib/spack/spack/build_environment.py @@ -122,7 +122,7 @@ def set_build_environment_variables(pkg): # Prefixes of all of the package's dependencies go in # SPACK_DEPENDENCIES - dep_prefixes = [d.package.prefix for d in pkg.spec.dependencies.values()] + dep_prefixes = [d.prefix for d in pkg.spec.traverse(root=False)] path_set(SPACK_DEPENDENCIES, dep_prefixes) # Install prefix diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py index b0a9dd76b9..3e253286e8 100644 --- a/lib/spack/spack/package.py +++ b/lib/spack/spack/package.py @@ -773,7 +773,7 @@ class Package(object): ' '.join(formatted_deps)) self.remove_prefix() - tty.msg("Successfully uninstalled %s." % self.spec) + tty.msg("Successfully uninstalled %s." % self.spec.short_spec) # Once everything else is done, run post install hooks spack.hooks.post_uninstall(self) diff --git a/lib/spack/spack/util/executable.py b/lib/spack/spack/util/executable.py index bc27b25889..923c7c19a5 100644 --- a/lib/spack/spack/util/executable.py +++ b/lib/spack/spack/util/executable.py @@ -121,7 +121,7 @@ def which(name, **kwargs): for dir in path: exe = os.path.join(dir, name) - if os.access(exe, os.X_OK): + if os.path.isfile(exe) and os.access(exe, os.X_OK): return Executable(exe) if required: diff --git a/var/spack/packages/adept-utils/package.py b/var/spack/packages/adept-utils/package.py new file mode 100644 index 0000000000..2515322ec2 --- /dev/null +++ b/var/spack/packages/adept-utils/package.py @@ -0,0 +1,41 @@ +############################################################################## +# 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 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" + + version('1.0', '5c6cd9badce56c945ac8551e34804397') + + depends_on("boost") + depends_on("mpi") + + def install(self, spec, prefix): + cmake(*std_cmake_args) + make() + make("install") diff --git a/var/spack/packages/adeptutils/package.py b/var/spack/packages/adeptutils/package.py deleted file mode 100644 index 41bf7882db..0000000000 --- a/var/spack/packages/adeptutils/package.py +++ /dev/null @@ -1,40 +0,0 @@ -############################################################################## -# Copyright (c) 2013, Lawrence Livermore National Security, LLC. -# Produced at the Lawrence Livermore National Laboratory. -# -# This file is part of Spack. -# Written by 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 Adeptutils(Package): - """LLNL Utility Libraries""" - - homepage = "https://github.com/scalability-llnl/adept-utils" - url = "https://github.com/scalability-llnl/adept-utils/archive/v1.0.tar.gz" - - version('1.0', '5c6cd9badce56c945ac8551e34804397') - - depends_on("mpi") - - def install(self, spec, prefix): - cmake("-DCMAKE_INSTALL_PREFIX=" + prefix) - make() - make("install") diff --git a/var/spack/packages/callpath/package.py b/var/spack/packages/callpath/package.py index 3cbfc26060..84170d9c9e 100644 --- a/var/spack/packages/callpath/package.py +++ b/var/spack/packages/callpath/package.py @@ -25,7 +25,8 @@ from spack import * class Callpath(Package): - """Library for representing callpaths consistently in distributed-memory performance tools.""" + """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" @@ -33,11 +34,11 @@ class Callpath(Package): version('1.0.1', '0047983d2a52c5c335f8ba7f5bab2325') depends_on("dyninst") - depends_on("adeptutils") + depends_on("adept-utils") depends_on("mpi") def install(self, spec, prefix): - cmake("-DCMAKE_INSTALL_PREFIX=" + prefix, - "-DCALLPATH_WALKER=dyninst") + # TODO: offer options for the walker used. + cmake('.', "-DCALLPATH_WALKER=dyninst", *std_cmake_args) make() make("install") -- cgit v1.2.3-70-g09d2 From 6c94fc4fd28437da840b5761fd63b53224d2f17c Mon Sep 17 00:00:00 2001 From: Adam Moody Date: Wed, 17 Sep 2014 12:28:00 -0700 Subject: added mpileaks (finally!) --- var/spack/packages/mpileaks/package.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'var') diff --git a/var/spack/packages/mpileaks/package.py b/var/spack/packages/mpileaks/package.py index 3307b9fdee..4ef866588c 100644 --- a/var/spack/packages/mpileaks/package.py +++ b/var/spack/packages/mpileaks/package.py @@ -25,13 +25,20 @@ from spack import * class Mpileaks(Package): - homepage = "http://www.llnl.gov" - url = "http://www.llnl.gov/mpileaks-1.0.tar.gz" + """Tool to detect and report leaked MPI objects like MPI_Requests and MPI_Datatypes.""" + + homepage = "https://github.com/hpc/mpileaks" + url = "https://github.com/hpc/mpileaks/releases/download/v1.0/mpileaks-1.0.tar.gz" + + version('1.0', '8838c574b39202a57d7c2d68692718aa') depends_on("mpi") + depends_on("adept-utils") depends_on("callpath") def install(self, spec, prefix): - configure("--prefix=" + prefix) + configure("--prefix=" + prefix, + "--with-adept-utils=" + spec['adept-utils'].prefix, + "--with-callpath=" + spec['callpath'].prefix) make() make("install") -- cgit v1.2.3-70-g09d2 From 31bd1e069ce2267e4dd9859bd3cec231987cedcd Mon Sep 17 00:00:00 2001 From: David Boehme Date: Wed, 17 Sep 2014 12:28:33 -0700 Subject: Add Score-P 1.3 release. Works for gcc, still some issues with Intel builds. --- var/spack/packages/cube/package.py | 6 +++-- var/spack/packages/opari2/package.py | 37 +++++++++++++++++++++++++ var/spack/packages/otf2/package.py | 4 +-- var/spack/packages/scorep/package.py | 52 +++++++++++++++++++++++++++++------- 4 files changed, 86 insertions(+), 13 deletions(-) (limited to 'var') diff --git a/var/spack/packages/cube/package.py b/var/spack/packages/cube/package.py index 16babb0b58..d97cd25636 100644 --- a/var/spack/packages/cube/package.py +++ b/var/spack/packages/cube/package.py @@ -17,9 +17,11 @@ class Cube(Package): 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=c++ +CXX=CC F77=f77 FC=f90 #CFLAGS=-fPIC @@ -27,7 +29,7 @@ FC=f90 """ frontend_user_provided = """\ CC_FOR_BUILD=cc -CXX_FOR_BUILD=c++ +CXX_FOR_BUILD=CC F77_FOR_BUILD=f70 FC_FOR_BUILD=f90 """ diff --git a/var/spack/packages/opari2/package.py b/var/spack/packages/opari2/package.py index b571145195..daaee61e3a 100644 --- a/var/spack/packages/opari2/package.py +++ b/var/spack/packages/opari2/package.py @@ -1,6 +1,7 @@ # FIXME: Add copyright statement here from spack import * +from contextlib import closing class Opari2(Package): """OPARI2 is a source-to-source instrumentation tool for OpenMP and @@ -18,9 +19,45 @@ class Opari2(Package): 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 diff --git a/var/spack/packages/otf2/package.py b/var/spack/packages/otf2/package.py index 6f4ab997af..fa0a5898b6 100644 --- a/var/spack/packages/otf2/package.py +++ b/var/spack/packages/otf2/package.py @@ -43,9 +43,9 @@ MPI_CFLAGS=-fPIC MPI_CXXFLAGS=-fPIC """ - @when('@:1.2') + @when('@:1.2.1') def version_specific_args(self): - return ["--with-platform=disabled"] + return ["--with-platform=disabled", "CC=cc", "CXX=c++", "F77=f77", "F90=f90", "CFLAGS=-fPIC", "CXXFLAGS=-fPIC"] @when('@1.3:') def version_specific_args(self): diff --git a/var/spack/packages/scorep/package.py b/var/spack/packages/scorep/package.py index 5c42cfdbf2..32a772e3db 100644 --- a/var/spack/packages/scorep/package.py +++ b/var/spack/packages/scorep/package.py @@ -1,6 +1,7 @@ # FIXME: Add copyright statement from spack import * +from contextlib import closing class Scorep(Package): """The Score-P measurement infrastructure is a highly scalable and @@ -11,16 +12,56 @@ class Scorep(Package): homepage = "http://www.vi-hps.org/projects/score-p" url = "http://www.vi-hps.org/upload/packages/scorep/scorep-1.2.3.tar.gz" + version('1.3', '9db6f957b7f51fa01377a9537867a55c', + url = 'http://www.vi-hps.org/upload/packages/scorep/scorep-1.3.tar.gz') + version('1.2.3', '4978084e7cbd05b94517aa8beaea0817') depends_on("mpi") depends_on("papi") - depends_on("otf2@1.2:1.2.1") + # depends_on("otf2@1.2:1.2.1") # only Score-P 1.2.x + depends_on("otf2") depends_on("opari2") - depends_on("cube") + 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 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, + "--with-custom-compilers", "--with-otf2=%s" % spec['otf2'].prefix.bin, "--with-opari2=%s" % spec['opari2'].prefix.bin, "--with-cube=%s" % spec['cube'].prefix.bin, @@ -28,13 +69,6 @@ class Scorep(Package): "--with-papi-lib=%s" % spec['papi'].prefix.lib, "--enable-shared"] - if spec.satisfies('%gcc'): - configure_args.append('--with-nocross-compiler-suite=gcc') - if spec.satisfies('%intel'): - configure_args.append('--with-nocross-compiler-suite=intel') - if spec.satisfies('%pgi'): - configure_args.append('--with-nocross-compiler-suite=pgi') - configure(*configure_args) make() -- cgit v1.2.3-70-g09d2 From 250ffc28a3f94d039829cb96078a8242086e7dd5 Mon Sep 17 00:00:00 2001 From: Adam Moody Date: Wed, 17 Sep 2014 23:40:16 -0700 Subject: update libcircle to download tarball from github/hpc --- var/spack/packages/libcircle/package.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'var') diff --git a/var/spack/packages/libcircle/package.py b/var/spack/packages/libcircle/package.py index e398125328..3f7c996fb0 100644 --- a/var/spack/packages/libcircle/package.py +++ b/var/spack/packages/libcircle/package.py @@ -6,9 +6,9 @@ class Libcircle(Package): using self-stabilizing work stealing.""" homepage = "https://github.com/hpc/libcircle" - url = "https://github.com/adammoody/libcircle/releases/download/v0.2.1-rc.1/libcircle-0.2.1-rc.1.tar.gz" - version('0.2.1-rc.1', 'a10a14e76ac2ad7357a4b21b794e8e4e') + version('0.2.1-rc.1', '2b1369a5736457239f908abf88143ec2', + url='https://github.com/hpc/libcircle/releases/download/0.2.1-rc.1/libcircle-0.2.1-rc.1.tar.gz') depends_on('mpi') -- cgit v1.2.3-70-g09d2 From e85830e3133b793d6da32c8d546a2f8d15d220d9 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Thu, 18 Sep 2014 01:49:30 -0700 Subject: Fileutils successfully finds libarchive; can't find dtcmp despite config arg. --- var/spack/packages/fileutils/package.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'var') diff --git a/var/spack/packages/fileutils/package.py b/var/spack/packages/fileutils/package.py index 449ed0c72e..73398a826c 100644 --- a/var/spack/packages/fileutils/package.py +++ b/var/spack/packages/fileutils/package.py @@ -8,7 +8,7 @@ class Fileutils(Package): homepage = "https://github.com/hpc/fileutils" url = "https://github.com/hpc/fileutils/releases/download/v0.0.1-alpha.4/fileutils-0.0.1-alpha.4.tar.gz" - version('0.0.1-alpha.4', 'a01dbe5a2e03f3c70c7a98ec0a2554e1') + version('0.0.1-alpha.4', 'e37b48ea43c95f5a1ede0ee01019ae58') depends_on('mpi') depends_on('libcircle') @@ -17,6 +17,6 @@ class Fileutils(Package): def install(self, spec, prefix): configure("--prefix=" + prefix, - "--with-libdtcmp=" + spec['dtcmp'].prefix) + "--with-dtcmp=" + spec['dtcmp'].prefix) make() make("install") -- cgit v1.2.3-70-g09d2 From 4d2ccfa02842eb152cf7a9bfd3e91cde6e8c6816 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Thu, 18 Sep 2014 21:33:09 -0700 Subject: Take fileutils out and just merge the deps into develop. --- var/spack/packages/fileutils/package.py | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 var/spack/packages/fileutils/package.py (limited to 'var') diff --git a/var/spack/packages/fileutils/package.py b/var/spack/packages/fileutils/package.py deleted file mode 100644 index 73398a826c..0000000000 --- a/var/spack/packages/fileutils/package.py +++ /dev/null @@ -1,22 +0,0 @@ -import os -from spack import * - -class Fileutils(Package): - """FileUtils provides a suite of MPI-based tools to manage large files - and datasets on parallel file systems.""" - - homepage = "https://github.com/hpc/fileutils" - url = "https://github.com/hpc/fileutils/releases/download/v0.0.1-alpha.4/fileutils-0.0.1-alpha.4.tar.gz" - - version('0.0.1-alpha.4', 'e37b48ea43c95f5a1ede0ee01019ae58') - - depends_on('mpi') - depends_on('libcircle') - depends_on('libarchive') - depends_on('dtcmp') - - def install(self, spec, prefix): - configure("--prefix=" + prefix, - "--with-dtcmp=" + spec['dtcmp'].prefix) - make() - make("install") -- cgit v1.2.3-70-g09d2 From 9165a000a3b0ac68692d8ad58bb41d85276cec61 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Thu, 18 Sep 2014 23:22:03 -0700 Subject: Better C++11 support, remove non-standalone llvm-compiler-rt. - LLVM non-standalone add-ons are difficult to build outside LLVM. - May have to wait for future versions of LLVM to build some of these --- lib/spack/spack/build_environment.py | 2 +- lib/spack/spack/cmd/pkg.py | 124 +++++++++++++++++++++++++ lib/spack/spack/compiler.py | 3 + lib/spack/spack/compilers/gcc.py | 11 +++ lib/spack/spack/compilers/intel.py | 9 ++ lib/spack/spack/package.py | 9 ++ var/spack/packages/clang/package.py | 2 +- var/spack/packages/llvm-compiler-rt/package.py | 57 ------------ var/spack/packages/llvm-lld/package.py | 4 +- var/spack/packages/llvm/package.py | 2 +- 10 files changed, 161 insertions(+), 62 deletions(-) create mode 100644 lib/spack/spack/cmd/pkg.py delete mode 100644 var/spack/packages/llvm-compiler-rt/package.py (limited to 'var') diff --git a/lib/spack/spack/build_environment.py b/lib/spack/spack/build_environment.py index f72c724420..80abde70a9 100644 --- a/lib/spack/spack/build_environment.py +++ b/lib/spack/spack/build_environment.py @@ -84,7 +84,7 @@ class MakeExecutable(Executable): def set_compiler_environment_variables(pkg): assert(pkg.spec.concrete) - compiler = compilers.compiler_for_spec(pkg.spec.compiler) + compiler = pkg.compiler # Set compiler variables used by CMake and autotools os.environ['CC'] = 'cc' diff --git a/lib/spack/spack/cmd/pkg.py b/lib/spack/spack/cmd/pkg.py new file mode 100644 index 0000000000..82ebd13ff9 --- /dev/null +++ b/lib/spack/spack/cmd/pkg.py @@ -0,0 +1,124 @@ +############################################################################## +# 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 +############################################################################## +import os + +from external import argparse +import llnl.util.tty as tty +from llnl.util.tty.colify import colify + +import spack +from spack.util.executable import * + +description = "Query packages associated with particular git revisions in spack." + +def setup_parser(subparser): + sp = subparser.add_subparsers( + metavar='SUBCOMMAND', dest='pkg_command') + + list_parser = sp.add_parser('list', help=pkg_list.__doc__) + list_parser.add_argument('rev', default='HEAD', nargs='?', + help="Revision to list packages for.") + + diff_parser = sp.add_parser('diff', help=pkg_diff.__doc__) + diff_parser.add_argument('rev1', nargs='?', default='HEAD^', + help="Revision to compare against.") + diff_parser.add_argument('rev2', nargs='?', default='HEAD', + help="Revision to compare to rev1 (default is HEAD).") + + add_parser = sp.add_parser('added', help=pkg_added.__doc__) + add_parser.add_argument('rev1', nargs='?', default='HEAD^', + help="Revision to compare against.") + add_parser.add_argument('rev2', nargs='?', default='HEAD', + help="Revision to compare to rev1 (default is HEAD).") + + rm_parser = sp.add_parser('removed', help=pkg_removed.__doc__) + rm_parser.add_argument('rev1', nargs='?', default='HEAD^', + help="Revision to compare against.") + rm_parser.add_argument('rev2', nargs='?', default='HEAD', + help="Revision to compare to rev1 (default is HEAD).") + + +def get_git(): + # cd to spack prefix to do git operations + os.chdir(spack.prefix) + + # If this is a non-git version of spack, give up. + if not os.path.isdir('.git'): + tty.die("No git repo in %s. Can't use 'spack pkg'" % spack.prefix) + + return which("git", required=True) + + +def list_packages(rev): + git = get_git() + relpath = spack.packages_path[len(spack.prefix + os.path.sep):] + os.path.sep + output = git('ls-tree', '--full-tree', '--name-only', rev, relpath, + return_output=True) + return sorted(line[len(relpath):] for line in output.split('\n') if line) + + +def pkg_list(args): + """List packages associated with a particular spack git revision.""" + colify(list_packages(args.rev)) + + +def diff_packages(rev1, rev2): + p1 = set(list_packages(rev1)) + p2 = set(list_packages(rev2)) + return p1.difference(p2), p2.difference(p1) + + +def pkg_diff(args): + """Compare packages available in two different git revisions.""" + u1, u2 = diff_packages(args.rev1, args.rev2) + + if u1: + print "%s:" % args.rev1 + colify(sorted(u1), indent=4) + if u1: print + + if u2: + print "%s:" % args.rev2 + colify(sorted(u2), indent=4) + + +def pkg_removed(args): + """Show packages removed since a commit.""" + u1, u2 = diff_packages(args.rev1, args.rev2) + if u1: colify(sorted(u1)) + + +def pkg_added(args): + """Show packages added since a commit.""" + u1, u2 = diff_packages(args.rev1, args.rev2) + if u2: colify(sorted(u2)) + + +def pkg(parser, args): + action = { 'diff' : pkg_diff, + 'list' : pkg_list, + 'removed' : pkg_removed, + 'added' : pkg_added } + action[args.pkg_command](args) diff --git a/lib/spack/spack/compiler.py b/lib/spack/spack/compiler.py index 716356bdd2..e4a6629759 100644 --- a/lib/spack/spack/compiler.py +++ b/lib/spack/spack/compiler.py @@ -94,6 +94,9 @@ class Compiler(object): # Names of generic arguments used by this compiler arg_rpath = '-Wl,-rpath,%s' + # argument used to get C++11 options + cxx11_flag = "-std=c++11" + def __init__(self, cspec, cc, cxx, f77, fc): def check(exe): diff --git a/lib/spack/spack/compilers/gcc.py b/lib/spack/spack/compilers/gcc.py index cc3c52ca61..097b24bb87 100644 --- a/lib/spack/spack/compilers/gcc.py +++ b/lib/spack/spack/compilers/gcc.py @@ -22,7 +22,9 @@ # along with this program; if not, write to the Free Software Foundation, # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## +import llnl.util.tty as tty from spack.compiler import * +from spack.version import ver class Gcc(Compiler): # Subclasses use possible names of C compiler @@ -40,6 +42,15 @@ class Gcc(Compiler): # MacPorts builds gcc versions with prefixes and -mp-X.Y suffixes. suffixes = [r'-mp-\d\.\d'] + @property + def cxx11_flag(self): + if self.version < ver('4.3'): + tty.die("Only gcc 4.3 and above support c++11.") + elif self.version < ver('4.7'): + return "-std=gnu++0x" + else: + return "-std=gnu++11" + @classmethod def fc_version(cls, fc): return get_compiler_version( diff --git a/lib/spack/spack/compilers/intel.py b/lib/spack/spack/compilers/intel.py index 02e3b96b19..2a72c4eaea 100644 --- a/lib/spack/spack/compilers/intel.py +++ b/lib/spack/spack/compilers/intel.py @@ -37,6 +37,15 @@ class Intel(Compiler): # Subclasses use possible names of Fortran 90 compiler fc_names = ['ifort'] + @property + def cxx11_flag(self): + if self.version < ver('11.1'): + tty.die("Only intel 11.1 and above support c++11.") + elif self.version < ver('13'): + return "-std=c++0x" + else: + return "-std=c++11" + @classmethod def default_version(cls, comp): diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py index 0375df7dac..1afdeaf2a0 100644 --- a/lib/spack/spack/package.py +++ b/lib/spack/spack/package.py @@ -48,6 +48,7 @@ from llnl.util.lang import * import spack import spack.spec import spack.error +import spack.compilers import spack.hooks import spack.build_environment as build_env import spack.url as url @@ -505,6 +506,14 @@ class Package(object): return self.spec.prefix + @property + def compiler(self): + """Get the spack.compiler.Compiler object used to build this package.""" + if not self.spec.concrete: + raise ValueError("Can only get a compiler for a concrete package.") + return spack.compilers.compiler_for_spec(self.spec.compiler) + + def url_version(self, version): """Given a version, this returns a string that should be substituted into the package's URL to download that version. diff --git a/var/spack/packages/clang/package.py b/var/spack/packages/clang/package.py index 07948a3ed7..b0097bd126 100644 --- a/var/spack/packages/clang/package.py +++ b/var/spack/packages/clang/package.py @@ -36,7 +36,7 @@ class Clang(Package): version('3.4.2', '87945973b7c73038871c5f849a818588') def install(self, spec, prefix): - env['CXXFLAGS'] = '-std=c++11' + env['CXXFLAGS'] = self.compiler.cxx11_flag with working_dir('spack-build', create=True): cmake('..', diff --git a/var/spack/packages/llvm-compiler-rt/package.py b/var/spack/packages/llvm-compiler-rt/package.py deleted file mode 100644 index e3fa176afe..0000000000 --- a/var/spack/packages/llvm-compiler-rt/package.py +++ /dev/null @@ -1,57 +0,0 @@ -############################################################################## -# Copyright (c) 2013, Lawrence Livermore National Security, LLC. -# Produced at the Lawrence Livermore National Laboratory. -# -# This file is part of Spack. -# Written by 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 LlvmCompilerRt(Package): - """Compiler-rt consists of several libraries to be used with LLVM: - basics: - A simple library that provides an implementation of the - low-level target-specific hooks required by code - generation and other runtime components. - - sanitizer runtimes: - Runtime libraries that are required to run the code with - sanitizer instrumentation. - - profiler: - Library used to collect coverage information. - - BlocksRuntime: - A target-independent implementation of Apple "Blocks" - runtime interfaces. - """ - homepage = "http://compiler-rt.llvm.org" - url = "http://llvm.org/releases/3.4/compiler-rt-3.4.src.tar.gz" - - depends_on("clang") - depends_on("llvm") - - version('3.4', '7938353e3a3bda85733a165e7ac4bb84') - - def install(self, spec, prefix): - cmake(".", *std_cmake_args) - - make() - make("install") diff --git a/var/spack/packages/llvm-lld/package.py b/var/spack/packages/llvm-lld/package.py index ba0b229228..f229211396 100644 --- a/var/spack/packages/llvm-lld/package.py +++ b/var/spack/packages/llvm-lld/package.py @@ -35,12 +35,12 @@ class LlvmLld(Package): version('3.4', '3b6a17e58c8416c869c14dd37682f78e') def install(self, spec, prefix): - env['CXXFLAGS'] = '-std=c++11' + env['CXXFLAGS'] = self.compier.cxx11_flag with working_dir('spack-build', create=True): cmake('..', '-DLLD_PATH_TO_LLVM_BUILD=%s' % spec['llvm'].prefix, '-DLLVM_MAIN_SRC_DIR=%s' % spec['llvm'].prefix, *std_cmake_args) - make('VERBOSE=1') + make() make("install") diff --git a/var/spack/packages/llvm/package.py b/var/spack/packages/llvm/package.py index 08ae7208cd..c7a10df55a 100644 --- a/var/spack/packages/llvm/package.py +++ b/var/spack/packages/llvm/package.py @@ -37,7 +37,7 @@ class Llvm(Package): version('3.4.2', 'a20669f75967440de949ac3b1bad439c') def install(self, spec, prefix): - env['CXXFLAGS'] = '-std=c++11' + env['CXXFLAGS'] = self.compiler.cxx11_flag with working_dir('spack-build', create=True): cmake('..', -- cgit v1.2.3-70-g09d2