@ -1,5 +1,5 @@
%global shortver 3
%global shortver 3
%global mediumver %{shortver}.8
%global mediumver %{shortver}.9
%if %{?__isa_bits:%{__isa_bits}}%{!?__isa_bits:32} == 64
%if %{?__isa_bits:%{__isa_bits}}%{!?__isa_bits:32} == 64
%global arch64 1
%global arch64 1
@ -10,27 +10,28 @@
Summary: Numerical linear algebra package libraries
Summary: Numerical linear algebra package libraries
Name: lapack
Name: lapack
Version: %{mediumver}.0
Version: %{mediumver}.0
Release: 8 %{?dist}
Release: 10 %{?dist}
License: BSD
License: BSD
Group: System Environment/Libraries
URL: http://www.netlib.org/lapack/
URL: http://www.netlib.org/lapack/
Source0: http://www.netlib.org/lapack/lapack- %{version}.tar.gz
Source0: https://github.com/Reference-LAPACK/lapack/archive/v %{version}.tar.gz
Source1: http://www.netlib.org/lapack/manpages.tgz
Source1: http://www.netlib.org/lapack/manpages.tgz
Source2: Makefile.blas
Source2: Makefile.blas
Source3: Makefile.lapack
Source3: Makefile.lapack
Source4: http://www.netlib.org/lapack/lapackqref.ps
Source4: http://www.netlib.org/lapack/lapackqref.ps
Source5: http://www.netlib.org/blas/blasqr.ps
Source5: http://www.netlib.org/blas/blasqr.ps
Source6: Makefile.cblas
Source6: Makefile.cblas
Patch3: lapack-3.7.1 -make.inc.patch
Patch3: lapack-3.9.0 -make.inc.patch
Patch4: lapack-3.7.1 -lapacke-shared.patch
Patch4: lapack-3.9.0 -lapacke-shared.patch
Patch5: lapack-3.4.1-lapacke-disable-testing-functions.patch
Patch5: lapack-3.4.1-lapacke-disable-testing-functions.patch
Patch6: lapack-3.5.0-lapacke-matgenobj.patch
Patch6: lapack-3.5.0-lapacke-matgenobj.patch
Patch7: lapack-3.7.1-lapacke-tmglib.patch
Patch7: lapack-3.9.0-lapacke-tmglib.patch
Patch8: lapack-3.8.0-missing-aawork.patch
# Bugzilla 1814756
Patch8: https://github.com/Reference-LAPACK/lapack/commit/87536aa3c8bb0af00f66088fb6ac05d87509e011.patch
BuildRequires: gcc-gfortran, gawk
BuildRequires: gcc-gfortran, gawk
BuildRequires: make
Requires: blas%{?_isa} = %{version}-%{release}
Requires: blas%{?_isa} = %{version}-%{release}
%description
%global _ description_lapack %{expand:
LAPACK (Linear Algebra PACKage) is a standard library for numerical
LAPACK (Linear Algebra PACKage) is a standard library for numerical
linear algebra. LAPACK provides routines for solving systems of
linear algebra. LAPACK provides routines for solving systems of
simultaneous linear equations, least-squares solutions of linear
simultaneous linear equations, least-squares solutions of linear
@ -42,19 +43,18 @@ are also included. LAPACK can handle dense and banded matrices, but
not general sparse matrices. Similar functionality is provided for
not general sparse matrices. Similar functionality is provided for
real and complex matrices in both single and double precision. LAPACK
real and complex matrices in both single and double precision. LAPACK
is coded in Fortran90 and built with gcc.
is coded in Fortran90 and built with gcc.
}
%package devel
%global _description_blas %{expand:
Summary: LAPACK development libraries
BLAS (Basic Linear Algebra Subprograms) is a standard library which
Group: Development/Libraries
provides a number of basic algorithms for numerical algebra.
Requires: %{name}%{?_isa} = %{version}-%{release}
}
Requires: blas-devel%{?_isa} = %{version}-%{release}
%description %_description_lapack
%description devel
LAPACK development libraries (shared).
%package static
%package static
Summary: LAPACK static libraries
Summary: LAPACK static libraries
Group: Development/Libraries
Requires: lapack-devel%{?_isa} = %{version}-%{release}
Requires: lapack-devel%{?_isa} = %{version}-%{release}
%description static
%description static
@ -62,93 +62,79 @@ LAPACK static libraries.
%package -n blas
%package -n blas
Summary: The Basic Linear Algebra Subprograms library
Summary: The Basic Linear Algebra Subprograms library
Group: System Environment/Libraries
%description -n blas
BLAS (Basic Linear Algebra Subprograms) is a standard library which
provides a number of basic algorithms for numerical algebra.
%package -n blas-devel
%description -n blas %_description_blas
Summary: BLAS development libraries
Group: Development/Libraries
Requires: blas%{?_isa} = %{version}-%{release}
Requires: gcc-gfortran
%description -n blas-devel
BLAS development libraries (shared).
%package -n blas-static
%package -n blas-static
Summary: BLAS static libraries
Summary: BLAS static libraries
Group: Development/Libraries
Requires: blas-devel%{?_isa} = %{version}-%{release}
Requires: blas-devel%{?_isa} = %{version}-%{release}
%description -n blas-static
%description -n blas-static
BLAS static libraries.
BLAS static libraries.
%if 0%{?arch64}
%if 0%{?arch64}
%package devel
Summary: LAPACK development libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}64%{?_isa} = %{version}-%{release}
Requires: %{name}64_%{?_isa} = %{version}-%{release}
Requires: blas-devel%{?_isa} = %{version}-%{release}
%description devel
LAPACK development libraries (shared).
%package -n lapack64
%package -n lapack64
Summary: Numerical linear algebra package libraries
Summary: Numerical linear algebra package libraries
Group: System Environment/Libraries
Requires: blas64%{?_isa} = %{version}-%{release}
Requires: blas64%{?_isa} = %{version}-%{release}
%description -n lapack64
%description -n lapack64 %_description_lapack
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.
This build has 64bit INTEGER support.
%package -n lapack64-devel
%package -n blas64
Summary: LAPACK development libraries (64bit INTEGER)
Summary: The Basic Linear Algebra Subprograms library (64bit INTEGER)
Group: Development/Libraries
Requires: lapack64%{?_isa} = %{version}-%{release}
Requires: lapack-devel%{?_isa} = %{version}-%{release}
Requires: blas64-devel%{?_isa} = %{version}-%{release}
%description -n lapack64-devel
%description -n blas64 %_description_blas
LAPACK development libraries (shared, 64bit INTEGER) .
This build has 64bit INTEGER support.
%package -n lapack64-static
%package -n lapack64_
Summary: LAPACK static libraries (64bit INTEGER)
Summary: Numerical linear algebra package libraries
Group: Development/Libraries
Requires: blas64_%{?_isa} = %{version}-%{release}
Requires: lapack64-devel%{?_isa} = %{version}-%{release}
%description -n lapack64-static
%description -n lapack64_ %_description_lapack
LAPACK static libraries (64bit INTEGER) .
This build has 64bit INTEGER support and a symbol name suffix .
%package -n blas64
%package -n blas64_
Summary: The Basic Linear Algebra Subprograms library (64bit INTEGER)
Summary: The Basic Linear Algebra Subprograms library (64bit INTEGER)
Group: System Environment/Libraries
%description -n blas64
%description -n blas64_ %_description_blas
BLAS (Basic Linear Algebra Subprograms) is a standard library which
This build has 64bit INTEGER support and a symbol name suffix.
provides a number of basic algorithms for numerical algebra. This build
has 64bit INTEGER support.
%package -n blas64 -devel
%package -n blas-devel
Summary: BLAS development libraries
Summary: BLAS development libraries
Group: Development/Libraries
Requires: blas%{?_isa} = %{version}-%{release}
Requires: blas64%{?_isa} = %{version}-%{release}
Requires: blas64%{?_isa} = %{version}-%{release}
Requires: blas-devel %{?_isa} = %{version}-%{release}
Requires: blas64_ %{?_isa} = %{version}-%{release}
Requires: gcc-gfortran
Requires: gcc-gfortran
%description -n blas64 -devel
%description -n blas-devel
BLAS development libraries (shared).
BLAS development libraries (shared).
%else
%package devel
Summary: LAPACK development libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: blas-devel%{?_isa} = %{version}-%{release}
%description devel
LAPACK development libraries (shared).
%package -n blas64-static
%package -n blas-devel
Summary: BLAS static libraries (64bit INTEGER)
Summary: BLAS development libraries
Group: Development/Libraries
Requires: blas%{?_isa} = %{version}-%{release}
Requires: blas64-devel%{?_isa} = %{version}-%{release}
Requires: gcc-gfortran
%description -n blas64-static
%description -n blas-devel
BLAS static libraries (64bit INTEGER).
BLAS development libraries (shared ).
%endif
%endif
%prep
%prep
@ -159,7 +145,7 @@ BLAS static libraries (64bit INTEGER).
# %patch5 -p1 -b .disable-functions
# %patch5 -p1 -b .disable-functions
# %patch6 -p1 -b .matgenobj
# %patch6 -p1 -b .matgenobj
%patch7 -p1 -b .tmglib
%patch7 -p1 -b .tmglib
%patch8 -p1 -b .missing-aawork
%patch8 -p1 -b .bz1814756
mkdir manpages
mkdir manpages
mv man/ manpages/
mv man/ manpages/
@ -179,7 +165,7 @@ sed -i "s|@LONGVER@|%{version}|g" LAPACKE/Makefile
sed -i "s|@LONGVER@|%{version}|g" CBLAS/src/Makefile
sed -i "s|@LONGVER@|%{version}|g" CBLAS/src/Makefile
%build
%build
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -frecursive"
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -frecursive --no-optimize-sibling-calls "
RPM_OPT_O_FLAGS=$(echo $RPM_OPT_FLAGS | sed 's|-O2|-O0|')
RPM_OPT_O_FLAGS=$(echo $RPM_OPT_FLAGS | sed 's|-O2|-O0|')
export FC=gfortran
export FC=gfortran
@ -195,17 +181,26 @@ cp libblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/
%if 0%{?arch64}
%if 0%{?arch64}
make clean
make clean
FFLAGS="$RPM_OPT_O_FLAGS -fdefault-integer-8" make dcabs1.o
FFLAGS="$RPM_OPT_O_FLAGS -fdefault-integer-8" make dcabs1.o
SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" make static
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" LDFLAGS="%{build_ldflags}" make shared
cp libblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64.so.%{version}
make clean
FFLAGS="$RPM_OPT_O_FLAGS -fdefault-integer-8" make dcabs1.o
SYMBOLSUFFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" make static
cp libblas64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64_.a
cp libblas64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64_.a
make clean
make clean
FFLAGS="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" make dcabs1.o
FFLAGS="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" make dcabs1.o
SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" LDFLAGS="%{build_ldflags}" make shared
SYMBOLSUF FIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" LDFLAGS="%{build_ldflags}" make shared
cp libblas64_.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64_.so.%{version}
cp libblas64_.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64_.so.%{version}
%endif
%endif
popd
popd
ln -s libblas.so.%{version} libblas.so
ln -s libblas.so.%{version} libblas.so
%if 0%{?arch64}
%if 0%{?arch64}
ln -s libblas64.so.%{version} libblas64.so
ln -s libblas64_.so.%{version} libblas64_.so
ln -s libblas64_.so.%{version} libblas64_.so
%endif
%endif
@ -219,22 +214,29 @@ FFLAGS="$RPM_OPT_FLAGS -fPIC" CFLAGS="$RPM_OPT_FLAGS -fPIC -I../include" LDFLAGS
cp libcblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/
cp libcblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/
%if 0%{?arch64}
%if 0%{?arch64}
make clean
make clean
SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -I../include" make static
FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -I../include" make static
cp libcblas.a ${RPM_BUILD_DIR}/%{name}-%{version}/libcblas64.a
make clean
FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -I../include" LDFLAGS="%{build_ldflags}" make shared
cp libcblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/libcblas64.so.%{version}
make clean
SYMBOLSUFFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -I../include" make static
cp libcblas64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/libcblas64_.a
cp libcblas64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/libcblas64_.a
make clean
make clean
SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -I../include" LDFLAGS="%{build_ldflags}" make shared
SYMBOLSUF FIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -I../include" LDFLAGS="%{build_ldflags}" make shared
cp libcblas64_.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/libcblas64_.so.%{version}
cp libcblas64_.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/libcblas64_.so.%{version}
%endif
%endif
popd
popd
ln -s libcblas.so.%{version} libcblas.so
ln -s libcblas.so.%{version} libcblas.so
%if 0%{?arch64}
%if 0%{?arch64}
ln -s libcblas64.so.%{version} libcblas64.so
ln -s libcblas64_.so.%{version} libcblas64_.so
ln -s libcblas64_.so.%{version} libcblas64_.so
%endif
%endif
# Build the static dlamch, dsecnd, lsame, second, slamch bits
# Build the static dlamch, dsecnd, lsame, second, slamch bits
pushd INSTALL
pushd INSTALL
make NOOPT="$RPM_OPT_O_FLAGS" OPT S="$RPM_OPT_FLAGS"
make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS" FFLAG S="$RPM_OPT_FLAGS"
popd
popd
# Build the static lapack library
# Build the static lapack library
@ -246,7 +248,7 @@ popd
# Build the static with pic dlamch, dsecnd, lsame, second, slamch bits
# Build the static with pic dlamch, dsecnd, lsame, second, slamch bits
pushd INSTALL
pushd INSTALL
make clean
make clean
make NOOPT="$RPM_OPT_O_FLAGS -fPIC" OPT S="$RPM_OPT_FLAGS -fPIC"
make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fPIC" FFLAG S="$RPM_OPT_FLAGS -fPIC"
popd
popd
# Build the static with pic lapack library
# Build the static with pic lapack library
@ -259,33 +261,61 @@ popd
%if 0%{?arch64}
%if 0%{?arch64}
# Build the static dlamch, dsecnd, lsame, second, slamch bits
# Build the static dlamch, dsecnd, lsame, second, slamch bits
pushd INSTALL
pushd INSTALL
make NOOPT="$RPM_OPT_O_FLAGS -fdefault-integer-8" OPTS="$RPM_OPT_FLAGS -fdefault-integer-8"
make clean
make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fdefault-integer-8" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8"
popd
popd
# Build the static lapack library
# Build the static lapack library
pushd SRC
pushd SRC
make SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" static
make clean
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 FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" FFLAGS="$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}/liblapack_pic64.a
popd
# Build the static dlamch, dsecnd, lsame, second, slamch bits
pushd INSTALL
make clean
make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fdefault-integer-8" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8"
popd
# Build the static lapack library
pushd SRC
make clean
make SYMBOLSUFFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" static
cp liblapack64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64_.a
cp liblapack64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64_.a
popd
popd
# Build the static with pic dlamch, dsecnd, lsame, second, slamch bits (64bit INTEGER)
# Build the static with pic dlamch, dsecnd, lsame, second, slamch bits (64bit INTEGER)
pushd INSTALL
pushd INSTALL
make clean
make clean
make NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" OPTS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8"
make FFLAGS_ NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" FFLAG S="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8"
popd
popd
# Build the static with pic lapack library (64bit INTEGER)
# Build the static with pic lapack library (64bit INTEGER)
pushd SRC
pushd SRC
make clean
make clean
make SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" static
make SYMBOLSUF FIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" static
cp liblapack64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64_pic.a
cp liblapack64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack_pic64_ .a
popd
popd
%endif
%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
make NOOPT="$RPM_OPT_O_FLAGS -fPIC" OPTS="$RPM_OPT_FLAGS -fPIC"
make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fPIC" FFLAG S="$RPM_OPT_FLAGS -fPIC"
popd
popd
# Build the shared lapack library
# Build the shared lapack library
@ -299,47 +329,64 @@ popd
# 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
make NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" OPT S="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8"
make FFLAGS_ NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" FFLAG S="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8"
popd
popd
# Build the shared lapack library
# Build the shared lapack library
pushd SRC
pushd SRC
make clean
make clean
make SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" LDFLAGS="%{build_ldflags}" shared
make FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" LDFLAGS="%{build_ldflags}" shared
cp liblapack.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64.so.%{version}
popd
# Build the shared dlamch, dsecnd, lsame, second, slamch bits
pushd INSTALL
make clean
make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8"
popd
# Build the shared lapack library
pushd SRC
make clean
make SYMBOLSUFFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" LDFLAGS="%{build_ldflags}" shared
cp liblapack64_.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64_.so.%{version}
cp liblapack64_.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64_.so.%{version}
popd
popd
%endif
%endif
ln -s liblapack.so.%{version} liblapack.so
ln -s liblapack.so.%{version} liblapack.so
%if 0%{?arch64}
%if 0%{?arch64}
ln -s liblapack64.so.%{version} liblapack64.so
ln -s liblapack64_.so.%{version} liblapack64_.so
ln -s liblapack64_.so.%{version} liblapack64_.so
%endif
%endif
# Build the lapacke libraries
# Build the lapacke libraries
make OPTS="$RPM_OPT_FLAGS -fPIC" NOOPT="$RPM_OPT_O_FLAGS -fPIC" tmglib
make FFLAGS="$RPM_OPT_FLAGS -fPIC" FFLAGS_ NOOPT="$RPM_OPT_O_FLAGS -fPIC" tmglib
pushd LAPACKE
pushd LAPACKE
make clean
make clean
make CFLAGS="$RPM_OPT_FLAGS" BUILD_DEPRECATED="true" lapacke
make CFLAGS="$RPM_OPT_FLAGS" BUILD_DEPRECATED="true" lapacke
make clean
make clean
make CFLAGS="$RPM_OPT_FLAGS -fPIC" BUILD_DEPRECATED="true" LDFLAGS="%{build_ldflags}" shlib
make CFLAGS="$RPM_OPT_FLAGS -fPIC" BUILD_DEPRECATED="true" LDFLAGS="%{build_ldflags}" shlib
cp liblapacke.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/
# cp liblapacke.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/
popd
popd
cp -p %{SOURCE4} lapackqref.ps
cp -p %{SOURCE4} lapackqref.ps
cp -p %{SOURCE5} blasqr.ps
cp -p %{SOURCE5} blasqr.ps
%install
%install
mkdir -p ${RPM_BUILD_ROOT }%{_libdir}
mkdir -p %{buildroot }%{_libdir}
mkdir -p ${RPM_BUILD_ROOT }%{_mandir}/man3
mkdir -p %{buildroot }%{_mandir}/man3
chmod 755 ${RPM_BUILD_ROOT }%{_mandir}/man3
chmod 755 %{buildroot }%{_mandir}/man3
for f in liblapack.so.%{version} libblas.so.%{version} libcblas.so.%{version} liblapacke.so.%{version} libblas.a libcblas.a liblapack.a liblapack_pic.a liblapacke.a; do
for f in liblapack.so.%{version} libblas.so.%{version} libcblas.so.%{version} liblapacke.so.%{version} \
libblas.a libcblas.a liblapack.a liblapack_pic.a liblapacke.a; do
cp -f $f ${RPM_BUILD_ROOT}%{_libdir}/$f
cp -f $f ${RPM_BUILD_ROOT}%{_libdir}/$f
done
done
%if 0%{?arch64}
%if 0%{?arch64}
for f in liblapack64_.so.%{version} libblas64_.so.%{version} libcblas64_.so.%{version} libblas64_.a libcblas64_.a liblapack64_.a liblapack64_pic.a; do
for f in liblapack64.so.%{version} libblas64.so.%{version} libcblas64.so.%{version} \
liblapack64_.so.%{version} libblas64_.so.%{version} libcblas64_.so.%{version} \
libblas64.a libcblas64.a liblapack64.a liblapack_pic64.a \
libblas64_.a libcblas64_.a liblapack64_.a liblapack_pic64_.a; do
cp -f $f ${RPM_BUILD_ROOT}%{_libdir}/$f
cp -f $f ${RPM_BUILD_ROOT}%{_libdir}/$f
done
done
%endif
%endif
@ -389,6 +436,12 @@ pushd manpages/man/man3
rm -rf _Users_julie*
rm -rf _Users_julie*
popd
popd
#rhbz#2222868
pushd manpages/man/man3
mv MAX.3 lapack-MAX.3
mv MIN.3 lapack-MIN.3
popd
find manpages/man/man3 -type f -printf "%{_mandir}/man3/%f*\n" > lapackmans
find manpages/man/man3 -type f -printf "%{_mandir}/man3/%f*\n" > lapackmans
cp -f manpages/blas/man/man3/* ${RPM_BUILD_ROOT}%{_mandir}/man3
cp -f manpages/blas/man/man3/* ${RPM_BUILD_ROOT}%{_mandir}/man3
@ -402,7 +455,7 @@ cp -a CBLAS/include/*.h %{buildroot}%{_includedir}/cblas/
mkdir -p %{buildroot}%{_includedir}/lapacke/
mkdir -p %{buildroot}%{_includedir}/lapacke/
cp -a LAPACKE/include/*.h %{buildroot}%{_includedir}/lapacke/
cp -a LAPACKE/include/*.h %{buildroot}%{_includedir}/lapacke/
pushd ${RPM_BUILD_ROOT }%{_libdir}
pushd %{buildroot }%{_libdir}
ln -sf liblapack.so.%{version} liblapack.so
ln -sf liblapack.so.%{version} liblapack.so
ln -sf liblapack.so.%{version} liblapack.so.%{shortver}
ln -sf liblapack.so.%{version} liblapack.so.%{shortver}
ln -sf liblapack.so.%{version} liblapack.so.%{mediumver}
ln -sf liblapack.so.%{version} liblapack.so.%{mediumver}
@ -416,6 +469,15 @@ 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}
%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}
ln -sf libcblas64.so.%{version} libcblas64.so
ln -sf libcblas64.so.%{version} libcblas64.so.%{shortver}
ln -sf libcblas64.so.%{version} libcblas64.so.%{mediumver}
ln -sf liblapack64_.so.%{version} liblapack64_.so
ln -sf liblapack64_.so.%{version} liblapack64_.so
ln -sf liblapack64_.so.%{version} liblapack64_.so.%{shortver}
ln -sf liblapack64_.so.%{version} liblapack64_.so.%{shortver}
ln -sf liblapack64_.so.%{version} liblapack64_.so.%{mediumver}
ln -sf liblapack64_.so.%{version} liblapack64_.so.%{mediumver}
@ -436,8 +498,11 @@ sed -i 's|@CMAKE_INSTALL_FULL_INCLUDEDIR@|%{_includedir}|g' %{buildroot}%{_libdi
sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/lapack.pc
sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/lapack.pc
%if 0%{?arch64}
%if 0%{?arch64}
cp -a %{buildroot}%{_libdir}/pkgconfig/lapack.pc %{buildroot}%{_libdir}/pkgconfig/lapack64.pc
cp -a %{buildroot}%{_libdir}/pkgconfig/lapack.pc %{buildroot}%{_libdir}/pkgconfig/lapack64.pc
sed -i 's|-llapack|-llapack64_ |g' %{buildroot}%{_libdir}/pkgconfig/lapack64.pc
sed -i 's|-llapack|-llapack64|g' %{buildroot}%{_libdir}/pkgconfig/lapack64.pc
sed -i 's|blas|blas64|g' %{buildroot}%{_libdir}/pkgconfig/lapack64.pc
sed -i 's|blas|blas64|g' %{buildroot}%{_libdir}/pkgconfig/lapack64.pc
cp -a %{buildroot}%{_libdir}/pkgconfig/lapack.pc %{buildroot}%{_libdir}/pkgconfig/lapack64_.pc
sed -i 's|-llapack|-llapack64_|g' %{buildroot}%{_libdir}/pkgconfig/lapack64_.pc
sed -i 's|blas|blas64_|g' %{buildroot}%{_libdir}/pkgconfig/lapack64_.pc
%endif
%endif
cp -a BLAS/blas.pc.in %{buildroot}%{_libdir}/pkgconfig/blas.pc
cp -a BLAS/blas.pc.in %{buildroot}%{_libdir}/pkgconfig/blas.pc
sed -i 's|@CMAKE_INSTALL_FULL_LIBDIR@|%{_libdir}|g' %{buildroot}%{_libdir}/pkgconfig/blas.pc
sed -i 's|@CMAKE_INSTALL_FULL_LIBDIR@|%{_libdir}|g' %{buildroot}%{_libdir}/pkgconfig/blas.pc
@ -445,7 +510,9 @@ sed -i 's|@CMAKE_INSTALL_FULL_INCLUDEDIR@|%{_includedir}|g' %{buildroot}%{_libdi
sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/blas.pc
sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/blas.pc
%if 0%{?arch64}
%if 0%{?arch64}
cp -a %{buildroot}%{_libdir}/pkgconfig/blas.pc %{buildroot}%{_libdir}/pkgconfig/blas64.pc
cp -a %{buildroot}%{_libdir}/pkgconfig/blas.pc %{buildroot}%{_libdir}/pkgconfig/blas64.pc
sed -i 's|-lblas|-lblas64_|g' %{buildroot}%{_libdir}/pkgconfig/blas64.pc
sed -i 's|-lblas|-lblas64|g' %{buildroot}%{_libdir}/pkgconfig/blas64.pc
cp -a %{buildroot}%{_libdir}/pkgconfig/blas.pc %{buildroot}%{_libdir}/pkgconfig/blas64_.pc
sed -i 's|-lblas|-lblas64_|g' %{buildroot}%{_libdir}/pkgconfig/blas64_.pc
%endif
%endif
cp -a LAPACKE/lapacke.pc.in %{buildroot}%{_libdir}/pkgconfig/lapacke.pc
cp -a LAPACKE/lapacke.pc.in %{buildroot}%{_libdir}/pkgconfig/lapacke.pc
sed -i 's|@CMAKE_INSTALL_FULL_LIBDIR@|%{_libdir}|g' %{buildroot}%{_libdir}/pkgconfig/lapacke.pc
sed -i 's|@CMAKE_INSTALL_FULL_LIBDIR@|%{_libdir}|g' %{buildroot}%{_libdir}/pkgconfig/lapacke.pc
@ -457,26 +524,23 @@ sed -i 's|@CMAKE_INSTALL_FULL_INCLUDEDIR@|%{_includedir}/cblas|g' %{buildroot}%{
sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/cblas.pc
sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/cblas.pc
%if 0%{?arch64}
%if 0%{?arch64}
cp -a %{buildroot}%{_libdir}/pkgconfig/cblas.pc %{buildroot}%{_libdir}/pkgconfig/cblas64.pc
cp -a %{buildroot}%{_libdir}/pkgconfig/cblas.pc %{buildroot}%{_libdir}/pkgconfig/cblas64.pc
sed -i 's|-lcblas|-lcblas64_ |g' %{buildroot}%{_libdir}/pkgconfig/cblas64.pc
sed -i 's|-lcblas|-lcblas64|g' %{buildroot}%{_libdir}/pkgconfig/cblas64.pc
sed -i 's|Requires.private: blas|Requires.private: blas64|g' %{buildroot}%{_libdir}/pkgconfig/cblas64.pc
sed -i 's|Requires.private: blas|Requires.private: blas64|g' %{buildroot}%{_libdir}/pkgconfig/cblas64.pc
cp -a %{buildroot}%{_libdir}/pkgconfig/cblas.pc %{buildroot}%{_libdir}/pkgconfig/cblas64_.pc
sed -i 's|-lcblas|-lcblas64_|g' %{buildroot}%{_libdir}/pkgconfig/cblas64_.pc
sed -i 's|Requires.private: blas|Requires.private: blas64_|g' %{buildroot}%{_libdir}/pkgconfig/cblas64_.pc
%endif
%endif
%post -p /sbin/ldconfig
%ldconfig_scriptlets
%postun -p /sbin/ldconfig
%post -n blas -p /sbin/ldconfig
%ldconfig_scriptlets -n blas
%postun -n blas -p /sbin/ldconfig
%if 0%{?arch64}
%if 0%{?arch64}
%post -n lapack64 -p /sbin/ldconfig
%ldconfig_scriptlets -n lapack64
%ldconfig_scriptlets -n lapack64_
%postun -n lapack64 -p /sbin/ldconfig
%post -n blas64 -p /sbin/ldconfig
%postun -n blas64 -p /sbin/ldconfig
%ldconfig_scriptlets -n blas64
%ldconfig_scriptlets -n blas64_
%endif
%endif
%files -f lapackmans
%files -f lapackmans
@ -490,11 +554,23 @@ sed -i 's|Requires.private: blas|Requires.private: blas64|g' %{buildroot}%{_libd
%{_libdir}/liblapacke.so
%{_libdir}/liblapacke.so
%{_libdir}/pkgconfig/lapack.pc
%{_libdir}/pkgconfig/lapack.pc
%{_libdir}/pkgconfig/lapacke.pc
%{_libdir}/pkgconfig/lapacke.pc
%if 0%{?arch64}
%{_libdir}/liblapack64.so
%{_libdir}/pkgconfig/lapack64.pc
%{_libdir}/liblapack64_.so
%{_libdir}/pkgconfig/lapack64_.pc
%endif
%files static
%files static
%{_libdir}/liblapack.a
%{_libdir}/liblapack.a
%{_libdir}/liblapack_pic.a
%{_libdir}/liblapack_pic.a
%{_libdir}/liblapacke.a
%{_libdir}/liblapacke.a
%if 0%{?arch64}
%{_libdir}/liblapack64.a
%{_libdir}/liblapack_pic64.a
%{_libdir}/liblapack64_.a
%{_libdir}/liblapack_pic64_.a
%endif
%files -n blas -f blasmans
%files -n blas -f blasmans
%doc blasqr.ps LICENSE
%doc blasqr.ps LICENSE
@ -507,43 +583,95 @@ sed -i 's|Requires.private: blas|Requires.private: blas64|g' %{buildroot}%{_libd
%{_libdir}/libcblas.so
%{_libdir}/libcblas.so
%{_libdir}/pkgconfig/blas.pc
%{_libdir}/pkgconfig/blas.pc
%{_libdir}/pkgconfig/cblas.pc
%{_libdir}/pkgconfig/cblas.pc
%if 0%{?arch64}
%{_libdir}/libblas64.so
%{_libdir}/libcblas64.so
%{_libdir}/pkgconfig/blas64.pc
%{_libdir}/pkgconfig/cblas64.pc
%{_libdir}/libblas64_.so
%{_libdir}/libcblas64_.so
%{_libdir}/pkgconfig/blas64_.pc
%{_libdir}/pkgconfig/cblas64_.pc
%endif
%files -n blas-static
%files -n blas-static
%{_libdir}/libblas.a
%{_libdir}/libblas.a
%{_libdir}/libcblas.a
%{_libdir}/libcblas.a
%if 0%{?arch64}
%{_libdir}/libblas64.a
%{_libdir}/libcblas64.a
%{_libdir}/libblas64_.a
%{_libdir}/libcblas64_.a
%endif
%if 0%{?arch64}
%if 0%{?arch64}
%files -n blas64
%files -n blas64
%doc LICENSE
%doc LICENSE
%{_libdir}/libblas64_.so.*
%{_libdir}/libblas64.so.*
%{_libdir}/libcblas64_.so.*
%{_libdir}/libcblas64.so.*
%files -n blas64-devel
%{_libdir}/libblas64_.so
%{_libdir}/libcblas64_.so
%{_libdir}/pkgconfig/blas64.pc
%{_libdir}/pkgconfig/cblas64.pc
%files -n blas64-static
%{_libdir}/libblas64_.a
%{_libdir}/libcblas64_.a
%files -n lapack64
%files -n lapack64
%doc README.md LICENSE
%doc README.md LICENSE
%{_libdir}/liblapack64_ .so.*
%{_libdir}/liblapack64.so.*
%files -n lapack64-devel
%files -n blas64_
%{_libdir}/liblapack64_.so
%doc LICENSE
%{_libdir}/pkgconfig/lapack64.pc
%{_libdir}/libblas64_.so.*
%{_libdir}/libcblas64_.so.*
%files -n lapack64-static
%files -n lapack64_
%{_libdir}/liblapack64_.a
%doc README.md LICENSE
%{_libdir}/liblapack64_pic.a
%{_libdir}/liblapack64_.so.*
%endif
%endif
%changelog
%changelog
* Wed Jul 26 2023 MSVSphere Packaging Team <packager@msvsphere.ru> - 3.8.0-8
* Fri Aug 11 2023 Jakub Martisko <jamartis@redhat.com> - 3.9.0-10
- Rebuilt for MSVSphere 8.8
- Add explicit requires to the devel subpackages
Related: rhbz#2229142
* Tue Jul 18 2023 Jakub Martisko <jamartis@redhat.com> - 3.9.0-9
- Rename manpages: some names conflict with the man-pages package
Resolves: rhbz#2222868
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 3.9.0-8
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 3.9.0-7
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.9.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.9.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Sun Jun 21 2020 Iñaki Úcar <iucar@fedoraproject.org> - 3.9.0-4
- make separate packages for 64-bit versions with and without suffix (bz1295965)
* Thu Mar 19 2020 Tom Callaway <spot@fedoraproject.org> - 3.9.0-3
- apply upstream fix for accidental removal of deprecated symbols from header file
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.9.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Tue Nov 26 2019 Tom Callaway <spot@fedoraproject.org> - 3.9.0-1
- update to 3.9.0
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.0-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Wed May 29 2019 Tom Callaway <spot@fedoraproject.org> - 3.8.0-12
- use --no-optimize-sibling-calls to work around gfortran issues
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.0-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.0-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Jun 19 2018 Tom Callaway <spot@fedoraproject.org> - 3.8.0-9
- explicitly link liblapacke.so with liblapack to remove undefined-non-weak-symbols
* Mon Mar 5 2018 Tom Callaway <spot@fedoraproject.org> - 3.8.0-8
* Mon Mar 5 2018 Tom Callaway <spot@fedoraproject.org> - 3.8.0-8
- use LDFLAGS for shared libs
- use LDFLAGS for shared libs