# # spec file for package mpiP # # Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %global flavor @BUILD_FLAVOR@%{nil} %define pname mpiP %define vers 3.4.1 %define _vers 3_4_1 %if "%flavor" == "" ExclusiveArch: do_not_build %endif %if "%{flavor}" == "gnu-openmpi-hpc" %global compiler_family gnu %undefine c_f_ver %define mpi_family openmpi %define mpi_ver 1 %endif %if "%{flavor}" == "gnu-mvapich2-hpc" %global compiler_family gnu %undefine c_f_ver %define mpi_family mvapich2 %endif %{?hpc_init:%{hpc_init -c %compiler_family -m %mpi_family %{?c_f_ver:-v %{c_f_ver}} %{?mpi_ver:-V %{mpi_ver}} %{?ext:-e %{ext}}}} Name: %{?hpc_package_name:%{hpc_package_name %_vers}}%{!?hpc_package_name:%pname} Summary: A lightweight profiling library for MPI applications Version: %vers Release: 0 License: BSD-3-Clause Group: Development/Tools/Debuggers URL: http://mpip.sourceforge.net/ Source0: http://sourceforge.net/projects/mpip/files/mpiP/mpiP-3.4.1/mpiP-%{version}.tar.gz Patch1: mpip.unwinder.patch BuildRequires: %{compiler_family}%{?c_f_ver}-compilers-hpc-macros-devel BuildRequires: %{mpi_family}%{?mpi_ver}-%{compiler_family}%{?c_f_ver}-hpc-macros-devel BuildRequires: lua-lmod BuildRequires: suse-hpc BuildRequires: python %hpc_requires %description mpiP is a lightweight profiling library for MPI applications. Because it only collects statistical information about MPI functions, mpiP generates considerably less overhead and much less data than tracing tools. All the information captured by mpiP is task-local. It only uses communication during report generation, typically at the end of the experiment, to merge results from all of the tasks into one output file. %{hpc_master_package -L} %package devel-static Summary: Static version of profiling library for MPI applications Group: Development/Tools/Debuggers %description devel-static mpiP is a lightweight profiling library for MPI applications. Because it only collects statistical information about MPI functions, mpiP generates considerably less overhead and much less data than tracing tools. All the information captured by mpiP is task-local. It only uses communication during report generation, typically at the end of the experiment, to merge results from all of the tasks into one output file. %package doc Summary: Documentation for the mpiP profiling library for MPI applications Group: Documentation/Other %description doc mpiP is a lightweight profiling library for MPI applications. Because it only collects statistical information about MPI functions, mpiP generates considerably less overhead and much less data than tracing tools. All the information captured by mpiP is task-local. It only uses communication during report generation, typically at the end of the experiment, to merge results from all of the tasks into one output file. %prep %setup -q -n %{pname}-%{version} %patch1 -p1 %build %hpc_setup CC=mpicc CXX=mpicxx FC=mpif90 CFLAGS="-D__DATE__=\\\"NODATE\\\" -D__TIME__=\\\"NOTIME\\\"" %hpc_configure \ --enable-demangling \ --disable-libunwind \ %ifarch aarch64 --enable-setjmp \ %endif --docdir=%{_docdir}/%{name} make %{?_smp_mflags} shared %install %hpc_setup make DESTDIR=$RPM_BUILD_ROOT install %hpc_write_modules_files #%%Module1.0##################################################################### proc ModulesHelp { } { puts stderr " " puts stderr "This module loads the %{pname} library built with the %{compiler_family} compiler" puts stderr "toolchain and the %{mpi_family} MPI stack." puts stderr "\nVersion %{version}\n" } module-whatis "Name: %{pname} built with %{compiler_family} compiler and %{mpi_family} MPI" module-whatis "Version: %{version}" module-whatis "Category: Profiling library" module-whatis "Description: %{summary}" module-whatis "URL %{url}" set version %{version} prepend-path LD_LIBRARY_PATH %{hpc_libdir} setenv %{upcase %pname}_DIR %{hpc_prefix} setenv %{upcase %pname}_LIB %{hpc_libdir} EOF %postun %hpc_module_delete_if_default %files %defattr(-,root,root,-) %{hpc_dirs} %{hpc_modules_files} %{hpc_libdir}/*so %files doc %attr(644,root,root) %{_docdir}/%{name}/ %files devel-static %defattr(644,root,root,-) %{hpc_libdir}/*.a %changelog