1 |
bicatali 08/03/27 19:04:35 |
2 |
|
3 |
Modified: metis-5.0_pre2-autotools.patch |
4 |
metis-4.0.1-autotools.patch |
5 |
Log: |
6 |
Added pkg-config files in patch, removed slot, added blocking for parmetis. See bug #49953. Removed incompatible versions. |
7 |
(Portage version: 2.1.4.4) |
8 |
|
9 |
Revision Changes Path |
10 |
1.2 sci-libs/metis/files/metis-5.0_pre2-autotools.patch |
11 |
|
12 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sci-libs/metis/files/metis-5.0_pre2-autotools.patch?rev=1.2&view=markup |
13 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sci-libs/metis/files/metis-5.0_pre2-autotools.patch?rev=1.2&content-type=text/plain |
14 |
diff : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sci-libs/metis/files/metis-5.0_pre2-autotools.patch?r1=1.1&r2=1.2 |
15 |
|
16 |
Index: metis-5.0_pre2-autotools.patch |
17 |
=================================================================== |
18 |
RCS file: /var/cvsroot/gentoo-x86/sci-libs/metis/files/metis-5.0_pre2-autotools.patch,v |
19 |
retrieving revision 1.1 |
20 |
retrieving revision 1.2 |
21 |
diff -u -r1.1 -r1.2 |
22 |
--- metis-5.0_pre2-autotools.patch 5 Feb 2008 17:55:30 -0000 1.1 |
23 |
+++ metis-5.0_pre2-autotools.patch 27 Mar 2008 19:04:35 -0000 1.2 |
24 |
@@ -1,12 +1,13 @@ |
25 |
--- configure.ac 1970-01-01 01:00:00.000000000 +0100 |
26 |
-+++ configure.ac 2007-09-24 15:12:11.917289395 +0100 |
27 |
-@@ -0,0 +1,54 @@ |
28 |
++++ configure.ac 2008-03-25 11:07:24.560995022 +0000 |
29 |
+@@ -0,0 +1,53 @@ |
30 |
++# -*- Autoconf -*- |
31 |
++AC_PREREQ(2.59) |
32 |
+AC_INIT([metis], [5.0pre2], [metis@××××××.edu], [metis]) |
33 |
+AM_INIT_AUTOMAKE([foreign]) |
34 |
+ |
35 |
+AC_PROG_MAKE_SET |
36 |
+AC_PROG_LIBTOOL |
37 |
-+ |
38 |
+AC_CHECK_LIB(m, [sqrt, pow, log]) |
39 |
+ |
40 |
+AC_ARG_ENABLE(openmp, |
41 |
@@ -15,20 +16,18 @@ |
42 |
+ [enable_openmp=$enableval], |
43 |
+ [enable_openmp="yes"]) |
44 |
+AC_MSG_RESULT($enable_openmp) |
45 |
-+ |
46 |
+if test x$enable_openmp = xyes; then |
47 |
+ AC_CHECK_HEADERS(omp.h) |
48 |
+ OMP_CPPFLAGS=-D__OPENMP__ |
49 |
+ if test x$CC = xicc; then |
50 |
+ OMP_CFLAGS="-openmp -openmp-report2" |
51 |
-+ OMP_LDFLAGS=-openmp |
52 |
++ OMP_LIBS=-openmp |
53 |
+ else |
54 |
+ OMP_CFLAGS=-fopenmp |
55 |
-+ OMP_LDFLAGS=-lgomp |
56 |
++ OMP_LIBS=-lgomp |
57 |
+ fi |
58 |
+fi |
59 |
+ |
60 |
-+# very basic pcre check |
61 |
+AC_ARG_ENABLE(pcre, |
62 |
+ [AC_HELP_STRING([--enable-pcre], |
63 |
+ [Enable PCRE regex support])], |
64 |
@@ -43,26 +42,68 @@ |
65 |
+ AC_CHECK_HEADERS(pcre.h) |
66 |
+ PCRE="yes" |
67 |
+ PCRE_CPPFLAGS=-D__WITHPCRE__ |
68 |
-+ PCRE_LDFLAGS=-lpcre |
69 |
++ PCRE_LIBS=-lpcre |
70 |
+ fi |
71 |
+fi |
72 |
+ |
73 |
-+AC_CONFIG_FILES( \ |
74 |
-+ Makefile \ |
75 |
-+ GKlib/trunk/Makefile \ |
76 |
-+ libmetis/Makefile \ |
77 |
-+ programs/Makefile \ |
78 |
-+ test/Makefile |
79 |
-+) |
80 |
++AC_CONFIG_FILES([ |
81 |
++ Makefile |
82 |
++ metis.pc |
83 |
++ GKlib/trunk/Makefile |
84 |
++ libmetis/Makefile |
85 |
++ programs/Makefile |
86 |
++ test/Makefile]) |
87 |
+AC_OUTPUT |
88 |
---- Makefile.am 1970-01-01 01:00:00.000000000 +0100 |
89 |
-+++ Makefile.am 2007-09-24 15:12:11.921289623 +0100 |
90 |
-@@ -0,0 +1,3 @@ |
91 |
-+SUBDIRS = GKlib/trunk libmetis programs test |
92 |
-+EXTRA_DIST = CHANGES.v4 CHANGES.v5 |
93 |
-+include_HEADERS = include/metis.h |
94 |
---- GKlib/trunk/Makefile.am 1970-01-01 01:00:00.000000000 +0100 |
95 |
-+++ GKlib/trunk/Makefile.am 2007-09-24 15:12:11.949291219 +0100 |
96 |
+--- metis.pc.in 1970-01-01 01:00:00.000000000 +0100 |
97 |
++++ metis.pc.in 2008-03-25 11:07:04.387845420 +0000 |
98 |
+@@ -0,0 +1,10 @@ |
99 |
++prefix=@prefix@ |
100 |
++exec_prefix=@exec_prefix@ |
101 |
++libdir=@libdir@ |
102 |
++includedir=@includedir@ |
103 |
++ |
104 |
++Name: METIS |
105 |
++Description: Software for partioning unstructured graphes and meshes |
106 |
++Version: @VERSION@ |
107 |
++Libs: -L${libdir} -lmetis |
108 |
++Cflags: -I${includedir} |
109 |
+--- ./test/Makefile.am 1970-01-01 01:00:00.000000000 +0100 |
110 |
++++ ./test/Makefile.am 2008-03-25 11:07:04.387845420 +0000 |
111 |
+@@ -0,0 +1,10 @@ |
112 |
++AM_CPPFLAGS = \ |
113 |
++ -I$(top_srcdir)/include \ |
114 |
++ -I$(top_srcdir)/libmetis \ |
115 |
++ -I$(top_srcdir)/programs \ |
116 |
++ -I$(top_srcdir)/GKlib/trunk \ |
117 |
++ -DLINUX -DUNIX -D_FILE_OFFSET_BITS=64 |
118 |
++ |
119 |
++check_PROGRAMS = mtest |
120 |
++mtest_SOURCES = mtest.c $(top_srcdir)/programs/io.c |
121 |
++mtest_LDADD = $(top_builddir)/libmetis/libmetis.la |
122 |
+--- ./programs/Makefile.am 1970-01-01 01:00:00.000000000 +0100 |
123 |
++++ ./programs/Makefile.am 2008-03-25 11:07:04.387845420 +0000 |
124 |
+@@ -0,0 +1,19 @@ |
125 |
++AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/GKlib/trunk -DLINUX -DUNIX -D_FILE_OFFSET_BITS=64 |
126 |
++bin_PROGRAMS = cmetis graphchk kfmetis kmetis mesh2dual mesh2nodal metis \ |
127 |
++ oemetis onmetis partdmesh partnmesh pmetis |
128 |
++ |
129 |
++# Differing from upstream, a lot of these get smbfactor.c as we need |
130 |
++# ComputeFillIn2, which is referenced in proto.h <- metisbin.h |
131 |
++LDADD = $(top_builddir)/libmetis/libmetis.la |
132 |
++cmetis_SOURCES = cmetis.c io.c cmdline_cmetis.c |
133 |
++graphchk_SOURCES = graphchk.c io.c |
134 |
++kfmetis_SOURCES = kfmetis.c io.c cmdline_kfmetis.c |
135 |
++kmetis_SOURCES = kmetis.c io.c |
136 |
++mesh2dual_SOURCES = mesh2dual.c io.c |
137 |
++mesh2nodal_SOURCES = mesh2nodal.c io.c |
138 |
++metis_SOURCES = metis.c io.c |
139 |
++oemetis_SOURCES = oemetis.c io.c |
140 |
++onmetis_SOURCES = onmetis.c io.c |
141 |
++partdmesh_SOURCES = partdmesh.c io.c |
142 |
++partnmesh_SOURCES = partnmesh.c io.c |
143 |
++pmetis_SOURCES = pmetis.c io.c cmdline_pmetis.c |
144 |
+--- ./GKlib/trunk/Makefile.am 1970-01-01 01:00:00.000000000 +0100 |
145 |
++++ ./GKlib/trunk/Makefile.am 2008-03-25 11:07:04.387845420 +0000 |
146 |
@@ -0,0 +1,26 @@ |
147 |
+AM_CPPFLAGS = -DLINUX -D_FILE_OFFSET_BITS=6 $(PCRE_CPPFLAGS) $(OMP_CPPFLAGS) |
148 |
+AM_CFLAGS = -std=c99 $(OMP_CFLAGS) |
149 |
@@ -90,398 +131,14 @@ |
150 |
+ tokenizer.c \ |
151 |
+ util.c |
152 |
+libgklib_la_LIBADD = $(OMP_LDFLAGS) $(PCRE_LDFLAGS) |
153 |
---- libmetis/smbfactor.c 1970-01-01 01:00:00.000000000 +0100 |
154 |
-+++ libmetis/smbfactor.c 2007-09-24 15:12:11.949291219 +0100 |
155 |
-@@ -0,0 +1,385 @@ |
156 |
-+/* |
157 |
-+ * Copyright 1997, Regents of the University of Minnesota |
158 |
-+ * |
159 |
-+ * smbfactor.c |
160 |
-+ * |
161 |
-+ * This file performs the symbolic factorization of a matrix |
162 |
-+ * |
163 |
-+ * Started 8/1/97 |
164 |
-+ * George |
165 |
-+ * |
166 |
-+ * $Id: metis-5.0_pre2-autotools.patch,v 1.1 2008/02/05 17:55:30 bicatali Exp $ |
167 |
-+ * |
168 |
-+ */ |
169 |
-+ |
170 |
-+#include <metislib.h> |
171 |
-+ |
172 |
-+ |
173 |
-+/************************************************************************* |
174 |
-+* This function sets up data structures for fill-in computations |
175 |
-+**************************************************************************/ |
176 |
-+void ComputeFillIn(GraphType *graph, idxtype *iperm) |
177 |
-+{ |
178 |
-+ idxtype i, j, k, nvtxs, maxlnz, maxsub; |
179 |
-+ idxtype *xadj, *adjncy; |
180 |
-+ idxtype *perm, *xlnz, *xnzsub, *nzsub; |
181 |
-+ double opc; |
182 |
-+ |
183 |
-+/* |
184 |
-+ mprintf("\nSymbolic factorization... --------------------------------------------\n"); |
185 |
-+*/ |
186 |
-+ |
187 |
-+ nvtxs = graph->nvtxs; |
188 |
-+ xadj = graph->xadj; |
189 |
-+ adjncy = graph->adjncy; |
190 |
-+ |
191 |
-+ maxsub = 4*xadj[nvtxs]; |
192 |
-+ |
193 |
-+ /* Relabel the vertices so that it starts from 1 */ |
194 |
-+ k = xadj[nvtxs]; |
195 |
-+ for (i=0; i<k; i++) |
196 |
-+ adjncy[i]++; |
197 |
-+ for (i=0; i<nvtxs+1; i++) |
198 |
-+ xadj[i]++; |
199 |
-+ |
200 |
-+ /* Allocate the required memory */ |
201 |
-+ perm = idxmalloc(nvtxs+1, "ComputeFillIn: perm"); |
202 |
-+ xlnz = idxmalloc(nvtxs+1, "ComputeFillIn: xlnz"); |
203 |
-+ xnzsub = idxmalloc(nvtxs+1, "ComputeFillIn: xnzsub"); |
204 |
-+ nzsub = idxmalloc(maxsub, "ComputeFillIn: nzsub"); |
205 |
-+ |
206 |
-+ /* Construct perm from iperm and change the numbering of iperm */ |
207 |
-+ for (i=0; i<nvtxs; i++) |
208 |
-+ perm[iperm[i]] = i; |
209 |
-+ for (i=0; i<nvtxs; i++) { |
210 |
-+ iperm[i]++; |
211 |
-+ perm[i]++; |
212 |
-+ } |
213 |
-+ |
214 |
-+ /* |
215 |
-+ * Call sparspak routine. |
216 |
-+ */ |
217 |
-+ if (smbfct(nvtxs, xadj, adjncy, perm, iperm, xlnz, &maxlnz, xnzsub, nzsub, &maxsub)) { |
218 |
-+ gk_free((void **)&nzsub, LTERM); |
219 |
-+ |
220 |
-+ maxsub = 4*maxsub; |
221 |
-+ nzsub = idxmalloc(maxsub, "ComputeFillIn: nzsub"); |
222 |
-+ if (smbfct(nvtxs, xadj, adjncy, perm, iperm, xlnz, &maxlnz, xnzsub, nzsub, &maxsub)) |
223 |
-+ errexit("MAXSUB is too small!"); |
224 |
-+ } |
225 |
-+ |
226 |
-+ opc = 0; |
227 |
-+ for (i=0; i<nvtxs; i++) |
228 |
-+ xlnz[i]--; |
229 |
-+ for (i=0; i<nvtxs; i++) |
230 |
-+ opc += (xlnz[i+1]-xlnz[i])*(xlnz[i+1]-xlnz[i]) - (xlnz[i+1]-xlnz[i]); |
231 |
-+ |
232 |
-+ mprintf(" Nonzeros: %D, \tOperation Count: %6.4le\n", maxlnz, opc); |
233 |
-+ |
234 |
-+ |
235 |
-+ gk_free((void **)&perm, &xlnz, &xnzsub, &nzsub, LTERM); |
236 |
-+ |
237 |
-+ |
238 |
-+ /* Relabel the vertices so that it starts from 0 */ |
239 |
-+ for (i=0; i<nvtxs; i++) |
240 |
-+ iperm[i]--; |
241 |
-+ for (i=0; i<nvtxs+1; i++) |
242 |
-+ xadj[i]--; |
243 |
-+ k = xadj[nvtxs]; |
244 |
-+ for (i=0; i<k; i++) |
245 |
-+ adjncy[i]--; |
246 |
-+ |
247 |
-+} |
248 |
-+ |
249 |
-+ |
250 |
-+ |
251 |
-+/************************************************************************* |
252 |
-+* This function sets up data structures for fill-in computations |
253 |
-+**************************************************************************/ |
254 |
-+idxtype ComputeFillIn2(GraphType *graph, idxtype *iperm) |
255 |
-+{ |
256 |
-+ idxtype i, j, k, nvtxs, maxlnz, maxsub; |
257 |
-+ idxtype *xadj, *adjncy; |
258 |
-+ idxtype *perm, *xlnz, *xnzsub, *nzsub; |
259 |
-+ double opc; |
260 |
-+ |
261 |
-+ nvtxs = graph->nvtxs; |
262 |
-+ xadj = graph->xadj; |
263 |
-+ adjncy = graph->adjncy; |
264 |
-+ |
265 |
-+ maxsub = 4*xadj[nvtxs]; |
266 |
-+ |
267 |
-+ /* Relabel the vertices so that it starts from 1 */ |
268 |
-+ k = xadj[nvtxs]; |
269 |
-+ for (i=0; i<k; i++) |
270 |
-+ adjncy[i]++; |
271 |
-+ for (i=0; i<nvtxs+1; i++) |
272 |
-+ xadj[i]++; |
273 |
-+ |
274 |
-+ /* Allocate the required memory */ |
275 |
-+ perm = idxmalloc(nvtxs+1, "ComputeFillIn: perm"); |
276 |
-+ xlnz = idxmalloc(nvtxs+1, "ComputeFillIn: xlnz"); |
277 |
-+ xnzsub = idxmalloc(nvtxs+1, "ComputeFillIn: xnzsub"); |
278 |
-+ nzsub = idxmalloc(maxsub, "ComputeFillIn: nzsub"); |
279 |
-+ |
280 |
-+ /* Construct perm from iperm and change the numbering of iperm */ |
281 |
-+ for (i=0; i<nvtxs; i++) |
282 |
-+ perm[iperm[i]] = i; |
283 |
-+ for (i=0; i<nvtxs; i++) { |
284 |
-+ iperm[i]++; |
285 |
-+ perm[i]++; |
286 |
-+ } |
287 |
-+ |
288 |
-+ /* |
289 |
-+ * Call sparspak routine. |
290 |
-+ */ |
291 |
-+ if (smbfct(nvtxs, xadj, adjncy, perm, iperm, xlnz, &maxlnz, xnzsub, nzsub, &maxsub)) { |
292 |
-+ gk_free((void **)&nzsub, LTERM); |
293 |
-+ |
294 |
-+ maxsub = 4*maxsub; |
295 |
-+ nzsub = idxmalloc(maxsub, "ComputeFillIn: nzsub"); |
296 |
-+ if (smbfct(nvtxs, xadj, adjncy, perm, iperm, xlnz, &maxlnz, xnzsub, nzsub, &maxsub)) |
297 |
-+ errexit("MAXSUB is too small!"); |
298 |
-+ } |
299 |
-+ |
300 |
-+ opc = 0; |
301 |
-+ for (i=0; i<nvtxs; i++) |
302 |
-+ xlnz[i]--; |
303 |
-+ for (i=0; i<nvtxs; i++) |
304 |
-+ opc += (xlnz[i+1]-xlnz[i])*(xlnz[i+1]-xlnz[i]) - (xlnz[i+1]-xlnz[i]); |
305 |
-+ |
306 |
-+ |
307 |
-+ gk_free((void **)&perm, &xlnz, &xnzsub, &nzsub, LTERM); |
308 |
-+ |
309 |
-+ |
310 |
-+ /* Relabel the vertices so that it starts from 0 */ |
311 |
-+ for (i=0; i<nvtxs; i++) |
312 |
-+ iperm[i]--; |
313 |
-+ for (i=0; i<nvtxs+1; i++) |
314 |
-+ xadj[i]--; |
315 |
-+ k = xadj[nvtxs]; |
316 |
-+ for (i=0; i<k; i++) |
317 |
-+ adjncy[i]--; |
318 |
-+ |
319 |
-+ return maxlnz; |
320 |
-+ |
321 |
-+} |
322 |
-+ |
323 |
-+ |
324 |
-+/***************************************************************** |
325 |
-+********** SMBFCT ..... SYMBOLIC FACTORIZATION ********* |
326 |
-+****************************************************************** |
327 |
-+* PURPOSE - THIS ROUTINE PERFORMS SYMBOLIC FACTORIZATION |
328 |
-+* ON A PERMUTED LINEAR SYSTEM AND IT ALSO SETS UP THE |
329 |
-+* COMPRESSED DATA STRUCTURE FOR THE SYSTEM. |
330 |
-+* |
331 |
-+* INPUT PARAMETERS - |
332 |
-+* NEQNS - NUMBER OF EQUATIONS. |
333 |
-+* (XADJ, ADJNCY) - THE ADJACENCY STRUCTURE. |
334 |
-+* (PERM, INVP) - THE PERMUTATION VECTOR AND ITS INVERSE. |
335 |
-+* |
336 |
-+* UPDATED PARAMETERS - |
337 |
-+* MAXSUB - SIZE OF THE SUBSCRIPT ARRAY NZSUB. ON RETURN, |
338 |
-+* IT CONTAINS THE NUMBER OF SUBSCRIPTS USED |
339 |
-+* |
340 |
-+* OUTPUT PARAMETERS - |
341 |
-+* XLNZ - INDEX INTO THE NONZERO STORAGE VECTOR LNZ. |
342 |
-+* (XNZSUB, NZSUB) - THE COMPRESSED SUBSCRIPT VECTORS. |
343 |
-+* MAXLNZ - THE NUMBER OF NONZEROS FOUND. |
344 |
-+* |
345 |
-+*******************************************************************/ |
346 |
-+idxtype smbfct(idxtype neqns, idxtype *xadj, idxtype *adjncy, idxtype *perm, idxtype *invp, |
347 |
-+ idxtype *xlnz, idxtype *maxlnz, idxtype *xnzsub, idxtype *nzsub, idxtype *maxsub) |
348 |
-+{ |
349 |
-+ /* Local variables */ |
350 |
-+ idxtype node, rchm, mrgk, lmax, i, j, k, m, nabor, nzbeg, nzend; |
351 |
-+ idxtype kxsub, jstop, jstrt, mrkflg, inz, knz, flag; |
352 |
-+ idxtype *mrglnk, *marker, *rchlnk; |
353 |
-+ |
354 |
-+ rchlnk = idxmalloc(neqns+1, "smbfct: rchlnk"); |
355 |
-+ marker = idxsmalloc(neqns+1, 0, "smbfct: marker"); |
356 |
-+ mrglnk = idxsmalloc(neqns+1, 0, "smbfct: mgrlnk"); |
357 |
-+ |
358 |
-+ /* Parameter adjustments */ |
359 |
-+ --marker; |
360 |
-+ --mrglnk; |
361 |
-+ --rchlnk; |
362 |
-+ --nzsub; |
363 |
-+ --xnzsub; |
364 |
-+ --xlnz; |
365 |
-+ --invp; |
366 |
-+ --perm; |
367 |
-+ --adjncy; |
368 |
-+ --xadj; |
369 |
-+ |
370 |
-+ /* Function Body */ |
371 |
-+ flag = 0; |
372 |
-+ nzbeg = 1; |
373 |
-+ nzend = 0; |
374 |
-+ xlnz[1] = 1; |
375 |
-+ |
376 |
-+ /* FOR EACH COLUMN KNZ COUNTS THE NUMBER OF NONZEROS IN COLUMN K ACCUMULATED IN RCHLNK. */ |
377 |
-+ for (k = 1; k <= neqns; ++k) { |
378 |
-+ knz = 0; |
379 |
-+ mrgk = mrglnk[k]; |
380 |
-+ mrkflg = 0; |
381 |
-+ marker[k] = k; |
382 |
-+ if (mrgk != 0) |
383 |
-+ marker[k] = marker[mrgk]; |
384 |
-+ xnzsub[k] = nzend; |
385 |
-+ node = perm[k]; |
386 |
-+ |
387 |
-+ if (xadj[node] >= xadj[node+1]) { |
388 |
-+ xlnz[k+1] = xlnz[k]; |
389 |
-+ continue; |
390 |
-+ } |
391 |
-+ |
392 |
-+ /* USE RCHLNK TO LINK THROUGH THE STRUCTURE OF A(*,K) BELOW DIAGONAL */ |
393 |
-+ rchlnk[k] = neqns+1; |
394 |
-+ for (j=xadj[node]; j<xadj[node+1]; j++) { |
395 |
-+ nabor = invp[adjncy[j]]; |
396 |
-+ if (nabor <= k) |
397 |
-+ continue; |
398 |
-+ rchm = k; |
399 |
-+ |
400 |
-+ do { |
401 |
-+ m = rchm; |
402 |
-+ rchm = rchlnk[m]; |
403 |
-+ } while (rchm <= nabor); |
404 |
-+ |
405 |
-+ knz++; |
406 |
-+ rchlnk[m] = nabor; |
407 |
-+ rchlnk[nabor] = rchm; |
408 |
-+ if (marker[nabor] != marker[k]) |
409 |
-+ mrkflg = 1; |
410 |
-+ } |
411 |
-+ |
412 |
-+ /* TEST FOR MASS SYMBOLIC ELIMINATION */ |
413 |
-+ lmax = 0; |
414 |
-+ if (mrkflg != 0 || mrgk == 0 || mrglnk[mrgk] != 0) |
415 |
-+ goto L350; |
416 |
-+ xnzsub[k] = xnzsub[mrgk] + 1; |
417 |
-+ knz = xlnz[mrgk + 1] - (xlnz[mrgk] + 1); |
418 |
-+ goto L1400; |
419 |
-+ |
420 |
-+ |
421 |
-+ /* LINK THROUGH EACH COLUMN I THAT AFFECTS L(*,K) */ |
422 |
-+L350: |
423 |
-+ i = k; |
424 |
-+ while ((i = mrglnk[i]) != 0) { |
425 |
-+ inz = xlnz[i+1] - (xlnz[i]+1); |
426 |
-+ jstrt = xnzsub[i] + 1; |
427 |
-+ jstop = xnzsub[i] + inz; |
428 |
-+ |
429 |
-+ if (inz > lmax) { |
430 |
-+ lmax = inz; |
431 |
-+ xnzsub[k] = jstrt; |
432 |
-+ } |
433 |
-+ |
434 |
-+ /* MERGE STRUCTURE OF L(*,I) IN NZSUB INTO RCHLNK. */ |
435 |
-+ rchm = k; |
436 |
-+ for (j = jstrt; j <= jstop; ++j) { |
437 |
-+ nabor = nzsub[j]; |
438 |
-+ do { |
439 |
-+ m = rchm; |
440 |
-+ rchm = rchlnk[m]; |
441 |
-+ } while (rchm < nabor); |
442 |
-+ |
443 |
-+ if (rchm != nabor) { |
444 |
-+ knz++; |
445 |
-+ rchlnk[m] = nabor; |
446 |
-+ rchlnk[nabor] = rchm; |
447 |
-+ rchm = nabor; |
448 |
-+ } |
449 |
-+ } |
450 |
-+ } |
451 |
-+ |
452 |
-+ /* CHECK IF SUBSCRIPTS DUPLICATE THOSE OF ANOTHER COLUMN */ |
453 |
-+ if (knz == lmax) |
454 |
-+ goto L1400; |
455 |
-+ |
456 |
-+ /* OR IF TAIL OF K-1ST COLUMN MATCHES HEAD OF KTH */ |
457 |
-+ if (nzbeg > nzend) |
458 |
-+ goto L1200; |
459 |
-+ |
460 |
-+ i = rchlnk[k]; |
461 |
-+ for (jstrt = nzbeg; jstrt <= nzend; ++jstrt) { |
462 |
-+ if (nzsub[jstrt] < i) |
463 |
-+ continue; |
464 |
-+ |
465 |
-+ if (nzsub[jstrt] == i) |
466 |
-+ goto L1000; |
467 |
-+ else |
468 |
-+ goto L1200; |
469 |
-+ } |
470 |
-+ goto L1200; |
471 |
-+ |
472 |
-+L1000: |
473 |
-+ xnzsub[k] = jstrt; |
474 |
-+ for (j = jstrt; j <= nzend; ++j) { |
475 |
-+ if (nzsub[j] != i) |
476 |
-+ goto L1200; |
477 |
-+ |
478 |
-+ i = rchlnk[i]; |
479 |
-+ if (i > neqns) |
480 |
-+ goto L1400; |
481 |
-+ } |
482 |
-+ nzend = jstrt - 1; |
483 |
-+ |
484 |
-+ /* COPY THE STRUCTURE OF L(*,K) FROM RCHLNK TO THE DATA STRUCTURE (XNZSUB, NZSUB) */ |
485 |
-+L1200: |
486 |
-+ nzbeg = nzend + 1; |
487 |
-+ nzend += knz; |
488 |
-+ |
489 |
-+ if (nzend > *maxsub) { |
490 |
-+ flag = 1; /* Out of memory */ |
491 |
-+ break; |
492 |
-+ } |
493 |
-+ |
494 |
-+ i = k; |
495 |
-+ for (j=nzbeg; j<=nzend; ++j) { |
496 |
-+ i = rchlnk[i]; |
497 |
-+ nzsub[j] = i; |
498 |
-+ marker[i] = k; |
499 |
-+ } |
500 |
-+ xnzsub[k] = nzbeg; |
501 |
-+ marker[k] = k; |
502 |
-+ |
503 |
-+ /* |
504 |
-+ * UPDATE THE VECTOR MRGLNK. NOTE COLUMN L(*,K) JUST FOUND |
505 |
-+ * IS REQUIRED TO DETERMINE COLUMN L(*,J), WHERE |
506 |
-+ * L(J,K) IS THE FIRST NONZERO IN L(*,K) BELOW DIAGONAL. |
507 |
-+ */ |
508 |
-+L1400: |
509 |
-+ if (knz > 1) { |
510 |
-+ kxsub = xnzsub[k]; |
511 |
-+ i = nzsub[kxsub]; |
512 |
-+ mrglnk[k] = mrglnk[i]; |
513 |
-+ mrglnk[i] = k; |
514 |
-+ } |
515 |
-+ |
516 |
-+ xlnz[k + 1] = xlnz[k] + knz; |
517 |
-+ } |
518 |
-+ |
519 |
-+ if (flag == 0) { |
520 |
-+ *maxlnz = xlnz[neqns] - 1; |
521 |
-+ *maxsub = xnzsub[neqns]; |
522 |
-+ xnzsub[neqns + 1] = xnzsub[neqns]; |
523 |
-+ } |
524 |
-+ |
525 |
-+ marker++; |
526 |
-+ mrglnk++; |
527 |
-+ rchlnk++; |
528 |
-+ nzsub++; |
529 |
-+ xnzsub++; |
530 |
-+ xlnz++; |
531 |
-+ invp++; |
532 |
-+ perm++; |
533 |
-+ adjncy++; |
534 |
-+ xadj++; |
535 |
-+ gk_free((void **)&rchlnk, &mrglnk, &marker, LTERM); |
536 |
-+ |
537 |
-+ return flag; |
538 |
-+ |
539 |
-+} |
540 |
+--- ./libmetis/Makefile.am 1970-01-01 01:00:00.000000000 +0100 |
541 |
++++ ./libmetis/Makefile.am 2008-03-25 11:07:04.387845420 +0000 |
542 |
+@@ -0,0 +1,20 @@ |
543 |
++AM_CPPFLAGS = \ |
544 |
++ -I$(top_srcdir)/include \ |
545 |
++ -I$(top_srcdir)/GKlib/trunk \ |
546 |
++ -DLINUX -DUNIX -D_FILE_OFFSET_BITS=64 |
547 |
+ |
548 |
---- libmetis/Makefile.am 1970-01-01 01:00:00.000000000 +0100 |
549 |
-+++ libmetis/Makefile.am 2007-09-24 15:12:11.933290307 +0100 |
550 |
-@@ -0,0 +1,16 @@ |
551 |
-+AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/GKlib/trunk -DLINUX -DUNIX -D_FILE_OFFSET_BITS=64 |
552 |
+lib_LTLIBRARIES = libmetis.la |
553 |
+libmetis_la_SOURCES= \ |
554 |
+ balance.c bucketsort.c ccgraph.c checkgraph.c cmetis.c \ |
555 |
@@ -495,40 +152,11 @@ |
556 |
+ pmetis.c pqueue.c refine.c rkmetis.c separator.c sfm.c \ |
557 |
+ srefine.c stat.c streamio.c subdomains.c timing.c util.c \ |
558 |
+ smbfactor.c |
559 |
-+ |
560 |
+libmetis_la_LIBADD = $(top_builddir)/GKlib/trunk/libgklib.la |
561 |
---- programs/Makefile.am 1970-01-01 01:00:00.000000000 +0100 |
562 |
-+++ programs/Makefile.am 2007-09-24 15:12:11.933290307 +0100 |
563 |
-@@ -0,0 +1,19 @@ |
564 |
-+AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/GKlib/trunk -DLINUX -DUNIX -D_FILE_OFFSET_BITS=64 |
565 |
-+bin_PROGRAMS = cmetis graphchk kfmetis kmetis mesh2dual mesh2nodal metis \ |
566 |
-+ oemetis onmetis partdmesh partnmesh pmetis |
567 |
-+ |
568 |
-+# Differing from upstream, a lot of these get smbfactor.c as we need |
569 |
-+# ComputeFillIn2, which is referenced in proto.h <- metisbin.h |
570 |
-+LDADD = $(top_builddir)/libmetis/libmetis.la |
571 |
-+cmetis_SOURCES = cmetis.c io.c cmdline_cmetis.c |
572 |
-+graphchk_SOURCES = graphchk.c io.c |
573 |
-+kfmetis_SOURCES = kfmetis.c io.c cmdline_kfmetis.c |
574 |
-+kmetis_SOURCES = kmetis.c io.c |
575 |
-+mesh2dual_SOURCES = mesh2dual.c io.c |
576 |
-+mesh2nodal_SOURCES = mesh2nodal.c io.c |
577 |
-+metis_SOURCES = metis.c io.c |
578 |
-+oemetis_SOURCES = oemetis.c io.c |
579 |
-+onmetis_SOURCES = onmetis.c io.c |
580 |
-+partdmesh_SOURCES = partdmesh.c io.c |
581 |
-+partnmesh_SOURCES = partnmesh.c io.c |
582 |
-+pmetis_SOURCES = pmetis.c io.c cmdline_pmetis.c |
583 |
---- test/Makefile.am 1970-01-01 01:00:00.000000000 +0100 |
584 |
-+++ test/Makefile.am 2007-09-24 15:45:23.683980202 +0100 |
585 |
-@@ -0,0 +1,10 @@ |
586 |
-+AM_CPPFLAGS = \ |
587 |
-+ -I$(top_srcdir)/include \ |
588 |
-+ -I$(top_srcdir)/libmetis \ |
589 |
-+ -I$(top_srcdir)/programs \ |
590 |
-+ -I$(top_srcdir)/GKlib/trunk \ |
591 |
-+ -DLINUX -DUNIX -D_FILE_OFFSET_BITS=64 |
592 |
-+ |
593 |
-+check_PROGRAMS = mtest |
594 |
-+mtest_SOURCES = mtest.c $(top_srcdir)/programs/io.c |
595 |
-+mtest_LDADD = $(top_builddir)/libmetis/libmetis.la |
596 |
++libmetis_la_LDFLAGS = -no-undefined -version-info 5:0:0 |
597 |
+--- ./Makefile.am 1970-01-01 01:00:00.000000000 +0100 |
598 |
++++ ./Makefile.am 2008-03-25 11:07:04.387845420 +0000 |
599 |
+@@ -0,0 +1,3 @@ |
600 |
++SUBDIRS = GKlib/trunk libmetis programs test |
601 |
++EXTRA_DIST = CHANGES.v4 CHANGES.v5 |
602 |
++include_HEADERS = include/metis.h |
603 |
|
604 |
|
605 |
|
606 |
1.2 sci-libs/metis/files/metis-4.0.1-autotools.patch |
607 |
|
608 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sci-libs/metis/files/metis-4.0.1-autotools.patch?rev=1.2&view=markup |
609 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sci-libs/metis/files/metis-4.0.1-autotools.patch?rev=1.2&content-type=text/plain |
610 |
diff : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sci-libs/metis/files/metis-4.0.1-autotools.patch?r1=1.1&r2=1.2 |
611 |
|
612 |
Index: metis-4.0.1-autotools.patch |
613 |
=================================================================== |
614 |
RCS file: /var/cvsroot/gentoo-x86/sci-libs/metis/files/metis-4.0.1-autotools.patch,v |
615 |
retrieving revision 1.1 |
616 |
retrieving revision 1.2 |
617 |
diff -u -r1.1 -r1.2 |
618 |
--- metis-4.0.1-autotools.patch 5 Feb 2008 17:55:30 -0000 1.1 |
619 |
+++ metis-4.0.1-autotools.patch 27 Mar 2008 19:04:35 -0000 1.2 |
620 |
@@ -1,18 +1,44 @@ |
621 |
--- configure.ac 1970-01-01 01:00:00.000000000 +0100 |
622 |
-+++ configure.ac 2008-01-30 21:47:22.597386731 +0000 |
623 |
-@@ -0,0 +1,9 @@ |
624 |
++++ configure.ac 2008-03-25 10:05:57.090715324 +0000 |
625 |
+@@ -0,0 +1,14 @@ |
626 |
+# -*- Autoconf -*- |
627 |
+AC_PREREQ(2.59) |
628 |
-+AC_INIT(metis,4.0.1,karypis@××××××.edu) |
629 |
++AC_INIT(metis, 4.0.1, karypis@××××××.edu) |
630 |
+AM_INIT_AUTOMAKE([foreign]) |
631 |
+AC_PROG_INSTALL |
632 |
+AC_PROG_LIBTOOL |
633 |
+AC_CHECK_LIB(m, sqrt) |
634 |
-+AC_CONFIG_FILES([Makefile Lib/Makefile Programs/Makefile Test/Makefile]) |
635 |
++AC_CONFIG_FILES([ |
636 |
++ Makefile |
637 |
++ metis.pc |
638 |
++ Lib/Makefile |
639 |
++ Programs/Makefile\ |
640 |
++ Test/Makefile]) |
641 |
+AC_OUTPUT |
642 |
---- ./Lib/Makefile.am 1970-01-01 01:00:00.000000000 +0100 |
643 |
-+++ ./Lib/Makefile.am 2008-01-31 15:03:42.814421420 +0000 |
644 |
-@@ -0,0 +1,16 @@ |
645 |
+--- metis.pc.in 1970-01-01 01:00:00.000000000 +0100 |
646 |
++++ metis.pc.in 2008-02-15 14:45:09.378997263 +0000 |
647 |
+@@ -0,0 +1,10 @@ |
648 |
++prefix=@prefix@ |
649 |
++exec_prefix=@exec_prefix@ |
650 |
++libdir=@libdir@ |
651 |
++includedir=@includedir@ |
652 |
++ |
653 |
++Name: METIS |
654 |
++Description: Software for partioning unstructured graphes and meshes |
655 |
++Version: @VERSION@ |
656 |
++Libs: -L${libdir} -lmetis |
657 |
++Cflags: -I${includedir} |
658 |
+--- Makefile.am 1970-01-01 01:00:00.000000000 +0100 |
659 |
++++ Makefile.am 2008-02-15 14:46:16.578826763 +0000 |
660 |
+@@ -0,0 +1,5 @@ |
661 |
++SUBDIRS = Lib Programs Test |
662 |
++EXTRA_DIST = CHANGES VERSION metis.pc.in |
663 |
++ |
664 |
++pkgconfigdir = $(libdir)/pkgconfig |
665 |
++pkgconfig_DATA = metis.pc |
666 |
+--- Lib/Makefile.am 1970-01-01 01:00:00.000000000 +0100 |
667 |
++++ Lib/Makefile.am 2008-03-25 10:06:10.719491984 +0000 |
668 |
+@@ -0,0 +1,15 @@ |
669 |
+include_HEADERS = defs.h macros.h metis.h proto.h rename.h struct.h |
670 |
+pkgincludedir = $(includedir)/metis |
671 |
+lib_LTLIBRARIES = libmetis.la |
672 |
@@ -27,10 +53,9 @@ |
673 |
+ mrefine.c mutil.c mfm.c mkmetis.c mkwayrefine.c mkwayfmh.c \ |
674 |
+ mrefine2.c minitpart2.c mbalance2.c mfm2.c \ |
675 |
+ kvmetis.c kwayvolrefine.c kwayvolfm.c subdomains.c |
676 |
-+libmetis_la_LIBADD = -lm |
677 |
-+libmetis_la_LDFLAGS = -no-undefined -version-info 4:0:0 |
678 |
---- ./Programs/Makefile.am 1970-01-01 01:00:00.000000000 +0100 |
679 |
-+++ ./Programs/Makefile.am 2008-01-31 12:00:14.981124649 +0000 |
680 |
++libmetis_la_LDFLAGS = -no-undefined -version-info 4:0:0 |
681 |
+--- Programs/Makefile.am 1970-01-01 01:00:00.000000000 +0100 |
682 |
++++ Programs/Makefile.am 2008-01-31 12:00:14.981124649 +0000 |
683 |
@@ -0,0 +1,15 @@ |
684 |
+AM_CPPFLAGS = -I$(top_srcdir)/Lib |
685 |
+LDADD = $(top_builddir)/Lib/libmetis.la -lm |
686 |
@@ -47,8 +72,8 @@ |
687 |
+partdmesh_SOURCES = partdmesh.c io.c |
688 |
+partnmesh_SOURCES = partnmesh.c io.c |
689 |
+graphchk_SOURCES = graphchk.c io.c |
690 |
---- ./Test/Makefile.am 1970-01-01 01:00:00.000000000 +0100 |
691 |
-+++ ./Test/Makefile.am 2008-01-31 12:37:59.532517099 +0000 |
692 |
+--- Test/Makefile.am 1970-01-01 01:00:00.000000000 +0100 |
693 |
++++ Test/Makefile.am 2008-01-31 12:37:59.532517099 +0000 |
694 |
@@ -0,0 +1,7 @@ |
695 |
+AM_CPPFLAGS = -I$(top_srcdir)/Lib |
696 |
+LDADD = $(top_builddir)/Lib/libmetis.la -lm |
697 |
@@ -57,10 +82,3 @@ |
698 |
+ |
699 |
+check-local: $(check_PROGRAMS) |
700 |
+ - ./mtest ../Graphs/4elt.graph |
701 |
---- ./Makefile.am 1970-01-01 01:00:00.000000000 +0100 |
702 |
-+++ ./Makefile.am 2008-01-30 21:15:58.990578962 +0000 |
703 |
-@@ -0,0 +1,4 @@ |
704 |
-+SUBDIRS = Lib Programs Test |
705 |
-+EXTRA_DIST = CHANGES |
706 |
-+ |
707 |
-+ |
708 |
|
709 |
|
710 |
|
711 |
-- |
712 |
gentoo-commits@l.g.o mailing list |