File libsuperlu3.spec of Package superlu
#
# spec file for package superlu (Version 3.0)
#
# Copyright (c) 2005 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
%if 0%{?fedora_version} >= 6
%define fcpkg gcc-gfortran
%endif
%if 0%{?rhel_version}
%define fcpkg gcc-gfortran
%endif
%if 0%{?centos_version}
%define fcpkg gcc-gfortran
%endif
%if 0%{?suse_version > 0}
%define fcpkg gcc-fortran
%endif
%if 0%{?mandriva_version} > 0
%define fcpkg gcc-gfortran
%endif
Name: libsuperlu3
Provides: superlu
#Obsoletes: superlu
BuildRequires: tcsh %{fcpkg}
License: BSD-3-Clause
Group: Development/Libraries/C and C++
#Requires: libblas2
Autoreqprov: on
Summary: SuperLU matrix solver
Version: 3.0
Release: 2
Source: ftp://ftp.netlib.org/scalapack/prototype/superlu_%{version}.tar.bz2
Source1: superlu_ug.ps.gz
Patch0: superlu-3.0.diff
Patch1: superlu-overflow.patch
Patch2: superlu-include.patch
Patch3: superlu-dont-opt-away.diff
Patch4: superlu-initialize.diff
Patch5: superlu-undef-code.diff
Patch6: superlu-sharedlib.diff
Patch7: abort-message-formatting.diff
Patch8: fat-lto-objects.diff
Patch10: fix-CBLAS-warn.diff
Patch11: fix-compile-err.diff
Patch12: fix-SLU-warn.diff
Patch13: fix-warn-test.diff
Patch14: fix-test-uninit.diff
URL: http://crd.lbl.gov/~xiaoye/SuperLU/
Prefix: /usr
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
SuperLU is an algorithm that uses group theory to optimize LU
decomposition of sparse matrices. It's the fastest direct solver for
linear systems that the packager is aware of.
Documentation can be found on http://www.netlib.org.
Authors:
--------
xiaoye@nersc.gov
%if 0%{?mandriva_version} != 2009 && 0%{?centos_version} == 0
%debug_package
%endif
%package -n libsuperlu-devel
Summary: Development files (headers, ...) for libsuperlu3
Requires: libsuperlu3 = %{version} libblas-devel
Group: Development/Libraries/C and C++
%description -n libsuperlu-devel
superlu is an algorithm that uses group theory to optimize lu
decomposition of sparse matrices. it's the fastest direct solver for
linear systems that the packager is aware of.
The -devel package contains header files and .so files needed
for development.
%package -n libsuperlu-doc
Summary: Documentation for libsuperlu3
Group: Development/Libraries/C and C++
%if 0%{?rhel_version} == 0 || 0%{?rhel_version} >= 800
Supplements: libsuperlu-devel
%endif
Buildarch: noarch
%description -n libsuperlu-doc
superlu is an algorithm that uses group theory to optimize lu
decomposition of sparse matrices. it's the fastest direct solver for
linear systems that the packager is aware of.
The -doc package contains documenation.
%package -n libblas2
Provides: blas2
Summary: BLAS2 (linear algebra routines) libraries as needed by libsuperlu3
Group: Development/Libraries/C and C++
%description -n libblas2
Basic Linear Algebra Subprograms is a collection of routines for things like
vector and matrix multiplication.
This particular implementation is compiled as part of the libsuperlu3
compilation process.
%package -n libblas-devel
Requires: libblas2 = %{version}
Summary: BLAS2 (linear algebra routines) static library
Group: Development/Libraries/C and C++
%description -n libblas-devel
Header files and static libraries needed for BLAS2, as contained in libsuperlu3.
%prep
%setup -n SuperLU_%{version}
%patch -P0 -p1
%patch -P1 -p1
%patch -P2 -p1
%patch -P3 -p1
%patch -P4 -p1
%patch -P5 -p1
%patch -P6 -p1
%patch -P7 -p1
%if 0%{?suse_version} > 1550
%patch -P8 -p1
%endif
%patch -P10 -p1
%patch -P11 -p1
%patch -P12 -p1
%patch -P13 -p1
%patch -P14 -p1
%build
#cd ../SuperLU
export RPM_OPT_FLAGS="$(echo $RPM_OPT_FLAGS | sed 's/-fstack-protector[^ ]*//')"
%ifarch x86_64
%if 0%{?suse_version} > 1000
export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -ftree-vectorize"
%endif
%endif
make -C CBLAS #%{?jobs:-j%jobs}
make #%{?jobs:-j%jobs}
%install
install -d $RPM_BUILD_ROOT/%{_docdir}/libsuperlu3
make install_lib LIBDIR=%{_libdir} DESTDIR=$RPM_BUILD_ROOT
make install_blas LIBDIR=%{_libdir} DESTDIR=$RPM_BUILD_ROOT
install -d -m 0755 $RPM_BUILD_ROOT/usr/include/superlu
install -m 0644 SRC/*.h $RPM_BUILD_ROOT/usr/include/superlu/
cp -pf README $RPM_BUILD_ROOT/%{_docdir}/libsuperlu3/README.SuperLU
cp -pf %SOURCE1 $RPM_BUILD_ROOT/%{_docdir}/libsuperlu3/
cp -ax EXAMPLE $RPM_BUILD_ROOT/%{_docdir}/libsuperlu3/
%files
%defattr(-,root,root)
%{_libdir}/libsuperlu.so.*
%files -n libblas2
%defattr(-,root,root)
%{_libdir}/libblas.so.*
%files -n libblas-devel
%defattr(-,root,root)
%{_libdir}/libblas.a
%{_libdir}/libblas.so
%{_libdir}/blas2_*.a
%files -n libsuperlu-doc
%defattr(-,root,root)
%docdir %{_docdir}/libsuperlu3
%doc %{_docdir}/libsuperlu3
%files -n libsuperlu-devel
%defattr(-,root,root)
%{_libdir}/libsuperlu.a
%{_libdir}/libsuperlu.so
%{_libdir}/superlu_*.a
%dir /usr/include/superlu
/usr/include/superlu/*
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%post -n libblas2 -p /sbin/ldconfig
%postun -n libblas2 -p /sbin/ldconfig
%changelog
* Wed Jan 25 2006 - mls@suse.de
- converted neededforbuild to BuildRequires
* Thu Dec 22 2005 - garloff@suse.de
- Install header files into /usr/include/superlu/
- Update User Guide.
* Wed Dec 21 2005 - garloff@suse.de
- Include EXAMPLE dir as documentation.
- Build as non-root.
- Nuke unused local vars referencing uninitialized vars.
* Wed Dec 21 2005 - garloff@suse.de
- Update to SuperLU-3.0: [#133821]
* Added "options" input argument and "stat" output argument
for the driver routines
* More Examples
* Added a "symmetric mode" for (nearly) symmetric matrices
* Better Fortran interface.
* fixed a bug in the complex drivers sgssvx/zgssvx when the
input matrix is stored in compressed row format.
* prefixed the header files by "slu_".
* Fixed a memory leak in get_perm_c() when bnz=0.
* Changed "abs" to "fabs" in izmax1.
* Upgraded COLAMD to the latest version (2.3).15
- Add various declarations and #include statements
- Trick compiler into not optimizing away a loop in our timing
measurement.
* Fri Nov 25 2005 - yxu@suse.de
- add missing function prototypes
* Tue Nov 15 2005 - dmueller@suse.de
- avoid an endless loop during building (#133820)
* Mon May 09 2005 - meissner@suse.de
- fixed 1 byte buffer overflows.
* Mon Dec 20 2004 - garloff@suse.de
- Pass $(RPM_OPT_FLAGS) -Os -fPIC for files that don't need to be
optimized.
* Sat Sep 06 2003 - garloff@suse.de
- Add -fPIC to allow inclusion in dynamic lib.
* Sun Aug 10 2003 - garloff@suse.de
- -O3 leads to an endless loop in dlamanch test on x86. Probably
some compiler of FPU weirdness. Remove -O3 on x86 again.
* Thu Aug 07 2003 - garloff@suse.de
- Adapt chown syntax to owner:group.
- Reenable -O3 (compiler bug fixed?), but limit automatical
inlining.
* Wed Jun 18 2003 - ro@suse.de
- added directory to filelist.
* Wed Aug 28 2002 - ro@suse.de
- remove -O3 from cflags (results in endless loop).
* Wed May 08 2002 - garloff@suse.de
- lib64 fix.
* Wed May 08 2002 - garloff@suse.de
- Fix test scripts.
- Use BuildRoot.
* Wed May 08 2002 - garloff@suse.de
- Remove BLAS, Lapack.
- Rename package into SuperLU.
* Sat Apr 20 2002 - garloff@suse.de
- Disable -fast-math
- In SuperLU, use CBLAS that ships with it
* Fri Apr 19 2002 - garloff@suse.de
- Update to
* CLAPACK-3.0
* SuperLU-2.0
- Added SuperLU user guide
* Fri Apr 19 2002 - garloff@suse.de
- Fixed compilation with gcc-3.1:
link with -lfrtbegin (which contains main formerly in g2c)
* Wed Apr 10 2002 - ro@suse.de
- fix owner for README.SuperLU
* Mon Aug 07 2000 - garloff@suse.de
- Use %%{_docdir} to put docu in the right place.
* Mon Aug 07 2000 - garloff@suse.de
- Add -mcpu=pentiumpro for i386
* Mon Sep 13 1999 - bs@suse.de
- ran old prepare_spec on spec file to switch to new prepare_spec.
* Wed Sep 01 1999 - garloff@suse.de
- First creation of package.