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