c2a349a
# pblas requires GNU Fortran version 4.8.4 or later
c2a349a
# Impossible build on epel6
c2a349a
%if 0%{?fedora} || 0%{?rhel} >= 7
64ac71a
%global with_mpich 1
64ac71a
%global with_openmpi 1
c2a349a
%global with_serial 1
c2a349a
%endif
c2a349a
c2a349a
# openblas available on these architectures.
c2a349a
%if 0%{?fedora} && 0%{?fedora} > 26
c2a349a
%{!?openblas_arches:%global openblas_arches x86_64 %{ix86} armv7hl %{power64} aarch64 s390x}
c2a349a
%else
c2a349a
%{!?openblas_arches:%global openblas_arches x86_64 %{ix86} armv7hl %{power64} aarch64}
c2a349a
%endif
c2a349a
%if 0%{?rhel}
c2a349a
%{!?openblas_arches:%global openblas_arches x86_64 %{ix86} armv7hl %{power64} aarch64}
c2a349a
%endif
c2a349a
c2a349a
%global major_version 3
db73a4e
#%%global postrelease_version 
c2a349a
c2a349a
Name:    psblas3
c2a349a
Summary: Parallel Sparse Basic Linear Algebra Subroutines
db73a4e
Version: %{major_version}.5.1
db73a4e
Release: 1%{?dist}
c2a349a
License: BSD
a483a95
URL:     https://github.com/sfilippone/psblas3
db73a4e
Source0: https://github.com/sfilippone/psblas3/archive/v%{version}.tar.gz#/psblas3-%{version}.tar.gz
c2a349a
c2a349a
# Call default Fedora ldflags when linker creates links 
c2a349a
Patch0:  %{name}-fix_ldflags.patch
c2a349a
c2a349a
BuildRequires: suitesparse-devel
c2a349a
%ifarch %{openblas_arches}
c2a349a
BuildRequires: openblas-devel, openblas-srpm-macros
c2a349a
%else
c2a349a
BuildRequires: blas-devel
c2a349a
BuildRequires: lapack-devel
c2a349a
%endif
c2a349a
BuildRequires: metis-devel
c2a349a
c2a349a
%description
c2a349a
The PSBLAS library, developed with the aim to facilitate the parallelization
c2a349a
of computationally intensive scientific applications,
c2a349a
is designed to address parallel implementation of iterative solvers for sparse
c2a349a
linear systems through the distributed memory paradigm.
c2a349a
It includes routines for multiplying sparse matrices by dense matrices,
c2a349a
solving block diagonal systems with triangular diagonal entries,
c2a349a
preprocessing sparse matrices, and contains additional routines for
c2a349a
dense matrix operations.
c2a349a
The current implementation of PSBLAS addresses a distributed memory execution
c2a349a
model operating with message passing.
c2a349a
c2a349a
%if 0%{?with_serial}
c2a349a
%package serial
c2a349a
Summary: %{name} serial mode
c2a349a
BuildRequires: gcc-gfortran
c2a349a
Requires: %{name}-common = %{version}-%{release}
c2a349a
Requires: gcc-gfortran%{?_isa}
c2a349a
c2a349a
%description serial
c2a349a
The PSBLAS library, developed with the aim to facilitate the parallelization
c2a349a
of computationally intensive scientific applications,
c2a349a
is designed to address parallel implementation of iterative solvers for sparse
c2a349a
linear systems through the distributed memory paradigm.
c2a349a
It includes routines for multiplying sparse matrices by dense matrices,
c2a349a
solving block diagonal systems with triangular diagonal entries,
c2a349a
preprocessing sparse matrices, and contains additional routines for
c2a349a
dense matrix operations.
c2a349a
The current implementation of PSBLAS addresses a distributed memory execution
c2a349a
model operating with message passing.
c2a349a
This is a PSBLAS version in pure serial mode.
c2a349a
c2a349a
%package serial-devel
c2a349a
Summary: Development files for %{name}
c2a349a
Group: Development/Libraries
c2a349a
Requires: %{name}-serial%{?_isa} = %{version}-%{release}
a4b6299
Provides: %{name}-serial-static = %{version}-%{release}
c2a349a
%description serial-devel
a4b6299
Shared links, header files and static libraries for serial %{name}.
c2a349a
%endif
c2a349a
c2a349a
%package common
c2a349a
Summary: Documentation files for %{name}
c2a349a
BuildArch: noarch
c2a349a
%description common
c2a349a
HTML, PDF and license files of %{name}.
c2a349a
c2a349a
########################################################
c2a349a
%if 0%{?with_openmpi}
c2a349a
%package openmpi
c2a349a
Summary: OpenMPI %{name}
c2a349a
BuildRequires:	MUMPS-openmpi-devel >= 4.10.0-21
c2a349a
BuildRequires:	openmpi-devel
c2a349a
c2a349a
Requires: openmpi%{?_isa}
c2a349a
Requires: %{name}-common = %{version}-%{release}
c2a349a
%description openmpi
c2a349a
The PSBLAS library, developed with the aim to facilitate the parallelization
c2a349a
of computationally intensive scientific applications,
c2a349a
is designed to address parallel implementation of iterative solvers for sparse
c2a349a
linear systems through the distributed memory paradigm.
c2a349a
It includes routines for multiplying sparse matrices by dense matrices,
c2a349a
solving block diagonal systems with triangular diagonal entries,
c2a349a
preprocessing sparse matrices, and contains additional routines for
c2a349a
dense matrix operations.
c2a349a
The current implementation of PSBLAS addresses a distributed memory execution
c2a349a
model operating with message passing.
c2a349a
This is a OpenMPI PSBLAS version.
c2a349a
c2a349a
%package openmpi-devel
c2a349a
Summary: The OpenMPI %{name} headers and development-related files
c2a349a
Requires: %{name}-openmpi%{?_isa} = %{version}-%{release}
a4b6299
Provides: %{name}-openmpi-static = %{version}-%{release}
c2a349a
%description openmpi-devel
a4b6299
Shared links, header files and static libraries for OpenMPI %{name}.
c2a349a
%endif
c2a349a
##########################################################
c2a349a
########################################################
c2a349a
%if 0%{?with_mpich}
c2a349a
%package mpich
c2a349a
Summary: MPICH %{name}
c2a349a
BuildRequires:	MUMPS-mpich-devel >= 4.10.0-21
c2a349a
BuildRequires:	mpich-devel
c2a349a
c2a349a
Requires: mpich%{?_isa}
c2a349a
Requires: %{name}-common = %{version}-%{release}
c2a349a
%description mpich
c2a349a
The PSBLAS library, developed with the aim to facilitate the parallelization
c2a349a
of computationally intensive scientific applications,
c2a349a
is designed to address parallel implementation of iterative solvers for sparse
c2a349a
linear systems through the distributed memory paradigm.
c2a349a
It includes routines for multiplying sparse matrices by dense matrices,
c2a349a
solving block diagonal systems with triangular diagonal entries,
c2a349a
preprocessing sparse matrices, and contains additional routines for
c2a349a
dense matrix operations.
c2a349a
The current implementation of PSBLAS addresses a distributed memory execution
c2a349a
model operating with message passing.
c2a349a
This is a MPICH PSBLAS version.
c2a349a
c2a349a
%package mpich-devel
c2a349a
Summary: The MPICH %{name} headers and development-related files
c2a349a
Requires: %{name}-mpich%{?_isa} = %{version}-%{release}
a4b6299
Provides: %{name}-mpich-static = %{version}-%{release}
c2a349a
%description mpich-devel
a4b6299
Shared links, header files and static libraries for MPICH %{name}.
c2a349a
%endif
c2a349a
##########################################################
c2a349a
c2a349a
%prep
db73a4e
%setup -qc -n psblas3-%{version}
c2a349a
db73a4e
pushd psblas3-%{version}
c2a349a
%patch0 -p0
c2a349a
popd
c2a349a
c2a349a
#######################################################
c2a349a
## Copy source for MPI versions
c2a349a
%if 0%{?with_openmpi}
db73a4e
cp -a psblas3-%{version} openmpi-build
c2a349a
%endif
c2a349a
%if 0%{?with_mpich}
db73a4e
cp -a psblas3-%{version} mpich-build
c2a349a
%endif
c2a349a
######################################################
c2a349a
c2a349a
%build
c2a349a
%if 0%{?with_serial}
db73a4e
cd psblas3-%{version}
c2a349a
c2a349a
%ifarch %{openblas_arches}
c2a349a
export LIBBLAS=-lopenblas
c2a349a
export INCBLAS=-I%{_includedir}/openblas
c2a349a
%else
c2a349a
export LIBBLAS=-lblas
c2a349a
export LIBLAPACK=-llapack
c2a349a
export INCBLAS=-I%{_includedir}
c2a349a
%endif
a4b6299
%configure --enable-serial --with-fcopt="%{optflags} -Wno-unused-variable -fPIC -I%{_fmoddir} $INCBLAS" --with-ccopt="%{optflags} -fPIC $INCBLAS" \
c2a349a
           --with-metis=-lmetis --with-amd=-lamd --with-blas=$LIBBLAS --with-lapack=$LIBLAPACK \
