From 95a2a2f50693d28a6ef026510bb031f544323b1f Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Fri, 4 Jan 2013 14:28:54 -0500 Subject: [PATCH] add 64bit INTEGER variant subpackages --- lapack.spec | 184 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 181 insertions(+), 3 deletions(-) diff --git a/lapack.spec b/lapack.spec index 5681d89..44c94fc 100644 --- a/lapack.spec +++ b/lapack.spec @@ -1,10 +1,16 @@ %global shortver 3 %global mediumver %{shortver}.4 +%ifarch x86_64 ppc64 +%global arch64 1 +%else +%global arch64 0 +%endif + Summary: Numerical linear algebra package libraries Name: lapack Version: %{mediumver}.1 -Release: 2%{?dist} +Release: 3%{?dist} License: BSD Group: Development/Libraries URL: http://www.netlib.org/lapack/ @@ -74,6 +80,69 @@ Requires: blas-devel%{?_isa} = %{version}-%{release} %description -n blas-static 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 %setup -q %setup -q -D -T -a1 @@ -108,9 +177,22 @@ make clean FFLAGS="$RPM_OPT_O_FLAGS -fPIC" make dcabs1.o FFLAGS="$RPM_OPT_FLAGS -fPIC" CFLAGS="$RPM_OPT_FLAGS -fPIC" make shared 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 +%endif 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 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 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 pushd INSTALL 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}/ 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 +%if 0%{?arch64} +ln -s liblapack64.so.%{version} liblapack64.so +%endif # Build the lapacke libraries 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 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 pushd manpages/ 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.%{shortver} 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 @@ -240,6 +380,16 @@ ln -sf liblapacke.so.%{version} liblapacke.so.%{mediumver} %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 %doc README LICENSE lapackqref.ps %dir %{_mandir}/man3/ @@ -252,7 +402,9 @@ ln -sf liblapacke.so.%{version} liblapacke.so.%{mediumver} %{_libdir}/liblapacke.so %files static -%{_libdir}/liblapack*.a +%{_libdir}/liblapack.a +%{_libdir}/liblapack_pic.a +%{_libdir}/liblapacke.a %files -n blas -f blasmans %doc blasqr.ps LICENSE @@ -263,9 +415,35 @@ ln -sf liblapacke.so.%{version} liblapacke.so.%{mediumver} %{_libdir}/libblas.so %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 +* Fri Jan 4 2013 Tom Callaway - 3.4.1-3 +- enable 64bit INTEGER variant subpackages + * Wed Oct 24 2012 Tom Callaway - 3.4.1-2 - fix issue where lapacke was linking to testing functions (bz860332)