Gentoo Archives: gentoo-commits

From: "Andrew Savchenko (bircoph)" <bircoph@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in sci-libs/mumps: ChangeLog mumps-4.10.0-r1.ebuild mumps-4.10.0.ebuild
Date: Fri, 06 Mar 2015 09:56:16
Message-Id: 20150306095613.4403813279@oystercatcher.gentoo.org
1 bircoph 15/03/06 09:56:13
2
3 Modified: ChangeLog
4 Added: mumps-4.10.0-r1.ebuild
5 Removed: mumps-4.10.0.ebuild
6 Log:
7 revbump after bugfix 541830
8
9 Signed-off-by: Andrew Savchenko <bircoph@g.o>
10 (Portage version: 2.2.17/cvs/Linux i686, signed Manifest commit with key 565953B95372756C)
11
12 Revision Changes Path
13 1.3 sci-libs/mumps/ChangeLog
14
15 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-libs/mumps/ChangeLog?rev=1.3&view=markup
16 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-libs/mumps/ChangeLog?rev=1.3&content-type=text/plain
17 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-libs/mumps/ChangeLog?r1=1.2&r2=1.3
18
19 Index: ChangeLog
20 ===================================================================
21 RCS file: /var/cvsroot/gentoo-x86/sci-libs/mumps/ChangeLog,v
22 retrieving revision 1.2
23 retrieving revision 1.3
24 diff -u -r1.2 -r1.3
25 --- ChangeLog 6 Mar 2015 09:51:21 -0000 1.2
26 +++ ChangeLog 6 Mar 2015 09:56:13 -0000 1.3
27 @@ -1,6 +1,12 @@
28 # ChangeLog for sci-libs/mumps
29 # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
30 -# $Header: /var/cvsroot/gentoo-x86/sci-libs/mumps/ChangeLog,v 1.2 2015/03/06 09:51:21 bircoph Exp $
31 +# $Header: /var/cvsroot/gentoo-x86/sci-libs/mumps/ChangeLog,v 1.3 2015/03/06 09:56:13 bircoph Exp $
32 +
33 +*mumps-4.10.0-r1 (06 Mar 2015)
34 +
35 + 06 Mar 2015; Andrew Savchenko <bircoph@g.o> -mumps-4.10.0.ebuild,
36 + +mumps-4.10.0-r1.ebuild:
37 + Revbump on second thought, since run-time problem is fixed.
38
39 06 Mar 2015; Andrew Savchenko <bircoph@g.o> mumps-4.10.0.ebuild:
40 mumps is not compatible with >=scotch-6, see bug 541830.
41
42
43
44 1.1 sci-libs/mumps/mumps-4.10.0-r1.ebuild
45
46 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-libs/mumps/mumps-4.10.0-r1.ebuild?rev=1.1&view=markup
47 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-libs/mumps/mumps-4.10.0-r1.ebuild?rev=1.1&content-type=text/plain
48
49 Index: mumps-4.10.0-r1.ebuild
50 ===================================================================
51 # Copyright 1999-2015 Gentoo Foundation
52 # Distributed under the terms of the GNU General Public License v2
53 # $Header: /var/cvsroot/gentoo-x86/sci-libs/mumps/mumps-4.10.0-r1.ebuild,v 1.1 2015/03/06 09:56:13 bircoph Exp $
54
55 EAPI=5
56
57 inherit eutils toolchain-funcs flag-o-matic versionator fortran-2 multilib
58
59 MYP=MUMPS_${PV}
60
61 DESCRIPTION="MUltifrontal Massively Parallel sparse direct matrix Solver"
62 HOMEPAGE="http://mumps.enseeiht.fr/"
63 SRC_URI="${HOMEPAGE}${MYP}.tar.gz"
64
65 LICENSE="public-domain"
66 SLOT="0"
67 KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
68 IUSE="doc examples metis mpi +scotch static-libs"
69
70 RDEPEND="
71 virtual/blas
72 metis? ( || ( sci-libs/metis <sci-libs/parmetis-4 )
73 mpi? ( <sci-libs/parmetis-4 ) )
74 scotch? ( <sci-libs/scotch-6[mpi=] )
75 mpi? ( sci-libs/scalapack )"
76
77 DEPEND="${RDEPEND}
78 virtual/pkgconfig"
79
80 S="${WORKDIR}/${MYP}"
81
82 static_to_shared() {
83 local libstatic=${1}; shift
84 local libname=$(basename ${libstatic%.a})
85 local soname=${libname}$(get_libname $(get_version_component_range 1-2))
86 local libdir=$(dirname ${libstatic})
87
88 einfo "Making ${soname} from ${libstatic}"
89 if [[ ${CHOST} == *-darwin* ]] ; then
90 ${LINK:-$(tc-getCC)} ${LDFLAGS} \
91 -dynamiclib -install_name "${EPREFIX}"/usr/lib/"${soname}" \
92 -Wl,-all_load -Wl,${libstatic} \
93 "$@" -o ${libdir}/${soname} || die "${soname} failed"
94 else
95 ${LINK:-$(tc-getCC)} ${LDFLAGS} \
96 -shared -Wl,-soname=${soname} \
97 -Wl,--whole-archive ${libstatic} -Wl,--no-whole-archive \
98 "$@" -o ${libdir}/${soname} || die "${soname} failed"
99 [[ $(get_version_component_count) -gt 1 ]] && \
100 ln -s ${soname} ${libdir}/${libname}$(get_libname $(get_major_version))
101 ln -s ${soname} ${libdir}/${libname}$(get_libname)
102 fi
103 }
104
105 src_prepare() {
106 sed -e "s:^\(CC\s*=\).*:\1$(tc-getCC):" \
107 -e "s:^\(FC\s*=\).*:\1$(tc-getFC):" \
108 -e "s:^\(FL\s*=\).*:\1$(tc-getFC):" \
109 -e "s:^\(AR\s*=\).*:\1$(tc-getAR) cr :" \
110 -e "s:^\(RANLIB\s*=\).*:\1$(tc-getRANLIB):" \
111 -e "s:^\(LIBBLAS\s*=\).*:\1$($(tc-getPKG_CONFIG) --libs blas):" \
112 -e "s:^\(INCPAR\s*=\).*:\1:" \
113 -e 's:^\(LIBPAR\s*=\).*:\1$(SCALAP):' \
114 -e "s:^\(OPTF\s*=\).*:\1${FFLAGS} -DALLOW_NON_INIT \$(PIC):" \
115 -e "s:^\(OPTC\s*=\).*:\1${CFLAGS} \$(PIC):" \
116 -e "s:^\(OPTL\s*=\).*:\1${LDFLAGS}:" \
117 Make.inc/Makefile.inc.generic > Makefile.inc || die
118 # fixed a missing copy of libseq to libdir
119 }
120
121 src_configure() {
122 LIBADD="$($(tc-getPKG_CONFIG) --libs blas) -Llib -lpord"
123 local ord="-Dpord"
124 if use metis && use mpi; then
125 sed -i \
126 -e "s:#\s*\(LMETIS\s*=\).*:\1$($(tc-getPKG_CONFIG) --libs parmetis):" \
127 -e "s:#\s*\(IMETIS\s*=\).*:\1$($(tc-getPKG_CONFIG) --cflags parmetis):" \
128 Makefile.inc || die
129 LIBADD="${LIBADD} $($(tc-getPKG_CONFIG) --libs parmetis)"
130 ord="${ord} -Dparmetis"
131 elif use metis; then
132 sed -i \
133 -e "s:#\s*\(LMETIS\s*=\).*:\1$($(tc-getPKG_CONFIG) --libs metis):" \
134 -e "s:#\s*\(IMETIS\s*=\).*:\1$($(tc-getPKG_CONFIG) --cflags metis):" \
135 Makefile.inc || die
136 LIBADD="${LIBADD} $($(tc-getPKG_CONFIG) --libs metis)"
137 ord="${ord} -Dmetis"
138 fi
139 if use scotch && use mpi; then
140 sed -i \
141 -e "s:#\s*\(LSCOTCH\s*=\).*:\1-lptesmumps -lptscotch -lptscotcherr:" \
142 -e "s:#\s*\(ISCOTCH\s*=\).*:\1-I${EROOT}usr/include/scotch:" \
143 Makefile.inc || die
144 LIBADD="${LIBADD} -lptesmumps -lptscotch -lptscotcherr"
145 ord="${ord} -Dptscotch"
146 elif use scotch; then
147 sed -i \
148 -e "s:#\s*\(LSCOTCH\s*=\).*:\1-lesmumps -lscotch -lscotcherr:" \
149 -e "s:#\s*\(ISCOTCH\s*=\).*:\1-I${EROOT}usr/include/scotch:" \
150 Makefile.inc || die
151 LIBADD="${LIBADD} -lesmumps -lscotch -lscotcherr"
152 ord="${ord} -Dscotch"
153 fi
154 if use mpi; then
155 sed -i \
156 -e "s:^\(CC\s*=\).*:\1mpicc:" \
157 -e "s:^\(FC\s*=\).*:\1mpif90:" \
158 -e "s:^\(FL\s*=\).*:\1mpif90:" \
159 -e "s:^\(SCALAP\s*=\).*:\1$($(tc-getPKG_CONFIG) --libs scalapack):" \
160 Makefile.inc || die
161 export LINK=mpif90
162 LIBADD="${LIBADD} $($(tc-getPKG_CONFIG) --libs scalapack)"
163 else
164 sed -i \
165 -e 's:-Llibseq:-L$(topdir)/libseq:' \
166 -e 's:PAR):SEQ):g' \
167 -e "s:^\(SCALAP\s*=\).*:\1:" \
168 -e 's:^LIBSEQNEEDED =:LIBSEQNEEDED = libseqneeded:g' \
169 Makefile.inc || die
170 export LINK="$(tc-getFC)"
171 fi
172 sed -i -e "s:^\s*\(ORDERINGSF\s*=\).*:\1 ${ord}:" Makefile.inc || die
173 }
174
175 src_compile() {
176 # Workaround #462602
177 export FAKEROOTKEY=1
178
179 # -j1 because of static archive race
180 emake -j1 alllib PIC="-fPIC"
181 if ! use mpi; then
182 #$(tc-getAR) crs lib/libmumps_common.a libseq/*.o || die
183 LIBADD+=" -Llibseq -lmpiseq"
184 static_to_shared libseq/libmpiseq.a
185 fi
186 static_to_shared lib/libpord.a ${LIBADD}
187 static_to_shared lib/libmumps_common.a ${LIBADD}
188
189 local i
190 for i in c d s z; do
191 static_to_shared lib/lib${i}mumps.a -Llib -lmumps_common ${LIBADD}
192 done
193 if use static-libs; then
194 emake clean
195 emake -j1 alllib
196 fi
197 }
198
199 src_test() {
200 emake all
201 local dotest
202 if use mpi; then
203 dotest="mpirun -np 2"
204 else
205 export LD_LIBRARY_PATH="${S}/libseq:${LD_LIBRARY_PATH}"
206 fi
207 cd examples
208 ${dotest} ./ssimpletest < input_simpletest_real || die
209 ${dotest} ./dsimpletest < input_simpletest_real || die
210 ${dotest} ./csimpletest < input_simpletest_cmplx || die
211 ${dotest} ./zsimpletest < input_simpletest_cmplx || die
212 einfo "The solutions should be close to (1,2,3,4,5)"
213 ${dotest} ./c_example || die
214 einfo "The solution should be close to (1,2)"
215 make clean
216 }
217
218 src_install() {
219 dolib.so lib/lib*$(get_libname)*
220 use static-libs && dolib.a lib/lib*.a
221 insinto /usr
222 doins -r include
223 if ! use mpi; then
224 dolib.so libseq/lib*$(get_libname)*
225 insinto /usr/include/mpiseq
226 doins libseq/*.h
227 use static-libs && dolib.a libseq/libmpiseq.a
228 fi
229 dodoc README ChangeLog VERSION
230 use doc && dodoc doc/*.pdf
231 if use examples; then
232 insinto /usr/share/doc/${PF}
233 doins -r examples
234 fi
235 }