summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSébastien Fabbro <bicatali@gentoo.org>2011-06-01 06:52:18 +0100
committerSébastien Fabbro <bicatali@gentoo.org>2011-06-01 06:52:18 +0100
commit460735f5cda685055ef5a873c9325ec27fe98627 (patch)
tree69309200e7559c9e313198b78161c205319cb239
parentsyntax error in pc file (diff)
downloadbicatali-460735f5cda685055ef5a873c9325ec27fe98627.tar.gz
bicatali-460735f5cda685055ef5a873c9325ec27fe98627.tar.bz2
bicatali-460735f5cda685055ef5a873c9325ec27fe98627.zip
added mumps
-rw-r--r--sci-libs/mumps/ChangeLog10
-rw-r--r--sci-libs/mumps/Manifest4
-rw-r--r--sci-libs/mumps/metadata.xml13
-rw-r--r--sci-libs/mumps/mumps-4.10.0.ebuild136
4 files changed, 163 insertions, 0 deletions
diff --git a/sci-libs/mumps/ChangeLog b/sci-libs/mumps/ChangeLog
new file mode 100644
index 0000000..49906f6
--- /dev/null
+++ b/sci-libs/mumps/ChangeLog
@@ -0,0 +1,10 @@
+# ChangeLog for sci-libs/mumps
+# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
+# $Header: $
+
+*mumps-4.10.0 (01 Jun 2011)
+
+ 01 Jun 2011; Sébastien Fabbro <bicatali@gentoo.org> +mumps-4.10.0.ebuild,
+ +metadata.xml:
+ Initial import
+
diff --git a/sci-libs/mumps/Manifest b/sci-libs/mumps/Manifest
new file mode 100644
index 0000000..26ea77c
--- /dev/null
+++ b/sci-libs/mumps/Manifest
@@ -0,0 +1,4 @@
+DIST MUMPS_4.10.0.tar.gz 2481516 RMD160 19ae1f4773ab1643237f791085d9721932a618fc SHA1 904b1d816272d99f1f53913cbd4789a5be1838f7 SHA256 d0f86f91a74c51a17a2ff1be9c9cee2338976f13a6d00896ba5b43a5ca05d933
+EBUILD mumps-4.10.0.ebuild 3916 RMD160 548e678b07694d7b6700a5c4f5b3000d6eff4384 SHA1 331c64cd824ca69e0006de7c493cbdce36f67b5b SHA256 51a4df8dda86e81f2056293985d367e39e661389c4dc0b62c45e6edba0e07afb
+MISC ChangeLog 256 RMD160 4934775c75859634f7e502286e5f6c607ebd0c43 SHA1 3b8a5223cd6c7f1f293786a62156653efb194766 SHA256 95c92bfc19f31e1e498b62026b7f39570700efbbe791bdfe376dca85b20f9024
+MISC metadata.xml 550 RMD160 4d8730ab11dca7f0e70958c24413643d5fe6470c SHA1 e54d1d1c396292d36faa321e49d8adcc41fba07b SHA256 6283620deb195a65aaabb4dff6f3dfd05f0550ec6c108d497bdcbf4c6ea6765d
diff --git a/sci-libs/mumps/metadata.xml b/sci-libs/mumps/metadata.xml
new file mode 100644
index 0000000..e9804fe
--- /dev/null
+++ b/sci-libs/mumps/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci</herd>
+<longdescription lang='en'>
+ MUltifrontal Massively Parallel sparse direct Solver implements a
+ direct solver for large sparse linear systems, with a particular
+ focus on symmetric positive definite matrices. It can operate on
+ distributed matrices e.g. over a cluster. It has Fortran and C
+ interfaces, and can interface with ordering tools such
+ as Scotch or Metis.
+</longdescription>
+</pkgmetadata>
diff --git a/sci-libs/mumps/mumps-4.10.0.ebuild b/sci-libs/mumps/mumps-4.10.0.ebuild
new file mode 100644
index 0000000..59c2ae3
--- /dev/null
+++ b/sci-libs/mumps/mumps-4.10.0.ebuild
@@ -0,0 +1,136 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=4
+inherit eutils toolchain-funcs flag-o-matic
+
+MYP=MUMPS_${PV}
+
+DESCRIPTION="MUltifrontal Massively Parallel sparse direct matrix Solver"
+HOMEPAGE="http://mumps.enseeiht.fr/"
+SRC_URI="${HOMEPAGE}${MYP}.tar.gz"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples metis mpi +scotch static-libs"
+
+RDEPEND="virtual/blas
+ virtual/metis[mpi?]
+ scotch? ( sci-libs/scotch[mpi?] )
+ mpi? ( virtual/scalapack )"
+
+DEPEND="${RDEPEND}
+ dev-util/pkgconfig"
+
+S="${WORKDIR}/${MYP}"
+
+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"
+}
+
+src_prepare() {
+ sed -e "s:\(CC\s*=\).*:\1$(tc-getCC):" \
+ -e "s:\(FC\s*=\).*:\1$(tc-getFC):" \
+ -e "s:\(FL\s*=\).*:\1$(tc-getFC):" \
+ -e "s:\(AR\s*=\).*:\1$(tc-getAR) rv :" \
+ -e "s:\(RANLIB\s*=\).*:\1$(tc-getRANLIB):" \
+ -e "s:\(LIBBLAS\s*=\).*:\1$(pkg-config --libs blas):" \
+ -e "s:\(INCPAR\s*=\).*:\1:" \
+ -e 's:\(LIBPAR\s*=\).*:\1$(SCALAP):' \
+ -e "s:\(OPTF\s*=\).*:\1${FFLAGS}:" \
+ -e "s:\(OPTC\s*=\).*:\1${CFLAGS}:" \
+ -e "s:\(OPTL\s*=\).*:\1${LDFLAGS}:" \
+ Make.inc/Makefile.inc.generic > Makefile.inc || die
+}
+
+src_configure() {
+ LIBS="$(pkg-config --libs blas) -Llib -lpord"
+ local ord="-Dpord"
+ if use metis && use mpi; then
+ sed -i \
+ -e "s:#\s*\(LMETIS\s*=\).*:\1$(pkg-config --libs metis-mpi):" \
+ -e "s:#\s*\(IMETIS\s*=\).*:\1$(pkg-config --cflags metis-mpi):" \
+ Makefile.inc || die
+ LIBS="${LIBS} $(pkg-config --libs metis-mpi)"
+ ord="${ord} -Dparmetis"
+ elif use metis; then
+ sed -i \
+ -e "s:#\s*\(LMETIS\s*=\).*:\1$(pkg-config --libs metis):" \
+ -e "s:#\s*\(IMETIS\s*=\).*:\1$(pkg-config --cflags metis):" \
+ Makefile.inc || die
+ LIBS="${LIBS} $(pkg-config --libs metis)"
+ ord="${ord} -Dmetis"
+ fi
+ if use scotch && use mpi; then
+ sed -i \
+ -e "s:\(LSCOTCH\s*=\).*:\1-lptesmumps -lptscotch -lptscotcherr:" \
+ -e "s:\(ISCOTCH\s*=\).*:\1${ED}/usr/include/scotch:" \
+ Makefile.inc || die
+ LIBS="${LIBS} -lptesmumps -lptscotch -lptscotcherr"
+ ord="${ord} -Dptscotch"
+ elif use scotch; then
+ sed -i \
+ -e "s:\(LSCOTCH\s*=\).*:\1-lesmumps -lscotch -lscotcherr:" \
+ -e "s:\(ISCOTCH\s*=\).*:\1${ED}/usr/include/scotch:" \
+ Makefile.inc || die
+ LIBS="${LIBS} -lesmumps -lscotch -lscotcherr"
+ ord="${ord} -Dscotch"
+ fi
+ if use mpi; then
+ sed -i \
+ -e "s:\(CC\s*=\).*:\1mpicc:" \
+ -e "s:\(FC\s*=\).*:\1mpif90:" \
+ -e "s:\(FL\s*=\).*:\1mpif90:" \
+ -e "s:\(SCALAP\s*=\).*:\1$(pkg-config --libs scalapack):" \
+ Makefile.inc || die
+ export LINK=mpif90
+ LIBS="${LIBS} $(pkg-config --libs scalapack)"
+ fi
+ sed -i -e "s:\(ORDERINGSF\s*=\).*:\1 ${ord}:" Makefile.inc || die
+}
+
+src_compile() {
+ emake alllib OPTF="${FFLAGS} -fPIC" OPTC="${CFLAGS} -fPIC"
+ make_shared_lib lib/libmumps_common.a ${LIBS}
+ local i
+ for i in c d s z; do
+ make_shared_lib lib/lib${i}mumps.a -Llib -lmumps_common
+ done
+ if use static-libs; then
+ emake clean
+ emake alllib
+ fi
+}
+
+src_test() {
+ emake all
+ local dotest
+ use mpi && dotest="mpirun -np 2"
+ ${dotest} ./ssimpletest < input_simpletest_real || die
+ ${dotest} ./dsimpletest < input_simpletest_real || die
+ ${dotest} ./csimpletest < input_simpletest_cmplx || die
+ ${dotest} ./zsimpletest < input_simpletest_cmplx || die
+ einfo "The solution should be (1,2,3,4,5)"
+ ${dotest} ./c_example || die
+ einfo "The solution should be (1,2)"
+}
+
+src_install() {
+ dolib.so lib/lib*.so
+ use static-libs && dolib.a lib/lib*.a
+ dodoc README ChangeLog VERSION
+ use doc && dodoc doc/*.pdf
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}