diff options
author | Sébastien Fabbro <bicatali@gentoo.org> | 2011-06-01 06:52:18 +0100 |
---|---|---|
committer | Sébastien Fabbro <bicatali@gentoo.org> | 2011-06-01 06:52:18 +0100 |
commit | 460735f5cda685055ef5a873c9325ec27fe98627 (patch) | |
tree | 69309200e7559c9e313198b78161c205319cb239 | |
parent | syntax error in pc file (diff) | |
download | bicatali-460735f5cda685055ef5a873c9325ec27fe98627.tar.gz bicatali-460735f5cda685055ef5a873c9325ec27fe98627.tar.bz2 bicatali-460735f5cda685055ef5a873c9325ec27fe98627.zip |
added mumps
-rw-r--r-- | sci-libs/mumps/ChangeLog | 10 | ||||
-rw-r--r-- | sci-libs/mumps/Manifest | 4 | ||||
-rw-r--r-- | sci-libs/mumps/metadata.xml | 13 | ||||
-rw-r--r-- | sci-libs/mumps/mumps-4.10.0.ebuild | 136 |
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 +} |