Name: atlas Version: 3.7.11 Release: alt5 Summary: Automatically Tuned Linear Algebra Software (the BLAS library) License: BSD Group: System/Libraries URL: http://math-atlas.sourceforge.net Source: %name-%version.tar Patch: %name-%version-%release.patch ExclusiveArch: %ix86 amd64 x86_64 # Automatically added by buildreq on Fri Dec 08 2006 BuildRequires: gcc-fortran %description The ATLAS (Automatically Tuned Linear Algebra Software) project is an ongoing research effort focusing on applying empirical techniques in order to provide portable performance. At present, it provides C and Fortran77 interfaces to a portably efficient BLAS implementation, as well as a few routines from LAPACK. %prep %setup -q -n ATLAS %patch -p1 ln -s atlas.mk Make.Linux_i586 ln -s atlas.mk Make.Linux_sse2 ln -s atlas.mk Make.Linux_amd64 chmod +x atlas-run.sh ln -s ../atlas-run.sh CONFIG/ATLrun.Linux_i586 ln -s ../atlas-run.sh CONFIG/ATLrun.Linux_sse2 ln -s ../atlas-run.sh CONFIG/ATLrun.Linux_amd64 %build %add_optflags -fPIC -falign-loops=4 %add_optflags -mfpmath=387 %define soffix .so.3 shared() { lib=$1; shift ${linker:-gcc} -shared -Wl,--whole-archive $lib.a -Wl,--no-whole-archive \ -o $lib%soffix -Wl,-soname=$lib%soffix "$@" -lm -Wl,-z,defs } all_shared() { cd $1 linker=gcc shared libatlas linker=gcc shared libcblas ./libatlas%soffix linker=g77 shared libblas ./libatlas%soffix linker=g77 shared liblapack_atlas ./libatlas%soffix ./libblas%soffix ./libcblas%soffix cd - } %ifarch %ix86 make killall startup arch=Linux_i586 make install sanity_test arch=Linux_i586 ARCHDEFS='-DATL_OS_Linux -DATL_GAS_x8632' \ MMDEF=$PWD/CONFIG/ARCHS/PII/gcc/gemm ARCHDEF=$PWD/CONFIG/ARCHS/PII/gcc/misc all_shared lib/Linux_i586 make killall startup arch=Linux_sse2 make install sanity_test arch=Linux_sse2 ARCHDEFS='-DATL_OS_Linux -DATL_GAS_x8632 -DATL_ARCH_HAMMER32 -DATL_SSE1 -DATL_SSE2' \ MMDEF=$PWD/CONFIG/ARCHS/HAMMER32SSE2/gcc/gemm ARCHDEF=$PWD/CONFIG/ARCHS/HAMMER32SSE2/gcc/misc all_shared lib/Linux_sse2 %else make killall startup arch=Linux_amd64 make install sanity_test arch=Linux_amd64 ARCHDEFS='-DATL_OS_Linux -DATL_GAS_x8664 -DATL_ARCH_HAMMER64 -DATL_SSE1 -DATL_SSE2 -DATL_USE64BITS' \ MMDEF=$PWD/CONFIG/ARCHS/HAMMER64SSE2/gcc/gemm ARCHDEF=$PWD/CONFIG/ARCHS/HAMMER64SSE2/gcc/misc all_shared lib/Linux_amd64 %endif %install mkdir -p %buildroot%_libdir %buildroot%_includedir/atlas cp -p include/*.h %buildroot%_includedir/atlas/ ln -s atlas/cblas.h %buildroot%_includedir/cblas.h ln -s atlas/clapack.h %buildroot%_includedir/clapack.h %ifarch %ix86 cp -p include/Linux_i586/atlas*.h %buildroot%_includedir/atlas/ cp -p lib/Linux_i586/lib*%soffix %buildroot%_libdir/ cp -p lib/Linux_i586/lib*.a %buildroot%_libdir/ mkdir %buildroot%_libdir/sse2 cp -p lib/Linux_sse2/libatlas%soffix %buildroot%_libdir/sse2/ %else cp -p include/Linux_amd64/atlas*.h %buildroot%_includedir/atlas/ cp -p lib/Linux_amd64/lib*%soffix %buildroot%_libdir/ cp -p lib/Linux_amd64/lib*.a %buildroot%_libdir/ %endif ln -s libatlas%soffix %buildroot%_libdir/libatlas.so ln -s libcblas%soffix %buildroot%_libdir/libcblas.so ln -s libblas%soffix %buildroot%_libdir/libblas.so ln -s libblas%soffix %buildroot%_libdir/libf77blas.so ln -s liblapack_atlas%soffix %buildroot%_libdir/liblapack_atlas.so mv %buildroot%_libdir/libatlas{,_}.a echo 'GROUP(%_libdir/libatlas_.a -lm)' >%buildroot%_libdir/libatlas.a mv %buildroot%_libdir/libcblas{,_}.a echo 'GROUP(%_libdir/libcblas_.a %_libdir/libatlas.a)' >%buildroot%_libdir/libcblas.a mv %buildroot%_libdir/libblas{,_}.a echo 'GROUP(%_libdir/libblas_.a %_libdir/libatlas.a -lgfortran)' >%buildroot%_libdir/libblas.a ln -s libblas.a %buildroot%_libdir/libf77blas.a mv %buildroot%_libdir/liblapack_atlas{,_}.a echo 'GROUP(%_libdir/liblapack_atlas_.a %_libdir/libcblas.a %_libdir/libblas.a)' >%buildroot%_libdir/liblapack_atlas.a %define pkgdocdir %_docdir/atlas-3.7 mkdir -p %buildroot%pkgdocdir cp -p README.ALT %buildroot%pkgdocdir/ cp -p doc/AtlasCredits.txt doc/ChangeLog doc/LibReadme.txt %buildroot%pkgdocdir/ cp -p doc/atlas_{contrib,devel,over}.ps doc/cblas.ps %buildroot%pkgdocdir/ gzip -9nf %buildroot%pkgdocdir/*.ps %ifarch %ix86 cp -p bin/Linux_i586/INSTALL_LOG/SUMMARY.LOG %buildroot%pkgdocdir/SUMMARY.LOG cp -p bin/Linux_sse2/INSTALL_LOG/SUMMARY.LOG %buildroot%pkgdocdir/SUMMARY.LOG.SSE2 %else cp -p bin/Linux_amd64/INSTALL_LOG/SUMMARY.LOG %buildroot%pkgdocdir/SUMMARY.LOG %endif %package -n libatlas Summary: Automatically Tuned Linear Algebra Software (the BLAS library) Group: System/Libraries Conflicts: liblapack < 1:3.0-alt3 %description -n libatlas The ATLAS (Automatically Tuned Linear Algebra Software) project is an ongoing research effort focusing on applying empirical techniques in order to provide portable performance. At present, it provides C and Fortran77 interfaces to a portably efficient BLAS implementation, as well as a few routines from LAPACK. %files -n libatlas %_libdir/lib*%soffix %ifarch %ix86 %dir %_libdir/sse2 %_libdir/sse2/libatlas%soffix %endif %dir %pkgdocdir %pkgdocdir/README.ALT %pkgdocdir/*.txt %pkgdocdir/ChangeLog %pkgdocdir/SUMMARY.LOG* %post -n libatlas -p %post_ldconfig %postun -n libatlas -p %post_ldconfig %package -n libatlas-devel Summary: Automatically Tuned Linear Algebra Software (the BLAS library) Group: Development/Other Requires: libatlas = %version-%release %description -n libatlas-devel The ATLAS (Automatically Tuned Linear Algebra Software) project is an ongoing research effort focusing on applying empirical techniques in order to provide portable performance. At present, it provides C and Fortran77 interfaces to a portably efficient BLAS implementation, as well as a few routines from LAPACK. %files -n libatlas-devel %_libdir/*.so %_includedir/cblas.h %_includedir/clapack.h %dir %_includedir/atlas %_includedir/atlas/*.h %package -n libatlas-devel-static Summary: Automatically Tuned Linear Algebra Software (the BLAS library) Group: Development/Other Requires: libatlas-devel = %version-%release Requires: libgfortran-devel-static %description -n libatlas-devel-static The ATLAS (Automatically Tuned Linear Algebra Software) project is an ongoing research effort focusing on applying empirical techniques in order to provide portable performance. At present, it provides C and Fortran77 interfaces to a portably efficient BLAS implementation, as well as a few routines from LAPACK. %files -n libatlas-devel-static %_libdir/lib*.a %exclude %_libdir/libtstatlas.a %package doc Summary: Automatically Tuned Linear Algebra Software (the BLAS library) Group: Development/Other Requires: libatlas = %version-%release %description doc The ATLAS (Automatically Tuned Linear Algebra Software) project is an ongoing research effort focusing on applying empirical techniques in order to provide portable performance. At present, it provides C and Fortran77 interfaces to a portably efficient BLAS implementation, as well as a few routines from LAPACK. %files doc %dir %pkgdocdir %pkgdocdir/*.ps.gz %changelog * Mon Oct 29 2007 Alexey Tourbin <at@altlinux.ru> 3.7.11-alt5 - packaged static libraries (requested by Pavel A. Piminov); use e.g. "g77 -static test.f -lblas" for static linkage - changed src.rpm packaging to keep separate upstream tarball * Tue Jan 09 2007 Alexey Tourbin <at@altlinux.ru> 3.7.11-alt4 - backported bugfix for "complex C = A A' bug" - backported fix for ilaenv.f which improves LAPACK performance * Sun Dec 10 2006 Alexey Tourbin <at@altlinux.ru> 3.7.11-alt3 - compiled with -mfpmath=387 to fix LAPACK test suite on x86_64 - actually packaged README.ALT * Fri Dec 08 2006 Alexey Tourbin <at@altlinux.ru> 3.7.11-alt2 - imported sources into git and built with gear - removed PRM_OPT_FLAGS hack that broke SSE2 - enabled /usr/lib/sse2/libatlas.so.3 for i586 - libatlas.so.3, libblas.so.3: made some internal functions hidden - packaged docs (atlas-doc package has postscript documentation) - added README.ALT, which explains some performance issues * Tue Jun 06 2006 Alexey Tourbin <at@altlinux.ru> 3.7.11-alt1 - initial revision, with debian fixes - PII-optimized BLAS (for i586) yields three-fold improvement over plain fortran BLAS (matrix cross-product in R) - SSE2-optimized /usr/lib/sse2/libatlas.so disabled by default because of segfaults (try to rebuild `--with sse2' and let me know) - HAMMER64SSE2 for x86_64