aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSébastien Fabbro <sebfabbro@gmail.com>2011-08-22 20:01:59 +0100
committerSébastien Fabbro <sebfabbro@gmail.com>2011-08-22 20:01:59 +0100
commitbe1a2fd0c77f5919dcadfc60b3f85d19d869a5d0 (patch)
tree36f3553c1d36c6f93c0c2097ad784b038d800c8d /sci-libs/mpiblacs
parentadded xblas (diff)
downloadsci-be1a2fd0c77f5919dcadfc60b3f85d19d869a5d0.tar.gz
sci-be1a2fd0c77f5919dcadfc60b3f85d19d869a5d0.tar.bz2
sci-be1a2fd0c77f5919dcadfc60b3f85d19d869a5d0.zip
added mpiblacs
Diffstat (limited to 'sci-libs/mpiblacs')
-rw-r--r--sci-libs/mpiblacs/ChangeLog21
-rw-r--r--sci-libs/mpiblacs/Manifest6
-rw-r--r--sci-libs/mpiblacs/metadata.xml12
-rw-r--r--sci-libs/mpiblacs/mpiblacs-1.1.ebuild111
4 files changed, 150 insertions, 0 deletions
diff --git a/sci-libs/mpiblacs/ChangeLog b/sci-libs/mpiblacs/ChangeLog
new file mode 100644
index 000000000..0d9c79081
--- /dev/null
+++ b/sci-libs/mpiblacs/ChangeLog
@@ -0,0 +1,21 @@
+# ChangeLog for sci-libs/mpiblacs
+# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
+# $Header: $
+
+ 22 Aug 2011; Sébastien Fabbro <bicatali@gentoo.org> +mpiblacs-1.1.ebuild,
+ +metadata.xml:
+ Imported from bicatali overlay
+
+ 01 Jun 2011; Sébastien Fabbro <bicatali@gentoo.org> mpiblacs-1.1.ebuild:
+ Switched to EAPI4. Create a static include makefile with big sed. Fixed
+ linking.
+
+ 23 Feb 2011; Sébastien Fabbro <bicatali@gentoo.org> mpiblacs-1.1.ebuild:
+ Switched to alternatives-2 framework
+
+*mpiblacs-1.1 (06 Dec 2010)
+
+ 06 Dec 2010; Sébastien Fabbro <bicatali@gentoo.org> +mpiblacs-1.1.ebuild,
+ +metadata.xml:
+ Initial import
+
diff --git a/sci-libs/mpiblacs/Manifest b/sci-libs/mpiblacs/Manifest
new file mode 100644
index 000000000..f5596ca38
--- /dev/null
+++ b/sci-libs/mpiblacs/Manifest
@@ -0,0 +1,6 @@
+DIST blacstester.tgz 81937 RMD160 bfee4918d04f6577ea021bc466cd16d6d007ac1d SHA1 d85ebb1cb2bad051242609504d27773e54c4ae00 SHA256 7e5a67b703f74f05435055dd314a7196007d9a273e6bb46058a19be71d3ba197
+DIST mpiblacs-patch03.tgz 30505 RMD160 582cd4d13bda97edefedc0e67b1ab5d00c7024f2 SHA1 d3f136b07df2b208a11c96fa55e39030e4702b39 SHA256 92dfba8a462a2f23102000a10532c00a9a5203b79ccad5a87f44ce83eb6bc7ed
+DIST mpiblacs.tgz 152823 RMD160 bac03b82dc7f1daef632ca6869f077f64c18ad8e SHA1 b9503a2fddd4136a2b7ce3f5a9cd97dd5ec0d6b6 SHA256 88dd7265d412022948debb7a2737226cd53a3bf73b0b62fc55ceb3ccc8a598f7
+EBUILD mpiblacs-1.1.ebuild 3089 RMD160 855c120935fe584a5bb1f8fcc3bc9c39e095dee2 SHA1 a83b058f9b75f8b672b3be37d5ef00c0a3bd65ca SHA256 b8118abf5c1e8c8675746e290d7fb0a1752636fa1f9e3667b63d1e2d9fddbbc4
+MISC ChangeLog 665 RMD160 05d141299da3608644c540daa0c707560ff45f51 SHA1 8fa63d98ed9f38bd9cb2f79562f2c223e69fb3ab SHA256 55e3d22aa9f1b03ce9ef1705a8dbcc0fba0d2d7900c320d00b3c6b81907779ac
+MISC metadata.xml 491 RMD160 642fdba0aaec7ab2f26183b0b2c3a9a86dbc826c SHA1 6012e8c37ec9f077437f9dcebc0841e19a2746e6 SHA256 92e3b64a3520d1adfdc948c5fb823c1c5e2d1d8af5b6fce6ab05535de52bbf49
diff --git a/sci-libs/mpiblacs/metadata.xml b/sci-libs/mpiblacs/metadata.xml
new file mode 100644
index 000000000..6c41f800e
--- /dev/null
+++ b/sci-libs/mpiblacs/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci</herd>
+<longdescription lang="en">
+ The BLACS (Basic Linear Algebra Communication Subprograms)
+ project is an ongoing investigation whose purpose is to create
+ a linear algebra oriented message passing interface
+ that may be implemented efficiently and uniformly across
+ a large range of distributed memory platforms.
+</longdescription>
+</pkgmetadata>
diff --git a/sci-libs/mpiblacs/mpiblacs-1.1.ebuild b/sci-libs/mpiblacs/mpiblacs-1.1.ebuild
new file mode 100644
index 000000000..d1f45e155
--- /dev/null
+++ b/sci-libs/mpiblacs/mpiblacs-1.1.ebuild
@@ -0,0 +1,111 @@
+# 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
+
+DESCRIPTION="Basic Linear Algebra Communication Subprograms with MPI"
+HOMEPAGE="http://www.netlib.org/blacs/"
+SRC_URI="${HOMEPAGE}/${PN}.tgz
+ ${HOMEPAGE}/${PN}-patch03.tgz
+ test? ( ${HOMEPAGE}/blacstester.tgz )"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="static-libs test"
+
+RDEPEND="virtual/mpi[fortran]
+ virtual/blas"
+DEPEND="${RDEPEND}
+ dev-util/pkgconfig"
+
+S="${WORKDIR}/BLACS"
+
+make_shared_lib() {
+ local libstatic=${1}
+ local soname=$(basename "${1%.a}").so.$(get_major_version)
+ shift
+ einfo "Making ${soname}"
+ ${LINK:-$(tc-getCC)} ${LDFLAGS} \
+ -shared -Wl,-soname="${soname}" \
+ -Wl,--whole-archive "${libstatic}" -Wl,--no-whole-archive \
+ "$@" -o $(dirname "${libstatic}")/"${soname}" || die "${soname} failed"
+ ln -s "${soname}" $(dirname "${libstatic}")/"${soname%.*}"
+}
+
+src_prepare() {
+ find . -name Makefile -exec sed -i -e 's:make:$(MAKE):g' '{}' \;
+
+ sed -e "s:\(SHELL\s*=\).*:\1$(type -P sh):" \
+ -e "s:\(BTOPdir\s*=\).*:\1${S}:" \
+ -e "s:\(BLACSFINIT\s*=\).*:\1\$(BLACSdir)/lib${PN}F77init.a:" \
+ -e "s:\(BLACSCINIT\s*=\).*:\1\$(BLACSdir)/lib${PN}Cinit.a:" \
+ -e "s:\(BLACSLIB\s*=\).*:\1\$(BLACSdir)/lib${PN}.a:" \
+ -e "s:\(MPIINCdir\s*=\).*:\1${EPREFIX}/usr/include:" \
+ -e "s:\(MPILIB\s*=\).*:\1:" \
+ -e '/SYSINC.*=/d' \
+ -e 's:\(INTFACE\s*=\).*:\1-DAdd_:' \
+ -e 's:\(TRANSCOMM\s*=\).*:\1-DUseMpi2:' \
+ -e "s:\(F77\s*=\).*:\1mpif77:" \
+ -e "s:\(F77NO_OPTFLAGS\s*=\).*:\1-O0:" \
+ -e "s:\(F77FLAGS\s*=\).*:\1${FFLAGS}:" \
+ -e "s:\(F77LOADFLAGS\s*=\).*:\1${LDFLAGS}:" \
+ -e "s:\(CC\s*=\).*:\1mpicc:" \
+ -e "s:\(CCFLAGS\s*=\).*:\1${CFLAGS}:" \
+ -e "s:\(CCLOADFLAGS\s*=\).*:\1${LDFLAGS}:" \
+ -e "s:\(ARCH\s*=\).*:\1$(tc-getAR):" \
+ -e "s:\(RANLIB\s*=\).*:\1$(tc-getRANLIB):" \
+ BMAKES/Bmake.MPI-LINUX > Bmake.inc || die
+}
+
+src_compile() {
+ emake \
+ F77NO_OPTFLAGS="-O0 -fPIC" \
+ F77FLAGS="${FFLAGS} -fPIC" \
+ CCFLAGS="${CFLAGS} -fPIC" \
+ mpi
+ cd LIB
+ LINK=mpif77 make_shared_lib lib${PN}.a
+ LINK=mpicc make_shared_lib lib${PN}Cinit.a -L. -l${PN}
+ LINK=mpif77 make_shared_lib lib${PN}F77init.a -L. -l${PN}
+ cd "${S}"
+ if use static-libs; then
+ emake clean -C SRC/MPI && rm -f LIB/*.a
+ emake mpi
+ fi
+}
+
+src_test() {
+ emake tester
+ cd TESTING/EXE
+ local x
+ # do not die because we are expecting an abort
+ for x in ./x*; do
+ mpirun -np 4 $x 2>&1 | tee $x.log
+ grep -q "\*\*\*" $x.log && die "$x failed"
+ done
+}
+
+src_install() {
+ cd LIB
+ dolib.so lib*.so*
+ use static-libs && dolib.a lib*.a
+ cat <<-EOF > ${PN}.pc
+ prefix=${EPREFIX}/usr
+ libdir=\${prefix}/$(get_libdir)
+ includedir=\${prefix}/include
+ Name: ${PN}
+ Description: ${DESCRIPTION}
+ Version: ${PV}
+ URL: ${HOMEPAGE}
+ Libs: -L\${libdir} -l${PN} -l${PN}Cinit -l${PN}F77init -lm
+ Cflags: -I\${includedir}/${PN}
+ Requires: blas
+ EOF
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins ${PN}.pc || die
+ alternatives_for blacs ${PN} 0 \
+ "/usr/$(get_libdir)/pkgconfig/blacs.pc" "${PN}.pc"
+}