# Initial work based on Ubuntu MUMPS package: # https://launchpad.net/ubuntu/lucid/+source/mumps/ Name: MUMPS Version: 4.9.2 Release: 1%{?dist} Summary: A MUltifrontal Massively Parallel sparse direct Solver Group: Development/Libraries License: Public Domain URL: http://mumps.enseeiht.fr/ Source0: http://mumps.enseeiht.fr/%{name}_%{version}.tar.gz # Package patches and custom Makefiles. Source1: mumps-extra.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: gcc-gfortran, blas-devel, lapack-devel BuildRequires: openmpi-devel, scalapack-openmpi-devel, blacs-openmpi-devel %description MUMPS implements a direct solver for large sparse linear systems, with a particular focus on symmetric positive definite matrices. It can operate on distributed matrices e.g. over a cluster. It has Fortran and C interfaces, and can interface with ordering tools such as Scotch. %package devel Summary: The MUMPS headers and development-related files Group: Development/Libraries Requires: %{name} = %{version}-%{release} Requires: blas-devel, lapack-devel Requires: openmpi-devel, scalapack-openmpi-devel, blacs-openmpi-devel %description devel Shared links, header files for MUMPS %package seq Summary: The MUMPS headers and development-related files Group: Development/Libraries %description seq Shared libraries of sequential MUMPS %package seq-devel Summary: The MUMPS headers and development-related files Group: Development/Libraries Requires: %{name}-seq = %{version}-%{release}, %{name}-devel %description seq-devel Shared links, header files for sequential MUMPS %prep %setup -q -n %{name}_%{version} %setup -q -T -D -a 1 -n %{name}_%{version} %build # Patch for sequential version. patch -p1 < tests-shlibs.patch patch -p1 < shared-pord.patch patch -p1 < shared-mumps.patch patch -p1 < shared-libseq.patch # Build sequential version. cp -f Makefile.seq.inc Makefile.inc make all cp -a lib libmumps_seq cp -af libseq/lib* libmumps_seq make clean # Revert patches. patch -R -p1 < shared-libseq.patch # Build parallel version. rm -f Makefile.inc cp -f Makefile.par.inc Makefile.inc MUMPS_MPI=openmpi MUMPS_INCDIR=-I/usr/include/openmpi-%{_arch} MUMPS_LIBF77="\ -L%{_libdir}/openmpi -L%{_libdir}/openmpi/lib -L%{_libdir}/scalapack-openmpi \ -L%{_libdir}/blacs-openmpi \ \ -lmpi_f77 -lmpi -lopen-rte \ -lopen-pal -lscalapack -lmpiblacs \ -lmpiblacsF77init -lmpiblacsCinit -llapack" make MUMPS_MPI="$MUMPS_MPI" \ MUMPS_INCDIR="$MUMPS_INCDIR" \ MUMPS_LIBF77="$MUMPS_LIBF77" \ all # Make sure documentation is using Unicode. iconv -f ISO8859 -t UTF-8 < README > README-t && mv README-t README %install rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/ mkdir -p $RPM_BUILD_ROOT%{_libdir} mkdir -p $RPM_BUILD_ROOT%{_libdir}/%{name} mkdir -p $RPM_BUILD_ROOT%{_includedir} # Install documentation install -cpm 644 README $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/ # Install libraries. install -cpm 755 lib/lib*-*.so $RPM_BUILD_ROOT%{_libdir} install -cpm 755 libmumps_seq/lib*-*.so $RPM_BUILD_ROOT%{_libdir} # Install development files. install -cpm 755 lib/libmumps_common.so $RPM_BUILD_ROOT%{_libdir} install -cpm 755 lib/lib?mumps.so $RPM_BUILD_ROOT%{_libdir} install -cpm 755 lib/libpord.so $RPM_BUILD_ROOT%{_libdir} install -cpm 644 include/*.h $RPM_BUILD_ROOT%{_includedir} install -cpm 755 libmumps_seq/libmumps_common_seq.so $RPM_BUILD_ROOT%{_libdir} install -cpm 755 libmumps_seq/lib?mumps_seq.so $RPM_BUILD_ROOT%{_libdir} install -cpm 755 libmumps_seq/libpord_seq.so $RPM_BUILD_ROOT%{_libdir} install -cpm 755 libmumps_seq/libmpiseq.so $RPM_BUILD_ROOT%{_libdir} install -cpm 644 libseq/*.h $RPM_BUILD_ROOT%{_includedir} # Examples #install -cpm 755 examples/?simpletest $RPM_BUILD_ROOT%{_libdir}/%{name} #install -cpm 755 examples/input_* $RPM_BUILD_ROOT%{_libdir}/%{name} %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) # README file. %dir %{_docdir}/%{name}-%{version}/ %{_docdir}/%{name}-%{version}/README # versioned shared library %{_libdir}/libmumps_common-%{version}.so %{_libdir}/lib?mumps-%{version}.so %{_libdir}/libpord-%{version}.so # examples #%{_libdir}/%{name} %files devel %defattr(-,root,root,-) %{_includedir}/* %{_libdir}/libmumps_common.so* %{_libdir}/lib?mumps.so* %{_libdir}/libpord.so* %files seq %defattr(-,root,root,-) # versioned shared library %{_libdir}/libmumps_common_seq-%{version}.so %{_libdir}/lib?mumps_seq-%{version}.so %{_libdir}/libpord_seq-%{version}.so %{_libdir}/libmpiseq-%{version}.so %files seq-devel %defattr(-,root,root,-) %{_libdir}/libmumps_common_seq.so* %{_libdir}/lib?mumps_seq.so* %{_libdir}/libpord_seq.so* %{_libdir}/libmpiseq.so* %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %changelog * Thu Feb 4 2010 Thomas Moulard - 4.9.2-1 - Initial work.