Gentoo Archives: gentoo-commits

From: Sebastien Fabbro <bicatali@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] dev/bicatali:master commit in: sci-libs/mumps/
Date: Wed, 01 Jun 2011 05:54:34
Message-Id: 460735f5cda685055ef5a873c9325ec27fe98627.bicatali@gentoo
1 commit: 460735f5cda685055ef5a873c9325ec27fe98627
2 Author: Sébastien Fabbro <bicatali <AT> gentoo <DOT> org>
3 AuthorDate: Wed Jun 1 05:52:18 2011 +0000
4 Commit: Sebastien Fabbro <bicatali <AT> gentoo <DOT> org>
5 CommitDate: Wed Jun 1 05:52:18 2011 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=dev/bicatali.git;a=commit;h=460735f5
7
8 added mumps
9
10 ---
11 sci-libs/mumps/ChangeLog | 10 +++
12 sci-libs/mumps/Manifest | 4 +
13 sci-libs/mumps/metadata.xml | 13 ++++
14 sci-libs/mumps/mumps-4.10.0.ebuild | 136 ++++++++++++++++++++++++++++++++++++
15 4 files changed, 163 insertions(+), 0 deletions(-)
16
17 diff --git a/sci-libs/mumps/ChangeLog b/sci-libs/mumps/ChangeLog
18 new file mode 100644
19 index 0000000..49906f6
20 --- /dev/null
21 +++ b/sci-libs/mumps/ChangeLog
22 @@ -0,0 +1,10 @@
23 +# ChangeLog for sci-libs/mumps
24 +# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
25 +# $Header: $
26 +
27 +*mumps-4.10.0 (01 Jun 2011)
28 +
29 + 01 Jun 2011; Sébastien Fabbro <bicatali@g.o> +mumps-4.10.0.ebuild,
30 + +metadata.xml:
31 + Initial import
32 +
33
34 diff --git a/sci-libs/mumps/Manifest b/sci-libs/mumps/Manifest
35 new file mode 100644
36 index 0000000..26ea77c
37 --- /dev/null
38 +++ b/sci-libs/mumps/Manifest
39 @@ -0,0 +1,4 @@
40 +DIST MUMPS_4.10.0.tar.gz 2481516 RMD160 19ae1f4773ab1643237f791085d9721932a618fc SHA1 904b1d816272d99f1f53913cbd4789a5be1838f7 SHA256 d0f86f91a74c51a17a2ff1be9c9cee2338976f13a6d00896ba5b43a5ca05d933
41 +EBUILD mumps-4.10.0.ebuild 3916 RMD160 548e678b07694d7b6700a5c4f5b3000d6eff4384 SHA1 331c64cd824ca69e0006de7c493cbdce36f67b5b SHA256 51a4df8dda86e81f2056293985d367e39e661389c4dc0b62c45e6edba0e07afb
42 +MISC ChangeLog 256 RMD160 4934775c75859634f7e502286e5f6c607ebd0c43 SHA1 3b8a5223cd6c7f1f293786a62156653efb194766 SHA256 95c92bfc19f31e1e498b62026b7f39570700efbbe791bdfe376dca85b20f9024
43 +MISC metadata.xml 550 RMD160 4d8730ab11dca7f0e70958c24413643d5fe6470c SHA1 e54d1d1c396292d36faa321e49d8adcc41fba07b SHA256 6283620deb195a65aaabb4dff6f3dfd05f0550ec6c108d497bdcbf4c6ea6765d
44
45 diff --git a/sci-libs/mumps/metadata.xml b/sci-libs/mumps/metadata.xml
46 new file mode 100644
47 index 0000000..e9804fe
48 --- /dev/null
49 +++ b/sci-libs/mumps/metadata.xml
50 @@ -0,0 +1,13 @@
51 +<?xml version="1.0" encoding="UTF-8"?>
52 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
53 +<pkgmetadata>
54 +<herd>sci</herd>
55 +<longdescription lang='en'>
56 + MUltifrontal Massively Parallel sparse direct Solver implements a
57 + direct solver for large sparse linear systems, with a particular
58 + focus on symmetric positive definite matrices. It can operate on
59 + distributed matrices e.g. over a cluster. It has Fortran and C
60 + interfaces, and can interface with ordering tools such
61 + as Scotch or Metis.
62 +</longdescription>
63 +</pkgmetadata>
64
65 diff --git a/sci-libs/mumps/mumps-4.10.0.ebuild b/sci-libs/mumps/mumps-4.10.0.ebuild
66 new file mode 100644
67 index 0000000..59c2ae3
68 --- /dev/null
69 +++ b/sci-libs/mumps/mumps-4.10.0.ebuild
70 @@ -0,0 +1,136 @@
71 +# Copyright 1999-2011 Gentoo Foundation
72 +# Distributed under the terms of the GNU General Public License v2
73 +# $Header: $
74 +
75 +EAPI=4
76 +inherit eutils toolchain-funcs flag-o-matic
77 +
78 +MYP=MUMPS_${PV}
79 +
80 +DESCRIPTION="MUltifrontal Massively Parallel sparse direct matrix Solver"
81 +HOMEPAGE="http://mumps.enseeiht.fr/"
82 +SRC_URI="${HOMEPAGE}${MYP}.tar.gz"
83 +
84 +LICENSE="public-domain"
85 +SLOT="0"
86 +KEYWORDS="~amd64 ~x86"
87 +IUSE="doc examples metis mpi +scotch static-libs"
88 +
89 +RDEPEND="virtual/blas
90 + virtual/metis[mpi?]
91 + scotch? ( sci-libs/scotch[mpi?] )
92 + mpi? ( virtual/scalapack )"
93 +
94 +DEPEND="${RDEPEND}
95 + dev-util/pkgconfig"
96 +
97 +S="${WORKDIR}/${MYP}"
98 +
99 +make_shared_lib() {
100 + local libstatic=${1}
101 + local soname=$(basename "${1%.a}").so.$(get_major_version)
102 + shift
103 + einfo "Making ${soname}"
104 + ${LINK:-$(tc-getCC)} ${LDFLAGS} \
105 + -shared -Wl,-soname="${soname}" \
106 + -Wl,--whole-archive "${libstatic}" -Wl,--no-whole-archive \
107 + "$@" -o $(dirname "${libstatic}")/"${soname}" || die "${soname} failed"
108 +}
109 +
110 +src_prepare() {
111 + sed -e "s:\(CC\s*=\).*:\1$(tc-getCC):" \
112 + -e "s:\(FC\s*=\).*:\1$(tc-getFC):" \
113 + -e "s:\(FL\s*=\).*:\1$(tc-getFC):" \
114 + -e "s:\(AR\s*=\).*:\1$(tc-getAR) rv :" \
115 + -e "s:\(RANLIB\s*=\).*:\1$(tc-getRANLIB):" \
116 + -e "s:\(LIBBLAS\s*=\).*:\1$(pkg-config --libs blas):" \
117 + -e "s:\(INCPAR\s*=\).*:\1:" \
118 + -e 's:\(LIBPAR\s*=\).*:\1$(SCALAP):' \
119 + -e "s:\(OPTF\s*=\).*:\1${FFLAGS}:" \
120 + -e "s:\(OPTC\s*=\).*:\1${CFLAGS}:" \
121 + -e "s:\(OPTL\s*=\).*:\1${LDFLAGS}:" \
122 + Make.inc/Makefile.inc.generic > Makefile.inc || die
123 +}
124 +
125 +src_configure() {
126 + LIBS="$(pkg-config --libs blas) -Llib -lpord"
127 + local ord="-Dpord"
128 + if use metis && use mpi; then
129 + sed -i \
130 + -e "s:#\s*\(LMETIS\s*=\).*:\1$(pkg-config --libs metis-mpi):" \
131 + -e "s:#\s*\(IMETIS\s*=\).*:\1$(pkg-config --cflags metis-mpi):" \
132 + Makefile.inc || die
133 + LIBS="${LIBS} $(pkg-config --libs metis-mpi)"
134 + ord="${ord} -Dparmetis"
135 + elif use metis; then
136 + sed -i \
137 + -e "s:#\s*\(LMETIS\s*=\).*:\1$(pkg-config --libs metis):" \
138 + -e "s:#\s*\(IMETIS\s*=\).*:\1$(pkg-config --cflags metis):" \
139 + Makefile.inc || die
140 + LIBS="${LIBS} $(pkg-config --libs metis)"
141 + ord="${ord} -Dmetis"
142 + fi
143 + if use scotch && use mpi; then
144 + sed -i \
145 + -e "s:\(LSCOTCH\s*=\).*:\1-lptesmumps -lptscotch -lptscotcherr:" \
146 + -e "s:\(ISCOTCH\s*=\).*:\1${ED}/usr/include/scotch:" \
147 + Makefile.inc || die
148 + LIBS="${LIBS} -lptesmumps -lptscotch -lptscotcherr"
149 + ord="${ord} -Dptscotch"
150 + elif use scotch; then
151 + sed -i \
152 + -e "s:\(LSCOTCH\s*=\).*:\1-lesmumps -lscotch -lscotcherr:" \
153 + -e "s:\(ISCOTCH\s*=\).*:\1${ED}/usr/include/scotch:" \
154 + Makefile.inc || die
155 + LIBS="${LIBS} -lesmumps -lscotch -lscotcherr"
156 + ord="${ord} -Dscotch"
157 + fi
158 + if use mpi; then
159 + sed -i \
160 + -e "s:\(CC\s*=\).*:\1mpicc:" \
161 + -e "s:\(FC\s*=\).*:\1mpif90:" \
162 + -e "s:\(FL\s*=\).*:\1mpif90:" \
163 + -e "s:\(SCALAP\s*=\).*:\1$(pkg-config --libs scalapack):" \
164 + Makefile.inc || die
165 + export LINK=mpif90
166 + LIBS="${LIBS} $(pkg-config --libs scalapack)"
167 + fi
168 + sed -i -e "s:\(ORDERINGSF\s*=\).*:\1 ${ord}:" Makefile.inc || die
169 +}
170 +
171 +src_compile() {
172 + emake alllib OPTF="${FFLAGS} -fPIC" OPTC="${CFLAGS} -fPIC"
173 + make_shared_lib lib/libmumps_common.a ${LIBS}
174 + local i
175 + for i in c d s z; do
176 + make_shared_lib lib/lib${i}mumps.a -Llib -lmumps_common
177 + done
178 + if use static-libs; then
179 + emake clean
180 + emake alllib
181 + fi
182 +}
183 +
184 +src_test() {
185 + emake all
186 + local dotest
187 + use mpi && dotest="mpirun -np 2"
188 + ${dotest} ./ssimpletest < input_simpletest_real || die
189 + ${dotest} ./dsimpletest < input_simpletest_real || die
190 + ${dotest} ./csimpletest < input_simpletest_cmplx || die
191 + ${dotest} ./zsimpletest < input_simpletest_cmplx || die
192 + einfo "The solution should be (1,2,3,4,5)"
193 + ${dotest} ./c_example || die
194 + einfo "The solution should be (1,2)"
195 +}
196 +
197 +src_install() {
198 + dolib.so lib/lib*.so
199 + use static-libs && dolib.a lib/lib*.a
200 + dodoc README ChangeLog VERSION
201 + use doc && dodoc doc/*.pdf
202 + if use examples; then
203 + insinto /usr/share/doc/${PF}
204 + doins -r examples
205 + fi
206 +}