add 64bit INTEGER variant subpackages

This commit is contained in:
Tom Callaway 2013-01-04 14:28:54 -05:00
parent d40d5fe5b8
commit 95a2a2f506

View File

@ -1,10 +1,16 @@
%global shortver 3 %global shortver 3
%global mediumver %{shortver}.4 %global mediumver %{shortver}.4
%ifarch x86_64 ppc64
%global arch64 1
%else
%global arch64 0
%endif
Summary: Numerical linear algebra package libraries Summary: Numerical linear algebra package libraries
Name: lapack Name: lapack
Version: %{mediumver}.1 Version: %{mediumver}.1
Release: 2%{?dist} Release: 3%{?dist}
License: BSD License: BSD
Group: Development/Libraries Group: Development/Libraries
URL: http://www.netlib.org/lapack/ URL: http://www.netlib.org/lapack/
@ -74,6 +80,69 @@ Requires: blas-devel%{?_isa} = %{version}-%{release}
%description -n blas-static %description -n blas-static
BLAS static libraries. BLAS static libraries.
%if 0%{?arch64}
%package -n lapack64
Summary: Numerical linear algebra package libraries
Group: Development/Libraries
%description -n lapack64
LAPACK (Linear Algebra PACKage) is a standard library for numerical
linear algebra. LAPACK provides routines for solving systems of
simultaneous linear equations, least-squares solutions of linear
systems of equations, eigenvalue problems, and singular value
problems. Associated matrix factorizations (LU, Cholesky, QR, SVD,
Schur, and generalized Schur) and related computations (i.e.,
reordering of Schur factorizations and estimating condition numbers)
are also included. LAPACK can handle dense and banded matrices, but
not general sparse matrices. Similar functionality is provided for
real and complex matrices in both single and double precision. LAPACK
is coded in Fortran90 and built with gcc.
This build has 64bit INTEGER support.
%package -n lapack64-devel
Summary: LAPACK development libraries (64bit INTEGER)
Group: Development/Libraries
Requires: lapack-devel%{?_isa} = %{version}-%{release}
Requires: blas64-devel%{?_isa} = %{version}-%{release}
%description -n lapack64-devel
LAPACK development libraries (shared, 64bit INTEGER).
%package -n lapack64-static
Summary: LAPACK static libraries (64bit INTEGER)
Group: Development/Libraries
Requires: lapack64-devel%{?_isa} = %{version}-%{release}
%description -n lapack64-static
LAPACK static libraries (64bit INTEGER).
%package -n blas64
Summary: The Basic Linear Algebra Subprograms library (64bit INTEGER)
Group: Development/Libraries
%description -n blas64
BLAS (Basic Linear Algebra Subprograms) is a standard library which
provides a number of basic algorithms for numerical algebra. This build
has 64bit INTEGER support.
%package -n blas64-devel
Summary: BLAS development libraries
Group: Development/Libraries
Requires: blas-devel%{?_isa} = %{version}-%{release}
Requires: gcc-gfortran
%description -n blas64-devel
BLAS development libraries (shared).
%package -n blas64-static
Summary: BLAS static libraries (64bit INTEGER)
Group: Development/Libraries
Requires: blas64-devel%{?_isa} = %{version}-%{release}
%description -n blas64-static
BLAS static libraries (64bit INTEGER).
%endif
%prep %prep
%setup -q %setup -q
%setup -q -D -T -a1 %setup -q -D -T -a1
@ -108,9 +177,22 @@ make clean
FFLAGS="$RPM_OPT_O_FLAGS -fPIC" make dcabs1.o FFLAGS="$RPM_OPT_O_FLAGS -fPIC" make dcabs1.o
FFLAGS="$RPM_OPT_FLAGS -fPIC" CFLAGS="$RPM_OPT_FLAGS -fPIC" make shared FFLAGS="$RPM_OPT_FLAGS -fPIC" CFLAGS="$RPM_OPT_FLAGS -fPIC" make shared
cp libblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/ cp libblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/
%if 0%{?arch64}
make clean
FFLAGS="$RPM_OPT_O_FLAGS -fdefault-integer-8" make dcabs1.o
FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" make static
cp libblas.a ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64.a
make clean
FFLAGS="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" make dcabs1.o
FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" make shared
cp libblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64.so.%{version}
popd popd
%endif
ln -s libblas.so.%{version} libblas.so ln -s libblas.so.%{version} libblas.so
%if 0%{?arch64}
ln -s libblas64.so.%{version} libblas64.so
%endif
# Build the static dlamch, dsecnd, lsame, second, slamch bits # Build the static dlamch, dsecnd, lsame, second, slamch bits
pushd INSTALL pushd INSTALL
@ -136,6 +218,32 @@ make FFLAGS="$RPM_OPT_FLAGS -fPIC" CFLAGS="$RPM_OPT_FLAGS -fPIC" static
cp liblapack.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack_pic.a cp liblapack.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack_pic.a
popd popd
%if 0%{?arch64}
# Build the static dlamch, dsecnd, lsame, second, slamch bits
pushd INSTALL
make NOOPT="$RPM_OPT_O_FLAGS -fdefault-integer-8" OPTS="$RPM_OPT_FLAGS -fdefault-integer-8"
popd
# Build the static lapack library
pushd SRC
make FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" static
cp liblapack.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64.a
popd
# Build the static with pic dlamch, dsecnd, lsame, second, slamch bits (64bit INTEGER)
pushd INSTALL
make clean
make NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" OPTS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8"
popd
# Build the static with pic lapack library (64bit INTEGER)
pushd SRC
make clean
make FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" static
cp liblapack.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64_pic.a
popd
%endif
# Build the shared dlamch, dsecnd, lsame, second, slamch bits # Build the shared dlamch, dsecnd, lsame, second, slamch bits
pushd INSTALL pushd INSTALL
make clean make clean
@ -149,7 +257,25 @@ make FFLAGS="$RPM_OPT_FLAGS -fPIC" CFLAGS="$RPM_OPT_FLAGS -fPIC" shared
cp liblapack.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/ cp liblapack.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/
popd popd
%if 0%{?arch64}
# Build the shared dlamch, dsecnd, lsame, second, slamch bits
pushd INSTALL
make clean
make NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" OPTS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8"
popd
# Build the shared lapack library
pushd SRC
make clean
make FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" shared
cp liblapack.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64.so.%{version}
popd
%endif
ln -s liblapack.so.%{version} liblapack.so ln -s liblapack.so.%{version} liblapack.so
%if 0%{?arch64}
ln -s liblapack64.so.%{version} liblapack64.so
%endif
# Build the lapacke libraries # Build the lapacke libraries
pushd lapacke pushd lapacke
@ -172,6 +298,12 @@ for f in liblapack.so.%{version} libblas.so.%{version} liblapacke.so.%{version}
cp -f $f ${RPM_BUILD_ROOT}%{_libdir}/$f cp -f $f ${RPM_BUILD_ROOT}%{_libdir}/$f
done done
%if 0%{?arch64}
for f in liblapack64.so.%{version} libblas64.so.%{version} libblas64.a liblapack64.a liblapack64_pic.a; do
cp -f $f ${RPM_BUILD_ROOT}%{_libdir}/$f
done
%endif
# Blas manpages # Blas manpages
pushd manpages/ pushd manpages/
mkdir -p blas/man/man3 mkdir -p blas/man/man3
@ -231,6 +363,14 @@ ln -sf libblas.so.%{version} libblas.so.%{mediumver}
ln -sf liblapacke.so.%{version} liblapacke.so ln -sf liblapacke.so.%{version} liblapacke.so
ln -sf liblapacke.so.%{version} liblapacke.so.%{shortver} ln -sf liblapacke.so.%{version} liblapacke.so.%{shortver}
ln -sf liblapacke.so.%{version} liblapacke.so.%{mediumver} ln -sf liblapacke.so.%{version} liblapacke.so.%{mediumver}
%if 0%{?arch64}
ln -sf liblapack64.so.%{version} liblapack64.so
ln -sf liblapack64.so.%{version} liblapack64.so.%{shortver}
ln -sf liblapack64.so.%{version} liblapack64.so.%{mediumver}
ln -sf libblas64.so.%{version} libblas64.so
ln -sf libblas64.so.%{version} libblas64.so.%{shortver}
ln -sf libblas64.so.%{version} libblas64.so.%{mediumver}
%endif
%post -p /sbin/ldconfig %post -p /sbin/ldconfig
@ -240,6 +380,16 @@ ln -sf liblapacke.so.%{version} liblapacke.so.%{mediumver}
%postun -n blas -p /sbin/ldconfig %postun -n blas -p /sbin/ldconfig
%if 0%{?arch64}
%post -n lapack64 -p /sbin/ldconfig
%postun -n lapack64 -p /sbin/ldconfig
%post -n blas64 -p /sbin/ldconfig
%postun -n blas64 -p /sbin/ldconfig
%endif
%files -f lapackmans %files -f lapackmans
%doc README LICENSE lapackqref.ps %doc README LICENSE lapackqref.ps
%dir %{_mandir}/man3/ %dir %{_mandir}/man3/
@ -252,7 +402,9 @@ ln -sf liblapacke.so.%{version} liblapacke.so.%{mediumver}
%{_libdir}/liblapacke.so %{_libdir}/liblapacke.so
%files static %files static
%{_libdir}/liblapack*.a %{_libdir}/liblapack.a
%{_libdir}/liblapack_pic.a
%{_libdir}/liblapacke.a
%files -n blas -f blasmans %files -n blas -f blasmans
%doc blasqr.ps LICENSE %doc blasqr.ps LICENSE
@ -263,9 +415,35 @@ ln -sf liblapacke.so.%{version} liblapacke.so.%{mediumver}
%{_libdir}/libblas.so %{_libdir}/libblas.so
%files -n blas-static %files -n blas-static
%{_libdir}/libblas*.a %{_libdir}/libblas.a
%if 0%{?arch64}
%files -n blas64
%doc LICENSE
%{_libdir}/libblas64.so.*
%files -n blas64-devel
%{_libdir}/libblas64.so
%files -n blas64-static
%{_libdir}/libblas64.a
%files -n lapack64
%doc README LICENSE
%{_libdir}/liblapack64.so.*
%files -n lapack64-devel
%{_libdir}/liblapack64.so
%files -n lapack64-static
%{_libdir}/liblapack64.a
%{_libdir}/liblapack64_pic.a
%endif
%changelog %changelog
* Fri Jan 4 2013 Tom Callaway <spot@fedoraproject.org> - 3.4.1-3
- enable 64bit INTEGER variant subpackages
* Wed Oct 24 2012 Tom Callaway <spot@fedoraproject.org> - 3.4.1-2 * Wed Oct 24 2012 Tom Callaway <spot@fedoraproject.org> - 3.4.1-2
- fix issue where lapacke was linking to testing functions (bz860332) - fix issue where lapacke was linking to testing functions (bz860332)