1 |
commit: d0feaf39eeeb49c7e0954504e6c847d5a27be50e |
2 |
Author: Matthias Maier <tamiko <AT> gentoo <DOT> org> |
3 |
AuthorDate: Mon Oct 8 17:49:42 2018 +0000 |
4 |
Commit: Matthias Maier <tamiko <AT> gentoo <DOT> org> |
5 |
CommitDate: Mon Oct 8 17:55:50 2018 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d0feaf39 |
7 |
|
8 |
sci-libs/mumps: version bump to 5.1.2 |
9 |
|
10 |
Signed-off-by: Matthias Maier <tamiko <AT> gentoo.org> |
11 |
Package-Manager: Portage-2.3.50, Repoman-2.3.11 |
12 |
|
13 |
sci-libs/mumps/Manifest | 1 + |
14 |
sci-libs/mumps/mumps-5.1.2.ebuild | 186 ++++++++++++++++++++++++++++++++++++++ |
15 |
2 files changed, 187 insertions(+) |
16 |
|
17 |
diff --git a/sci-libs/mumps/Manifest b/sci-libs/mumps/Manifest |
18 |
index fa2f846fabd..973e51a036a 100644 |
19 |
--- a/sci-libs/mumps/Manifest |
20 |
+++ b/sci-libs/mumps/Manifest |
21 |
@@ -1 +1,2 @@ |
22 |
DIST MUMPS_4.10.0.tar.gz 2481516 BLAKE2B ddd3f28bf9627806e9bb5597adc94e2b8f504adf220a8a64ea50630edbde75358bd97e91a53ebd341132a34db5d7248d32a892a060bdf8f205c8aac3b9c88722 SHA512 348df048618ea2086fbe805a90f2e31f57e0db4aa6f4843a0e3c7142bac80fe45e54768e65921657c970bc286b59c2bca91e5006ed8000678f26ba2efe2bfda8 |
23 |
+DIST MUMPS_5.1.2.tar.gz 3351215 BLAKE2B 1c77c2a217c101245a9a96a59be6b9bfd67ceffa603d807b5a7173026c5c33e2c4de78c14833d7b7f0a90130b9ebc0ac9c7d4ebfbf881d0bd2210a542887c239 SHA512 38a63b14a8df835be68b5fa310b39aa1815799220d56c176e4005797800959e9e08c9a6bf11d308ab82ea40b6f34d36072cebe7c1de39e0c314eb138b93f1b74 |
24 |
|
25 |
diff --git a/sci-libs/mumps/mumps-5.1.2.ebuild b/sci-libs/mumps/mumps-5.1.2.ebuild |
26 |
new file mode 100644 |
27 |
index 00000000000..725e1ab60e6 |
28 |
--- /dev/null |
29 |
+++ b/sci-libs/mumps/mumps-5.1.2.ebuild |
30 |
@@ -0,0 +1,186 @@ |
31 |
+# Copyright 1999-2018 Gentoo Authors |
32 |
+# Distributed under the terms of the GNU General Public License v2 |
33 |
+ |
34 |
+EAPI=6 |
35 |
+ |
36 |
+inherit eutils toolchain-funcs flag-o-matic versionator fortran-2 multilib |
37 |
+ |
38 |
+MYP=MUMPS_${PV} |
39 |
+ |
40 |
+DESCRIPTION="MUltifrontal Massively Parallel sparse direct matrix Solver" |
41 |
+HOMEPAGE="http://mumps.enseeiht.fr/" |
42 |
+SRC_URI="${HOMEPAGE}${MYP}.tar.gz" |
43 |
+ |
44 |
+LICENSE="public-domain" |
45 |
+SLOT="0" |
46 |
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" |
47 |
+IUSE="doc examples metis mpi +scotch static-libs" |
48 |
+ |
49 |
+RDEPEND=" |
50 |
+ virtual/blas |
51 |
+ metis? ( || ( sci-libs/metis <sci-libs/parmetis-4 ) |
52 |
+ mpi? ( <sci-libs/parmetis-4 ) ) |
53 |
+ scotch? ( <sci-libs/scotch-6[mpi=] ) |
54 |
+ mpi? ( sci-libs/scalapack )" |
55 |
+ |
56 |
+DEPEND="${RDEPEND} |
57 |
+ virtual/pkgconfig" |
58 |
+ |
59 |
+S="${WORKDIR}/${MYP}" |
60 |
+ |
61 |
+static_to_shared() { |
62 |
+ local libstatic=${1}; shift |
63 |
+ local libname=$(basename ${libstatic%.a}) |
64 |
+ local soname=${libname}$(get_libname $(get_version_component_range 1-2)) |
65 |
+ local libdir=$(dirname ${libstatic}) |
66 |
+ |
67 |
+ einfo "Making ${soname} from ${libstatic}" |
68 |
+ if [[ ${CHOST} == *-darwin* ]] ; then |
69 |
+ ${LINK:-$(tc-getCC)} ${LDFLAGS} \ |
70 |
+ -dynamiclib -install_name "${EPREFIX}"/usr/lib/"${soname}" \ |
71 |
+ -Wl,-all_load -Wl,${libstatic} \ |
72 |
+ "$@" -o ${libdir}/${soname} || die "${soname} failed" |
73 |
+ else |
74 |
+ ${LINK:-$(tc-getCC)} ${LDFLAGS} \ |
75 |
+ -shared -Wl,-soname=${soname} \ |
76 |
+ -Wl,--whole-archive ${libstatic} -Wl,--no-whole-archive \ |
77 |
+ "$@" -o ${libdir}/${soname} || die "${soname} failed" |
78 |
+ [[ $(get_version_component_count) -gt 1 ]] && \ |
79 |
+ ln -s ${soname} ${libdir}/${libname}$(get_libname $(get_major_version)) |
80 |
+ ln -s ${soname} ${libdir}/${libname}$(get_libname) |
81 |
+ fi |
82 |
+} |
83 |
+ |
84 |
+src_prepare() { |
85 |
+ sed -e "s:^\(CC\s*=\).*:\1$(tc-getCC):" \ |
86 |
+ -e "s:^\(FC\s*=\).*:\1$(tc-getFC):" \ |
87 |
+ -e "s:^\(FL\s*=\).*:\1$(tc-getFC):" \ |
88 |
+ -e "s:^\(AR\s*=\).*:\1$(tc-getAR) cr :" \ |
89 |
+ -e "s:^\(RANLIB\s*=\).*:\1$(tc-getRANLIB):" \ |
90 |
+ -e "s:^\(LIBBLAS\s*=\).*:\1$($(tc-getPKG_CONFIG) --libs blas):" \ |
91 |
+ -e "s:^\(INCPAR\s*=\).*:\1:" \ |
92 |
+ -e 's:^\(LIBPAR\s*=\).*:\1$(SCALAP):' \ |
93 |
+ -e "s:^\(OPTF\s*=\).*:\1${FFLAGS} -DALLOW_NON_INIT \$(PIC):" \ |
94 |
+ -e "s:^\(OPTC\s*=\).*:\1${CFLAGS} \$(PIC):" \ |
95 |
+ -e "s:^\(OPTL\s*=\).*:\1${LDFLAGS}:" \ |
96 |
+ Make.inc/Makefile.inc.generic > Makefile.inc || die |
97 |
+ # fixed a missing copy of libseq to libdir |
98 |
+ |
99 |
+ default |
100 |
+} |
101 |
+ |
102 |
+src_configure() { |
103 |
+ LIBADD="$($(tc-getPKG_CONFIG) --libs blas) -Llib -lpord" |
104 |
+ local ord="-Dpord" |
105 |
+ if use metis && use mpi; then |
106 |
+ sed -i \ |
107 |
+ -e "s:#\s*\(LMETIS\s*=\).*:\1$($(tc-getPKG_CONFIG) --libs parmetis):" \ |
108 |
+ -e "s:#\s*\(IMETIS\s*=\).*:\1$($(tc-getPKG_CONFIG) --cflags parmetis):" \ |
109 |
+ Makefile.inc || die |
110 |
+ LIBADD="${LIBADD} $($(tc-getPKG_CONFIG) --libs parmetis)" |
111 |
+ ord="${ord} -Dparmetis" |
112 |
+ elif use metis; then |
113 |
+ sed -i \ |
114 |
+ -e "s:#\s*\(LMETIS\s*=\).*:\1$($(tc-getPKG_CONFIG) --libs metis):" \ |
115 |
+ -e "s:#\s*\(IMETIS\s*=\).*:\1$($(tc-getPKG_CONFIG) --cflags metis):" \ |
116 |
+ Makefile.inc || die |
117 |
+ LIBADD="${LIBADD} $($(tc-getPKG_CONFIG) --libs metis)" |
118 |
+ ord="${ord} -Dmetis" |
119 |
+ fi |
120 |
+ if use scotch && use mpi; then |
121 |
+ sed -i \ |
122 |
+ -e "s:#\s*\(LSCOTCH\s*=\).*:\1-lptesmumps -lptscotch -lptscotcherr:" \ |
123 |
+ -e "s:#\s*\(ISCOTCH\s*=\).*:\1-I${EROOT}usr/include/scotch:" \ |
124 |
+ Makefile.inc || die |
125 |
+ LIBADD="${LIBADD} -lptesmumps -lptscotch -lptscotcherr" |
126 |
+ ord="${ord} -Dptscotch" |
127 |
+ elif use scotch; then |
128 |
+ sed -i \ |
129 |
+ -e "s:#\s*\(LSCOTCH\s*=\).*:\1-lesmumps -lscotch -lscotcherr:" \ |
130 |
+ -e "s:#\s*\(ISCOTCH\s*=\).*:\1-I${EROOT}usr/include/scotch:" \ |
131 |
+ Makefile.inc || die |
132 |
+ LIBADD="${LIBADD} -lesmumps -lscotch -lscotcherr" |
133 |
+ ord="${ord} -Dscotch" |
134 |
+ fi |
135 |
+ if use mpi; then |
136 |
+ sed -i \ |
137 |
+ -e "s:^\(CC\s*=\).*:\1mpicc:" \ |
138 |
+ -e "s:^\(FC\s*=\).*:\1mpif90:" \ |
139 |
+ -e "s:^\(FL\s*=\).*:\1mpif90:" \ |
140 |
+ -e "s:^\(SCALAP\s*=\).*:\1$($(tc-getPKG_CONFIG) --libs scalapack):" \ |
141 |
+ Makefile.inc || die |
142 |
+ export LINK=mpif90 |
143 |
+ LIBADD="${LIBADD} $($(tc-getPKG_CONFIG) --libs scalapack)" |
144 |
+ else |
145 |
+ sed -i \ |
146 |
+ -e 's:-Llibseq:-L$(topdir)/libseq:' \ |
147 |
+ -e 's:PAR):SEQ):g' \ |
148 |
+ -e "s:^\(SCALAP\s*=\).*:\1:" \ |
149 |
+ -e 's:^LIBSEQNEEDED =:LIBSEQNEEDED = libseqneeded:g' \ |
150 |
+ Makefile.inc || die |
151 |
+ export LINK="$(tc-getFC)" |
152 |
+ fi |
153 |
+ sed -i -e "s:^\s*\(ORDERINGSF\s*=\).*:\1 ${ord}:" Makefile.inc || die |
154 |
+} |
155 |
+ |
156 |
+src_compile() { |
157 |
+ # Workaround #462602 |
158 |
+ export FAKEROOTKEY=1 |
159 |
+ |
160 |
+ # -j1 because of static archive race |
161 |
+ emake -j1 alllib PIC="-fPIC" |
162 |
+ if ! use mpi; then |
163 |
+ #$(tc-getAR) crs lib/libmumps_common.a libseq/*.o || die |
164 |
+ LIBADD+=" -Llibseq -lmpiseq" |
165 |
+ static_to_shared libseq/libmpiseq.a |
166 |
+ fi |
167 |
+ static_to_shared lib/libpord.a ${LIBADD} |
168 |
+ static_to_shared lib/libmumps_common.a ${LIBADD} |
169 |
+ |
170 |
+ local i |
171 |
+ for i in c d s z; do |
172 |
+ static_to_shared lib/lib${i}mumps.a -Llib -lmumps_common ${LIBADD} |
173 |
+ done |
174 |
+ if use static-libs; then |
175 |
+ emake clean |
176 |
+ emake -j1 alllib |
177 |
+ fi |
178 |
+} |
179 |
+ |
180 |
+src_test() { |
181 |
+ emake all |
182 |
+ local dotest |
183 |
+ if use mpi; then |
184 |
+ dotest="mpirun -np 2" |
185 |
+ else |
186 |
+ export LD_LIBRARY_PATH="${S}/libseq:${LD_LIBRARY_PATH}" |
187 |
+ fi |
188 |
+ cd examples |
189 |
+ ${dotest} ./ssimpletest < input_simpletest_real || die |
190 |
+ ${dotest} ./dsimpletest < input_simpletest_real || die |
191 |
+ ${dotest} ./csimpletest < input_simpletest_cmplx || die |
192 |
+ ${dotest} ./zsimpletest < input_simpletest_cmplx || die |
193 |
+ einfo "The solutions should be close to (1,2,3,4,5)" |
194 |
+ ${dotest} ./c_example || die |
195 |
+ einfo "The solution should be close to (1,2)" |
196 |
+ make clean |
197 |
+} |
198 |
+ |
199 |
+src_install() { |
200 |
+ dolib.so lib/lib*$(get_libname)* |
201 |
+ use static-libs && dolib.a lib/lib*.a |
202 |
+ insinto /usr |
203 |
+ doins -r include |
204 |
+ if ! use mpi; then |
205 |
+ dolib.so libseq/lib*$(get_libname)* |
206 |
+ insinto /usr/include/mpiseq |
207 |
+ doins libseq/*.h |
208 |
+ use static-libs && dolib.a libseq/libmpiseq.a |
209 |
+ fi |
210 |
+ dodoc README ChangeLog VERSION |
211 |
+ use doc && dodoc doc/*.pdf |
212 |
+ if use examples; then |
213 |
+ insinto /usr/share/doc/${PF} |
214 |
+ doins -r examples |
215 |
+ fi |
216 |
+} |