Browse Source

lapack: update to 3.4.0

git-svn-id: http://trac.vinelinux.org/repos/projects/specs@5909 ec354946-7b23-47d6-9f5a-488ba84defc7
kenta 13 years ago
parent
commit
ed2f2b7fd8
1 changed files with 90 additions and 26 deletions
  1. 90 26
      l/lapack/lapack-vl.spec

+ 90 - 26
l/lapack/lapack-vl.spec

@@ -1,9 +1,9 @@
 %global shortver       3
 %global shortver       3
-%global mediumver      %{shortver}.3
+%global mediumver      %{shortver}.4
 
 
 Summary: The LAPACK libraries for numerical linear algebra.
 Summary: The LAPACK libraries for numerical linear algebra.
 Name:    lapack
 Name:    lapack
-Version: %{mediumver}.1
+Version: %{mediumver}.0
 Release: 1%{?_dist_release}
 Release: 1%{?_dist_release}
 License: Freely distributable
 License: Freely distributable
 Group:   Development/Libraries
 Group:   Development/Libraries
@@ -14,8 +14,8 @@ 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
-Patch3:  lapack-3.1.1-make.inc.patch
+Patch3:  lapack-3.4.0-make.inc.patch
-Obsoletes: lapack-man
+Patch4:  lapack-3.4.0-lapacke-shared.patch
 BuildRequires: gcc-gfortran
 BuildRequires: gcc-gfortran
 BuildRequires: coreutils findutils
 BuildRequires: coreutils findutils
 
 
@@ -36,7 +36,7 @@ Schur factorizations and estimating condition numbers) are also
 included. LAPACK can handle dense and banded matrices, but not general 
 included. LAPACK can handle dense and banded matrices, but not general 
 sparse matrices. Similar functionality is provided for real and complex 
 sparse matrices. Similar functionality is provided for real and complex 
 matrices in both single and double precision. LAPACK is coded in 
 matrices in both single and double precision. LAPACK is coded in 
-Fortran77 and built with gcc.
+Fortran90 and built with gcc.
 
 
 %description -l ja
 %description -l ja
 LAPACK(Linear Algebra PACKage)は線形代数用数値計算の標準ライブラリです。
 LAPACK(Linear Algebra PACKage)は線形代数用数値計算の標準ライブラリです。
@@ -45,7 +45,7 @@ LAPACKには、連立一次方程式、線形最小二乗解、固有値問題
 Schur、一般化Schur)と、それに関連する計算処理 (つまりSchur分解の再配列
 Schur、一般化Schur)と、それに関連する計算処理 (つまりSchur分解の再配列
 およびコンディションナンバーの推定)も含まれます。LAPACKは密なbanded行列は
 およびコンディションナンバーの推定)も含まれます。LAPACKは密なbanded行列は
 処理できますが、一般的な疎行列は処理できません。同じ計算機能が、実行列
 処理できますが、一般的な疎行列は処理できません。同じ計算機能が、実行列
-および複素行列の単制度および倍精度で利用できます。LAPACKはFortran 77
+および複素行列の単制度および倍精度で利用できます。LAPACKはFortran 90
 記述され、gccでビルドされています。
 記述され、gccでビルドされています。
 
 
 %package devel
 %package devel
@@ -60,6 +60,7 @@ LAPACK development libraries (shared).
 %package static
 %package static
 Summary: LAPACK static libraries
 Summary: LAPACK static libraries
 Group: Development/Libraries
 Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
 
 
 %description static
 %description static
 LAPACK static libraries.
 LAPACK static libraries.
@@ -67,15 +68,13 @@ LAPACK static libraries.
 %package -n blas
 %package -n blas
 Summary: The BLAS (Basic Linear Algebra Subprograms) library.
 Summary: The BLAS (Basic Linear Algebra Subprograms) library.
 Group: Development/Libraries
 Group: Development/Libraries
-Obsoletes: lapack-blas blas-man
 
 
 %description -n blas
 %description -n blas
 BLAS (Basic Linear Algebra Subprograms) is a standard library which
 BLAS (Basic Linear Algebra Subprograms) is a standard library which
