Skip to content
Snippets Groups Projects
Commit 17ac609d authored by Todd Gamblin's avatar Todd Gamblin
Browse files

Merge branch 'features/memaxes' into develop

Conflicts:
	var/spack/packages/libpng/package.py
parents 724b72bd 0c94a6e2
No related branches found
No related tags found
No related merge requests found
Showing
with 293 additions and 8 deletions
...@@ -41,6 +41,7 @@ people: ...@@ -41,6 +41,7 @@ people:
* David Beckingsale * David Beckingsale
* David Boehme * David Boehme
* Alfredo Gimenez
* Luc Jaulmes * Luc Jaulmes
* Matt Legendre * Matt Legendre
* Greg Lee * Greg Lee
......
...@@ -184,6 +184,10 @@ def set_module_variables_for_package(pkg): ...@@ -184,6 +184,10 @@ def set_module_variables_for_package(pkg):
if platform.mac_ver()[0]: if platform.mac_ver()[0]:
m.std_cmake_args.append('-DCMAKE_FIND_FRAMEWORK=LAST') m.std_cmake_args.append('-DCMAKE_FIND_FRAMEWORK=LAST')
# Set up CMake rpath
m.std_cmake_args.append('-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=FALSE')
m.std_cmake_args.append('-DCMAKE_INSTALL_RPATH=%s' % ":".join(get_rpaths(pkg)))
# Emulate some shell commands for convenience # Emulate some shell commands for convenience
m.pwd = os.getcwd m.pwd = os.getcwd
m.cd = os.chdir m.cd = os.chdir
...@@ -203,6 +207,16 @@ def set_module_variables_for_package(pkg): ...@@ -203,6 +207,16 @@ def set_module_variables_for_package(pkg):
m.prefix = pkg.prefix m.prefix = pkg.prefix
def get_rpaths(pkg):
"""Get a list of all the rpaths for a package."""
rpaths = [pkg.prefix.lib, pkg.prefix.lib64]
rpaths.extend(d.prefix.lib for d in pkg.spec.traverse(root=False)
if os.path.isdir(d.prefix.lib))
rpaths.extend(d.prefix.lib64 for d in pkg.spec.traverse(root=False)
if os.path.isdir(d.prefix.lib64))
return rpaths
def setup_package(pkg): def setup_package(pkg):
"""Execute all environment setup routines.""" """Execute all environment setup routines."""
set_compiler_environment_variables(pkg) set_compiler_environment_variables(pkg)
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
############################################################################## ##############################################################################
import os import os
import sys
from external import argparse from external import argparse
import llnl.util.tty as tty import llnl.util.tty as tty
......
...@@ -165,8 +165,8 @@ fi ...@@ -165,8 +165,8 @@ fi
# #
# Set up modules and dotkit search paths in the user environment # Set up modules and dotkit search paths in the user environment
# #
_sp_share_dir="$(dirname $_sp_source_file)" _sp_share_dir=$(cd "$(dirname $_sp_source_file)" && pwd)
_sp_prefix="$(dirname $(dirname $_sp_share_dir))" _sp_prefix=$(cd "$(dirname $(dirname $_sp_share_dir))" && pwd)
# TODO: fix SYS_TYPE to something non-LLNL-specific # TODO: fix SYS_TYPE to something non-LLNL-specific
_spack_pathadd DK_NODE "$_sp_share_dir/dotkit/$SYS_TYPE" _spack_pathadd DK_NODE "$_sp_share_dir/dotkit/$SYS_TYPE"
......
from spack import *
class Mitos(Package):
"""Mitos is a library and a tool for collecting sampled memory
performance data to view with MemAxes"""
homepage = "https://github.com/scalability-llnl/Mitos"
url = "https://github.com/scalability-llnl/Mitos"
version('0.7', git='https://github.com/scalability-llnl/Mitos.git', tag='v0.7')
depends_on('dyninst')
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
cmake('..', *std_cmake_args)
make()
make("install")
from spack import *
class Bison(Package):
"""Bison is a general-purpose parser generator that converts
an annotated context-free grammar into a deterministic LR or
generalized LR (GLR) parser employing LALR(1) parser tables."""
homepage = "http://www.gnu.org/software/bison/"
url = "http://ftp.gnu.org/gnu/bison/bison-3.0.tar.gz"
version('3.0.4', 'a586e11cd4aff49c3ff6d3b6a4c9ccf8')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")
...@@ -23,3 +23,7 @@ def install(self, spec, prefix): ...@@ -23,3 +23,7 @@ def install(self, spec, prefix):
configure("--prefix=%s" % prefix) configure("--prefix=%s" % prefix)
make() make()
make("install") make("install")
# dbus needs a machine id generated after install
dbus_uuidgen = Executable(join_path(prefix.bin, 'dbus-uuidgen'))
dbus_uuidgen('--ensure')
from spack import *
class Dri2proto(Package):
"""DRI2 Protocol Headers."""
homepage = "http://http://cgit.freedesktop.org/xorg/proto/dri2proto/"
url = "http://xorg.freedesktop.org/releases/individual/proto/dri2proto-2.8.tar.gz"
version('2.8', '19ea18f63d8ae8053c9fa84b60365b77')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")
from spack import *
class Flex(Package):
"""Flex is a tool for generating scanners."""
homepage = "http://flex.sourceforge.net/"
url = "http://download.sourceforge.net/flex/flex-2.5.39.tar.gz"
version('2.5.39', 'e133e9ead8ec0a58d81166b461244fde')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")
from spack import *
class Gperf(Package):
"""GNU gperf is a perfect hash function generator. For a given
list of strings, it produces a hash function and hash table, in
form of C or C++ code, for looking up a value depending on the
input string. The hash function is perfect, which means that the
hash table has no collisions, and the hash table lookup needs a
single string comparison only."""
homepage = "https://www.gnu.org/software/gperf/"
url = "http://ftp.gnu.org/pub/gnu/gperf/gperf-3.0.4.tar.gz"
version('3.0.4', 'c1f1db32fb6598d6a93e6e88796a8632')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")
from spack import *
class Icu4c(Package):
"""ICU is a mature, widely used set of C/C++ and Java libraries
providing Unicode and Globalization support for software applications."""
homepage = "http://site.icu-project.org/"
url = "http://downloads.sourceforge.net/project/icu/ICU4C/54.1/icu4c-54_1-src.tgz"
version('54_1', 'e844caed8f2ca24c088505b0d6271bc0')
def install(self, spec, prefix):
cd("source")
configure("--prefix=%s" % prefix)
make()
make("install")
from spack import *
class Libdrm(Package):
"""A userspace library for accessing the DRM, direct
rendering manager, on Linux, BSD and other operating
systems that support the ioctl interface."""
homepage = "http://dri.freedesktop.org/libdrm/" # no real website...
url = "http://dri.freedesktop.org/libdrm/libdrm-2.4.59.tar.gz"
version('2.4.59', '105ac7af1afcd742d402ca7b4eb168b6')
version('2.4.33', '86e4e3debe7087d5404461e0032231c8')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")
...@@ -5,9 +5,9 @@ class Libpng(Package): ...@@ -5,9 +5,9 @@ class Libpng(Package):
homepage = "http://www.libpng.org/pub/png/libpng.html" homepage = "http://www.libpng.org/pub/png/libpng.html"
url = "http://download.sourceforge.net/libpng/libpng-1.6.16.tar.gz" url = "http://download.sourceforge.net/libpng/libpng-1.6.16.tar.gz"
version('1.6.14', '2101b3de1d5f348925990f9aa8405660')
version('1.6.15', '829a256f3de9307731d4f52dc071916d')
version('1.6.16', '1a4ad377919ab15b54f6cb6a3ae2622d') version('1.6.16', '1a4ad377919ab15b54f6cb6a3ae2622d')
version('1.6.15', '829a256f3de9307731d4f52dc071916d')
version('1.6.14', '2101b3de1d5f348925990f9aa8405660')
def install(self, spec, prefix): def install(self, spec, prefix):
configure("--prefix=%s" % prefix) configure("--prefix=%s" % prefix)
......
from spack import *
class Libxcb(Package):
"""The X protocol C-language Binding (XCB) is a replacement
for Xlib featuring a small footprint, latency hiding, direct
access to the protocol, improved threading support, and
extensibility."""
homepage = "http://xcb.freedesktop.org/"
url = "http://xcb.freedesktop.org/dist/libxcb-1.11.tar.gz"
version('1.11', '1698dd837d7e6e94d029dbe8b3a82deb')
depends_on("python")
depends_on("xcb-proto")
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")
from spack import *
class Libxshmfence(Package):
"""This is a tiny library that exposes a event API on top of Linux
futexes."""
homepage = "http://keithp.com/blogs/dri3_extension/" # not really...
url = "http://xorg.freedesktop.org/archive/individual/lib/libxshmfence-1.2.tar.gz"
version('1.2', 'f0b30c0fc568b22ec524859ee28556f1')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")
...@@ -35,6 +35,12 @@ class Llvm(Package): ...@@ -35,6 +35,12 @@ class Llvm(Package):
url = "http://llvm.org/releases/3.4.2/llvm-3.4.2.src.tar.gz" url = "http://llvm.org/releases/3.4.2/llvm-3.4.2.src.tar.gz"
version('3.4.2', 'a20669f75967440de949ac3b1bad439c') version('3.4.2', 'a20669f75967440de949ac3b1bad439c')
version('3.0', 'a8e5f5f1c1adebae7b4a654c376a6005',
url='http://llvm.org/releases/3.0/llvm-3.0.tar.gz')
version('2.9', '793138412d2af2c7c7f54615f8943771',
url='http://llvm.org/releases/2.9/llvm-2.9.tgz')
version('2.8', '220d361b4d17051ff4bb21c64abe05ba',
url='http://llvm.org/releases/2.8/llvm-2.8.tgz')
def install(self, spec, prefix): def install(self, spec, prefix):
env['CXXFLAGS'] = self.compiler.cxx11_flag env['CXXFLAGS'] = self.compiler.cxx11_flag
......
from spack import *
class Memaxes(Package):
"""MemAxes is a visualizer for sampled memory trace data."""
homepage = "https://github.com/scalability-llnl/MemAxes"
version('0.5', 'b0f561d48aa7301e028d074bc4b5751b',
url='https://github.com/scalability-llnl/MemAxes/archive/v0.5.tar.gz')
depends_on("cmake@2.8.9:")
depends_on("qt@5:")
depends_on("vtk")
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
cmake('..', *std_cmake_args)
make()
make("install")
from spack import *
class Mesa(Package):
"""Mesa is an open-source implementation of the OpenGL
specification - a system for rendering interactive 3D graphics."""
homepage = "http://www.mesa3d.org"
url = "ftp://ftp.freedesktop.org/pub/mesa/older-versions/8.x/8.0.5/MesaLib-8.0.5.tar.gz"
# url = "ftp://ftp.freedesktop.org/pub/mesa/10.4.4/MesaLib-10.4.4.tar.gz"
# version('10.4.4', '8d863a3c209bf5116b2babfccccc68ce')
version('8.0.5', 'cda5d101f43b8784fa60bdeaca4056f2')
# mesa 7.x, 8.x, 9.x
depends_on("libdrm@2.4.33")
depends_on("llvm@3.0")
# patch("llvm-fixes.patch") # using newer llvm
# mesa 10.x
# depends_on("py-mako")
# depends_on("flex")
# depends_on("bison")
# depends_on("dri2proto")
# depends_on("libxcb")
# depends_on("libxshmfence")
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")
from spack import *
class PyMako(Package):
"""A super-fast templating language that borrows the best
ideas from the existing templating languages."""
homepage = "https://pypi.python.org/pypi/mako"
url = "https://pypi.python.org/packages/source/M/Mako/Mako-1.0.1.tar.gz"
version('1.0.1', '9f0aafd177b039ef67b90ea350497a54')
depends_on('py-setuptools')
extends('python')
def install(self, spec, prefix):
python('setup.py', 'install', '--prefix=%s' % prefix)
import os import os
from spack import * from spack import *
import os
class Qt(Package): class Qt(Package):
"""Qt is a comprehensive cross-platform C++ application framework.""" """Qt is a comprehensive cross-platform C++ application framework."""
homepage = "http://qt.io" homepage = "http://qt.io"
list_url = 'http://download.qt-project.org/official_releases/qt/'
list_depth = 2
version('5.4.0', 'e8654e4b37dd98039ba20da7a53877e6',
url='http://download.qt-project.org/official_releases/qt/5.4/5.4.0/single/qt-everywhere-opensource-src-5.4.0.tar.gz')
version('5.3.2', 'febb001129927a70174467ecb508a682',
url='http://download.qt.io/archive/qt/5.3/5.3.2/single/qt-everywhere-opensource-src-5.3.2.tar.gz')
version('5.2.1', 'a78408c887c04c34ce615da690e0b4c8',
url='http://download.qt.io/archive/qt/5.2/5.2.1/single/qt-everywhere-opensource-src-5.2.1.tar.gz')
version('4.8.6', '2edbe4d6c2eff33ef91732602f3518eb', version('4.8.6', '2edbe4d6c2eff33ef91732602f3518eb',
url="http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz") url="http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz")
...@@ -21,26 +31,51 @@ class Qt(Package): ...@@ -21,26 +31,51 @@ class Qt(Package):
depends_on("libmng") depends_on("libmng")
depends_on("jpeg") depends_on("jpeg")
# Webkit
# depends_on("gperf")
# depends_on("flex")
# depends_on("bison")
# depends_on("ruby")
# depends_on("icu4c")
# OpenGL hardware acceleration
depends_on("mesa")
depends_on("libxcb")
def setup_dependent_environment(self, module, spec, dep_spec): def setup_dependent_environment(self, module, spec, dep_spec):
"""Dependencies of Qt find it using the QTDIR environment variable.""" """Dependencies of Qt find it using the QTDIR environment variable."""
os.environ['QTDIR'] = self.prefix os.environ['QTDIR'] = self.prefix
def patch(self): def patch(self):
if self.spec.satisfies('@4'):
qmake_conf = 'mkspecs/common/g++-base.conf'
elif self.spec.satisfies('@5'):
qmake_conf = 'qtbase/mkspecs/common/g++-base.conf'
else:
return
# Fix qmake compilers in the default mkspec # Fix qmake compilers in the default mkspec
qmake_conf = 'mkspecs/common/g++-base.conf' filter_file(r'^QMAKE_COMPILER *=.*$', 'QMAKE_COMPILER = cc', qmake_conf)
filter_file(r'^QMAKE_CC *=.*$', 'QMAKE_CC = cc', qmake_conf) filter_file(r'^QMAKE_CC *=.*$', 'QMAKE_CC = cc', qmake_conf)
filter_file(r'^QMAKE_CXX *=.*$', 'QMAKE_CXX = c++', qmake_conf) filter_file(r'^QMAKE_CXX *=.*$', 'QMAKE_CXX = c++', qmake_conf)
def install(self, spec, prefix): def install(self, spec, prefix):
# Apparently this is the only way to
# "truly" get rid of webkit compiles now...
os.rename("qtwebkit","no-qtwebkit")
os.rename("qtwebkit-examples","no-qtwebkit-examples")
configure('-v', configure('-v',
'-confirm-license', '-confirm-license',
'-opensource', '-opensource',
'-prefix', prefix, '-prefix', prefix,
'-openssl-linked', '-openssl-linked',
'-dbus-linked', '-dbus-linked',
'-fast', #'-fast',
'-opengl',
'-qt-xcb',
'-optimized-qmake', '-optimized-qmake',
'-no-pch', '-no-pch',
# phonon required for py-pyqt # phonon required for py-pyqt
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment