From: "Andrea Arteaga" <andyspiros@gmail.com>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/sci:master commit in: sci-libs/atlas/
Date: Sat, 6 Aug 2011 00:25:29 +0000 (UTC) [thread overview]
Message-ID: <9f5c0b76d0735f8d1874bcd3b6f736af67c54af0.spiros@gentoo> (raw)
commit: 9f5c0b76d0735f8d1874bcd3b6f736af67c54af0
Author: Andrea Arteaga <andyspiros <AT> gmail <DOT> com>
AuthorDate: Sat Aug 6 00:24:55 2011 +0000
Commit: Andrea Arteaga <andyspiros <AT> gmail <DOT> com>
CommitDate: Sat Aug 6 00:24:55 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=9f5c0b76
Version bump atlas
---
sci-libs/atlas/ChangeLog | 5 +
sci-libs/atlas/atlas-3.9.47.ebuild | 267 ++++++++++++++++++++++++++++++++++++
2 files changed, 272 insertions(+), 0 deletions(-)
diff --git a/sci-libs/atlas/ChangeLog b/sci-libs/atlas/ChangeLog
index bf4e5d4..a73d972 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: $
+*atlas-3.9.47 (06 Aug 2011)
+
+ 06 Aug 2011; Andrea Arteaga <andyspiros@gmail.com> atlas-3.9.47.ebuild:
+ Version bump
+
*atlas-3.9.46 (03 Aug 2011)
03 Aug 2011; Andrea Arteaga <andyspiros@gmail.com> -atlas-3.8.4.ebuild,
diff --git a/sci-libs/atlas/atlas-3.9.47.ebuild b/sci-libs/atlas/atlas-3.9.47.ebuild
new file mode 100644
index 0000000..78104f3
--- /dev/null
+++ b/sci-libs/atlas/atlas-3.9.47.ebuild
@@ -0,0 +1,267 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=4
+inherit eutils toolchain-funcs versionator alternatives-2
+
+LAPACKP=lapack-3.3.1
+
+DESCRIPTION="Automatically Tuned Linear Algebra Software"
+HOMEPAGE="http://math-atlas.sourceforge.net/"
+SRC_URI="mirror://sourceforge/math-atlas/${PN}${PV}.tar.bz2
+ fortran? ( lapack? ( http://www.netlib.org/lapack/${LAPACKP}.tgz ) )"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 "
+IUSE="fortran doc lapack static-libs threads"
+
+RDEPEND="fortran? ( virtual/fortran )"
+DEPEND="${RDEPEND}
+ !prefix? ( sys-power/cpufrequtils )"
+
+S="${WORKDIR}/ATLAS"
+
+atlas_configure() {
+ local mycc="$(tc-getCC)"
+ # http://sourceforge.net/tracker/?func=detail&aid=3301697&group_id=23725&atid=379483
+ [[ ${mycc} == *gcc* ]] && mycc=gcc
+ local myconf=(
+ "--prefix=${ED}/usr"
+ "--libdir=${ED}/usr/$(get_libdir)"
+ "--incdir=${ED}/usr/include"
+ "--cc=${mycc}"
+ "-C ac ${mycc}"
+ "-D c -DWALL"
+ "-F ac '${CFLAGS}'"
+ "-Ss pmake '\$(MAKE) ${MAKEOPTS}'"
+ )
+
+ # OpenMP shown to decreased performance over POSIX threads
+ # (at least in 3.9.39, see atlas-dev mailing list)
+ if use threads; then
+ myconf+=( "-t -1" "-Si omp 0" )
+ else
+ myconf+=( "-t 0" "-Si omp 0" )
+ fi
+
+ if use amd64 || use ppc64 || use sparc; then
+ if [ ${ABI} = amd64 ] || [ ${ABI} = ppc64 ] || [ ${ABI} = sparc64 ] ; then
+ myconf+=( "-b 64" )
+ elif [ ${ABI} = x86 ] || [ ${ABI} = ppc ] || [ ${ABI} = sparc32 ] ; then
+ myconf+=( "-b 32" )
+ else
+ myconf+=( "-b 64" )
+ fi
+ elif use ppc || use x86; then
+ myconf+=( "-b 32" )
+ elif use ia64; then
+ myconf+=( "-b 64" )
+ else #hppa alpha ...
+ myconf+=( "" )
+ fi
+ if use fortran; then
+ myconf+=(
+ "-C if $(tc-getFC)"
+ "-F if '${FFLAGS}'"
+ )
+ if use lapack; then
+ myconf+=(
+ "-Si latune 1"
+ "--with-netlib-lapack-tarfile=${DISTDIR}/${LAPACKP}.tgz"
+ )
+ else
+ myconf+=( "-Si latune 0" )
+ fi
+ else
+ myconf+=( "-Si latune 0" "--nof77" )
+ fi
+ local confdir="${S}_${1}"; shift
+ myconf+=( $@ )
+ 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
+ [[ -e libptcblas.a ]] && emake libptclapack.a
+ popd > /dev/null
+}
+
+# transform a static archive into a shared library and install them
+# atlas_install_libs <mylib.a> [extra link flags]
+atlas_install_libs() {
+ local libname=$(basename ${1%.*})
+ einfo "Installing ${libname}"
+ local soname=${libname}.so.$(get_major_version)
+ shift
+ pushd "${S}_shared"/lib > /dev/null
+ ${LINK:-$(tc-getCC)} ${LDFLAGS} -shared -Wl,-soname=${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 <libname> <pkg name> [extra link flags]
+atlas_install_pc() {
+ local libname=${1} ; shift
+ local pcname=${1} ; shift
+ cat <<-EOF > ${pcname}.pc
+ prefix=${EPREFIX}/usr
+ libdir=\${prefix}/$(get_libdir)
+ includedir=\${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=$(LANG=C cpufreq-info | grep -c "analyzing CPU")
+ local cpu=0
+ while [[ ${cpu} -lt ${ncpu} ]]; do
+ if ! $(LANG=C cpufreq-info -p -c ${cpu} | grep -q performance); then
+ ewarn "CPU $cpu is not set to performance"
+ ewarn "Run cpufreq-set -r -g performance as root"
+ die "${PN} needs all cpu set to performance"
+ fi
+ cpu=$(( 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() {
+ atlas_configure shared "-Fa alg -fPIC"
+ use static-libs && atlas_configure static
+}
+
+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="-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="Requires: cblas"
+ # clapack
+ atlas_install_libs libatlclapack.a -lm -L. -latlas -latlcblas
+ atlas_install_pc atlclapack atlas-clapack -lm -latlas
+
+ # clapack threaded
+ if [[ -e libptclapack.a ]]; then
+ atlas_install_libs libptclapack.a -lm -L. -latlas -lptcblas ${PTLIBS}
+ atlas_install_pc ptclapack atlas-clapack-threads -lm -latlas ${PTLIBS}
+ fi
+ fi
+
+ if use fortran; then
+ LINK=$(tc-getF77) PCREQ=
+ # 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="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
+ # lapack threaded
+ if [[ -e libptlapack.a ]]; then
+ atlas_install_libs libptlapack.a \
+ -lm -L. -latlas -lptcblas -lptf77blas ${PTLIBS}
+ atlas_install_pc ptlapack atlas-lapack-threads \
+ -lm -latlas ${PTLIBS}
+ alternatives_for lapack atlas-threads 0 \
+ /usr/$(get_libdir)/pkgconfig/lapack.pc atlas-lapack-threads.pc
+ fi
+ 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
+}
next reply other threads:[~2011-08-06 0:25 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-06 0:25 Andrea Arteaga [this message]
-- strict thread matches above, loose matches on Subject: below --
2011-08-06 2:11 [gentoo-commits] proj/sci:master commit in: sci-libs/atlas/ Andrea Arteaga
2011-08-06 14:00 Alexey Shvetsov
2011-08-15 17:18 Kacper Kowalik
2011-09-06 9:35 Andrea Arteaga
2011-10-12 15:29 Andrea Arteaga
2012-02-16 4:26 Sebastien Fabbro
2012-02-20 23:21 Sebastien Fabbro
2012-02-23 19:05 Sebastien Fabbro
2012-03-16 21:41 Sebastien Fabbro
2012-03-25 0:32 Andrea Arteaga
2012-05-07 15:09 Andrea Arteaga
2012-06-07 16:35 Sebastien Fabbro
2012-06-18 22:01 Sebastien Fabbro
2012-06-26 22:27 Sebastien Fabbro
2012-07-10 21:28 Sebastien Fabbro
2013-01-28 22:51 Sebastien Fabbro
2013-02-20 19:09 Sebastien Fabbro
2013-02-25 1:20 Sebastien Fabbro
2013-05-23 5:13 Sebastien Fabbro
2013-10-13 14:39 Justin Lecher
2013-10-14 9:38 Justin Lecher
2014-01-28 19:01 Sebastien Fabbro
2014-02-02 17:01 Reinis Danne
2015-12-05 13:32 Justin Lecher
2015-12-08 15:25 Justin Lecher
2015-12-14 11:39 Justin Lecher
2016-01-03 10:33 Alexey Shvetsov
2016-09-07 13:15 Marius Brehler
2016-12-02 9:06 Marius Brehler
2017-02-03 10:25 Marius Brehler
2017-06-26 20:35 Justin Lecher
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9f5c0b76d0735f8d1874bcd3b6f736af67c54af0.spiros@gentoo \
--to=andyspiros@gmail.com \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox