From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1QpWMm-00076t-NH for garchives@archives.gentoo.org; Sat, 06 Aug 2011 02:12:00 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 1867721C089; Sat, 6 Aug 2011 02:11:49 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id C790121C089 for ; Sat, 6 Aug 2011 02:11:48 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 1023F1B4022 for ; Sat, 6 Aug 2011 02:11:48 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id 610F080040 for ; Sat, 6 Aug 2011 02:11:47 +0000 (UTC) From: "Andrea Arteaga" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Andrea Arteaga" Message-ID: <011428971f6477077fd800adc133d9720710fbd6.spiros@gentoo> Subject: [gentoo-commits] proj/sci:master commit in: sci-libs/atlas/ X-VCS-Repository: proj/sci X-VCS-Files: sci-libs/atlas/ChangeLog sci-libs/atlas/atlas-3.8.4.ebuild X-VCS-Directories: sci-libs/atlas/ X-VCS-Committer: spiros X-VCS-Committer-Name: Andrea Arteaga X-VCS-Revision: 011428971f6477077fd800adc133d9720710fbd6 Date: Sat, 6 Aug 2011 02:11:47 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: X-Archives-Hash: 546c6c8ec29e928c36bb75f01b569c63 commit: 011428971f6477077fd800adc133d9720710fbd6 Author: Andrea Arteaga gmail com> AuthorDate: Sat Aug 6 02:10:59 2011 +0000 Commit: Andrea Arteaga gmail com> CommitDate: Sat Aug 6 02:10:59 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/sci.git;a=3Dc= ommit;h=3D01142897 Restored atlas-3.8.4 from bicatali. --- sci-libs/atlas/ChangeLog | 5 + sci-libs/atlas/atlas-3.8.4.ebuild | 281 +++++++++++++++++++++++++++++++= ++++++ 2 files changed, 286 insertions(+), 0 deletions(-) diff --git a/sci-libs/atlas/ChangeLog b/sci-libs/atlas/ChangeLog index a73d972..88c9d4c 100644 --- a/sci-libs/atlas/ChangeLog +++ b/sci-libs/atlas/ChangeLog @@ -2,6 +2,11 @@ # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 # $Header: $ =20 +*atlas-3.8.4 (06 Aug 2011) + + 06 Aug 2011; Andrea Arteaga +atlas-3.8.4.ebuild= : + Version 3.8.4 restored + *atlas-3.9.47 (06 Aug 2011) =20 06 Aug 2011; Andrea Arteaga atlas-3.9.47.ebuild= : diff --git a/sci-libs/atlas/atlas-3.8.4.ebuild b/sci-libs/atlas/atlas-3.8= .4.ebuild new file mode 100644 index 0000000..8a54ce9 --- /dev/null +++ b/sci-libs/atlas/atlas-3.8.4.ebuild @@ -0,0 +1,281 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=3D4 +inherit eutils toolchain-funcs versionator alternatives-2 + +LAPACKP=3Dlapack-3.3.1 + +DESCRIPTION=3D"Automatically Tuned Linear Algebra Software" +HOMEPAGE=3D"http://math-atlas.sourceforge.net/" +SRC_URI=3D"mirror://sourceforge/math-atlas/${PN}${PV}.tar.bz2 + fortran? ( lapack? ( http://www.netlib.org/lapack/${LAPACKP}.tgz ) )" + +LICENSE=3D"BSD" +SLOT=3D"0" +KEYWORDS=3D"~amd64 ~x86 " +IUSE=3D"fortran doc lapack static-libs threads" + +RDEPEND=3D"fortran? ( virtual/fortran )" +DEPEND=3D"${RDEPEND} + !prefix? ( sys-power/cpufrequtils )" + +S=3D"${WORKDIR}/ATLAS" + +lapack_compile() { + cd "${WORKDIR}/${LAPACKP}" + local timer=3DINT_CPU_TIME + case $(tc-getFC) in + *gfortran|*g77) timer=3DINT_ETIME ;; + *ifort) timer=3DEXT_ETIME ;; + esac + cat > make.inc <<-EOF + FORTRAN =3D $(tc-getFC) + OPTS =3D ${FFLAGS} + NOOPT =3D -O0 + LOADER =3D $(tc-getFC) + LOADEROPTS =3D ${LDFLAGS} + ARCH =3D $(tc-getAR) + ARCHFLAGS =3D cr + RANLIB =3D $(tc-getRANLIB) + TIMER =3D ${timer} + EOF + if use static-libs; then + emake \ + LAPACKLIB=3Dliblapack_nonpic.a \ + lapacklib || die "lapack static compilation failed" + emake clean + fi + emake \ + LAPACKLIB=3Dliblapack_pic.a \ + OPTS=3D"${FFLAGS} -fPIC" \ + NOOPT=3D"-O0 -fPIC" \ + lapacklib || die "lapack pic compilation failed" +} + +atlas_configure() { + local mycc=3D"$(tc-getCC)" + # http://sourceforge.net/tracker/?func=3Ddetail&aid=3D3301697&group_id=3D= 23725&atid=3D379483 + [[ ${mycc} =3D=3D *gcc* ]] && mycc=3Dgcc + local myconf=3D( + "--prefix=3D${ED}/usr" + "--libdir=3D${ED}/usr/$(get_libdir)" + "--incdir=3D${ED}/usr/include" + "--cc=3D${mycc}" + "-C ac ${mycc}" + "-D c -DWALL" + "-F ac '${CFLAGS}'" + "-Ss pmake '\$(MAKE) ${MAKEOPTS}'" + ) + + if use threads; then + myconf+=3D( "-t -1" ) + else + myconf+=3D( "-t 0" ) + fi + + if use amd64 || use ppc64 || use sparc; then + if [ ${ABI} =3D amd64 ] || [ ${ABI} =3D ppc64 ] || [ ${ABI} =3D sparc6= 4 ] ; then + myconf+=3D( "-b 64" ) + elif [ ${ABI} =3D x86 ] || [ ${ABI} =3D ppc ] || [ ${ABI} =3D sparc32 = ] ; then + myconf+=3D( "-b 32" ) + else + myconf+=3D( "-b 64" ) + fi + elif use ppc || use x86; then + myconf+=3D( "-b 32" ) + elif use ia64; then + myconf+=3D( "-b 64" ) + else #hppa alpha ... + myconf+=3D( "" ) + fi + if use fortran; then + myconf+=3D( + "-Si nof77 0" + "-C if $(tc-getFC)" + "-F if '${FFLAGS}'" + ) + use lapack && myconf+=3D( "--with-netlib-lapack=3D${LAPACKLIB}" ) + else + myconf+=3D( "-Si nof77 1" ) + fi + local confdir=3D"${S}_${1}"; shift + myconf+=3D( $@ ) + mkdir "${confdir}" && cd "${confdir}" + "${S}"/configure ${myconf[@]} || die "configure in ${confdir} failed" +} + +atlas_compile() { + pushd "${S}_${1}" > /dev/null + # atlas does its own parallel builds + emake -j1 build + cd lib + emake libclapack.a + popd > /dev/null +} + +# transform a static archive into a shared library and install them +# atlas_install_libs [extra link flags] +atlas_install_libs() { + local libname=3D$(basename ${1%.*}) + einfo "Installing ${libname}" + local soname=3D${libname}.so.$(get_major_version) + shift + pushd "${S}_shared"/lib > /dev/null + ${LINK:-$(tc-getCC)} ${LDFLAGS} -shared -Wl,-soname=3D${soname} \ + -Wl,--whole-archive ${libname}.a -Wl,--no-whole-archive \ + "$@" -o ${soname} || die "Creating ${soname} failed" + dolib.so ${soname} + ln -s ${soname} ${soname%.*} + dosym ${soname} /usr/$(get_libdir)/${soname%.*} + popd > /dev/null + use static-libs && dolib.a "${S}_static"/lib/${libname}.a +} + +# create and install a pkgconfig file +# atlas_install_pc [extra link flags] +atlas_install_pc() { + local libname=3D${1} ; shift + local pcname=3D${1} ; shift + cat <<-EOF > ${pcname}.pc + prefix=3D${EPREFIX}/usr + libdir=3D\${prefix}/$(get_libdir) + includedir=3D\${prefix}/include + Name: ${pcname} + Description: ${PN} ${pcname} + Version: ${PV} + URL: ${HOMEPAGE} + Libs: -L\${libdir} -l${libname} $@ + Cflags: -I\${includedir}/${PN} + ${PCREQ} + EOF + insinto /usr/$(get_libdir)/pkgconfig + doins ${pcname}.pc +} + +pkg_setup() { + if [[ -n $(type -P cpufreq-info) ]]; then + [[ -z $(cpufreq-info -d) ]] && return + local ncpu=3D$(LANG=3DC cpufreq-info | grep -c "analyzing CPU") + local cpu=3D0 + while [[ ${cpu} -lt ${ncpu} ]]; do + if ! $(LANG=3DC cpufreq-info -p -c ${cpu} | grep -q performance); the= n + ewarn "CPU $cpu is not set to performance" + ewarn "Run cpufreq-set -r -g performance as root" + fi + cpu=3D$(( cpu + 1 )) + done + else + ewarn "Please make sure to disable CPU throttling completely" + ewarn "during the compile of ${PN}. Otherwise, all ${PN}" + ewarn "generated timings will be completely random and the" + ewarn "performance of the resulting libraries will be degraded" + ewarn "considerably." + fi +} + +src_prepare() { + epatch "${FILESDIR}"/3.9.39-bfr-overflow.patch +} + +src_configure() { + if use fortran && use lapack; then + lapack_compile + LAPACKLIB=3D"${WORKDIR}/${LAPACKP}/liblapack_pic.a" + fi + atlas_configure shared "-Fa alg -fPIC" + if use static-libs; then + use fortran && use lapack && \ + LAPACKLIB=3D"${WORKDIR}/${LAPACKP}/liblapack_nonpic.a" + atlas_configure static + fi +} + +src_compile() { + atlas_compile shared + use static-libs && atlas_compile static +} + +src_test() { + cd "${S}_shared" + emake -j1 check + emake -j1 time +} + +src_install() { + cd "${S}_shared/lib" + # rename to avoid collision with other packages + local l + for l in {,c}{blas,lapack}; do + if [[ -e lib${l}.a ]]; then + mv lib{,atl}${l}.a + use static-libs && mv "${S}"_static/lib/lib{,atl}${l}.a + fi + done + + [[ -e libptcblas.a ]] && PTLIBS=3D"-lpthread" + + # atlas + atlas_install_libs libatlas.a -lm ${PTLIBS} + + # cblas + atlas_install_libs libatlcblas.a -lm -L. -latlas + atlas_install_pc atlcblas atlas-cblas -lm -latlas + alternatives_for cblas atlas 0 \ + /usr/$(get_libdir)/pkgconfig/cblas.pc atlas-cblas.pc \ + /usr/include/cblas.h atlas/cblas.h + + # cblas threaded + if [[ -e libptcblas.a ]]; then + atlas_install_libs libptcblas.a -lm -L. -latlas ${PTLIBS} + atlas_install_pc ptcblas atlas-cblas-threads -lm -latlas ${PTLIBS} + alternatives_for cblas atlas-threads 0 \ + /usr/$(get_libdir)/pkgconfig/cblas.pc atlas-cblas-threads.pc \ + /usr/include/cblas.h atlas/cblas.h + fi + + if use lapack; then + PCREQ=3D"Requires: cblas" + # clapack + atlas_install_libs libatlclapack.a -lm -L. -latlas -latlcblas + atlas_install_pc atlclapack atlas-clapack -lm -latlas + fi + + if use fortran; then + LINK=3D$(tc-getF77) PCREQ=3D + # blas + atlas_install_libs libf77blas.a -lm -L. -latlas + atlas_install_pc f77blas atlas-blas -lm -latlas + alternatives_for blas atlas 0 \ + /usr/$(get_libdir)/pkgconfig/blas.pc atlas-blas.pc + + # blas threaded + if [[ -e libptf77blas.a ]]; then + atlas_install_libs libptf77blas.a -lm -L. -latlas ${PTLIBS} + atlas_install_pc ptf77blas atlas-blas-threads -lm -latlas ${PTLIBS} + alternatives_for blas atlas-threads 0 \ + /usr/$(get_libdir)/pkgconfig/blas.pc atlas-blas-threads.pc + fi + + if use lapack; then + PCREQ=3D"Requires: blas cblas" + # lapack + atlas_install_libs libatllapack.a \ + -lm -L. -latlas -latlcblas -lf77blas + atlas_install_pc atllapack atlas-lapack -lm -latlas + alternatives_for lapack atlas 0 \ + /usr/$(get_libdir)/pkgconfig/lapack.pc atlas-lapack.pc + fi + fi + + cd "${S}" + insinto /usr/include/${PN} + doins include/*.h + + cd "${S}/doc" + dodoc INDEX.txt AtlasCredits.txt ChangeLog + use doc && dodoc atlas*pdf cblas.pdf cblasqref.pdf + use doc && use fortran && dodoc f77blas*pdf + use doc && use fortran && use lapack && dodoc lapack*pdf +}