|
|
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
|