#----------------------------------------------------------------------------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- # Build that is dependent on compiler toolchains %define ohpc_compiler_dependent 1 %include %{_sourcedir}/OHPC_macros # Base package name %define pname cubelib Summary: CUBE Uniform Behavioral Encoding generic presentation library component Name: %{pname}-%{compiler_family}%{PROJ_DELIM} Version: 4.9.1 Release: 1%{?dist} License: BSD-3-Clause Group: %{PROJ_NAME}/serial-libs URL: http://www.scalasca.org/software/cube-4.x/download.html Source0: https://perftools.pages.jsc.fz-juelich.de/cicd/cubelib/tags/cubelib-%{version}/cubelib-%{version}.tar.gz BuildRequires: chrpath BuildRequires: file BuildRequires: gcc-c++ BuildRequires: make BuildRequires: sed BuildRequires: which BuildRequires: zlib-devel Requires: lmod%{PROJ_DELIM} >= 7.6.1 # Default library install path %define install_path %{OHPC_LIBS}/%{compiler_family}/%{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. %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} \ --disable-static \ --enable-shared \ --disable-silent-rules \ --enable-backend-test-runs \ --with-platform=linux \ CC="$CC" \ CXX="$CXX" \ CFLAGS="$CFLAGS" \ CXXFLAGS="$CXXFLAGS" \ LDFLAGS="$LDFLAGS" \ ${CONFIGURE_OPTIONS} make %{?_smp_mflags} V=1 %check # OpenHPC compiler/mpi designation %ohpc_setup_compiler make check %install # OpenHPC compiler/mpi designation %ohpc_setup_compiler make DESTDIR=$RPM_BUILD_ROOT install # don't package static libs # May not be necessary anymore starting with # v4.9, but doesn't do any harm. rm -rf $RPM_BUILD_ROOT%{install_path}/lib/*.a \ $RPM_BUILD_ROOT%{install_path}/lib/*.la # OpenHPC module file %{__mkdir} -p %{buildroot}%{OHPC_MODULEDEPS}/%{compiler_family}/%{pname} %{__cat} << EOF > %{buildroot}/%{OHPC_MODULEDEPS}/%{compiler_family}/%{pname}/%{version} #%Module1.0##################################################################### proc ModulesHelp { } { puts stderr " " puts stderr "This module loads the %{pname} library built with the %{compiler_family} compiler" puts stderr "\nVersion %{version}\n" } module-whatis "Name: %{pname} built with %{compiler_family} compiler" module-whatis "Version: %{version}" module-whatis "Category: runtime library" module-whatis "Description: %{summary}" module-whatis "URL %{url}" set version %{version} prepend-path PATH %{install_path}/bin prepend-path MANPATH %{install_path}/share/man prepend-path INCLUDE %{install_path}/include prepend-path LD_LIBRARY_PATH %{install_path}/lib setenv %{PNAME}_DIR %{install_path} setenv %{PNAME}_BIN %{install_path}/bin setenv %{PNAME}_LIB %{install_path}/lib setenv %{PNAME}_INC %{install_path}/include EOF %{__cat} << EOF > %{buildroot}/%{OHPC_MODULEDEPS}/%{compiler_family}/%{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