File filtlan.spec of Package filtlan
#
# spec file for package filtlan
#
# 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/
#
%define major 0
Name: filtlan
Version: 1.0a
Release: 0
Summary: A library for computing extreme or interior eigenvalues of a symmetric matrix
License: LGPL-2.1
Group: Development/Libraries/C and C++
Url: http://www-users.cs.umn.edu/~saad/software/filtlan/index.html
Source0: %{name}120507.zip
Patch0: filtlan-1.0a-shared.patch
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: latex2html
BuildRequires: gcc-c++
BuildRequires: lapack-devel
%if 0%{?suse_version} >= 1500
BuildRequires: texlive-newunicodechar
%endif
BuildRequires: unzip
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
FILTLAN is a software library written in C/C++ for computing extreme or
interior eigenvalues of a symmetric matrix by a polynomial filtered Lanczos
procedure. The code for extreme eigenvalues by a standard Lanczos procedure
without restarting is also included. In both cases, partial
reorthogonalization is provided to improve efficiency.
FILTLAN uses MATKIT for the basic matrix computations and LAPACK for the
routine dstev_() or sstev_() for computing eigenvalues of a symmetric
tridiagonal matrix.
FILTLAN does not handle generalized or other non-standard eigenvalue
problems.
%package -n libsfiltlan%{major}
Summary: A library for computing extreme or interior eigenvalues of a symmetric matrix
Group: System/Libraries
%description -n libsfiltlan%{major}
FILTLAN is a software library written in C/C++ for computing extreme or
interior eigenvalues of a symmetric matrix by a polynomial filtered Lanczos
procedure. The code for extreme eigenvalues by a standard Lanczos procedure
without restarting is also included. In both cases, partial
reorthogonalization is provided to improve efficiency.
FILTLAN uses MATKIT for the basic matrix computations and LAPACK for the
routine dstev_() or sstev_() for computing eigenvalues of a symmetric
tridiagonal matrix.
FILTLAN does not handle generalized or other non-standard eigenvalue
problems.
%package -n libdfiltlan%{major}
Summary: A library for computing extreme or interior eigenvalues of a symmetric matrix
Group: System/Libraries
%description -n libdfiltlan%{major}
FILTLAN is a software library written in C/C++ for computing extreme or
interior eigenvalues of a symmetric matrix by a polynomial filtered Lanczos
procedure. The code for extreme eigenvalues by a standard Lanczos procedure
without restarting is also included. In both cases, partial
reorthogonalization is provided to improve efficiency.
FILTLAN uses MATKIT for the basic matrix computations and LAPACK for the
routine dstev_() or sstev_() for computing eigenvalues of a symmetric
tridiagonal matrix.
FILTLAN does not handle generalized or other non-standard eigenvalue
problems.
%package -n libsmatkit%{major}
Summary: A library for computing extreme or interior eigenvalues of a symmetric matrix
Group: System/Libraries
%description -n libsmatkit%{major}
FILTLAN is a software library written in C/C++ for computing extreme or
interior eigenvalues of a symmetric matrix by a polynomial filtered Lanczos
procedure. The code for extreme eigenvalues by a standard Lanczos procedure
without restarting is also included. In both cases, partial
reorthogonalization is provided to improve efficiency.
FILTLAN uses MATKIT for the basic matrix computations and LAPACK for the
routine dstev_() or sstev_() for computing eigenvalues of a symmetric
tridiagonal matrix.
FILTLAN does not handle generalized or other non-standard eigenvalue
problems.
%package -n libdmatkit%{major}
Summary: A library for computing extreme or interior eigenvalues of a symmetric matrix
Group: System/Libraries
%description -n libdmatkit%{major}
FILTLAN is a software library written in C/C++ for computing extreme or
interior eigenvalues of a symmetric matrix by a polynomial filtered Lanczos
procedure. The code for extreme eigenvalues by a standard Lanczos procedure
without restarting is also included. In both cases, partial
reorthogonalization is provided to improve efficiency.
FILTLAN uses MATKIT for the basic matrix computations and LAPACK for the
routine dstev_() or sstev_() for computing eigenvalues of a symmetric
tridiagonal matrix.
FILTLAN does not handle generalized or other non-standard eigenvalue
problems.
%package devel
Summary: Development and header files for %{name}
Group: Development/Libraries/C and C++
Requires: libdfiltlan%{major} = %{version}
Requires: libdmatkit%{major} = %{version}
Requires: libsfiltlan%{major} = %{version}
Requires: libsmatkit%{major} = %{version}
%description devel
This package contains the development and header files for %{name}.
%prep
%setup -q -n FILTLAN
%patch0 -p1
%build
make MEX_FLAG=NO_MEX CFLAGS="%optflags -DUSE_NAMESPACE -DUSE_BLAS -fPIC"
cd INCLUDE
# Disable the time and date in htlm files to silent rpmlint
sed -i 's/^HTML_TIMESTAMP = YES/HTML_TIMESTAMP = NO/' filtlan_doxygen.cfg
doxygen filtlan_doxygen.cfg
cd ..
%fdupes -s DOCS/html
%install
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_libdir}
mkdir -p %{buildroot}%{_includedir}
install -m644 INCLUDE/*.h %{buildroot}%{_includedir}
for lib in libdfiltlan libdmatkit libsfiltlan libsmatkit; do
install -m 755 LIB/$lib.so %{buildroot}%{_libdir}/$lib.so.%{major}
pushd %{buildroot}%{_libdir}
ln -s $lib.so.%{major} $lib.so
popd
done
# install driver
for driver in filtlan_driver laneig_driver numeig_driver polyfilt_driver; do
install -m755 DRIVERS/DOUBLE/$driver %{buildroot}%{_bindir}/d$driver
done
for driver in filtlan_driver laneig_driver numeig_driver polyfilt_driver; do
install -m755 DRIVERS/SINGLE/$driver %{buildroot}%{_bindir}/s$driver
done
%post -n libsfiltlan%{major} -p /sbin/ldconfig
%postun -n libsfiltlan%{major} -p /sbin/ldconfig
%post -n libdfiltlan%{major} -p /sbin/ldconfig
%postun -n libdfiltlan%{major} -p /sbin/ldconfig
%post -n libsmatkit%{major} -p /sbin/ldconfig
%postun -n libsmatkit%{major} -p /sbin/ldconfig
%post -n libdmatkit%{major} -p /sbin/ldconfig
%postun -n libdmatkit%{major} -p /sbin/ldconfig
%files
%defattr(-,root,root,-)
%doc DATA/laplacian*.* DATA/README
%{_bindir}/*
%files -n libsfiltlan%{major}
%defattr(-,root,root,-)
%doc COPYRIGHT
%{_libdir}/libsfiltlan.so.*
%files -n libdfiltlan%{major}
%defattr(-,root,root,-)
%doc COPYRIGHT
%{_libdir}/libdfiltlan.so.*
%files -n libsmatkit%{major}
%defattr(-,root,root,-)
%doc COPYRIGHT
%{_libdir}/libsmatkit.so.*
%files -n libdmatkit%{major}
%defattr(-,root,root,-)
%doc COPYRIGHT
%{_libdir}/libdmatkit.so.*
%files devel
%defattr(-,root,root,-)
%doc DOCS/html
%{_includedir}/*
%{_libdir}/*.so
%changelog