-provides a number of basic algorithms for numerical algebra. Man
+provides a number of basic algorithms for numerical algebra.
-pages for blas are available in the blas-man package.
 
 
 %description -n blas -l ja
 %description -n blas -l ja
-BLAS(Basic Linear Algebra Subprograms)は数値代数計算の標準ライブラリです。BLASでは、線形代数計算における多くの基本アルゴリズムを利用できます。Blasの計算は高速で十分テストされているFORTRAN 77のプログラムで、gccでビルドされています。
+BLAS(Basic Linear Algebra Subprograms)は数値代数計算の標準ライブラリです。BLASでは、線形代数計算における多くの基本アルゴリズムを利用できます。Blasの計算は高速で十分テストされているFORTRAN 90のプログラムで、gccでビルドされています。
 
 
 %description -n blas
 %description -n blas
 BLAS (Basic Linear Algebra Subprograms) is a standard library which
 BLAS (Basic Linear Algebra Subprograms) is a standard library which
@@ -93,6 +92,7 @@ BLAS development libraries (shared).
 %package -n blas-static
 %package -n blas-static
 Summary: BLAS static libraries
 Summary: BLAS static libraries
 Group: Development/Libraries
 Group: Development/Libraries
+Requires: blas-devel = %{version}-%{release}
 
 
 %description -n blas-static
 %description -n blas-static
 BLAS static libraries.
 BLAS static libraries.
@@ -102,20 +102,23 @@ BLAS static libraries.
 %setup -q -D -T -a1
 %setup -q -D -T -a1
 # using gfortran
 # using gfortran
 %patch3 -p1
 %patch3 -p1
+%patch4 -p1 -b .shared
+
+mkdir manpages
+mv man/ manpages/
+
 cp -f INSTALL/make.inc.gfortran make.inc
 cp -f INSTALL/make.inc.gfortran make.inc
 cp -f %{SOURCE2} BLAS/SRC/Makefile
 cp -f %{SOURCE2} BLAS/SRC/Makefile
 cp -f %{SOURCE3} SRC/Makefile
 cp -f %{SOURCE3} SRC/Makefile
 
 
 sed -i "s|@SHORTVER@|%{shortver}|g" BLAS/SRC/Makefile
 sed -i "s|@SHORTVER@|%{shortver}|g" BLAS/SRC/Makefile
 sed -i "s|@SHORTVER@|%{shortver}|g" SRC/Makefile
 sed -i "s|@SHORTVER@|%{shortver}|g" SRC/Makefile
+sed -i "s|@SHORTVER@|%{shortver}|g" lapacke/Makefile
 sed -i "s|@LONGVER@|%{version}|g" BLAS/SRC/Makefile
 sed -i "s|@LONGVER@|%{version}|g" BLAS/SRC/Makefile
 sed -i "s|@LONGVER@|%{version}|g" SRC/Makefile
 sed -i "s|@LONGVER@|%{version}|g" SRC/Makefile
-
+sed -i "s|@LONGVER@|%{version}|g" lapacke/Makefile
-#Empty
-rm -f manpages/man/manl/zbcon.l
 
 
 %build
 %build
-
 RPM_OPT_O_FLAGS=$(echo $RPM_OPT_FLAGS | sed 's|-O2|-O0|')
 RPM_OPT_O_FLAGS=$(echo $RPM_OPT_FLAGS | sed 's|-O2|-O0|')
 # using gfortran
 # using gfortran
 export FC=gfortran
 export FC=gfortran
