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 12 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 mediumver      %{shortver}.3
+%global mediumver      %{shortver}.4
 
 Summary: The LAPACK libraries for numerical linear algebra.
 Name:    lapack
-Version: %{mediumver}.1
+Version: %{mediumver}.0
 Release: 1%{?_dist_release}
 License: Freely distributable
 Group:   Development/Libraries
@@ -14,8 +14,8 @@ Source2: Makefile.blas
 Source3: Makefile.lapack
 Source4: http://www.netlib.org/lapack/lapackqref.ps
 Source5: http://www.netlib.org/blas/blasqr.ps
-Patch3:  lapack-3.1.1-make.inc.patch
-Obsoletes: lapack-man
+Patch3:  lapack-3.4.0-make.inc.patch
+Patch4:  lapack-3.4.0-lapacke-shared.patch
 BuildRequires: gcc-gfortran
 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 
 sparse matrices. Similar functionality is provided for real and complex 
 matrices in both single and double precision. LAPACK is coded in 
-Fortran77 and built with gcc.
+Fortran90 and built with gcc.
 
 %description -l ja
 LAPACK(Linear Algebra PACKage)は線形代数用数値計算の標準ライブラリです。
@@ -45,7 +45,7 @@ LAPACKには、連立一次方程式、線形最小二乗解、固有値問題
 Schur、一般化Schur)と、それに関連する計算処理 (つまりSchur分解の再配列
 およびコンディションナンバーの推定)も含まれます。LAPACKは密なbanded行列は
 処理できますが、一般的な疎行列は処理できません。同じ計算機能が、実行列
-および複素行列の単制度および倍精度で利用できます。LAPACKはFortran 77
+および複素行列の単制度および倍精度で利用できます。LAPACKはFortran 90
 記述され、gccでビルドされています。
 
 %package devel
@@ -60,6 +60,7 @@ LAPACK development libraries (shared).
 %package static
 Summary: LAPACK static libraries
 Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
 
 %description static
 LAPACK static libraries.
@@ -67,15 +68,13 @@ LAPACK static libraries.
 %package -n blas
 Summary: The BLAS (Basic Linear Algebra Subprograms) library.
 Group: Development/Libraries
-Obsoletes: lapack-blas blas-man
 
 %description -n blas
 BLAS (Basic Linear Algebra Subprograms) is a standard library which
-provides a number of basic algorithms for numerical algebra. Man
-pages for blas are available in the blas-man package.
+provides a number of basic algorithms for numerical algebra.
 
 %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
 BLAS (Basic Linear Algebra Subprograms) is a standard library which
@@ -93,6 +92,7 @@ BLAS development libraries (shared).
 %package -n blas-static
 Summary: BLAS static libraries
 Group: Development/Libraries
+Requires: blas-devel = %{version}-%{release}
 
 %description -n blas-static
 BLAS static libraries.
@@ -102,20 +102,23 @@ BLAS static libraries.
 %setup -q -D -T -a1
 # using gfortran
 %patch3 -p1
+%patch4 -p1 -b .shared
+
+mkdir manpages
+mv man/ manpages/
+
 cp -f INSTALL/make.inc.gfortran make.inc
 cp -f %{SOURCE2} BLAS/SRC/Makefile
 cp -f %{SOURCE3} 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" lapacke/Makefile
 sed -i "s|@LONGVER@|%{version}|g" BLAS/SRC/Makefile
 sed -i "s|@LONGVER@|%{version}|g" SRC/Makefile
-
-#Empty
-rm -f manpages/man/manl/zbcon.l
+sed -i "s|@LONGVER@|%{version}|g" lapacke/Makefile
 
 %build
-
 RPM_OPT_O_FLAGS=$(echo $RPM_OPT_FLAGS | sed 's|-O2|-O0|')
 # using 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}/
 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 %{SOURCE5} blasqr.ps
 
 %install
 rm -fr ${RPM_BUILD_ROOT}
 mkdir -p ${RPM_BUILD_ROOT}%{_libdir}
-mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/manl
-chmod 755 ${RPM_BUILD_ROOT}%{_mandir}/manl
+mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man3
+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
 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
-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
+find manpages/blas/man/man3 -type f -printf "%{_mandir}/man3/%f*\n" > blasmans
 
-cp -f manpages/blas/man/manl/* ${RPM_BUILD_ROOT}%{_mandir}/manl
-cp -f manpages/man/manl/* ${RPM_BUILD_ROOT}%{_mandir}/manl
+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/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}
 ln -sf liblapack.so.%{version} liblapack.so
 ln -sf liblapack.so.%{version} liblapack.so.%{shortver}
 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.%{shortver}
 ln -sf libblas.so.%{version} libblas.so.%{mediumver}
@@ -215,12 +272,15 @@ rm -fr ${RPM_BUILD_ROOT}
 %files -f lapackmans
 %defattr(-,root,root)
 %doc README LICENSE lapackqref.ps
-%dir %{_mandir}/manl/
+%dir %{_mandir}/man3/
 %{_libdir}/liblapack.so.*
+%{_libdir}/liblapacke.so.*
 
 %files devel
 %defattr(-,root,root,-)
+%{_includedir}/lapacke/
 %{_libdir}/liblapack.so
+%{_libdir}/liblapacke.so
 
 %files static
 %defattr(-,root,root,-)
@@ -229,7 +289,7 @@ rm -fr ${RPM_BUILD_ROOT}
 %files -n blas -f blasmans
 %defattr(-,root,root)
 %doc blasqr.ps LICENSE
-%dir %{_mandir}/manl/
+%dir %{_mandir}/man3/
 %{_libdir}/libblas.so.*
 
 %files -n blas-devel
@@ -241,6 +301,10 @@ rm -fr ${RPM_BUILD_ROOT}
 %{_libdir}/libblas*.a
 
 %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
 - new upstream release
 - update package descriptions