diff --git a/redhat/opm-simulators.spec b/redhat/opm-simulators.spec index 418d5a384..5c8140129 100644 --- a/redhat/opm-simulators.spec +++ b/redhat/opm-simulators.spec @@ -12,13 +12,14 @@ License: GPL-3.0 Group: Development/Libraries/C and C++ Url: http://www.opm-project.org/ Source0: https://github.com/OPM/%{name}/archive/release/%{version}/%{tag}.tar.gz#/%{name}-%{version}.tar.gz -BuildRequires: blas-devel lapack-devel dune-common-devel dune-geometry-devel -BuildRequires: git suitesparse-devel doxygen bc devtoolset-6-toolchain -BuildRequires: opm-grid-devel opm-grid-openmpi-devel dune-grid-devel dune-localfunctions-devel -BuildRequires: ewoms-devel ewoms-openmpi-devel opm-common-devel opm-common-openmpi-devel -BuildRequires: opm-material-devel opm-material-openmpi-devel zlib-devel +BuildRequires: blas-devel lapack-devel dune-common-devel +BuildRequires: git suitesparse-devel doxygen bc devtoolset-6-toolchain +BuildRequires: opm-grid-devel opm-grid-openmpi-devel opm-grid-mpich-devel +BuildRequires: ewoms-devel ewoms-openmpi-devel ewoms-mpich-devel +BuildRequires: opm-material-devel opm-material-openmpi-devel opm-material-mpich-devel BuildRequires: tinyxml-devel dune-istl-devel eigen3-devel ecl-devel BuildRequires: openmpi-devel trilinos-openmpi-devel ptscotch-openmpi-devel scotch-devel +BuildRequires: mpich-devel trilinos-mpich-devel ptscotch-mpich-devel %{?el6:BuildRequires: cmake3 boost148-devel} %{!?el6:BuildRequires: cmake boost-devel} BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -41,6 +42,13 @@ Group: System/Libraries %description -n libopm-simulators1-openmpi The Open Porous Media (OPM) initiative provides a set of open-source tools centered around the simulation of flow and transport of fluids in porous media. The goal of the initiative is to establish a sustainable environment for the development of an efficient and well-maintained software suite. +%package -n libopm-simulators1-mpich +Summary: Open Porous Media - automatic differentiation library +Group: System/Libraries + +%description -n libopm-simulators1-mpich +The Open Porous Media (OPM) initiative provides a set of open-source tools centered around the simulation of flow and transport of fluids in porous media. The goal of the initiative is to establish a sustainable environment for the development of an efficient and well-maintained software suite. + %package devel Summary: Development and header files for opm-simulators Group: Development/Libraries/C and C++ @@ -57,6 +65,14 @@ Requires: libopm-simulators1-openmpi = %{version} %description openmpi-devel This package contains the development and header files for opm-simulators +%package mpich-devel +Summary: Development and header files for opm-simulators +Group: Development/Libraries/C and C++ +Requires: libopm-simulators1-mpich = %{version} + +%description mpich-devel +This package contains the development and header files for opm-simulators + %package doc Summary: Documentation files for opm-simulators Group: Documentation @@ -77,10 +93,26 @@ This package contains the applications for opm-simulators Summary: Applications in opm-simulators Group: Scientific Requires: libopm-simulators1-openmpi = %{version} +Requires: libopm-grid1-openmpi = %{version} +Requires: libopm-common1-openmpi = %{version} +Requires: trilinos-openmpi +Requires: ptscotch-openmpi %description openmpi-bin This package contains the applications for opm-simulators +%package mpich-bin +Summary: Applications in opm-simulators +Group: Scientific +Requires: libopm-simulators1-mpich = %{version} +Requires: libopm-grid1-mpich = %{version} +Requires: libopm-common1-mpich = %{version} +Requires: trilinos-mpich +Requires: ptscotch-mpich + +%description mpich-bin +This package contains the applications for opm-simulators + %prep %setup -q -n %{name}-release-%{version}-%{tag} @@ -89,7 +121,7 @@ scl enable devtoolset-6 bash mkdir serial cd serial %{?el6:cmake3} %{?!el6:cmake} -DBUILD_SHARED_LIBS=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%{_prefix} -DCMAKE_INSTALL_DOCDIR=share/doc/%{name}-%{version} -DUSE_RUNPATH=OFF -DWITH_NATIVE=OFF -DUSE_QUADMATH=0 -DCMAKE_CXX_COMPILER=/opt/rh/devtoolset-6/root/usr/bin/g++ -DCMAKE_C_COMPILER=/opt/rh/devtoolset-6/root/usr/bin/gcc %{?el6:-DBOOST_LIBRARYDIR=%{_libdir}/boost148 -DBOOST_INCLUDEDIR=%{_includedir}/boost148} .. -make +make %{?_smp_mflags} #make test cd .. @@ -97,8 +129,19 @@ mkdir openmpi cd openmpi %{?el6:module load openmpi-x86_64} %{?!el6:module load mpi/openmpi-x86_64} -%{?el6:cmake3} %{?!el6:cmake} -DUSE_MPI=1 -DBUILD_SHARED_LIBS=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%{_prefix}/lib64/openmpi -DCMAKE_INSTALL_DOCDIR=share/doc/%{name}-%{version} -DUSE_RUNPATH=OFF -DWITH_NATIVE=OFF -DUSE_QUADMATH=0 -DCMAKE_CXX_COMPILER=/opt/rh/devtoolset-6/root/usr/bin/g++ -DCMAKE_C_COMPILER=/opt/rh/devtoolset-6/root/usr/bin/gcc %{?el6:-DBOOST_LIBRARYDIR=%{_libdir}/boost148 -DBOOST_INCLUDEDIR=%{_includedir}/boost148} -DZOLTAN_ROOT=/usr/lib64/openmpi -DCMAKE_CXX_FLAGS=-I/usr/include/openmpi-x86_64/trilinos -DZOLTAN_INCLUDE_DIRS=/usr/include/openmpi-x86_64/trilinos -DPTSCOTCH_ROOT=/usr/lib64/openmpi -DPTSCOTCH_INCLUDE_DIR=/usr/include/openmpi-x86_64 .. -make +%{?el6:cmake3} %{?!el6:cmake} -DUSE_MPI=1 -DBUILD_SHARED_LIBS=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%{_prefix}/lib64/openmpi -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_DOCDIR=share/doc/%{name}-%{version} -DUSE_RUNPATH=OFF -DWITH_NATIVE=OFF -DUSE_QUADMATH=0 -DCMAKE_CXX_COMPILER=/opt/rh/devtoolset-6/root/usr/bin/g++ -DCMAKE_C_COMPILER=/opt/rh/devtoolset-6/root/usr/bin/gcc %{?el6:-DBOOST_LIBRARYDIR=%{_libdir}/boost148 -DBOOST_INCLUDEDIR=%{_includedir}/boost148} -DZOLTAN_ROOT=/usr/lib64/openmpi -DCMAKE_CXX_FLAGS=-I/usr/include/openmpi-x86_64/trilinos -DZOLTAN_INCLUDE_DIRS=/usr/include/openmpi-x86_64/trilinos -DPTSCOTCH_ROOT=/usr/lib64/openmpi -DPTSCOTCH_INCLUDE_DIR=/usr/include/openmpi-x86_64 .. +make %{?_smp_mflags} +#make test +cd .. + +mkdir mpich +cd mpich +%{?el6:module rm openmpi-x86_64} +%{?el6:module load mpich-x86_64} +%{?!el6:module rm mpi/openmpi-x86_64} +%{?!el6:module load mpi/mpich-x86_64} +%{?el6:cmake3} %{?!el6:cmake} -DUSE_MPI=1 -DBUILD_SHARED_LIBS=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%{_prefix}/lib64/mpich -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_DOCDIR=share/doc/%{name}-%{version} -DUSE_RUNPATH=OFF -DWITH_NATIVE=OFF -DUSE_QUADMATH=0 -DCMAKE_CXX_COMPILER=/opt/rh/devtoolset-6/root/usr/bin/g++ -DCMAKE_C_COMPILER=/opt/rh/devtoolset-6/root/usr/bin/gcc %{?el6:-DBOOST_LIBRARYDIR=%{_libdir}/boost148 -DBOOST_INCLUDEDIR=%{_includedir}/boost148} -DZOLTAN_ROOT=/usr/lib64/mpich -DCMAKE_CXX_FLAGS=-I/usr/include/mpich-x86_64/trilinos -DZOLTAN_INCLUDE_DIRS=/usr/include/mpich-x86_64/trilinos -DPTSCOTCH_ROOT=/usr/lib64/mpich -DPTSCOTCH_INCLUDE_DIR=/usr/include/mpich-x86_64 .. +make %{?_smp_mflags} #make test %install @@ -106,18 +149,26 @@ cd serial make install DESTDIR=${RPM_BUILD_ROOT} make install-html DESTDIR=${RPM_BUILD_ROOT} cd .. + cd openmpi make install DESTDIR=${RPM_BUILD_ROOT} mv ${RPM_BUILD_ROOT}/usr/lib64/openmpi/include/* ${RPM_BUILD_ROOT}/usr/include/openmpi-x86_64/ +cd .. + +cd mpich +make install DESTDIR=${RPM_BUILD_ROOT} +mv ${RPM_BUILD_ROOT}/usr/lib64/mpich/include/* ${RPM_BUILD_ROOT}/usr/include/mpich-x86_64/ %clean rm -rf %{buildroot} %post -n libopm-simulators1 -p /sbin/ldconfig %post -n libopm-simulators1-openmpi -p /sbin/ldconfig +%post -n libopm-simulators1-mpich -p /sbin/ldconfig %postun -n libopm-simulators1 -p /sbin/ldconfig %postun -n libopm-simulators1-openmpi -p /sbin/ldconfig +%postun -n libopm-simulators1-mpich -p /sbin/ldconfig %files doc %{_docdir}/* @@ -128,7 +179,11 @@ rm -rf %{buildroot} %files -n libopm-simulators1-openmpi %defattr(-,root,root,-) -%{_libdir}/openmpi/lib64/*.so.* +%{_libdir}/openmpi/lib/*.so.* + +%files -n libopm-simulators1-mpich +%defattr(-,root,root,-) +%{_libdir}/mpich/lib/*.so.* %files devel %defattr(-,root,root,-) @@ -141,15 +196,27 @@ rm -rf %{buildroot} %files openmpi-devel %defattr(-,root,root,-) -%{_libdir}/openmpi/lib64/*.so +%{_libdir}/openmpi/lib/*.so %{_libdir}/openmpi/lib/dunecontrol/* -%{_libdir}/openmpi/lib64/pkgconfig/* +%{_libdir}/openmpi/lib/pkgconfig/* %{_includedir}/openmpi-x86_64/* %{_libdir}/openmpi/share/cmake/* %{_libdir}/openmpi/share/opm/cmake/Modules/* +%files mpich-devel +%defattr(-,root,root,-) +%{_libdir}/mpich/lib/*.so +%{_libdir}/mpich/lib/dunecontrol/* +%{_libdir}/mpich/lib/pkgconfig/* +%{_includedir}/mpich-x86_64/* +%{_libdir}/mpich/share/cmake/* +%{_libdir}/mpich/share/opm/cmake/Modules/* + %files bin %{_bindir}/* %files openmpi-bin %{_libdir}/openmpi/bin/* + +%files mpich-bin +%{_libdir}/mpich/bin/*