Blob Blame Raw
# Copyright (c) 2014, 2015  Dave Love, University of Liverpool
# MIT licence, per Fedora policy.

# NB many rpm warnings, mostly undefined-non-weak-symbol, which I
# think are ignorable.

# fixme: Make common package for whatever can be shared between MPI versions.
#	 Check on ignored omp pragmas -- from newer openmp?

# In case we can support el6
%if 0%{?el6}
%ifarch ppc64
%bcond_with mpich
%else
%bcond_without mpich
%endif
%else
%bcond_without mpich
%endif

%global ver 2.2.2
%global shortver 2.2

Name:		scalasca
Version:	%ver
Release:	2%{?dist}
Summary:	Toolset for performance analysis of large-scale parallel applications

# ScoutPatternParser and SilasConfigParser are GPL
License:	BSD and GPLv3+
URL:		http://www.scalasca.org/
Source0:	http://apps.fz-juelich.de/scalasca/releases/scalasca/%shortver/dist/%name-%version.tar.gz

BuildRequires:	otf2-devel >= 1.5, cube-devel >= 4.3
BuildRequires:	zlib-devel openmpi-devel
%if %{with mpich}
BuildRequires:	mpich-devel
%endif

%global desc \
Scalasca is a software tool that supports the performance optimization\
of parallel programs by measuring and analyzing their runtime\
behavior. The analysis identifies potential performance bottlenecks –\
in particular those concerning communication and synchronization – and\
offers guidance in exploring their causes.\
\
Scalasca targets mainly scientific and engineering applications based\
on the programming interfaces MPI and OpenMP, including hybrid\
applications based on a combination of the two. The tool has been\
specifically designed for use on large-scale systems, but is also well\
suited for small- and medium-scale HPC platforms.

%description
%desc

%package openmpi
Summary:	Toolset for performance analysis of large-scale parallel applications - openmpi
Requires:	openmpi%{?_isa}


%description openmpi
%desc

This is the openmpi version.

%if %{with mpich}
%package mpich
Summary:	Toolset for performance analysis of large-scale parallel applications - mpich
Requires:	mpich%{?_isa}

%description mpich
%desc

This is the mpich version.
%endif

%package doc
Summary: Documentation for %name
BuildArch: noarch

%description doc
Documentation for %name

%prep
%setup -q
mkdir openmpi mpich
rm -r vendor/cube vendor/otf2	# bundled libraries


%build
%global _configure ../configure
%global do_build \
%configure --with-otf2 --with-cube --enable-shared --libdir=$MPI_LIB \\\
	   --bindir=$MPI_BIN LDFLAGS=-Wl,--as-needed \\\
	   --enable-backend-test-runs\
	   make %{?_smp_mflags}
pushd openmpi
%_openmpi_load
%do_build
%_openmpi_unload
popd
%if %{with mpich}
pushd mpich
%_mpich_load
%do_build
%_mpich_unload
popd
%endif


%install
rm -rf $RPM_BUILD_ROOT
make install -C openmpi DESTDIR=$RPM_BUILD_ROOT
%if %{with mpich}
make install -C mpich DESTDIR=$RPM_BUILD_ROOT
%endif

rm -f $RPM_BUILD_ROOT%_libdir/*/lib/*.{a,la}


%check
%if x%{?copr_username} == x
%_openmpi_load
cd openmpi
OMPI_MCA_orte_allocation_required=0 OMPI_MCA_btl=sm,self \
make check
%endif

%{!?_licensedir:%global license %%doc}
%files openmpi
%doc README
%license COPYING
%_datadir/%name
%exclude %_libdir/openmpi/lib/*.so
%_libdir/openmpi/lib/*.so.*
%_libdir/openmpi/bin/*

%if %{with mpich}
%files mpich
%doc README
%license COPYING
%_datadir/%name
%exclude %_libdir/mpich/lib/*.so
%_libdir/mpich/lib/*.so.*
%_libdir/mpich/bin/*
%endif

%files doc
%_docdir/%name


%changelog
* Tue Jul 7 2015 Dave Love <d.love@liverpool.ac.uk> - 2.2.2-2
- Various spec tidying
- Don't build devel package -- doesn't seem useful

* Thu Jun 25 2015 Dave Love <d.love@liverpool.ac.uk> - 2.2.2-1
- New version

* Thu May 28 2015 Dave Love <d.love@liverpool.ac.uk> - 2.2.1-1
- New version

* Sun Feb 22 2015 Dave Love <d.love@liverpool.ac.uk> - 2.2-1
- New version

* Sun Feb 22 2015 Dave Love <d.love@liverpool.ac.uk> - 2.1-6
- Configure and run tests
- Avoid mpich on el6 ppc64
- Remove defattr

* Wed Dec 24 2014 Dave Love <d.love@liverpool.ac.uk> - 2.1-5
- Don't install .a files

* Tue Dec 16 2014 Dave Love <d.love@liverpool.ac.uk> - 2.1-4
- Modify requires

* Sun Dec 14 2014 Dave Love <d.love@liverpool.ac.uk> - 2.1-4
- Fix copyright

* Thu Dec 11 2014 Dave Love <d.love@liverpool.ac.uk> - 2.1-3
- Add mpich

* Thu Nov 20 2014 Dave Love <d.love@liverpool.ac.uk> - 2.1-2
- Minor rpmlint fixes

* Mon Oct 13 2014 Dave Love <d.love@liverpool.ac.uk> - 2.1-2
- Initial packaging