Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:redwil:15.4
pARMS
pARMS.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File pARMS.spec of Package pARMS
# # spec file for package pARMS # # Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %if 0%{?sles_version} %define _mvapich2 1 %endif %if 0%{?suse_version} %if 0%{?suse_version} >= 1550 %define _openmpi openmpi1 %else %define _openmpi openmpi %endif %endif %define _mpi %{?_openmpi} %{?_mvapich2:mvapich2} %define major 3 %define libname libparms Name: pARMS Version: 3.2 Release: 0 Summary: The parallel Algebraic Recursive Multilevel Solvers License: LGPL-2.1 Group: Development/Libraries/Parallel Url: http://www-users.cs.umn.edu/~saad/software/pARMS/ Source0: %{name}_%{version}.tar.gz # PATCH-FEATURE-OPENSUSE pARMS-3.2-make.patch : add compiler and build flags in makefile.inc Patch0: pARMS-3.2-make.patch BuildRequires: blas-devel BuildRequires: fdupes BuildRequires: gcc-fortran BuildRequires: lapack-devel %if 0%{?_openmpi:1} BuildRequires: %{_openmpi}-devel %endif %if 0%{?_mvapich2} BuildRequires: mvapich2-devel %endif %description This is a new version of the parallel Algebraic Recursive Multilevel Solvers which has been reimplemented completely. This version includes: - The Restrictive Additive Schwarz (RAS) procedures - Schur complement techniques (with RAS) - ddPQ ordering for local matrices.. [However, the Schur complement techniques do not yet support ddPQ orderings] - (flexible) GMRES accelerator %if 0%{?_openmpi:1} %package -n %{libname}%{major}-%{_openmpi} Summary: A general purpose library for the direct solution of linear equations Group: System/Libraries %description -n %{libname}%{major}-%{_openmpi} This is a new version of the parallel Algebraic Recursive Multilevel Solvers which has been reimplemented completely. This version includes: - The Restrictive Additive Schwarz (RAS) procedures - Schur complement techniques (with RAS) - ddPQ ordering for local matrices.. [However, the Schur complement techniques do not yet support ddPQ orderings] - (flexible) GMRES accelerator This package contains the parallel version of the library for openmpi. %package %{_openmpi}-devel Summary: Development and header files for %{name} Group: Development/Libraries/Parallel Requires: %{libname}%{major}-%{_openmpi} = %{version} Requires: %{_openmpi}-devel %description %{_openmpi}-devel This package contains the development and header files for %{name}. %package %{_openmpi}-devel-static Summary: Static library for %{name} Group: Development/Libraries/C and C++ Requires: %{name}-%{_openmpi}-devel = %{version} %description %{_openmpi}-devel-static This package contains the static library for %{name}. %package example-%{_openmpi} Summary: Example programs for %{name} Group: Development/Libraries/Parallel %description example-%{_openmpi} This package contains several examples programs using %{name}. The matrix data required by some of the programs can be found in the documentation directory /usr/share/doc/packages/%{name}-example-%{_openmpi}/matrices. %endif %if 0%{?_mvapich2} %package -n %{libname}%{major}-mvapich2 Summary: A general purpose library for the direct solution of linear equations Group: System/Libraries %description -n %{libname}%{major}-mvapich2 This is a new version of the parallel Algebraic Recursive Multilevel Solvers which has been reimplemented completely. This version includes: - The Restrictive Additive Schwarz (RAS) procedures - Schur complement techniques (with RAS) - ddPQ ordering for local matrices.. [However, the Schur complement techniques do not yet support ddPQ orderings] - (flexible) GMRES accelerator This package contains the parallel version of the library for mvapich2. %package mvapich2-devel Summary: Development and header files for %{name} Group: Development/Libraries/C and C++ Requires: %{libname}%{major}-mvapich2 = %{version} Requires: mvapich2-devel %description mvapich2-devel This package contains the development and header files for %{name}. %package mvapich2-devel-static Summary: Static library for %{name} Group: Development/Libraries/C and C++ Requires: %{libname}%{major}-mvapich2 = %{version} Requires: %{name}-mvapich2-devel = %{version} %description mvapich2-devel-static This package contains the static library for %{name}. %package example-mvapich2 Summary: Example programs for %{name} Group: Development/Libraries/Parallel %description example-mvapich2 This package contains several examples programs using %{name}. The matrix data required by some of the programs can be found in the documentation directory /usr/share/doc/packages/%{name}-example-mvapich2/matrices. %endif %package doc Summary: Documentation files for %{name} Group: Documentation/Other %description doc This package contains the html and pdf documentation files for %{name}. %prep %setup -q -n pARMS_%{version} %patch0 -p1 set -- * for mpi in %_mpi; do mkdir $mpi cp -ap "$@" $mpi done %build for mpi in %_mpi; do cd $mpi make %{?_smp_mflags} \ CC=%{_libdir}/mpi/gcc/$mpi/bin/mpicc \ FC=%{_libdir}/mpi/gcc/$mpi/bin/mpif77 \ F90=%{_libdir}/mpi/gcc/$mpi/bin/mpif90 \ COPTFLAGS="%{optflags} -fPIC -ffat-lto-objects" mkdir tmp ( cd tmp && ar -x ../lib/libparms.a ) %{_libdir}/mpi/gcc/$mpi/bin/mpif90 -shared -z muldefs -Wl,-soname=%{libname}.so.%{major} -o lib/%{libname}.so.%{version} tmp/*.o pushd lib ln -s %{libname}.so.%{major} %{libname}.so popd # build the tests make %{?_smp_mflags} tests \ CC=%{_libdir}/mpi/gcc/$mpi/bin/mpicc \ FC=%{_libdir}/mpi/gcc/$mpi/bin/mpif77 \ F90=%{_libdir}/mpi/gcc/$mpi/bin/mpif90 cd .. done %install for mpi in %_mpi; do cd $mpi mkdir -p %{buildroot}%{_libdir}/mpi/gcc/$mpi/%_lib mkdir -p %{buildroot}%{_libdir}/mpi/gcc/$mpi/bin mkdir -p %{buildroot}%{_libdir}/mpi/gcc/$mpi/include install -m644 src/include/*.h %{buildroot}%{_libdir}/mpi/gcc/$mpi/include install -m755 examples/grid/dd-grid.ex %{buildroot}%{_libdir}/mpi/gcc/$mpi/bin install -m755 examples/general/dd-HB-dse.ex %{buildroot}%{_libdir}/mpi/gcc/$mpi/bin install -m 755 lib/libparms.so.%{version} %{buildroot}%{_libdir}/mpi/gcc/$mpi/%_lib install -m 644 lib/libparms.a %{buildroot}%{_libdir}/mpi/gcc/$mpi/%_lib pushd %{buildroot}%{_libdir}/mpi/gcc/$mpi/%_lib ln -s libparms.so.%{version} libparms.so.3 ln -s libparms.so.%{version} libparms.so popd cd .. done # for examples mv examples/general/README examples/general/README.general mv examples/grid/README examples/grid/README.grid chmod 644 examples/matrices/* %if 0%{?_openmpi:1} %post -n %{libname}%{major}-%{_openmpi} -p /sbin/ldconfig %postun -n %{libname}%{major}-%{_openmpi} -p /sbin/ldconfig %endif %if 0%{?_mvapich2} %post -n %{libname}%{major}-mvapich2 -p /sbin/ldconfig %postun -n %{libname}%{major}-mvapich2 -p /sbin/ldconfig %endif %if 0%{?_openmpi:1} %files -n %{libname}%{major}-%{_openmpi} %license COPYRIGHT LGPL %{_libdir}/mpi/gcc/%{_openmpi}/%_lib/*.so.* %files %{_openmpi}-devel %{_libdir}/mpi/gcc/%{_openmpi}/%_lib/*.so %{_libdir}/mpi/gcc/%{_openmpi}/include/*.h %files %{_openmpi}-devel-static %{_libdir}/mpi/gcc/%{_openmpi}/%_lib/*.a %files example-%{_openmpi} %doc examples/matrices examples/general/README.general examples/grid/README.grid %{_libdir}/mpi/gcc/%{_openmpi}/bin/* %endif %if 0%{?_mvapich2} %files -n %{libname}%{major}-mvapich2 %license COPYRIGHT LGPL %{_libdir}/mpi/gcc/mvapich2/%_lib/*.so.* %files mvapich2-devel %{_libdir}/mpi/gcc/mvapich2/%_lib/*.so %{_libdir}/mpi/gcc/mvapich2/include/*.h %files mvapich2-devel-static %{_libdir}/mpi/gcc/mvapich2/%_lib/*.a %files example-mvapich2 %doc examples/matrices examples/general/README.general examples/grid/README.grid %{_libdir}/mpi/gcc/mvapich2/bin/* %endif %files doc %doc docs/refmanual.pdf docs/ug.pdf README %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor