summaryrefslogtreecommitdiff
path: root/var/spack/packages/scorep/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/packages/scorep/package.py')
-rw-r--r--var/spack/packages/scorep/package.py118
1 files changed, 62 insertions, 56 deletions
diff --git a/var/spack/packages/scorep/package.py b/var/spack/packages/scorep/package.py
index f013bd1cbb..0820f2d8ac 100644
--- a/var/spack/packages/scorep/package.py
+++ b/var/spack/packages/scorep/package.py
@@ -1,74 +1,80 @@
-# FIXME: Add copyright statement
+##############################################################################
+# Copyright (c) 2013, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License (as published by
+# the Free Software Foundation) version 2.1 dated February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
from spack import *
+
class Scorep(Package):
- """The Score-P measurement infrastructure is a highly scalable and
+ """
+ The Score-P measurement infrastructure is a highly scalable and
easy-to-use tool suite for profiling, event tracing, and online
analysis of HPC applications."""
- # FIXME: add a proper url for your package's homepage here.
homepage = "http://www.vi-hps.org/projects/score-p"
url = "http://www.vi-hps.org/upload/packages/scorep/scorep-1.2.3.tar.gz"
+ version('1.4.2', '3b9a042b13bdd5836452354e6567f71e',
+ url='http://www.vi-hps.org/upload/packages/scorep/scorep-1.4.2.tar.gz')
version('1.3', '9db6f957b7f51fa01377a9537867a55c',
- url = 'http://www.vi-hps.org/upload/packages/scorep/scorep-1.3.tar.gz')
+ url='http://www.vi-hps.org/upload/packages/scorep/scorep-1.3.tar.gz')
- version('1.2.3', '4978084e7cbd05b94517aa8beaea0817')
+ ##########
+ # Dependencies for SCORE-P are quite tight. See the homepage for more information.
+ # SCOREP 1.4.2
+ depends_on('otf2@1.5:1.6', when='@1.4.2')
+ depends_on('opari2@1.1.4', when='@1.4.2')
+ depends_on('cube@4.3:4.4', when='@1.4.2')
+ # SCOREP 1.3
+ depends_on("otf2@1.4", when='@1.3')
+ depends_on("opari2@1.1.4", when='@1.3')
+ depends_on("cube@4.2.3", when='@1.3')
+ ##########
depends_on("mpi")
depends_on("papi")
- # depends_on("otf2@1.2:1.2.1") # only Score-P 1.2.x
- depends_on("otf2")
- depends_on("opari2")
- depends_on("cube@4.2:4.2.3")
- backend_user_provided = """\
-CC=cc
-CXX=c++
-F77=f77
-FC=f90
-CFLAGS=-fPIC
-CXXFLAGS=-fPIC
-"""
- frontend_user_provided = """\
-CC_FOR_BUILD=cc
-CXX_FOR_BUILD=c++
-F77_FOR_BUILD=f70
-FC_FOR_BUILD=f90
-CFLAGS_FOR_BUILD=-fPIC
-CXXFLAGS_FOR_BUILD=-fPIC
-"""
- mpi_user_provided = """\
-MPICC=mpicc
-MPICXX=mpicxx
-MPIF77=mpif77
-MPIFC=mpif90
-MPI_CFLAGS=-fPIC
-MPI_CXXFLAGS=-fPIC
-"""
+ def get_compiler_config_line(self):
+ backend_user_provided = ['CC=%s' % self.compiler.cc_names[0],
+ 'CXX=%s' % self.compiler.cxx_names[0],
+ 'F77=%s' % self.compiler.f77_names[0] if len(self.compiler.f77_names) else "",
+ 'FC=%s' % self.compiler.fc_names[0] if len(self.compiler.fc_names) else "",
+ 'CFLAGS=-fPIC %s' % self.rpath_args,
+ 'CXXFLAGS=-fPIC %s'% self.rpath_args]
+ return backend_user_provided
def install(self, spec, prefix):
- # Use a custom compiler configuration, otherwise the score-p
- # build system messes with spack's compiler settings.
- # Create these three files in the build directory
- with open("platform-backend-user-provided", "w") as backend_file:
- backend_file.write(self.backend_user_provided)
- with open("platform-frontend-user-provided", "w") as frontend_file:
- frontend_file.write(self.frontend_user_provided)
- with open("platform-mpi-user-provided", "w") as mpi_file:
- mpi_file.write(self.mpi_user_provided)
-
- configure_args = ["--prefix=%s" % prefix,
- "--with-custom-compilers",
- "--with-otf2=%s" % spec['otf2'].prefix.bin,
- "--with-opari2=%s" % spec['opari2'].prefix.bin,
- "--with-cube=%s" % spec['cube'].prefix.bin,
- "--with-papi-header=%s" % spec['papi'].prefix.include,
- "--with-papi-lib=%s" % spec['papi'].prefix.lib,
- "--enable-shared"]
-
- configure(*configure_args)
-
- make()
- make("install")
+ configure = Executable( join_path(self.stage.source_path, 'configure') )
+ with working_dir('spack-build', create=True):
+ configure_args = ["--prefix=%s" % prefix,
+ "--with-otf2=%s" % spec['otf2'].prefix.bin,
+ "--with-opari2=%s" % spec['opari2'].prefix.bin,
+ "--with-cube=%s" % spec['cube'].prefix.bin,
+ "--with-papi-header=%s" % spec['papi'].prefix.include,
+ "--with-papi-lib=%s" % spec['papi'].prefix.lib,
+ "--enable-shared"]
+ configure_args.extend(self.get_compiler_config_line())
+ configure(*configure_args)
+ make()
+ make("install")