@@ -170,33 +173,87 @@ 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
 
 
+ln -s liblapack.so.%{version} liblapack.so
+
+# Build the lapacke libraries
+pushd lapacke
+make clean
+make CFLAGS="$RPM_OPT_FLAGS" lapacke
+cp liblapacke.a ${RPM_BUILD_DIR}/%{name}-%{version}/
+make clean
+make CFLAGS="$RPM_OPT_FLAGS -fPIC" shlib
+cp liblapacke.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/
+popd
+
 cp -p %{SOURCE4} lapackqref.ps
 cp -p %{SOURCE4} lapackqref.ps
 cp -p %{SOURCE5} blasqr.ps
 cp -p %{SOURCE5} blasqr.ps
 
 
 %install
 %install
 rm -fr ${RPM_BUILD_ROOT}
 rm -fr ${RPM_BUILD_ROOT}
 mkdir -p ${RPM_BUILD_ROOT}%{_libdir}
 mkdir -p ${RPM_BUILD_ROOT}%{_libdir}
-mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/manl
+mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man3
-chmod 755 ${RPM_BUILD_ROOT}%{_mandir}/manl
+chmod 755 ${RPM_BUILD_ROOT}%{_mandir}/man3
 
 
-for f in liblapack.so.%{version} libblas.so.%{version} libblas.a liblapack.a liblapack_pic.a; do
+for f in liblapack.so.%{version} libblas.so.%{version} liblapacke.so.%{version} libblas.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
 
 
-find manpages/blas/man/manl -type f -printf "%{_mandir}/manl/%f*\n" > blasmans
+# Blas manpages
+pushd manpages/
+mkdir -p blas/man/man3
+cd man/man3/
+mv caxpy.f.3 CAXPY.3 ccopy.f.3 CCOPY.3 cdotc.f.3 CDOTC.3 cdotu.f.3 CDOTU.3 cgbmv.f.3 CGBMV.3 \
+cgemm.f.3 CGEMM.3 cgemv.f.3 CGEMV.3 cgerc.f.3 CGERC.3 cgeru.f.3 CGERU.3 chbmv.f.3 CHBMV.3 \
+chemm.f.3 CHEMM.3 chemv.f.3 CHEMV.3 cher.f.3 CHER.3 cher2.f.3 CHER2.3 cher2k.f.3 CHER2K.3 \
+cherk.f.3 CHERK.3 chpmv.f.3 CHPMV.3 chpr.f.3 CHPR.3 chpr2.f.3 CHPR2.3 crotg.f.3 CROTG.3 \
+cscal.f.3 CSCAL.3 csrot.f.3 CSROT.3 csscal.f.3 CSSCAL.3 cswap.f.3 CSWAP.3 csymm.f.3 \
+CSYMM.3 csyr2k.f.3 CSYR2K.3 csyrk.f.3 CSYRK.3 ctbmv.f.3 CTBMV.3 ctbsv.f.3 CTBSV.3 ctpmv.f.3 \
+CTPMV.3 ctpsv.f.3 CTPSV.3 ctrmm.f.3 CTRMM.3 ctrmv.f.3 CTRMV.3 ctrsm.f.3 CTRSM.3 ctrsv.f.3 \
+CTRSV.3 dasum.f.3 DASUM.3 daxpy.f.3 DAXPY.3 dcabs1.f.3 DCABS1.3 dcopy.f.3 DCOPY.3 ddot.f.3 \
+DDOT.3 dgbmv.f.3 DGBMV.3 dgemm.f.3 DGEMM.3 dgemv.f.3 DGEMV.3 dger.f.3 DGER.3 dnrm2.f.3 \
+DNRM2.3 drot.f.3 DROT.3 drotg.f.3 DROTG.3 drotm.f.3 DROTM.3 drotmg.f.3 DROTMG.3 dsbmv.f.3 \
+DSBMV.3 dscal.f.3 DSCAL.3 dsdot.f.3 DSDOT.3 dspmv.f.3 DSPMV.3 dspr.f.3 DSPR.3 dspr2.f.3 \
+DSPR2.3 dswap.f.3 DSWAP.3 dsymm.f.3 DSYMM.3 dsymv.f.3 DSYMV.3 dsyr.f.3 DSYR.3 dsyr2.f.3 \
+DSYR2.3 dsyr2k.f.3 DSYR2K.3 dsyrk.f.3 DSYRK.3 dtbmv.f.3 DTBMV.3 dtbsv.f.3 DTBSV.3 dtpmv.f.3 \
+DTPMV.3 dtpsv.f.3 DTPSV.3 dtrmm.f.3 DTRMM.3 dtrmv.f.3 DTRMV.3 dtrsm.f.3 DTRSM.3 dtrsv.f.3 \
+DTRSV.3 dzasum.f.3 DZASUM.3 dznrm2.f.3 DZNRM2.3 icamax.f.3 ICAMAX.3 idamax.f.3 IDAMAX.3 \
+isamax.f.3 ISAMAX.3 izamax.f.3 IZAMAX.3 LSAME.3 sasum.f.3 SASUM.3 saxpy.f.3 SAXPY.3 \
+scabs1.f.3 SCABS1.3 scasum.f.3 SCASUM.3 scnrm2.f.3 SCNRM2.3 scopy.f.3 SCOPY.3 sdot.f.3 SDOT.3 \
+sdsdot.f.3 SDSDOT.3 sgbmv.f.3 SGBMV.3 sgemm.f.3 SGEMM.3 sgemv.f.3 SGEMV.3 sger.f.3 SGER.3 \
+snrm2.f.3 SNRM2.3 srot.f.3 SROT.3 srotg.f.3 SROTG.3 srotm.f.3 SROTM.3 srotmg.f.3 SROTMG.3 \
+ssbmv.f.3 SSBMV.3 sscal.f.3 SSCAL.3 sspmv.f.3 SSPMV.3 sspr.f.3 SSPR.3 sspr2.f.3 SSPR2.3 \
+sswap.f.3 SSWAP.3 ssymm.f.3 SSYMM.3 ssymv.f.3 SSYMV.3 ssyr.f.3 SSYR.3 ssyr2.f.3 SSYR2.3 \
+ssyr2k.f.3 SSYR2K.3 ssyrk.f.3 SSYRK.3 stbmv.f.3 STBMV.3 stbsv.f.3 STBSV.3 stpmv.f.3 STPMV.3 \
+stpsv.f.3 STPSV.3 strmm.f.3 STRMM.3 strmv.f.3 STRMV.3 strsm.f.3 STRSM.3 strsv.f.3 STRSV.3 \
+XERBLA.3 XERBLA_ARRAY.3 zaxpy.f.3 ZAXPY.3 zcopy.f.3 ZCOPY.3 \
+zdotc.f.3 ZDOTC.3 zdotu.f.3 ZDOTU.3 zdrot.f.3 ZDROT.3 zdscal.f.3 ZDSCAL.3 zgbmv.f.3 ZGBMV.3 \
+zgemm.f.3 ZGEMM.3 zgemv.f.3 ZGEMV.3 zgerc.f.3 ZGERC.3 zgeru.f.3 ZGERU.3 zhbmv.f.3 ZHBMV.3 \
+zhemm.f.3 ZHEMM.3 zhemv.f.3 ZHEMV.3 zher.f.3 ZHER.3 zher2.f.3 ZHER2.3 zher2k.f.3 ZHER2K.3 \
+zherk.f.3 ZHERK.3 zhpmv.f.3 ZHPMV.3 zhpr.f.3 ZHPR.3 zhpr2.f.3 ZHPR2.3 zrotg.f.3 ZROTG.3 \
+zscal.f.3 ZSCAL.3 zswap.f.3 ZSWAP.3 zsymm.f.3 ZSYMM.3 zsyr2k.f.3 ZSYR2K.3 zsyrk.f.3 ZSYRK.3 \
+ztbmv.f.3 ZTBMV.3 ztbsv.f.3 ZTBSV.3 ztpmv.f.3 ZTPMV.3 ztpsv.f.3 ZTPSV.3 ztrmm.f.3 ZTRMM.3 \
+ztrmv.f.3 ZTRMV.3 ztrsm.f.3 ZTRSM.3 ztrsv.f.3 ZTRSV.3 ../../blas/man/man3
+cd ../..
+popd
 
 
-# These are also in the BLAS package
+find manpages/blas/man/man3 -type f -printf "%{_mandir}/man3/%f*\n" > blasmans
-rm -f manpages/man/manl/lsame.l*
-rm -f manpages/man/manl/xerbla.l*
-find manpages/man/manl -type f -printf "%{_mandir}/manl/%f*\n" > lapackmans
 
 
-cp -f manpages/blas/man/manl/* ${RPM_BUILD_ROOT}%{_mandir}/manl
+find manpages/man/man3 -type f -printf "%{_mandir}/man3/%f*\n" > lapackmans
-cp -f manpages/man/manl/* ${RPM_BUILD_ROOT}%{_mandir}/manl
+
+cp -f manpages/blas/man/man3/* ${RPM_BUILD_ROOT}%{_mandir}/man3
+cp -f manpages/man/man3/* ${RPM_BUILD_ROOT}%{_mandir}/man3
+
+# Lapacke headers
+mkdir -p %{buildroot}%{_includedir}/lapacke/
+cp -a lapacke/include/*.h %{buildroot}%{_includedir}/lapacke/
 
 
 cd ${RPM_BUILD_ROOT}%{_libdir}
 cd ${RPM_BUILD_ROOT}%{_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}
+ln -sf liblapacke.so.%{version} liblapacke.so
+ln -sf liblapacke.so.%{version} liblapacke.so.%{shortver}
+ln -sf liblapacke.so.%{version} liblapacke.so.%{mediumver}
 ln -sf libblas.so.%{version} libblas.so
 ln -sf libblas.so.%{version} libblas.so
 ln -sf libblas.so.%{version} libblas.so.%{shortver}
 ln -sf libblas.so.%{version} libblas.so.%{shortver}
 ln -sf libblas.so.%{version} libblas.so.%{mediumver}
 ln -sf libblas.so.%{version} libblas.so.%{mediumver}
@@ -215,12 +272,15 @@ rm -fr ${RPM_BUILD_ROOT}
 %files -f lapackmans
 %files -f lapackmans
 %defattr(-,root,root)
 %defattr(-,root,root)
 %doc README LICENSE lapackqref.ps
 %doc README LICENSE lapackqref.ps
-%dir %{_mandir}/manl/
+%dir %{_mandir}/man3/
 %{_libdir}/liblapack.so.*
 %{_libdir}/liblapack.so.*
+%{_libdir}/liblapacke.so.*
 
 
 %files devel
 %files devel
 %defattr(-,root,root,-)
 %defattr(-,root,root,-)
+%{_includedir}/lapacke/
 %{_libdir}/liblapack.so
 %{_libdir}/liblapack.so
+%{_libdir}/liblapacke.so
 
 
 %files static
 %files static
 %defattr(-,root,root,-)
 %defattr(-,root,root,-)
@@ -229,7 +289,7 @@ rm -fr ${RPM_BUILD_ROOT}
 %files -n blas -f blasmans
 %files -n blas -f blasmans
 %defattr(-,root,root)
 %defattr(-,root,root)
 %doc blasqr.ps LICENSE
 %doc blasqr.ps LICENSE
-%dir %{_mandir}/manl/
+%dir %{_mandir}/man3/
 %{_libdir}/libblas.so.*
 %{_libdir}/libblas.so.*
 
 
 %files -n blas-devel
 %files -n blas-devel
@@ -241,6 +301,10 @@ rm -fr ${RPM_BUILD_ROOT}
 %{_libdir}/libblas*.a
 %{_libdir}/libblas*.a
 
 
 %changelog
 %changelog
+* Thu Feb 23 2012 NAKAMURA Kenta <kenta@vinelinux.org> 3.4.0-1
+- update to 3.4.0
+- build and include lapacke
+
 * Sat Nov 26 2011 NAKAMURA Kenta <kenta@vinelinux.org> 3.3.1-1
 * Sat Nov 26 2011 NAKAMURA Kenta <kenta@vinelinux.org> 3.3.1-1
 - new upstream release
 - new upstream release
 - update package descriptions
 - update package descriptions