# Copyright (c) 2013, 2014, 2015 Dave Love, Liverpool University # The licence for this file is as for the package itself. # fixme: rpmlint complains at libpnmpif.so soname -- it seems to be # deliberate, with the versioned one commented-out %if 0%{?el6} %{!?__python2: %global __python2 /usr/bin/python2} %{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} %{!?python2_sitearch: %global python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} %ifarch ppc64 %bcond_with mpich %else %bcond_without mpich %endif %else %bcond_without mpich %endif %if 0%{?el7} %bcond_without openmpi3 %else %bcond_with openmpi3 %endif Name: pnmpi Version: 1.8 Release: 1%{?dist} Summary: MPI Tool virtualization and interoperability License: LGPLv2 URL: https://computation-rnd.llnl.gov/pnmpi/ #Source0: https://doc.itc.rwth-aachen.de/download/attachments/7373495/pnmpi-for-must-1.5.tgz Source0: https://github.com/LLNL/PnMPI/archive/v%version/PnMPI-v%version-full.tar.gz BuildRequires: openmpi-devel cmake3 gcc-c++ gcc-gfortran python2-devel BuildRequires: adept-utils help2man binutils-devel doxygen # Required by cmake, but not used BuildRequires: git %global desc \ PnMPI is a dynamic MPI tool infrastructure that builds on top of\ the standardized PMPI interface. It allows the user to\ - run multiple PMPI tools concurrently\ - activate PMPI tools without relinking by just changing a\ configuration file\ - multiplex toolsets during a single run\ - write cooperative PMPI tools\ \ The package contains three main components:\ - The PnMPI core infrastructure\ - An MPI wrapper generation infrastructure\ - Tool modules that can explicitly exploit PnMPI's capabilities %description %desc %package openmpi Summary: MPI Tool virtualization and interoperability (openmpi) Requires: %{name}-openmpi%{?isa} = %{version}-%{release} %description openmpi %desc This is the openmpi version. %package openmpi-devel Summary: Development files for %{name} (openmpi) Requires: openmpi-devel%{?isa} Requires: %name-openmpi%{_isa} = %version-%release %description openmpi-devel The %{name}-openmpi-devel package contains files for developing applications that use %{name} with openmpi. %if %{with openmpi3} %package openmpi3 Summary: MPI Tool virtualization and interoperability (openmpi3) Requires: %{name}-openmpi3%{?isa} = %{version}-%{release} BuildRequires: openmpi3-devel %description openmpi3 %desc This is the openmpi3 version. %package openmpi3-devel Summary: Development files for %{name} (openmpi3) Requires: openmpi3-devel%{?isa} Requires: %name-openmpi3%{_isa} = %version-%release %description openmpi3-devel The %{name}-openmpi3-devel package contains files for developing applications that use %{name} with openmpi3. %endif %if %{with mpich} %package mpich Summary: MPI Tool virtualization and interoperability (mpich) BuildRequires: mpich-devel Requires: %{name}-mpich%{?isa} = %{version}-%{release} %description mpich %desc This is the mpich version. %package mpich-devel Summary: Development files for %{name} (mpich) Requires: mpich-devel%{?isa} %description mpich-devel The %{name}-mpich-devel package contains files for developing applications that use %{name} with mpich. %endif %prep %setup -q -n PnMPI-v%version %build mkdir -p openmpi mpich openmpi3 %{?el6:export CFLAGS="-fgnu89-inline" CXXFLAGS="-std=gnu++0x -DINT8_MIN='(-128)'"} %global dobuild \ %cmake3 -DPnMPI_LIBRARY_DIR=$MPI_LIB -DCMAKE_INSTALL_LIBDIR=$MPI_LIB \\\ -DCMAKE_INSTALL_PREFIX=$MPI_HOME -DENABLE_ADEPT_UTILS=ON \\\ -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=FALSE -DENABLE_TESTS=yes .. \ make %{?_smp_mflags} %if %{with mpich} pushd mpich %_mpich_load %dobuild %_mpich_unload popd %endif pushd openmpi %{_openmpi_load} %dobuild %{_openmpi_unload} popd %if %{with openmpi3} pushd openmpi3 %{_openmpi3_load} %dobuild %{_openmpi3_unload} popd %endif %check # ifxme: no such target #make test %install %global doinst \ mkdir -p $RPM_BUILD_ROOT/$MPI_INCLUDE\ make install DESTDIR=$RPM_BUILD_ROOT\ mv $RPM_BUILD_ROOT$MPI_HOME/include $RPM_BUILD_ROOT/$MPI_INCLUDE/pnmpi %if %{with mpich} %_mpich_load pushd mpich %doinst popd %_mpich_unload %endif %_openmpi_load pushd openmpi %doinst popd %_openmpi_unload %if %{with openmpi3} %_openmpi3_load pushd openmpi3 %doinst popd %_openmpi3_unload %endif find $RPM_BUILD_ROOT -name libadept_\* -delete #find $RPM_BUILD_ROOT -name adept | xargs rm -r %files openmpi %doc README.md %_libdir/openmpi/lib/*.so.* %_libdir/openmpi/lib/libpnmpif.so %_libdir/openmpi/lib/pnmpi-modules %_libdir/openmpi/share/man/man1/pnmpi.* %files openmpi-devel %_includedir/openmpi*/* # currently required by gti %_libdir/openmpi/lib/*.a %_libdir/openmpi/bin/* %_libdir/openmpi/lib/libpnmpi.so %_libdir/openmpi/share/cmake/* %dir %_libdir/openmpi/src %_libdir/openmpi/src/wrap %if %{with openmpi3} %files openmpi3 %doc README.md %_libdir/openmpi3/lib/*.so.* %_libdir/openmpi3/lib/libpnmpif.so %_libdir/openmpi3/lib/pnmpi-modules %_libdir/openmpi3/share/man/man1/pnmpi.* %files openmpi3-devel %_includedir/openmpi3*/* # currently required by gti %_libdir/openmpi3/lib/*.a %_libdir/openmpi3/bin/* %_libdir/openmpi3/lib/libpnmpi.so %_libdir/openmpi3/share/cmake/* %dir %_libdir/openmpi3/src %_libdir/openmpi3/src/wrap %endif %if %{with mpich} %files mpich %doc README.md %_libdir/mpich/lib/*.so.* %_libdir/mpich/lib/libpnmpif.so %_libdir/mpich/lib/pnmpi-modules %_libdir/mpich/share/man/man1/pnmpi.* %files mpich-devel %_includedir/mpich*/* %_libdir/mpich/lib/*.a %_libdir/mpich/bin/* %_libdir/mpich/lib/libpnmpi.so %_libdir/mpich/share/cmake/* %dir %_libdir/mpich/src %_libdir/mpich/src/wrap %endif %changelog * Fri Oct 26 2018 Dave Love - 1.8-2 - New version - Add openmpi3 packages on el7 * Mon Jul 25 2016 Dave Love - 1.5.0-1 - New version * Fri May 13 2016 Dave Love - 1.5.0-0.2.rc1 - Fix missing -openmpi-devel dependence on -openmpi * Thu May 5 2016 Dave Love - 1.5.0-0.1.rc1 - New version - Remove el5-isms - Fix el6 compilation * Wed May 20 2015 Dave Love - 1.4.0-6 - Non-rc version - Drop patches * Sun Mar 22 2015 Dave Love - 1.4.0-5.rc1 - BR adept-utils * Sat Mar 21 2015 Dave Love - 1.4.0-4.rc1 - Fix failures on Fedora 22 and some warnings * Sat Mar 21 2015 Dave Love - 1.4.0-3.rc1 - Patch for MPI3 v. MPI2 * Sat Mar 21 2015 Dave Love - 1.4.0-2.rc1 - Fix requires * Tue Jan 13 2015 Dave Love - 1.4.0-1.rc1 - Fix compilation of samples with MPI3 * Wed Dec 3 2014 Dave Love - 1.4.0-1 - New version * Mon Oct 6 2014 Dave Love - 1.3.0-2 - Fix header location in installed cmake config * Tue Jul 29 2014 Dave Love - 1.3.0-1 - New version * Mon Jul 28 2014 Dave Love - 1.2.0-4 - Drop cmake package - Put cmake files in MPI_HOME (expected by gti) * Fri Jun 20 2014 Dave Love - 1.2.0-3 - Make openmpi and mpich packages - Remove patch * Tue Feb 25 2014 Dave Love - 1.2.0-2 - Add devel package * Wed Dec 4 2013 Dave Love - 1.2.0-1 - Initial packaging