c2a349a
           --with-amdincdir=%{_includedir}/suitesparse
c2a349a
%make_build
c2a349a
c2a349a
# Make shared libraries
c2a349a
pushd lib
0347205
gfortran -shared %{__global_ldflags} -fPIC -Wl,-z,now -Wl,--as-needed -Wl,--whole-archive libpsb_base.a -Wl,-no-whole-archive -Wl,-Bdynamic -L%{_libdir} $LIBBLAS $LIBLAPACK -lgfortran -lm -Wl,-soname,libpsb_base.so.%{version} -o libpsb_base.so.%{version}
c2a349a
a4b6299
gfortran -shared %{__global_ldflags} -fPIC -Wl,-z,now -Wl,--as-needed -Wl,--whole-archive libpsb_krylov.a -Wl,-no-whole-archive -Wl,-Bdynamic -L./ -lpsb_base -L%{_libdir} $LIBBLAS $LIBLAPACK -lgfortran -lm -Wl,-soname,libpsb_krylov.so.%{version} -o libpsb_krylov.so.%{version}
c2a349a
a4b6299
gfortran -shared %{__global_ldflags} -fPIC -Wl,-z,now -Wl,--as-needed -Wl,--whole-archive libpsb_prec.a -Wl,-no-whole-archive -Wl,-Bdynamic -L./ -lpsb_base -L%{_libdir} $LIBBLAS $LIBLAPACK -lgfortran -lm -Wl,-soname,libpsb_prec.so.%{version} -o libpsb_prec.so.%{version}
c2a349a
a4b6299
gfortran -shared %{__global_ldflags} -fPIC -Wl,-z,now -Wl,--as-needed -Wl,--whole-archive libpsb_util.a -Wl,-no-whole-archive -Wl,-Bdynamic -L./ -lpsb_base -L%{_libdir} $LIBBLAS $LIBLAPACK -lmetis -lamd -lgfortran -lm -Wl,-soname,libpsb_util.so.%{version} -o libpsb_util.so.%{version}
c2a349a
popd
c2a349a
cd ../
c2a349a
c2a349a
#make -C test/util MODDIR=../../modules
c2a349a
%endif
c2a349a
c2a349a
#######################################################
c2a349a
## Build MPI versions
c2a349a
%if 0%{?with_openmpi}
c2a349a
pushd openmpi-build
c2a349a
%{_openmpi_load}
c2a349a
export CC=mpicc
c2a349a
%ifarch %{openblas_arches}
c2a349a
export LIBBLAS=-lopenblas
c2a349a
export INCBLAS=-I%{_includedir}/openblas
c2a349a
%else
c2a349a
export LIBBLAS=-lblas
c2a349a
export LIBLAPACK=-llapack
c2a349a
export INCBLAS=-I%{_includedir}
c2a349a
%endif
c2a349a
%configure --with-fcopt="%{optflags} -fPIC -I%{_fmoddir} $INCBLAS" \
c2a349a
           --with-ccopt="%{optflags} -fPIC $INCBLAS" \
