lapack/lapack.spec

313 lines
9.4 KiB
RPMSpec

#
# spec file for package lapack (Version 3.1.1)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
Name: lapack
BuildRequires: gcc-fortran
Summary: Linear Algebra Package
Version: 3.1.1
Release: 64
License: Public Domain, Freeware
Group: Development/Libraries/Parallel
Source0: lapack-%{version}.tar.bz2
Patch: %{name}-make.patch
Url: http://www.netlib.org/lapack/
Requires: blas = %{version}
Requires: liblapack3 = %{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
LAPACK provides routines for solving systems of simultaneous linear
equations, least-squares solutions of linear systems of equations,
eigenvalue problems, and singular value problems. The associated matrix
factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are
also provided, as are related computations such as reordering of the
Schur factorizations and estimating condition numbers. Dense and banded
matrices are handled, but not general sparse matrices. In all areas,
similar functionality is provided for real and complex matrices, in
both single and double precision.
Authors:
--------
Jack Dongarra <lapack@cs.utk.edu>
%package -n blas
License: Public Domain, Freeware
Summary: Basic Linear Algebra Subprograms
Group: Productivity/Scientific/Math
Requires: libblas3 >= %{version}
%description -n blas
BLAS (Basic Linear Algebra Subprograms) is a standard library for
numerical algebra. BLAS provides a number of basic algorithms for
linear algebra. BLAS is fast and well-tested, was written in FORTRAN 77
and built with gfortran. BLAS manual pages are available in the
blas-man package.
Authors:
--------
UTK <lapack@cs.utk.edu>
%package -n blas-man
License: Public Domain, Freeware
Summary: Documentation for BLAS (Basic Linear Algebra Subprograms)
Group: Productivity/Scientific/Math
Provides: blasman = %{version}-%{release}
Obsoletes: blasman < %{version}
%description -n blas-man
The blas-man package contains documentation for BLAS (Basic Linear
Algebra subprograms) routines, in the form of man pages.
Authors:
--------
UTK <lapack@cs.utk.edu>
%package man
License: Public Domain, Freeware
Summary: Manpages for LAPACK
Group: Development/Libraries/Parallel
Provides: lapack-manpages = %{version}-%{release}
Obsoletes: lapack-manpages < %{version}
%description man
Manpages for LAPACK
Authors:
--------
Lapack team<lapack@cs.utk.edu>
%package -n liblapack3
License: Public Domain, Freeware
Summary: LAPACK Shared Library
Group: Development/Libraries/Parallel
%description -n liblapack3
LAPACK provides routines for solving systems of simultaneous linear
equations, least-squares solutions of linear systems of equations,
eigenvalue problems, and singular value problems. The associated matrix
factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are
also provided, as are related computations such as reordering of the
Schur factorizations and estimating condition numbers. Dense and banded
matrices are handled, but not general sparse matrices. In all areas,
similar functionality is provided for real and complex matrices, in
both single and double precision.
Authors:
--------
Jack Dongarra <lapack@cs.utk.edu>
%package -n libblas3
License: Public Domain, Freeware
Summary: BLAS Shared Library
Group: Productivity/Scientific/Math
%description -n libblas3
BLAS (Basic Linear Algebra Subprograms) is a standard library for
numerical algebra. BLAS provides a number of basic algorithms for
linear algebra.
Authors:
--------
UTK <lapack@cs.utk.edu>
%prep
%setup -q
%patch
%build
rm -rf $RPM_BUILD_ROOT
export F77=gfortran
export OPTOPTS="$RPM_OPT_FLAGS -O3 -funroll-all-loops"
cp make.inc.example make.inc
make cleanlib
make %{?jobs:-j%jobs} blaslib PICOPTS=-fPIC
mv blas_LINUX.a libblas_pic.a
mkdir tmp
( cd tmp; ar x ../libblas_pic.a )
gfortran -shared -Wl,-soname=libblas.so.3 -o libblas.so.%version tmp/*.o
ln -s libblas.so.%version libblas.so
rm -rf tmp
make cleanlib
make %{?jobs:-j%jobs} blaslib
mv blas_LINUX.a libblas.a
make cleanlib
make %{?jobs:-j%jobs} lapacklib PICOPTS=-fPIC
mv lapack_LINUX.a liblapack_pic.a
mkdir tmp
( cd tmp; ar x ../liblapack_pic.a )
gfortran -shared -Wl,-soname=liblapack.so.3 -o liblapack.so.%version tmp/*.o -L. -lblas
ln -s liblapack.so.%version liblapack.so
rm -rf tmp
make cleanlib
make %{?jobs:-j%jobs} lapacklib
mv lapack_LINUX.a liblapack.a
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT/%{_libdir}
install -m 644 libblas.a $RPM_BUILD_ROOT/%{_libdir}
install -m 644 libblas_pic.a $RPM_BUILD_ROOT/%{_libdir}
install -m 644 liblapack.a $RPM_BUILD_ROOT/%{_libdir}
install -m 644 liblapack_pic.a $RPM_BUILD_ROOT/%{_libdir}
install -m 755 libblas.so.%version $RPM_BUILD_ROOT/%{_libdir}
ln -s libblas.so.%version $RPM_BUILD_ROOT/%{_libdir}/libblas.so.3
ln -s libblas.so.%version $RPM_BUILD_ROOT/%{_libdir}/libblas.so
install -m 755 liblapack.so.%version $RPM_BUILD_ROOT/%{_libdir}
ln -s liblapack.so.%version $RPM_BUILD_ROOT/%{_libdir}/liblapack.so.3
ln -s liblapack.so.%version $RPM_BUILD_ROOT/%{_libdir}/liblapack.so
install -d $RPM_BUILD_ROOT%{_mandir}/man3
function CopyFile {
NEW_FILENAME=$(basename $1 .l).3
install -m 0644 $1 $RPM_BUILD_ROOT%{_mandir}/man3/$NEW_FILENAME
}
for MANFILE in manpages/blas/man/manl/*.l; do
CopyFile $MANFILE
done
rm manpages/man/manl/xerbla.l
rm manpages/man/manl/lsame.l
for MANFILE in manpages/man/manl/*.l; do
CopyFile $MANFILE
done
echo "%defattr(-, root, root)" > blasmans
find manpages/blas/man/manl -type f -printf "%{_mandir}/man3/%f\n" | sed -e 's/.l$/.3.gz/' > blasmans
echo "%defattr(-, root, root)" > lapackmans
find manpages/man/manl -type f -printf "%{_mandir}/man3/%f\n" | sed -e 's/.l$/.3.gz/' > lapackmans
%post -n libblas3 -p /sbin/ldconfig
%postun -n libblas3 -p /sbin/ldconfig
%post -n liblapack3 -p /sbin/ldconfig
%postun -n liblapack3 -p /sbin/ldconfig
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%{_libdir}/liblapack.so
%{_libdir}/liblapack.a
%{_libdir}/liblapack_pic.a
%files -n liblapack3
%defattr(-,root,root)
%{_libdir}/liblapack.so.%version
%{_libdir}/liblapack.so.3
%files -n blas
%defattr(-,root,root)
%{_libdir}/libblas.so
%{_libdir}/libblas.a
%{_libdir}/libblas_pic.a
%files -n libblas3
%defattr(-,root,root)
%{_libdir}/libblas.so.%version
%{_libdir}/libblas.so.3
%files -n blas-man -f blasmans
%defattr(-,root,root)
%files man -f lapackmans
%defattr(-,root,root)
%changelog
* Sun May 11 2008 lrupp@suse.de
- use versioned requires/obsoletes
- %%run_ldconfig is deprecated
- prefix the patch with the packagename
* Fri Apr 27 2007 rguenther@suse.de
- Update to version 3.1.1. [#265999]
- Integrates 3.1.0 errata and missing blas routines.
- Provides better gfortran SECOND integration.
- Split shared libraries into their own versioned subpackage.
* Fri Jan 19 2007 rguenther@suse.de
- Include fixes for the 3.1.0 errata.
- Add missing CSROT, DROTM, DROTMG, DSDOT, SDSDOT, SROTM, SROTMG
and ZDROT from blas distribution. [#228824]
* Thu Dec 14 2006 rguenther@suse.de
- Restore missing so symlinks.
* Tue Nov 14 2006 rguenther@suse.de
- Update to version 3.1.0.
- Rename blasman to blas-man.
- Rename lapack-manpages to lapack-man.
* Tue Oct 31 2006 rguenther@suse.de
- Trim BuildRequires.
- Build and package -fPIC static library variants. [#205310]
- Fix installing of the libblas.so symlink.
- Do not package the matrix testing setup library libtmglib.
- Do not package useless README file.
* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Sat Jan 14 2006 kukuk@suse.de
- Add gmp-devel to nfb
* Fri Apr 22 2005 meissner@suse.de
- fixed all other instances of -fno-f2c, and g77 -> gfortran use.
* Thu Apr 21 2005 meissner@suse.de
- g77 -> gfortran, -fno-f2c is no more.
* Sun Jan 30 2005 nashif@suse.de
- Updated manpages (#48784)
* Thu Jan 20 2005 ro@suse.de
- remove BuildPrereq, BuildRequires is generated
* Thu Mar 18 2004 nashif@suse.de
- Fixed permission for manpages (#36340)
* Sat Jan 10 2004 adrian@suse.de
- add %%run_ldconfig
* Mon Feb 03 2003 meissner@suse.de
- Use $RPM_OPT_FLAGS, so it builds on ppc64.
* Mon Aug 26 2002 nashif@suse.de
- Fixed manpage conflict
- correct library version
* Mon Jul 01 2002 ro@suse.de
- use -fPIC for all shared objects
- link liblapack with shared libblas (same reason)
* Thu May 02 2002 sf@suse.de
- fixed %%{_lib}-problems for x86_64
* Mon Sep 17 2001 nashif@suse.de
- Fixed bug #9925, adding blas to required packages.
* Tue May 08 2001 nashif@suse.de
- Fixed bug #6803
* Thu Feb 08 2001 sf@suse.de
- compile with '-01' for IA64 due to 'internal compiler error' in g77
* Mon Nov 06 2000 nashif@suse.de
- Fixed bug of missing objects (#4028)
* Sat Apr 22 2000 nashif@suse.de
- Applied new patches
- Modified group, url and files in spec
* Mon Feb 21 2000 nashif@suse.de
- Applied new patches
* Wed Jan 19 2000 nashif@suse.de
- Applied new patched
- Moved manpages to /usr/share/man
* Thu Dec 23 1999 nashif@suse.de
- Update to latest version
- Package split lapack + blas
* Thu Oct 07 1999 nashif@suse.de
- Package split: man pages + libraries
* Wed Sep 22 1999 nashif@suse.de
- New package: LAPACK
Linear Algebra Package (LAPACK)