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