c2a349a
           FC=mpifort F77=mpif77 F90=mpif90 MPIFC=mpifort MPIF77=mpif77 MPCC=mpicc \
c2a349a
           --with-metis=-lmetis --with-amd=-lamd --with-blas=$LIBBLAS --with-lapack=$LIBLAPACK \
c2a349a
           --with-amdincdir=%{_includedir}/suitesparse
c2a349a
%make_build
c2a349a
c2a349a
# Make shared libraries
c2a349a
cd lib
0347205
mpif77 -shared %{__global_ldflags} -fPIC -Wl,-z,now -Wl,--whole-archive libpsb_base.a -Wl,-no-whole-archive -Wl,-Bdynamic -L$MPI_LIB -Wl,-rpath -Wl,$MPI_LIB -Wl,--enable-new-dtags -lmpi_mpifh -L%{_libdir} $LIBBLAS $LIBLAPACK -lgfortran -lm -Wl,-soname,libpsb_base.so.%{version} -o libpsb_base.so.%{version}
c2a349a
a4b6299
mpif77 -shared %{__global_ldflags} -fPIC -Wl,-z,now -Wl,--as-needed -Wl,--whole-archive libpsb_krylov.a -Wl,-no-whole-archive -Wl,-Bdynamic -L./ -lpsb_base -L$MPI_LIB -Wl,-rpath -Wl,$MPI_LIB -Wl,--enable-new-dtags -lmpi_mpifh -L%{_libdir} $LIBBLAS $LIBLAPACK -lmetis -lamd -lgfortran -lm -lrt -Wl,-soname,libpsb_krylov.so.%{version} -o libpsb_krylov.so.%{version}
c2a349a
a4b6299
mpif77 -shared %{__global_ldflags} -fPIC -Wl,-z,now -Wl,--as-needed -Wl,--whole-archive libpsb_prec.a -Wl,-no-whole-archive -Wl,-Bdynamic -L./ -lpsb_base -L$MPI_LIB -Wl,-rpath -Wl,$MPI_LIB -Wl,--enable-new-dtags -lmpi_mpifh -L%{_libdir} $LIBBLAS $LIBLAPACK -lmetis -lamd -lgfortran -lm -lrt -Wl,-soname,libpsb_prec.so.%{version} -o libpsb_prec.so.%{version}
c2a349a
a4b6299
mpif77 -shared %{__global_ldflags} -fPIC -Wl,-z,now -Wl,--as-needed -Wl,--whole-archive libpsb_util.a -Wl,-no-whole-archive -Wl,-Bdynamic -L./ -lpsb_base -L$MPI_LIB -Wl,-rpath -Wl,$MPI_LIB -Wl,--enable-new-dtags -lmpi_mpifh -L%{_libdir} $LIBBLAS $LIBLAPACK -lmetis -lamd -lgfortran -lm -lrt -Wl,-soname,libpsb_util.so.%{version} -o libpsb_util.so.%{version}
c2a349a
cd ../
c2a349a
c2a349a
%{_openmpi_unload}
c2a349a
popd
c2a349a
%endif
c2a349a
c2a349a
%if 0%{?with_mpich}
c2a349a
pushd mpich-build
c2a349a
%{_mpich_load}
c2a349a
export CC=mpicc
c2a349a
%ifarch %{openblas_arches}
c2a349a
export LIBBLAS=-lopenblas
c2a349a
export INCBLAS=-I%{_includedir}/openblas
c2a349a
%else
c2a349a
export LIBBLAS=-lblas
c2a349a
export LIBLAPACK=-llapack
c2a349a
export INCBLAS=-I%{_includedir}
c2a349a
%endif
c2a349a
%configure --with-fcopt="%{optflags} -fPIC -I%{_fmoddir} $INCBLAS" \
c2a349a
           --with-ccopt="%{optflags} -fPIC $INCBLAS" \
