MPICH libraries enabled
This commit is contained in:
parent
30fb64e236
commit
68211dfc4d
2
sources
2
sources
|
@ -1,2 +1,2 @@
|
|||
3deeb0ede9f514184c6bd83ecab77d95 sundials-2.6.2.tar.gz
|
||||
41333c114a750b314f1979c433748a39 sundials-pkgconfig_files.tar.gz
|
||||
fb8ab0f3644f000a1736d5101a85b895 sundials-pkgconfig_files.tar.gz
|
||||
|
|
479
sundials.spec
479
sundials.spec
|
@ -1,5 +1,5 @@
|
|||
%if 0%{?fedora} <= 22
|
||||
%global _hardened_build 1
|
||||
%if 0%{?rhel} && 0%{?rhel} < 7
|
||||
%{!?__global_ldflags: %global __global_ldflags -Wl,-z,relro}
|
||||
%endif
|
||||
|
||||
## Define if use openmpi or not
|
||||
|
@ -9,13 +9,20 @@
|
|||
%global with_openmpi 1
|
||||
%endif
|
||||
|
||||
# No MPICH support on these arches
|
||||
%ifarch ppc64 ppc64le
|
||||
%global with_mpich 0
|
||||
%else
|
||||
%global with_mpich 1
|
||||
%endif
|
||||
|
||||
%global with_parcheck 1
|
||||
%global with_sercheck 1
|
||||
|
||||
Summary: Suite of nonlinear solvers
|
||||
Name: sundials
|
||||
Version: 2.6.2
|
||||
Release: 13%{?dist}
|
||||
Release: 14%{?dist}
|
||||
# SUNDIALS is licensed under BSD with some additional (but unrestrictive) clauses.
|
||||
# Check the file 'LICENSE' for details.
|
||||
License: BSD
|
||||
|
@ -28,7 +35,8 @@ Source1: %{name}-pkgconfig_files.tar.gz
|
|||
|
||||
BuildRequires: gcc-gfortran
|
||||
BuildRequires: cmake
|
||||
BuildRequires: lapack-devel, blas-devel
|
||||
BuildRequires: lapack-devel
|
||||
BuildRequires: blas-devel
|
||||
%if 0%{?rhel}
|
||||
BuildRequires: rsh
|
||||
%endif
|
||||
|
@ -52,9 +60,10 @@ Provides: %{name}-static = %{version}-%{release}
|
|||
%description devel
|
||||
SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers
|
||||
for use in writing mathematical software.
|
||||
|
||||
This package contains the developer files (.so file, header files)
|
||||
|
||||
#############################################################################
|
||||
#########
|
||||
%if 0%{?with_openmpi}
|
||||
%package openmpi
|
||||
Summary: Suite of nonlinear solvers
|
||||
|
@ -63,7 +72,6 @@ BuildRequires: openmpi-devel
|
|||
%description openmpi
|
||||
SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers
|
||||
for use in writing mathematical software.
|
||||
|
||||
This package contains the Sundials Fortran parallel OpenMPI libraries.
|
||||
|
||||
%package openmpi-devel
|
||||
|
@ -73,7 +81,6 @@ Requires: %{name}-openmpi%{?_isa} = %{version}-%{release}
|
|||
%description openmpi-devel
|
||||
SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers
|
||||
for use in writing mathematical software.
|
||||
|
||||
This package contains the Sundials parallel OpenMPI devel libraries and
|
||||
header files.
|
||||
|
||||
|
@ -84,7 +91,6 @@ Requires: gcc-gfortran%{?_isa}
|
|||
%description fortran-openmpi
|
||||
SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers
|
||||
for use in writing mathematical software.
|
||||
|
||||
This package contains the Sundials Fortran parallel OpenMPI libraries.
|
||||
|
||||
%package fortran-openmpi-devel
|
||||
|
@ -94,10 +100,53 @@ Requires: %{name}-fortran-openmpi%{?_isa} = %{version}-%{release}
|
|||
%description fortran-openmpi-devel
|
||||
SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers
|
||||
for use in writing mathematical software.
|
||||
|
||||
This package contains the Sundials Fortran parallel OpenMPI devel libraries and
|
||||
header files.
|
||||
%endif
|
||||
######
|
||||
###############################################################################
|
||||
######
|
||||
%if 0%{?with_mpich}
|
||||
%package mpich
|
||||
Summary: Suite of nonlinear solvers
|
||||
Group: Development/Libraries
|
||||
BuildRequires: mpich-devel
|
||||
%description mpich
|
||||
SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers
|
||||
for use in writing mathematical software.
|
||||
This package contains the Sundials parallel MPICH libraries.
|
||||
|
||||
%package mpich-devel
|
||||
Summary: Suite of nonlinear solvers (static libraries)
|
||||
Group: Development/Libraries
|
||||
Requires: %{name}-mpich%{?_isa} = %{version}-%{release}
|
||||
%description mpich-devel
|
||||
SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers
|
||||
for use in writing mathematical software.
|
||||
This package contains the Sundials parallel MPICH devel libraries and
|
||||
header files.
|
||||
|
||||
%package fortran-mpich
|
||||
Summary: Suite of nonlinear solvers
|
||||
Group: Development/Libraries
|
||||
Requires: gcc-gfortran%{?_isa}
|
||||
%description fortran-mpich
|
||||
SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers
|
||||
for use in writing mathematical software.
|
||||
This package contains the Sundials Fortran parallel MPICH libraries.
|
||||
|
||||
%package fortran-mpich-devel
|
||||
Summary: Suite of nonlinear solvers
|
||||
Group: Development/Libraries
|
||||
Requires: %{name}-fortran-mpich%{?_isa} = %{version}-%{release}
|
||||
%description fortran-mpich-devel
|
||||
SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers
|
||||
for use in writing mathematical software.
|
||||
This package contains the Sundials Fortran parallel MPICH devel libraries and
|
||||
header files.
|
||||
%endif
|
||||
######
|
||||
#############################################################################
|
||||
|
||||
%package fortran
|
||||
Summary: Suite of nonlinear solvers (static libraries)
|
||||
|
@ -106,7 +155,6 @@ Requires: gcc-gfortran%{?_isa}
|
|||
%description fortran
|
||||
SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers
|
||||
for use in writing mathematical software.
|
||||
|
||||
This package contains the Sundials Fortran libraries.
|
||||
|
||||
## Cannot build shared libraries for the FCMIX (Fortran) interfaces
|
||||
|
@ -121,7 +169,6 @@ Provides: %{name}-fortran-static = %{version}-%{release}
|
|||
%description fortran-devel
|
||||
SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers
|
||||
for use in writing mathematical software.
|
||||
|
||||
This package contains the Sundials Fortran devel libraries and
|
||||
header files.
|
||||
|
||||
|
@ -131,7 +178,6 @@ Group: Development/Libraries
|
|||
%description threads
|
||||
SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers
|
||||
for use in writing mathematical software.
|
||||
|
||||
This package contains the Sundials libraries (included the Fortran ones)
|
||||
compiled with threading support.
|
||||
|
||||
|
@ -142,7 +188,6 @@ Requires: %{name}-threads%{?_isa} = %{version}-%{release}
|
|||
%description threads-devel
|
||||
SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers
|
||||
for use in writing mathematical software.
|
||||
|
||||
This package contains the Sundials devel library compiled with threading support
|
||||
and relative header files.
|
||||
|
||||
|
@ -153,13 +198,13 @@ BuildArch: noarch
|
|||
%description doc
|
||||
SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers
|
||||
for use in writing mathematical software.
|
||||
|
||||
This package contains the documentation files
|
||||
This package contains the documentation files.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%setup -q -T -D -a 1
|
||||
%setup -qc
|
||||
%setup -qc -T -D -a 1
|
||||
|
||||
pushd sundials-%{version}
|
||||
##Set destination library's paths
|
||||
sed -i 's/DESTINATION lib/DESTINATION %{_lib}/g' src/arkode/CMakeLists.txt
|
||||
sed -i 's|DESTINATION lib|DESTINATION %{_lib}|g' src/arkode/fcmix/CMakeLists.txt
|
||||
|
@ -189,7 +234,62 @@ sed -i \
|
|||
's|TARGETS sundials_fnvecserial_shared DESTINATION lib|TARGETS sundials_fnvecserial_shared DESTINATION %{_libdir}|g' \
|
||||
src/nvec_ser/CMakeLists.txt
|
||||
|
||||
##Set parallel library's paths
|
||||
## mpif77 test fails
|
||||
## Hardened flags break cmake's MPI Fortran compiler test
|
||||
sed -i 's|set(MPIF_PERFORM_TEST TRUE)|set(MPIF_PERFORM_TEST FALSE)|g' config/SundialsMPIF.cmake
|
||||
sed -i 's|set(MPIF_FOUND FALSE)|set(MPIF_FOUND TRUE)|g' config/SundialsMPIF.cmake
|
||||
|
||||
mv src/arkode/README src/README-arkode
|
||||
mv src/cvode/README src/README-cvode
|
||||
mv src/cvodes/README src/README-cvodes
|
||||
mv src/ida/README src/README-ida
|
||||
mv src/idas/README src/README.idas
|
||||
mv src/kinsol/README src/README-kinsol
|
||||
mv src/nvec_ser/README src/README-nvec_ser
|
||||
mv src/nvec_par/README src/README-nvec_par
|
||||
mv src/nvec_pthreads/README src/README-nvec_pthreads
|
||||
popd
|
||||
|
||||
%if 0%{?with_openmpi}
|
||||
cp -a sundials-%{version} buildopenmpi_dir
|
||||
%endif
|
||||
%if 0%{?with_mpich}
|
||||
cp -a sundials-%{version} buildmpich_dir
|
||||
%endif
|
||||
|
||||
%build
|
||||
pushd sundials-%{version}
|
||||
mkdir -p build && cd build
|
||||
%cmake \
|
||||
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release \
|
||||
-DCMAKE_C_FLAGS_RELEASE:STRING="%{optflags} -Wl,-z,relro -Wl,-z,now" \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS:STRING="%{__global_ldflags} -Wl,-z,now" \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING="%{__global_ldflags} -Wl,-z,now -llapack -lblas -Wl,--as-needed -lpthread -lm" \
|
||||
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
|
||||
-DEXAMPLES_ENABLE=ON -DEXAMPLES_INSTALL=OFF -DEXAMPLES_INSTALL_PATH:PATH=%{_datadir}/%{name}/serial_examples \
|
||||
-DCMAKE_SKIP_RPATH:BOOL=YES -DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES \
|
||||
-DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_STATIC_LIBS:BOOL=OFF \
|
||||
-DMPI_ENABLE:BOOL=OFF \
|
||||
-DCMAKE_Fortran_COMPILER:STRING=gfortran \
|
||||
-DFCMIX_ENABLE:BOOL=ON \
|
||||
-DF90_ENABLE:BOOL=ON \
|
||||
-DUSE_GENERIC_MATH:BOOL=ON \
|
||||
-DOPENMP_ENABLE:BOOL=OFF \
|
||||
-DCXX_ENABLE:BOOL=ON \
|
||||
-DCMAKE_Fortran_FLAGS_RELEASE:STRING="%{optflags} -Wl,-z,relro -Wl,-z,now" \
|
||||
-DPTHREAD_ENABLE:BOOL=ON \
|
||||
-DLAPACK_ENABLE:BOOL=ON -DSUPERLUMT_ENABLE:BOOL=OFF \
|
||||
-DKLU_ENABLE:BOOL=OFF -Wno-dev ..
|
||||
make V=1 %{?_smp_mflags}
|
||||
cd ..
|
||||
popd
|
||||
|
||||
#############################################################################
|
||||
#######
|
||||
%if 0%{?with_openmpi}
|
||||
pushd buildopenmpi_dir
|
||||
##Set openmpi library's paths
|
||||
sed -i \
|
||||
's|TARGETS sundials_nvecparallel_shared DESTINATION lib|TARGETS sundials_nvecparallel_shared DESTINATION %{_libdir}/openmpi/lib|g' \
|
||||
src/nvec_par/CMakeLists.txt
|
||||
|
@ -198,104 +298,152 @@ sed -i \
|
|||
's|TARGETS sundials_fnvecparallel_shared DESTINATION lib|TARGETS sundials_fnvecparallel_shared DESTINATION %{_libdir}/openmpi/lib|g' \
|
||||
src/nvec_par/CMakeLists.txt
|
||||
|
||||
## mpif77 test fails with GNU Fortran (GCC) 5.0.0 20150319 (64bit) Fedora 23
|
||||
%if 0%{?fedora} > 22
|
||||
sed -i 's|set(MPIF_PERFORM_TEST TRUE)|set(MPIF_PERFORM_TEST FALSE)|g' config/SundialsMPIF.cmake
|
||||
sed -i 's|set(MPIF_FOUND FALSE)|set(MPIF_FOUND TRUE)|g' config/SundialsMPIF.cmake
|
||||
%endif
|
||||
|
||||
mv src/arkode/README src/README-arkode
|
||||
mv src/cvode/README src//README-cvode
|
||||
mv src/cvodes/README src/README-cvodes
|
||||
mv src/ida/README src/README-ida
|
||||
mv src/idas/README src/README.idas
|
||||
mv src/kinsol/README src/README-kinsol
|
||||
mv src/nvec_ser/README src/README-nvec_ser
|
||||
mv src/nvec_par/README src/README-nvec_par
|
||||
mv src/nvec_pthreads/README src/README-nvec_pthreads
|
||||
|
||||
%build
|
||||
%if 0%{?with_openmpi}
|
||||
mkdir buildparallel_dir && pushd buildparallel_dir
|
||||
mkdir -p build && cd build
|
||||
%{_openmpi_load}
|
||||
export LDFLAGS=" -Wl,--as-needed -lpthread"
|
||||
export CC=mpicc
|
||||
export CXX=mpicxx
|
||||
export FC=mpif77
|
||||
%cmake \
|
||||
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release \
|
||||
-DCMAKE_C_FLAGS_RELEASE:STRING="%{optflags} -Wl,-z,relro -Wl,-z,now" \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS:STRING=" " \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING="%{__global_ldflags} -Wl,-z,now" \
|
||||
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
|
||||
-DEXAMPLES_ENABLE=ON -DEXAMPLES_INSTALL=OFF \
|
||||
-DEXAMPLES_ENABLE=ON -DEXAMPLES_INSTALL=OFF -DEXAMPLES_INSTALL_PATH:PATH=%{_datadir}/%{name}/openmpi_examples \
|
||||
-DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_STATIC_LIBS:BOOL=OFF \
|
||||
-DCMAKE_SKIP_RPATH:BOOL=YES -DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES \
|
||||
-DMPI_ENABLE:BOLL=ON \
|
||||
-DMPI_ENABLE:BOOL=ON \
|
||||
-DMPI_MPICC:STRING=%{_libdir}/openmpi/bin/mpicc \
|
||||
-DMPI_RUN_COMMAND=mpirun \
|
||||
%if 0%{?fedora}
|
||||
-DMPI_MPIF77:STRING=%{_libdir}/openmpi/bin/mpifort \
|
||||
%else
|
||||
-DMPI_MPIF77:STRING=%{_libdir}/openmpi/bin/mpif77 \
|
||||
%endif
|
||||
-DFCMIX_ENABLE:BOOL=ON \
|
||||
-DCMAKE_Fortran_COMPILER:STRING=%{_bindir}/gfortran \
|
||||
-DCMAKE_Fortran_FLAGS_RELEASE:STRING="%{optflags} -Wl,-z,relro -Wl,-z,now" \
|
||||
-DPTHREAD_ENABLE:BOOL=OFF \
|
||||
-DLAPACK_ENABLE:BOOL=ON -DSUPERLUMT_ENABLE:BOOL=OFF \
|
||||
-DKLU_ENABLE:BOOL=OFF -Wno-dev ..
|
||||
make V=1 %{?_smp_mflags}
|
||||
%{_openmpi_unload}
|
||||
popd
|
||||
%endif
|
||||
|
||||
mkdir buildserial_dir && pushd buildserial_dir
|
||||
export LDFLAGS="%{__global_ldflags} -Wl,-z,now -lm"
|
||||
%cmake \
|
||||
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release \
|
||||
-DCMAKE_C_FLAGS_RELEASE:STRING="%{optflags} -Wl,-z,relro -Wl,-z,now" \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS:STRING="%{__global_ldflags} -Wl,-z,now" \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING="%{__global_ldflags} -Wl,-z,now -llapack -lblas -Wl,--as-needed -lpthread " \
|
||||
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
|
||||
-DEXAMPLES_ENABLE=ON -DEXAMPLES_INSTALL=OFF \
|
||||
-DCMAKE_SKIP_RPATH:BOOL=YES -DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES \
|
||||
-DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_STATIC_LIBS:BOOL=OFF \
|
||||
-DMPI_ENABLE:BOLL=OFF \
|
||||
-DFCMIX_ENABLE:BOOL=ON \
|
||||
-DCMAKE_Fortran_COMPILER:STRING=%{_bindir}/gfortran \
|
||||
-DF90_ENABLE:BOOL=OFF \
|
||||
-DUSE_GENERIC_MATH:BOOL=ON \
|
||||
-DOPENMP_ENABLE:BOOL=OFF \
|
||||
-DCXX_ENABLE:BOOL=ON \
|
||||
-DCMAKE_Fortran_COMPILER:STRING=%{_libdir}/openmpi/bin/mpif77 \
|
||||
-DCMAKE_Fortran_FLAGS_RELEASE:STRING="%{optflags} -Wl,-z,relro -Wl,-z,now" \
|
||||
-DPTHREAD_ENABLE:BOOL=ON \
|
||||
-DLAPACK_ENABLE:BOOL=ON -DSUPERLUMT_ENABLE:BOOL=OFF \
|
||||
-DKLU_ENABLE:BOOL=OFF -Wno-dev ..
|
||||
make V=1 %{?_smp_mflags}
|
||||
%{_openmpi_unload}
|
||||
cd ..
|
||||
popd
|
||||
%endif
|
||||
######
|
||||
#############################################################################
|
||||
######
|
||||
%if 0%{?with_mpich}
|
||||
pushd buildmpich_dir
|
||||
##Set mpich library's paths
|
||||
sed -i \
|
||||
's|TARGETS sundials_nvecparallel_shared DESTINATION lib|TARGETS sundials_nvecparallel_shared DESTINATION %{_libdir}/mpich/lib|g' \
|
||||
src/nvec_par/CMakeLists.txt
|
||||
sed -i 's|DESTINATION include/nvector|DESTINATION %{_includedir}/mpich-%{_arch}/nvector|g' src/nvec_par/CMakeLists.txt
|
||||
sed -i \
|
||||
's|TARGETS sundials_fnvecparallel_shared DESTINATION lib|TARGETS sundials_fnvecparallel_shared DESTINATION %{_libdir}/mpich/lib|g' \
|
||||
src/nvec_par/CMakeLists.txt
|
||||
|
||||
mkdir -p build && cd build
|
||||
%{_mpich_load}
|
||||
%if 0%{?rhel}
|
||||
export CC=mpicc
|
||||
export CXX=mpicxx
|
||||
export F77=mpif77
|
||||
export FC=mpif90
|
||||
%endif
|
||||
%if 0%{?fedora}
|
||||
export CC=mpicc
|
||||
export CXX=mpicxx
|
||||
export F77=mpifort
|
||||
export FC=mpifort
|
||||
%endif
|
||||
%cmake \
|
||||
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release \
|
||||
-DCMAKE_C_FLAGS_RELEASE:STRING="%{optflags} -Wl,-z,relro -Wl,-z,now" \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING="%{__global_ldflags} -Wl,-z,now" \
|
||||
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
|
||||
-DEXAMPLES_ENABLE=ON -DEXAMPLES_INSTALL=OFF -DEXAMPLES_INSTALL_PATH:PATH=%{_datadir}/%{name}/mpich_examples \
|
||||
-DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_STATIC_LIBS:BOOL=OFF \
|
||||
-DCMAKE_SKIP_RPATH:BOOL=YES -DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES \
|
||||
-DMPI_ENABLE:BOOL=ON \
|
||||
-DMPI_MPICC:STRING=%{_libdir}/mpich/bin/mpicc \
|
||||
-DMPI_RUN_COMMAND=mpirun \
|
||||
%if 0%{?fedora}
|
||||
-DMPI_MPIF77:STRING=%{_libdir}/mpich/bin/mpifort \
|
||||
-DMPI_MPIF90:STRING=%{_libdir}/mpich/bin/mpifort \
|
||||
%else
|
||||
-DMPI_MPIF77:STRING=%{_libdir}/mpich/bin/mpif77 \
|
||||
-DMPI_MPIF90:STRING=%{_libdir}/mpich/bin/mpif90 \
|
||||
%endif
|
||||
-DFCMIX_ENABLE:BOOL=ON \
|
||||
-DF90_ENABLE:BOOL=ON \
|
||||
-DUSE_GENERIC_MATH:BOOL=ON \
|
||||
-DOPENMP_ENABLE:BOOL=OFF \
|
||||
-DCXX_ENABLE:BOOL=ON \
|
||||
-DCMAKE_Fortran_COMPILER:STRING=%{_libdir}/mpich/bin/mpif77 \
|
||||
-DCMAKE_Fortran_FLAGS_RELEASE:STRING="%{optflags} -Wl,-z,relro -Wl,-z,now" \
|
||||
-DPTHREAD_ENABLE:BOOL=ON \
|
||||
-DLAPACK_ENABLE:BOOL=ON -DSUPERLUMT_ENABLE:BOOL=OFF \
|
||||
-DKLU_ENABLE:BOOL=OFF -Wno-dev ..
|
||||
make V=1 %{?_smp_mflags}
|
||||
%{_mpich_unload}
|
||||
cd ..
|
||||
popd
|
||||
%endif
|
||||
######
|
||||
#############################################################################
|
||||
|
||||
%install
|
||||
%if 0%{?with_openmpi}
|
||||
%{_openmpi_load}
|
||||
make install DESTDIR=%{buildroot} -C buildparallel_dir
|
||||
make install DESTDIR=%{buildroot} -C buildopenmpi_dir/build
|
||||
%{_openmpi_unload}
|
||||
%endif
|
||||
make install DESTDIR=%{buildroot} -C buildserial_dir
|
||||
|
||||
%if 0%{?with_mpich}
|
||||
%{_mpich_load}
|
||||
make install DESTDIR=%{buildroot} -C buildmpich_dir/build
|
||||
%{_mpich_unload}
|
||||
%endif
|
||||
|
||||
make install DESTDIR=%{buildroot} -C sundials-%{version}/build
|
||||
|
||||
##Install all .pc files
|
||||
mkdir -p %{buildroot}%{_libdir}/openmpi/lib/pkgconfig
|
||||
mkdir -p %{buildroot}%{_libdir}/pkgconfig
|
||||
%if 0%{?with_openmpi}
|
||||
%ifarch s390 s390x
|
||||
rm -f PKGC_files/*nvec_parallel.pc
|
||||
rm -rf PKGC_files/openmpi
|
||||
%else
|
||||
mv PKGC_files/*nvec_parallel.pc %{buildroot}%{_libdir}/openmpi/lib/pkgconfig
|
||||
%endif
|
||||
mv PKGC_files/*.pc %{buildroot}%{_libdir}/pkgconfig
|
||||
|
||||
##Define library dirs in the pkg-config files
|
||||
sed -i 's|${libdir}|%{_libdir}|g' %{buildroot}%{_libdir}/pkgconfig/*.pc
|
||||
sed -i 's|${libdir}|%{_libdir}|g' %{buildroot}%{_libdir}/pkgconfig/*.pc
|
||||
sed -i 's|${includedir}|%{_includedir}|g' %{buildroot}%{_libdir}/pkgconfig/*.pc
|
||||
%ifnarch s390 s390x
|
||||
mkdir -p %{buildroot}%{_libdir}/openmpi/lib/pkgconfig
|
||||
mv PKGC_files/openmpi/*.pc %{buildroot}%{_libdir}/openmpi/lib/pkgconfig
|
||||
sed -i 's|${prefix}|%{_prefix}|g' %{buildroot}%{_libdir}/openmpi/lib/pkgconfig/*.pc
|
||||
sed -i 's|${lib}|%{_lib}|g' %{buildroot}%{_libdir}/openmpi/lib/pkgconfig/*.pc
|
||||
sed -i 's|${arch}|%{_arch}|g' %{buildroot}%{_libdir}/openmpi/lib/pkgconfig/*.pc
|
||||
sed -i 's|includedir=${includedir}|includedir=%{_includedir}|g' %{buildroot}%{_libdir}/openmpi/lib/pkgconfig/*.pc
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if 0%{?with_mpich}
|
||||
%ifarch ppc64 ppc64le
|
||||
rm -rf PKGC_files/mpich
|
||||
%else
|
||||
mkdir -p %{buildroot}%{_libdir}/mpich/lib/pkgconfig
|
||||
mv PKGC_files/mpich/*.pc %{buildroot}%{_libdir}/mpich/lib/pkgconfig
|
||||
sed -i 's|${prefix}|%{_prefix}|g' %{buildroot}%{_libdir}/mpich/lib/pkgconfig/*.pc
|
||||
sed -i 's|${lib}|%{_lib}|g' %{buildroot}%{_libdir}/mpich/lib/pkgconfig/*.pc
|
||||
sed -i 's|${arch}|%{_arch}|g' %{buildroot}%{_libdir}/mpich/lib/pkgconfig/*.pc
|
||||
sed -i 's|includedir=${includedir}|includedir=%{_includedir}|g' %{buildroot}%{_libdir}/mpich/lib/pkgconfig/*.pc
|
||||
%endif
|
||||
%endif
|
||||
|
||||
mkdir -p %{buildroot}%{_libdir}/pkgconfig
|
||||
mv PKGC_files/*.pc %{buildroot}%{_libdir}/pkgconfig
|
||||
sed -i 's|${prefix}|%{_prefix}|g' %{buildroot}%{_libdir}/pkgconfig/*.pc
|
||||
sed -i 's|${libdir}|%{_libdir}|g' %{buildroot}%{_libdir}/pkgconfig/*.pc
|
||||
sed -i 's|${libdir}|%{_libdir}|g' %{buildroot}%{_libdir}/pkgconfig/*.pc
|
||||
sed -i 's|${includedir}|%{_includedir}|g' %{buildroot}%{_libdir}/pkgconfig/*.pc
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
%postun -p /sbin/ldconfig
|
||||
|
@ -307,39 +455,89 @@ sed -i 's|includedir=${includedir}|includedir=%{_includedir}|g' %{buildroot}%{_l
|
|||
%postun fortran -p /sbin/ldconfig
|
||||
|
||||
%check
|
||||
|
||||
%if 0%{with_openmpi} || 0%{with_mpich}
|
||||
# First, purge all modules so that user environment doesn't conflict
|
||||
# with the build.
|
||||
module purge ||:
|
||||
%endif
|
||||
|
||||
%if 0%{?with_parcheck}
|
||||
%if 0%{?with_openmpi}
|
||||
%{_openmpi_load}
|
||||
export LD_LIBRARY_PATH=%{buildroot}%{_libdir}/openmpi/lib:%{buildroot}%{_libdir}
|
||||
##arkode
|
||||
mpirun -wdir buildparallel_dir/examples/arkode/C_parallel -x LD_LIBRARY_PATH=%{buildroot}%{_libdir}/openmpi/lib:%{buildroot}%{_libdir} -np 4 ark_diurnal_kry_bbd_p
|
||||
mpirun -wdir buildparallel_dir/examples/arkode/F77_parallel -x LD_LIBRARY_PATH=%{buildroot}%{_libdir}/openmpi/lib:%{buildroot}%{_libdir} -np 4 fark_diag_kry_bbd_p
|
||||
buildopenmpi_dir/build/examples/arkode/CXX_parallel/ark_heat2D
|
||||
buildopenmpi_dir/build/examples/arkode/F77_parallel/fark_diag_kry_bbd_p
|
||||
|
||||
##cvode
|
||||
mpirun -wdir buildparallel_dir/examples/cvode/fcmix_parallel -x LD_LIBRARY_PATH=%{buildroot}%{_libdir}/openmpi/lib:%{buildroot}%{_libdir} -np 4 fcvDiag_kry_bbd_p
|
||||
mpirun -wdir buildparallel_dir/examples/cvode/parallel -x LD_LIBRARY_PATH=%{buildroot}%{_libdir}/openmpi/lib:%{buildroot}%{_libdir} -np 4 cvAdvDiff_diag_p
|
||||
buildopenmpi_dir/build/examples/cvode/fcmix_parallel/fcvDiag_kry_bbd_p
|
||||
buildopenmpi_dir/build/examples/cvode/parallel/cvAdvDiff_diag_p
|
||||
|
||||
##cvodes
|
||||
mpirun -wdir buildparallel_dir/examples/cvodes/parallel -x LD_LIBRARY_PATH=%{buildroot}%{_libdir}/openmpi/lib:%{buildroot}%{_libdir} -np 4 cvsAdvDiff_ASAp_non_p
|
||||
mpirun -np 2 buildopenmpi_dir/build/examples/cvodes/parallel/cvsAdvDiff_ASAp_non_p
|
||||
|
||||
##ida
|
||||
mpirun -wdir buildparallel_dir/examples/ida/fcmix_parallel -x LD_LIBRARY_PATH=%{buildroot}%{_libdir}/openmpi/lib:%{buildroot}%{_libdir} -np 4 fidaHeat2D_kry_bbd_p
|
||||
mpirun -wdir buildparallel_dir/examples/ida/parallel -x LD_LIBRARY_PATH=%{buildroot}%{_libdir}/openmpi/lib:%{buildroot}%{_libdir} -np 4 idaFoodWeb_kry_bbd_p
|
||||
#ida
|
||||
mpirun -np 4 buildopenmpi_dir/build/examples/ida/fcmix_parallel/fidaHeat2D_kry_bbd_p
|
||||
mpirun -np 4 buildopenmpi_dir/build/examples/ida/parallel/idaFoodWeb_kry_bbd_p
|
||||
|
||||
##idas
|
||||
mpirun -wdir buildparallel_dir/examples/idas/parallel -x LD_LIBRARY_PATH=%{buildroot}%{_libdir}/openmpi/lib:%{buildroot}%{_libdir} -np 4 idasBruss_ASAp_kry_bbd_p
|
||||
#idas
|
||||
mpirun -np 4 buildopenmpi_dir/build/examples/idas/parallel/idasBruss_ASAp_kry_bbd_p
|
||||
|
||||
##kinsol
|
||||
mpirun -wdir buildparallel_dir/examples/kinsol/fcmix_parallel -x LD_LIBRARY_PATH=%{buildroot}%{_libdir}/openmpi/lib:%{buildroot}%{_libdir} -np 4 fkinDiagon_kry_p
|
||||
mpirun -wdir buildparallel_dir/examples/kinsol/parallel -x LD_LIBRARY_PATH=%{buildroot}%{_libdir}/openmpi/lib:%{buildroot}%{_libdir} -np 4 kinFoodWeb_kry_bbd_p
|
||||
#kinsol
|
||||
mpirun -np 4 buildopenmpi_dir/build/examples/kinsol/fcmix_parallel/fkinDiagon_kry_p
|
||||
mpirun -np 4 buildopenmpi_dir/build/examples/kinsol/parallel/kinFoodWeb_kry_bbd_p
|
||||
|
||||
##nvector
|
||||
mpirun -wdir buildparallel_dir/examples/nvector/parallel -x LD_LIBRARY_PATH=%{buildroot}%{_libdir}/openmpi/lib:%{buildroot}%{_libdir} -np 4 test_nvector_mpi 5000 4 1
|
||||
#nvector
|
||||
mpirun buildopenmpi_dir/build/examples/nvector/parallel/test_nvector_mpi
|
||||
%{_openmpi_unload}
|
||||
%endif ##if openmpi
|
||||
|
||||
%if 0%{with_openmpi} || 0%{with_mpich}
|
||||
# First, purge all modules so that user environment doesn't conflict
|
||||
# with the build.
|
||||
module purge ||:
|
||||
%endif
|
||||
|
||||
%if 0%{?with_mpich}
|
||||
#%%{_mpich_load}
|
||||
##It seems that tests cannot be executed on koji
|
||||
##arkode
|
||||
#buildmpich_dir/build/examples/arkode/CXX_parallel/ark_heat2D
|
||||
#buildmpich_dir/build/examples/arkode/F77_parallel/fark_diag_kry_bbd_p
|
||||
|
||||
##cvode
|
||||
#buildmpich_dir/build/examples/cvode/fcmix_parallel/fcvDiag_kry_bbd_p
|
||||
#buildmpich_dir/build/examples/cvode/parallel/cvAdvDiff_diag_p
|
||||
|
||||
##cvodes
|
||||
#mpirun -np 2 buildmpich_dir/build/examples/cvodes/parallel/cvsAdvDiff_ASAp_non_p
|
||||
|
||||
#ida
|
||||
#mpirun -np 4 buildmpich_dir/build/examples/ida/fcmix_parallel/fidaHeat2D_kry_bbd_p
|
||||
#mpirun -np 4 buildmpich_dir/build/examples/ida/parallel/idaFoodWeb_kry_bbd_p
|
||||
|
||||
#idas
|
||||
#mpirun -np 4 buildmpich_dir/build/examples/idas/parallel/idasBruss_ASAp_kry_bbd_p
|
||||
|
||||
#kinsol
|
||||
#mpirun -np 4 buildmpich_dir/build/examples/kinsol/fcmix_parallel/fkinDiagon_kry_p
|
||||
#mpirun -np 4 buildmpich_dir/build/examples/kinsol/parallel/kinFoodWeb_kry_bbd_p
|
||||
|
||||
#nvector
|
||||
#mpirun buildmpich_dir/build/examples/nvector/parallel/test_nvector_mpi
|
||||
#%%{_mpich_unload}
|
||||
%endif ##if openmpi
|
||||
%endif ## if with_parcheck
|
||||
|
||||
%if 0%{with_openmpi} || 0%{with_mpich}
|
||||
# First, purge all modules so that user environment doesn't conflict
|
||||
# with the build.
|
||||
module purge ||:
|
||||
%endif
|
||||
|
||||
%if 0%{?with_sercheck}
|
||||
pushd buildserial_dir/examples
|
||||
pushd sundials-%{version}/build/examples
|
||||
export LD_LIBRARY_PATH=%{buildroot}%{_libdir}
|
||||
##arkode
|
||||
cd arkode/C_serial
|
||||
|
@ -459,8 +657,9 @@ popd
|
|||
%endif ##if with_sercheck
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc README src/README-*
|
||||
%{!?_licensedir:%global license %doc}
|
||||
%license sundials-%{version}/LICENSE
|
||||
%doc sundials-%{version}/README sundials-%{version}/src/README-*
|
||||
%{_libdir}/libsundials_nvecserial.so.*
|
||||
%{_libdir}/libsundials_cvode.so.*
|
||||
%{_libdir}/libsundials_cvodes.so.*
|
||||
|
@ -470,17 +669,18 @@ popd
|
|||
%{_libdir}/libsundials_kinsol.so.*
|
||||
|
||||
%files doc
|
||||
%license LICENSE
|
||||
%doc README
|
||||
%doc doc/cvode/cv_examples.pdf
|
||||
%doc doc/cvode/cv_guide.pdf
|
||||
%doc doc/kinsol/kin_examples.pdf
|
||||
%doc doc/kinsol/kin_guide.pdf
|
||||
%doc doc/cvodes/cvs_examples.pdf
|
||||
%doc doc/cvodes/cvs_guide.pdf
|
||||
%doc doc/ida/ida_examples.pdf
|
||||
%doc doc/ida/ida_guide.pdf
|
||||
%doc doc/arkode/*
|
||||
%{!?_licensedir:%global license %doc}
|
||||
%license sundials-%{version}/LICENSE
|
||||
%doc sundials-%{version}/README
|
||||
%doc sundials-%{version}/doc/cvode/cv_examples.pdf
|
||||
%doc sundials-%{version}/doc/cvode/cv_guide.pdf
|
||||
%doc sundials-%{version}/doc/kinsol/kin_examples.pdf
|
||||
%doc sundials-%{version}/doc/kinsol/kin_guide.pdf
|
||||
%doc sundials-%{version}/doc/cvodes/cvs_examples.pdf
|
||||
%doc sundials-%{version}/doc/cvodes/cvs_guide.pdf
|
||||
%doc sundials-%{version}/doc/ida/ida_examples.pdf
|
||||
%doc sundials-%{version}/doc/ida/ida_guide.pdf
|
||||
%doc sundials-%{version}/doc/arkode/*
|
||||
|
||||
%files devel
|
||||
%{_libdir}/libsundials_nvecserial.so
|
||||
|
@ -508,8 +708,8 @@ popd
|
|||
|
||||
%if 0%{?with_openmpi}
|
||||
%files openmpi
|
||||
%license LICENSE
|
||||
%doc README src/README-nvec_par
|
||||
%license sundials-%{version}/LICENSE
|
||||
%doc sundials-%{version}/README sundials-%{version}/src/README-nvec_par
|
||||
%{_libdir}/openmpi/lib/libsundials_nvecparallel.so.*
|
||||
|
||||
%files openmpi-devel
|
||||
|
@ -520,8 +720,9 @@ popd
|
|||
%endif
|
||||
|
||||
%files fortran-openmpi
|
||||
%license LICENSE
|
||||
%doc README src/README-nvec_par
|
||||
%{!?_licensedir:%global license %doc}
|
||||
%license sundials-%{version}/LICENSE
|
||||
%doc sundials-%{version}/README sundials-%{version}/src/README-nvec_par
|
||||
%{_libdir}/openmpi/lib/libsundials_fnvecparallel.so.*
|
||||
|
||||
%files fortran-openmpi-devel
|
||||
|
@ -532,9 +733,38 @@ popd
|
|||
%endif
|
||||
%endif
|
||||
|
||||
%if 0%{?with_mpich}
|
||||
%files mpich
|
||||
%{!?_licensedir:%global license %doc}
|
||||
%license sundials-%{version}/LICENSE
|
||||
%doc sundials-%{version}/README sundials-%{version}/src/README-nvec_par
|
||||
%{_libdir}/mpich/lib/libsundials_nvecparallel.so.*
|
||||
|
||||
%files mpich-devel
|
||||
%{_includedir}/mpich-%{_arch}/nvector/nvector_parallel.h
|
||||
%{_libdir}/mpich/lib/libsundials_nvecparallel.so
|
||||
%ifnarch ppc64 ppc64le
|
||||
%{_libdir}/mpich/lib/pkgconfig/nvec_parallel.pc
|
||||
%endif
|
||||
|
||||
%files fortran-mpich
|
||||
%{!?_licensedir:%global license %doc}
|
||||
%license sundials-%{version}/LICENSE
|
||||
%doc sundials-%{version}/README sundials-%{version}/src/README-nvec_par
|
||||
%{_libdir}/mpich/lib/libsundials_fnvecparallel.so.*
|
||||
|
||||
%files fortran-mpich-devel
|
||||
%{_includedir}/mpich-%{_arch}/nvector/nvector_parallel.h
|
||||
%{_libdir}/mpich/lib/libsundials_fnvecparallel.so
|
||||
%ifnarch ppc64 ppc64le
|
||||
%{_libdir}/mpich/lib/pkgconfig/fnvec_parallel.pc
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%files fortran
|
||||
%license LICENSE
|
||||
%doc README
|
||||
%{!?_licensedir:%global license %doc}
|
||||
%license sundials-%{version}/LICENSE
|
||||
%doc sundials-%{version}/README
|
||||
%{_libdir}/libsundials_fnvecserial.so.*
|
||||
|
||||
%files fortran-devel
|
||||
|
@ -548,8 +778,9 @@ popd
|
|||
%{_libdir}/pkgconfig/fida_serial.pc
|
||||
|
||||
%files threads
|
||||
%license LICENSE
|
||||
%doc README src/README-nvec_pthreads
|
||||
%{!?_licensedir:%global license %doc}
|
||||
%license sundials-%{version}/LICENSE
|
||||
%doc sundials-%{version}/README sundials-%{version}/src/README-nvec_pthreads
|
||||
%{_libdir}/libsundials_nvecpthreads.so.*
|
||||
%{_libdir}/libsundials_fnvecpthreads.so.*
|
||||
|
||||
|
@ -561,6 +792,12 @@ popd
|
|||
%{_libdir}/pkgconfig/fnvec_pthreads.pc
|
||||
|
||||
%changelog
|
||||
* Sun Jan 17 2016 Antonio Trande <sagitterATfedoraproject.org> - 2.6.2-14
|
||||
- Fix OpenMPI compilers
|
||||
- MPICH libraries enabled
|
||||
- Cmake's MPI Fortran compiler test disabled
|
||||
- Included pkgconfig files for MPICH libraries
|
||||
|
||||
* Thu Dec 31 2015 Antonio Trande <sagitterATfedoraproject.org> - 2.6.2-13
|
||||
- Exclude pkgconfig for OpenMPI libs on s390
|
||||
|
||||
|
|
Loading…
Reference in New Issue