public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Andrea Arteaga" <andyspiros@gmail.com>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/sci:master commit in: sci-libs/atlas/
Date: Wed, 12 Oct 2011 15:29:24 +0000 (UTC)	[thread overview]
Message-ID: <e80638bc9d7a8eff77319fc0e5dcbbf1cff0fbe7.spiros@gentoo> (raw)

commit:     e80638bc9d7a8eff77319fc0e5dcbbf1cff0fbe7
Author:     Andrea Arteaga <andyspiros <AT> gmail <DOT> com>
AuthorDate: Wed Oct 12 15:25:55 2011 +0000
Commit:     Andrea Arteaga <andyspiros <AT> gmail <DOT> com>
CommitDate: Wed Oct 12 15:25:55 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=e80638bc

[sci-libs/atlas] Version bump

---
 sci-libs/atlas/ChangeLog           |    5 +
 sci-libs/atlas/atlas-3.9.52.ebuild |  267 ++++++++++++++++++++++++++++++++++++
 2 files changed, 272 insertions(+), 0 deletions(-)

diff --git a/sci-libs/atlas/ChangeLog b/sci-libs/atlas/ChangeLog
index 34bee8c..ad02b93 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.52 (12 Oct 2001)
+
+  12 Oct 2011; Andrea Arteaga <andyspiros@gmail.com> +atlas-3.9.52.ebuild:
+  Version bump
+
 *atlas-3.9.49 (06 Sep 2001)
 
   06 Sep 2011; Andrea Arteaga <andyspiros@gmail.com> +atlas-3.9.49.ebuild:

diff --git a/sci-libs/atlas/atlas-3.9.52.ebuild b/sci-libs/atlas/atlas-3.9.52.ebuild
new file mode 100644
index 0000000..86157c9
--- /dev/null
+++ b/sci-libs/atlas/atlas-3.9.52.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 ~amd64-linux"
+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
+}



             reply	other threads:[~2011-10-12 15:29 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-12 15:29 Andrea Arteaga [this message]
  -- strict thread matches above, loose matches on Subject: below --
2017-06-26 20:35 [gentoo-commits] proj/sci:master commit in: sci-libs/atlas/ Justin Lecher
2017-02-03 10:25 Marius Brehler
2016-12-02  9:06 Marius Brehler
2016-09-07 13:15 Marius Brehler
2016-01-03 10:33 Alexey Shvetsov
2015-12-14 11:39 Justin Lecher
2015-12-08 15:25 Justin Lecher
2015-12-05 13:32 Justin Lecher
2014-02-02 17:01 Reinis Danne
2014-01-28 19:01 Sebastien Fabbro
2013-10-14  9:38 Justin Lecher
2013-10-13 14:39 Justin Lecher
2013-05-23  5:13 Sebastien Fabbro
2013-02-25  1:20 Sebastien Fabbro
2013-02-20 19:09 Sebastien Fabbro
2013-01-28 22:51 Sebastien Fabbro
2012-07-10 21:28 Sebastien Fabbro
2012-06-26 22:27 Sebastien Fabbro
2012-06-18 22:01 Sebastien Fabbro
2012-06-07 16:35 Sebastien Fabbro
2012-05-07 15:09 Andrea Arteaga
2012-03-25  0:32 Andrea Arteaga
2012-03-16 21:41 Sebastien Fabbro
2012-02-23 19:05 Sebastien Fabbro
2012-02-20 23:21 Sebastien Fabbro
2012-02-16  4:26 Sebastien Fabbro
2011-09-06  9:35 Andrea Arteaga
2011-08-15 17:18 Kacper Kowalik
2011-08-06 14:00 Alexey Shvetsov
2011-08-06  2:11 Andrea Arteaga
2011-08-06  0:25 Andrea Arteaga

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=e80638bc9d7a8eff77319fc0e5dcbbf1cff0fbe7.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