Skip to content

Commit

Permalink
Split CubeLib from Score-P into own component
Browse files Browse the repository at this point in the history
CubeLib is a component used by Score-P and currently installed as a
part of the Score-P package, but can also be used as a completely
independent component. Since there may be software version updates
indepently from Score-P, split it into its own package which can be
installed.

Signed-off-by: Jan André Reuter <j.reuter@fz-juelich.de>
  • Loading branch information
Thyre committed May 18, 2024
1 parent 930f2d2 commit 56c2875
Show file tree
Hide file tree
Showing 3 changed files with 171 additions and 0 deletions.
39 changes: 39 additions & 0 deletions components/perf-tools/cubelib/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
CUBE v4 LICENSE AGREEMENT
=========================

Copyright (c) 1998-2024 Forschungszentrum Juelich GmbH, Germany
Copyright (c) 2009-2015 German Research School for Simulation Sciences GmbH,
Juelich/Aachen, Germany

All rights reserved.


Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

* Neither the names of
the Forschungszentrum Juelich GmbH,
the German Research School for Simulation Sciences GmbH,
nor the names of their contributors may be used to endorse or promote
products derived from this software without specific prior written
permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Empty file.
132 changes: 132 additions & 0 deletions components/perf-tools/cubelib/SPECS/cubelib.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
#----------------------------------------------------------------------------bh-
# This RPM .spec file is part of the OpenHPC project.
#
# It may have been modified from the default version supplied by the underlying
# release package (if available) in order to apply patches, perform customized
# build/install configurations, and supply additional files to support
# desired integration conventions.
#
#----------------------------------------------------------------------------eh-

%include %{_sourcedir}/OHPC_macros

# Base package name
%define pname cubelib

Summary: CUBE Uniform Behavioral Encoding generic presentation writer component
Name: %{pname}%{PROJ_DELIM}
Version: 4.8.2
Release: 1%{?dist}
License: BSD-3-Clause
URL: http://www.scalasca.org/software/cube-4.x/download.html
Source1: http://apps.fz-juelich.de/scalasca/releases/cube/%shortwv/dist/cubelib-%{cubelib_vers}.tar.gz
BuildRequires: chrpath
BuildRequires: dbus-devel
BuildRequires: gcc-c++
BuildRequires: make
BuildRequires: which
BuildRequires: zlib-devel
Requires: lmod%{PROJ_DELIM} >= 7.6.1
Requires: %{name}-libs%{?_isa} = %{version}-%{release}

%global ver %version

# Default library install path
%define install_path %{OHPC_LIBS}/%{pname}/%version

%description
CUBE (CUBE Uniform Behavioral Encoding) is a generic presentation component
suitable for displaying a wide variety of performance metrics for parallel
programs including MPI and OpenMP applications. CUBE allows interactive
exploration of a multidimensional performance space in a scalable fashion.
Scalability is achieved in two ways: hierarchical decomposition of individual
dimensions and aggregation across different dimensions. All performance
metrics are uniformly accommodated in the same display and thus provide the
ability to easily compare the effects of different kinds of performance
behavior.

This component is the library, which is used for tools to communicate with
the profiling infrastructure.

This is the %{compiler_family} version.

%prep

%setup -q -n %{pname}-%{version}

%build

# OpenHPC compiler/mpi designation
%ohpc_setup_compiler

%if "%{compiler_family}" == "intel"
CONFIGURE_OPTIONS="--with-nocross-compiler-suite=oneapi "
%endif

%if "%{compiler_family}" == "arm1"
export CFLAGS="${CFLAGS} -fsimdmath "
export CXXFLAGS="${CXXFLAGS} -fsimdmath "
%endif

./configure --prefix=%{install_path} $CONFIGURE_OPTIONS \
CFLAGS="${CFLAGS}" \
CXXFLAGS="${CXXFLAGS}" \
CC=${CC} \
CXX=${CXX}

make %{?_smp_mflags} V=1

%check

%install

# OpenHPC compiler designation
%ohpc_setup_compiler

make DESTDIR=$RPM_BUILD_ROOT install

# don't package static libs
rm -rf $RPM_BUILD_ROOT%{install_path}/lib


# OpenHPC module file
%{__mkdir} -p %{buildroot}%{OHPC_MODULEDEPS}/%{pname}
%{__cat} << EOF > %{buildroot}/%{OHPC_MODULEDEPS}/%{pname}/%{version}
#%Module1.0#####################################################################

proc ModulesHelp { } {

puts stderr " "
puts stderr "This module loads the %{pname} library"
puts stderr "\nVersion %{version}\n"

}
module-whatis "Name: %{pname}"
module-whatis "Version: %{version}"
module-whatis "Category: performance tool"
module-whatis "Description: %{summary}"
module-whatis "URL %{url}"

set version %{version}

prepend-path PATH %{install_path}/bin
prepend-path MANPATH %{install_path}/share/man

setenv %{PNAME}_DIR %{install_path}
setenv %{PNAME}_BIN %{install_path}/bin

EOF

%{__cat} << EOF > %{buildroot}/%{OHPC_MODULEDEPS}/%{pname}/.version.%{version}
#%Module1.0#####################################################################
##
## version file for %{pname}-%{version}
##
set ModulesVersion "%{version}"
EOF

%{__mkdir} -p $RPM_BUILD_ROOT/%{_docdir}

%files
%{OHPC_PUB}
%doc ChangeLog COPYING INSTALL OPEN_ISSUES README

0 comments on commit 56c2875

Please sign in to comment.