c2a349a
           FC=mpif77 F77=mpif77 F90=mpif90 MPIFC=mpif77 MPIF77=mpif77 MPCC=mpicc \
c2a349a
           --with-metis=-lmetis --with-amd=-lamd --with-blas=$LIBBLAS --with-lapack=$LIBLAPACK \
c2a349a
           --with-amdincdir=%{_includedir}/suitesparse
c2a349a
%make_build
c2a349a
c2a349a
# Make shared libraries
c2a349a
cd lib
c2a349a
c2a349a
%if 0%{?fedora}
c2a349a
export MPIFLIB=-lmpifort
c2a349a
%else
c2a349a
export MPIFLIB=-lmpich
c2a349a
%endif
c2a349a
0347205
mpif77 -shared %{__global_ldflags} -fPIC -Wl,-z,now -Wl,--as-needed -Wl,--whole-archive libpsb_base.a -Wl,-no-whole-archive -Wl,-Bdynamic -L$MPI_LIB -Wl,-rpath -Wl,$MPI_LIB -Wl,-z,noexecstack $MPIFLIB -L%{_libdir} $LIBBLAS $LIBLAPACK -lgfortran -lm -Wl,-soname,libpsb_base.so.%{version} -o libpsb_base.so.%{version}
c2a349a
a4b6299
mpif77 -shared %{__global_ldflags} -fPIC -Wl,-z,now -Wl,--as-needed -Wl,--whole-archive libpsb_krylov.a -Wl,-no-whole-archive -Wl,-Bdynamic -L./ -lpsb_base -L$MPI_LIB -Wl,-rpath -Wl,$MPI_LIB -Wl,-z,noexecstack $MPIFLIB -L%{_libdir} $LIBBLAS $LIBLAPACK -lmetis -lamd -lgfortran -lm -lrt -Wl,-soname,libpsb_krylov.so.%{version} -o libpsb_krylov.so.%{version}
c2a349a
a4b6299
mpif77 -shared %{__global_ldflags} -fPIC -Wl,-z,now -Wl,--as-needed -Wl,--whole-archive libpsb_prec.a -Wl,-no-whole-archive -Wl,-Bdynamic -L./ -lpsb_base -L$MPI_LIB -Wl,-rpath -Wl,$MPI_LIB -Wl,-z,noexecstack $MPIFLIB -L%{_libdir} $LIBBLAS $LIBLAPACK -lmetis -lamd -lgfortran -lm -lrt -Wl,-soname,libpsb_prec.so.%{version} -o libpsb_prec.so.%{version}
c2a349a
a4b6299
mpif77 -shared %{__global_ldflags} -fPIC -Wl,-z,now -Wl,--as-needed -Wl,--whole-archive libpsb_util.a -Wl,-no-whole-archive -Wl,-Bdynamic -L./ -lpsb_base -L$MPI_LIB -Wl,-rpath -Wl,$MPI_LIB $MPIFLIB -Wl,-z,noexecstack -L%{_libdir} $LIBBLAS $LIBLAPACK -lmetis -lamd -lgfortran -lm -lrt -Wl,-soname,libpsb_util.so.%{version} -o libpsb_util.so.%{version}
c2a349a
cd ../
c2a349a
c2a349a
%{_mpich_unload}
c2a349a
popd
c2a349a
%endif
c2a349a
#######################################################
c2a349a
%if 0%{?with_serial}
37b00b8
%ldconfig_scriptlets serial
c2a349a
%endif
c2a349a
c2a349a
%install
c2a349a
%if 0%{?with_serial}
db73a4e
pushd psblas3-%{version}
c2a349a
mkdir -p $RPM_BUILD_ROOT%{_includedir}/%{name}
c2a349a
mkdir -p $RPM_BUILD_ROOT%{_fmoddir}/%{name}
c2a349a
c2a349a
pushd lib
c2a349a
install -pm 755 *.so.%{version} $RPM_BUILD_ROOT%{_libdir}/
a4b6299
install -pm 644 *.a $RPM_BUILD_ROOT%{_libdir}/
c2a349a
c2a349a
ln -sf %{_libdir}/libpsb_base.so.%{version} $RPM_BUILD_ROOT%{_libdir}/libpsb_base.so.%{major_version}
c2a349a
ln -sf %{_libdir}/libpsb_base.so.%{version} $RPM_BUILD_ROOT%{_libdir}/libpsb_base.so
c2a349a
c2a349a
ln -sf %{_libdir}/libpsb_krylov.so.%{version} $RPM_BUILD_ROOT%{_libdir}/libpsb_krylov.so.%{major_version}
c2a349a
ln -sf %{_libdir}/libpsb_krylov.so.%{version} $RPM_BUILD_ROOT%{_libdir}/libpsb_krylov.so
c2a349a
c2a349a
ln -sf %{_libdir}/libpsb_prec.so.%{version} $RPM_BUILD_ROOT%{_libdir}/libpsb_prec.so.%{major_version}
c2a349a
ln -sf %{_libdir}/libpsb_prec.so.%{version} $RPM_BUILD_ROOT%{_libdir}/libpsb_prec.so
c2a349a
c2a349a
ln -sf %{_libdir}/libpsb_util.so.%{version} $RPM_BUILD_ROOT%{_libdir}/libpsb_util.so.%{major_version}
c2a349a
ln -sf %{_libdir}/libpsb_util.so.%{version} $RPM_BUILD_ROOT%{_libdir}/libpsb_util.so
c2a349a
popd
c2a349a
c2a349a
install -pm 644 modules/*.mod $RPM_BUILD_ROOT%{_fmoddir}/%{name}
c2a349a
install -pm 644 include/*.h $RPM_BUILD_ROOT%{_includedir}/%{name}/
c2a349a
popd
c2a349a
%endif
c2a349a
c2a349a
#######################################################
c2a349a
## Install MPI versions
c2a349a
%if 0%{?with_openmpi}
c2a349a
pushd openmpi-build
c2a349a
%{_openmpi_load}
c2a349a
mkdir -p $RPM_BUILD_ROOT$MPI_LIB
7db0846
mkdir -p $RPM_BUILD_ROOT$MPI_INCLUDE/%{name}
c2a349a
mkdir -p $RPM_BUILD_ROOT$MPI_FORTRAN_MOD_DIR/%{name}
c2a349a
c2a349a
cd lib
c2a349a
install -pm 755 *.so.%{version} $RPM_BUILD_ROOT$MPI_LIB/
a4b6299
install -pm 644 *.a $RPM_BUILD_ROOT$MPI_LIB/
c2a349a
c2a349a
ln -sf $MPI_LIB/libpsb_base.so.%{version} $RPM_BUILD_ROOT$MPI_LIB/libpsb_base.so.%{major_version}
c2a349a
ln -sf $MPI_LIB/libpsb_base.so.%{version} $RPM_BUILD_ROOT$MPI_LIB/libpsb_base.so
c2a349a
c2a349a
ln -sf $MPI_LIB/libpsb_krylov.so.%{version} $RPM_BUILD_ROOT$MPI_LIB/libpsb_krylov.so.%{major_version}
c2a349a
ln -sf $MPI_LIB/libpsb_krylov.so.%{version} $RPM_BUILD_ROOT$MPI_LIB/libpsb_krylov.so
c2a349a
c2a349a
ln -sf $MPI_LIB/libpsb_prec.so.%{version} $RPM_BUILD_ROOT$MPI_LIB/libpsb_prec.so.%{major_version}
c2a349a
ln -sf $MPI_LIB/libpsb_prec.so.%{version} $RPM_BUILD_ROOT$MPI_LIB/libpsb_prec.so
c2a349a
c2a349a
ln -sf $MPI_LIB/libpsb_util.so.%{version} $RPM_BUILD_ROOT$MPI_LIB/libpsb_util.so.%{major_version}
c2a349a
ln -sf $MPI_LIB/libpsb_util.so.%{version} $RPM_BUILD_ROOT$MPI_LIB/libpsb_util.so
c2a349a
cd ../
c2a349a
c2a349a
install -pm 644 modules/*.mod $RPM_BUILD_ROOT$MPI_FORTRAN_MOD_DIR/%{name}
7db0846
install -pm 644 include/*.h $RPM_BUILD_ROOT$MPI_INCLUDE/%{name}/
c2a349a
%{_openmpi_unload}
c2a349a
popd
c2a349a
%endif
c2a349a
c2a349a
%if 0%{?with_mpich}
c2a349a
pushd mpich-build
c2a349a
%{_mpich_load}
c2a349a
mkdir -p $RPM_BUILD_ROOT$MPI_LIB
7db0846
mkdir -p $RPM_BUILD_ROOT$MPI_INCLUDE/%{name}
c2a349a
mkdir -p $RPM_BUILD_ROOT$MPI_FORTRAN_MOD_DIR/%{name}
c2a349a
c2a349a
cd lib
c2a349a
install -pm 755 *.so.%{version} $RPM_BUILD_ROOT$MPI_LIB/
a4b6299
install -pm 644 *.a $RPM_BUILD_ROOT$MPI_LIB/
c2a349a
c2a349a
ln -sf $MPI_LIB/libpsb_base.so.%{version} $RPM_BUILD_ROOT$MPI_LIB/libpsb_base.so.%{major_version}
c2a349a
ln -sf $MPI_LIB/libpsb_base.so.%{version} $RPM_BUILD_ROOT$MPI_LIB/libpsb_base.so
c2a349a
c2a349a
ln -sf $MPI_LIB/libpsb_krylov.so.%{version} $RPM_BUILD_ROOT$MPI_LIB/libpsb_krylov.so.%{major_version}
c2a349a
ln -sf $MPI_LIB/libpsb_krylov.so.%{version} $RPM_BUILD_ROOT$MPI_LIB/libpsb_krylov.so
c2a349a
c2a349a
ln -sf $MPI_LIB/libpsb_prec.so.%{version} $RPM_BUILD_ROOT$MPI_LIB/libpsb_prec.so.%{major_version}
c2a349a
ln -sf $MPI_LIB/libpsb_prec.so.%{version} $RPM_BUILD_ROOT$MPI_LIB/libpsb_prec.so
c2a349a
c2a349a
ln -sf $MPI_LIB/libpsb_util.so.%{version} $RPM_BUILD_ROOT$MPI_LIB/libpsb_util.so.%{major_version}
c2a349a
ln -sf $MPI_LIB/libpsb_util.so.%{version} $RPM_BUILD_ROOT$MPI_LIB/libpsb_util.so
c2a349a
cd ../
c2a349a
c2a349a
install -pm 644 modules/*.mod $RPM_BUILD_ROOT$MPI_FORTRAN_MOD_DIR/%{name}
7db0846
install -pm 644 include/*.h $RPM_BUILD_ROOT$MPI_INCLUDE/%{name}/
c2a349a
%{_mpich_unload}
c2a349a
popd
c2a349a
%endif
c2a349a
#######################################################
c2a349a
c2a349a
%if 0%{?with_serial}
c2a349a
%files serial
c2a349a
%{_libdir}/*.so.*
c2a349a
c2a349a
%files serial-devel
c2a349a
%{_libdir}/*.so
a4b6299
%{_libdir}/*.a
c2a349a
%{_fmoddir}/%{name}/
c2a349a
%{_includedir}/%{name}/
c2a349a
%endif
c2a349a
c2a349a
%files common
db73a4e
%doc psblas3-%{version}/README.md psblas3-%{version}/Changelog
db73a4e
%doc psblas3-%{version}/ReleaseNews
db73a4e
%doc psblas3-%{version}/docs/html psblas3-%{version}/docs/*.pdf
db73a4e
%license psblas3-%{version}/LICENSE
c2a349a
c2a349a
#######################################################
c2a349a
## MPI versions
c2a349a
%if 0%{?with_openmpi}
c2a349a
%files openmpi
c2a349a
%{_libdir}/openmpi/lib/*.so.*
c2a349a
c2a349a
%files openmpi-devel
c2a349a
%{_libdir}/openmpi/lib/*.so
a4b6299
%{_libdir}/openmpi/lib/*.a
7db0846
%{_includedir}/openmpi-%{_arch}/%{name}/
c2a349a
%if 0%{?fedora}
c2a349a
%{_fmoddir}/openmpi/%{name}/
c2a349a
%else
c2a349a
%{_fmoddir}/openmpi-%{_arch}/%{name}/
c2a349a
%endif
c2a349a
%endif
c2a349a
c2a349a
%if 0%{?with_mpich}
c2a349a
%files mpich
c2a349a
%{_libdir}/mpich/lib/*.so.*
c2a349a
c2a349a
%files mpich-devel
c2a349a
%{_libdir}/mpich/lib/*.so
a4b6299
%{_libdir}/mpich/lib/*.a
7db0846
%{_includedir}/mpich-%{_arch}/%{name}/
c2a349a
%if 0%{?fedora}
c2a349a
%{_fmoddir}/mpich/%{name}/
c2a349a
%else
c2a349a
%{_fmoddir}/mpich-%{_arch}/%{name}/
c2a349a
%endif
c2a349a
%endif
c2a349a
######################################################
c2a349a
c2a349a
%changelog
db73a4e
* Wed Apr 11 2018 Antonio Trande <sagitter@fedoraproject.org> - 3.5.1-1
db73a4e
- Update to release 3.5.1
db73a4e
37b00b8
* Sat Feb 17 2018 Antonio Trande <sagitter@fedoraproject.org> - 3.5.0-19
37b00b8
- Use %%ldconfig_scriptlets
37b00b8
70447a2
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.5.0-18
70447a2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
70447a2
573a7a7
* Wed Jan 31 2018 Antonio Trande <sagitter@fedoraproject.org> - 3.5.0-17
573a7a7
- Minor fix post-release 3.5.0-3
573a7a7
- Rebuild for GCC-8
573a7a7
2cf446c
* Thu Dec 07 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.5.0-16
2cf446c
- Hotfix post-release 3.5.0-2
2cf446c
5c450b2
* Sun Nov 12 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.5.0-15
5c450b2
- Update to post-release 3.5.0-1
5c450b2
0347205
* Mon Nov 06 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.5.0-14
0347205
- Use -Wl,-Bdynamic for linking psb_base library
0347205
a4b6299
* Mon Nov 06 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.5.0-13
a4b6299
- Install static libraries
a4b6299
- Use -Wl,-Bdynamic for linking
a4b6299
85b12de
* Sun Nov 05 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.5.0-12
85b12de
- libpsb_util serial library linked to Metis/AMD
85b12de
85b12de
* Sat Nov 04 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.5.0-11
85b12de
- Metis/AMD unused by psblas3-serial
85b12de
85b12de
* Sat Nov 04 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.5.0-10
85b12de
- Fix unused-direct-shlib-dependency
85b12de
64ac71a
* Thu Nov 02 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.5.0-9
64ac71a
- MPI builds activated
64ac71a
a483a95
* Thu Nov 02 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.5.0-8
a483a95
- Remove -Wl,--as-needed flag
a483a95
7db0846
* Tue Oct 31 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.5.0-7
7db0846
- Install header files in a private MPI directory
7db0846
c2a349a
* Sun Oct 29 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.5.0-6
c2a349a
- Fix MPICH fortran links
c2a349a
c2a349a
* Sat Oct 28 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.5.0-5
c2a349a
- Rebuild against openblas
c2a349a
c2a349a
* Fri Oct 27 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.5.0-4
c2a349a
- Fix unused-direct-shlib-dependency warnings
c2a349a
c2a349a
* Thu Oct 26 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.5.0-3
c2a349a
- Fix ldconfig scriptlet
c2a349a
c2a349a
* Thu Oct 26 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.5.0-2
c2a349a
- PSBLAS not compiled on epel6
c2a349a
c2a349a
* Thu Oct 26 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.5.0-1
c2a349a
- Update to 3.5.0 (stable release)
c2a349a
- Rebuilt against blas
c2a349a
c2a349a
* Wed May 31 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.5.0-0.1.rc2
c2a349a
- Update to 3.5.0-rc2
c2a349a
c2a349a
* Fri Feb 10 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.4.1-4
c2a349a
- Packed example files
c2a349a
c2a349a
* Thu Feb 09 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.4.1-3
c2a349a
- Rebuilt against atlas
c2a349a
c2a349a
* Thu Feb 09 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.4.1-2
c2a349a
- Fortran module's directory renamed
c2a349a
c2a349a
* Tue Feb 07 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.4.1-1
c2a349a
- Update to 3.4.1
c2a349a
- Drop obsolete patch
c2a349a
c2a349a
* Fri Feb 03 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.4.0-3
c2a349a
- Rebuild without disable-serial option
c2a349a
c2a349a
* Fri Feb 03 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.4.0-2
c2a349a
- Set MPICH Fortran compiler on RHEL7
c2a349a
c2a349a
* Thu Feb 02 2017 Antonio Trande <sagitter@fedoraproject.org> - 3.4.0-1
c2a349a
- First package