public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/proj/guru:master commit in: sci-libs/meschach/, sci-libs/meschach/files/
@ 2021-09-07  2:58 Haelwenn Monnier
  0 siblings, 0 replies; 2+ messages in thread
From: Haelwenn Monnier @ 2021-09-07  2:58 UTC (permalink / raw
  To: gentoo-commits

commit:     253b91dbf1c6ca1a07935f7627b04ae4c7f26baf
Author:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Mon Sep  6 23:39:07 2021 +0000
Commit:     Haelwenn Monnier <contact <AT> hacktivis <DOT> me>
CommitDate: Mon Sep  6 23:42:44 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=253b91db

sci-libs/meschach: apply mbdyn patch

Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>

 sci-libs/meschach/files/makefile.patch          | 116 ---
 sci-libs/meschach/files/meschach-2-mbdyn.diff   | 906 ++++++++++++++++++++++++
 sci-libs/meschach/files/meschach-makefile.patch | 156 ++++
 sci-libs/meschach/meschach-1.2b.ebuild          |   5 +-
 4 files changed, 1065 insertions(+), 118 deletions(-)

diff --git a/sci-libs/meschach/files/makefile.patch b/sci-libs/meschach/files/makefile.patch
deleted file mode 100644
index 9c2fb918d..000000000
--- a/sci-libs/meschach/files/makefile.patch
+++ /dev/null
@@ -1,116 +0,0 @@
---- a/makefile.in	2021-04-11 20:54:38.081969329 +0200
-+++ b/makefile.in	2021-04-11 21:42:48.789853703 +0200
-@@ -18,8 +18,7 @@
- LIBS = @LIBS@
- RANLIB = @RANLIB@
- 
--
--CFLAGS = -O3 -fPIC
-+CFLAGS += -fPIC
- 
- 
- .c.o:
-@@ -80,45 +79,45 @@
- 
- $(LIST1): $(HBASE)
- part1: $(LIST1)
--	ar ru libmeschach.a $(LIST1)
-+	$(AR) ru libmeschach.a $(LIST1)
- 	$(RANLIB) libmeschach.a
- #	$(CC) -shared -o libmeschach.so $(LIST1)
- 
- $(LIST2): $(HBASE) matrix2.h
- part2: $(LIST2)
--	ar ru libmeschach.a $(LIST2)
-+	$(AR) ru libmeschach.a $(LIST2)
- 	$(RANLIB) libmeschach.a
- #	$(CC) -shared -o libmeschach.so $(LIST2)
- 
- $(LIST3): $(HBASE) sparse.h sparse2.h
- part3: $(LIST3)
--	ar ru libmeschach.a $(LIST3)
-+	$(AR) ru libmeschach.a $(LIST3)
- 	$(RANLIB) libmeschach.a
- #	$(CC) -shared -o libmeschach.so $(LIST3)
- 
- $(ZLIST1): $(HBASDE) zmatrix.h
- zpart1: $(ZLIST1)
--	ar ru libmeschach.a $(ZLIST1)
-+	$(AR) ru libmeschach.a $(ZLIST1)
- 	$(RANLIB) libmeschach.a
- #	$(CC) -shared -o libmeschach.so $(ZLIST1)
- 
- $(ZLIST2): $(HBASE) zmatrix.h zmatrix2.h 
- zpart2: $(ZLIST2)
--	ar ru libmeschach.a $(ZLIST2)
-+	$(AR) ru libmeschach.a $(ZLIST2)
- 	$(RANLIB) libmeschach.a
- #	$(CC) -shared -o libmeschach.so $(ZLIST2)
- 
- $(OLDLIST): $(HBASE) sparse.h sparse2.h 
- oldpart: $(OLDLIST)
--	ar ru libmeschach.a $(OLDLIST)
-+	$(AR) ru libmeschach.a $(OLDLIST)
- 	$(RANLIB) libmeschach.a
- #	$(CC) -shared -o libmeschach.so $(OLDLIST)
- 
- shared:   $(ALL_LISTS)
--	$(CC) -shared -o libmeschach.so $(ALL_LISTS) -lc -lm -Wl,-soname -Wl,libmeschach.so.$(vers)
-+	$(CC) $(LDFLAGS) -shared -o libmeschach.so $(ALL_LISTS) -lc -lm -Wl,-soname -Wl,libmeschach.so.$(vers)
- 
- static:  $(ALL_LISTS)
--	ar ru libmeschach.a $(ALL_LISTS)
-+	$(AR) ru libmeschach.a $(ALL_LISTS)
- 	$(RANLIB) libmeschach.a
- 
- 
-@@ -200,31 +199,31 @@
- alltorture: torture sptort ztorture memtort itertort mfuntort iotort
- 
- torture:torture.o libmeschach.a
--	$(CC) $(CFLAGS) $(DEFS) -o torture torture.o \
--	libmeschach.a $(LIBS)
-+	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o torture torture.o \
-+	-lmeschach -L. $(LIBS)
- sptort:sptort.o libmeschach.a
--	$(CC) $(CFLAGS) $(DEFS) -o sptort sptort.o \
--	libmeschach.a $(LIBS)
-+	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o sptort sptort.o \
-+	-lmeschach -L. $(LIBS)
- memtort: memtort.o libmeschach.a
--	$(CC) $(CFLAGS) $(DEFS) -o memtort memtort.o \
--	libmeschach.a $(LIBS)
-+	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o memtort memtort.o \
-+	-lmeschach -L. $(LIBS)
- ztorture:ztorture.o libmeschach.a
--	$(CC) $(CFLAGS) $(DEFS) -o ztorture ztorture.o \
--	libmeschach.a $(LIBS)
-+	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o ztorture ztorture.o \
-+	-lmeschach -L. $(LIBS)
- itertort: itertort.o libmeschach.a
--	$(CC) $(CFLAGS) $(DEFS) -o itertort itertort.o \
--	libmeschach.a $(LIBS)
-+	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o itertort itertort.o \
-+	-lmeschach -L. $(LIBS)
- 
- iotort: iotort.o libmeschach.a
--	$(CC) $(CFLAGS) $(DEFS) -o iotort iotort.o \
--	libmeschach.a $(LIBS)
-+	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o iotort iotort.o \
-+	-lmeschach -L. $(LIBS)
- mfuntort: mfuntort.o libmeschach.a
--	$(CC) $(CFLAGS) $(DEFS) -o mfuntort mfuntort.o \
--	libmeschach.a $(LIBS)
-+	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o mfuntort mfuntort.o \
-+	-lmeschach -L. $(LIBS)
- tstmove: tstmove.o libmeschach.a
--	$(CC) $(CFLAGS) $(DEFS) -o tstmove tstmove.o \
--	libmeschach.a $(LIBS)
-+	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o tstmove tstmove.o \
-+	-lmeschach -L. $(LIBS)
- tstpxvec: tstpxvec.o libmeschach.a
--	$(CC) $(CFLAGS) $(DEFS) -o tstpxvec tstpxvec.o \
--	libmeschach.a $(LIBS)
-+	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o tstpxvec tstpxvec.o \
-+	-lmeschach -L. $(LIBS)
- 

diff --git a/sci-libs/meschach/files/meschach-2-mbdyn.diff b/sci-libs/meschach/files/meschach-2-mbdyn.diff
new file mode 100644
index 000000000..89db78f73
--- /dev/null
+++ b/sci-libs/meschach/files/meschach-2-mbdyn.diff
@@ -0,0 +1,906 @@
+--- a/CHANGELOG
++++ b/CHANGELOG
+@@ -0,0 +1,10 @@
++* 2000-04-13 Pierangelo Masarati <masarati@aero.polimi.it>
++ - fixed HUGE_VAL configure
++ - prefixed REAL, DOUBLE and FLOAT with MESCHACH_ to avoid conflicts
++
++* 2000-??-?? Pierangelo Masarati <masarati@aero.polimi.it>
++ - changed the struct pair in sparse.h to avoid conflicts with C++ stl
++ - added some helpers for adding and subtracting coefs from sparse matrices
++ - WARNING: in C++ the macro `catch' conflicts with the exception handling
++   keyword; I temporarily fixed the problem by #undef-ining it after including
++   meschach headers.
+--- a/init.c
++++ b/init.c
+@@ -59,7 +59,7 @@
+    if ( ix == IVNULL )
+      error(E_NULL,"iv_zero");
+    
+-   for ( i = 0; i < ix->dim; i++ )
++   for ( i = ix->dim; i-- > 0; )
+      ix->ive[i] = 0; 
+    
+    return ix;
+@@ -77,7 +77,7 @@
+ 		error(E_NULL,"m_zero");
+ 
+ 	A_m = A->m;	A_n = A->n;	A_me = A->me;
+-	for ( i = 0; i < A_m; i++ )
++	for ( i = A_m; i-- > 0; )
+ 		__zero__(A_me[i],A_n);
+ 		/* for ( j = 0; j < A_n; j++ )
+ 			A_me[i][j] = 0.0; */
+@@ -97,7 +97,7 @@
+ 
+ 	m_zero(A);
+ 	size = min(A->m,A->n);
+-	for ( i = 0; i < size; i++ )
++	for ( i = size; i-- > 0; )
+ 		A->me[i][i] = 1.0;
+ 
+ 	return A;
+@@ -114,7 +114,7 @@
+ 		error(E_NULL,"px_ident");
+ 
+ 	px_size = px->size;	px_pe = px->pe;
+-	for ( i = 0; i < px_size; i++ )
++	for ( i = px_size; i-- > 0; )
+ 		px_pe[i] = i;
+ 
+ 	return px;
+@@ -178,7 +178,7 @@
+     if ( ! started )
+ 	smrand(3127);
+     
+-    for ( i = 0; i < len; i++ )
++    for ( i = len; i-- > 0; )
+     {
+ 	inext = (inext >= 54) ? 0 : inext+1;
+ 	inextp = (inextp >= 54) ? 0 : inextp+1;
+@@ -260,12 +260,28 @@
+ 	if ( ! x )
+ 		error(E_NULL,"v_ones");
+ 
+-	for ( i = 0; i < x->dim; i++ )
++	for ( i = x->dim; i-- > 0; )
+ 		x->ve[i] = 1.0;
+ 
+ 	return x;
+ }
+ 
++/* v_init -- fills x with d's */
++VEC	*v_init(x, d)
++VEC	*x;
++Real    d;
++{
++	int	i;
++
++	if ( ! x )
++		error(E_NULL,"v_ones");
++
++	for ( i = x->dim; i-- > 0; )
++		x->ve[i] = d;
++
++	return x;
++}
++
+ /* m_ones -- fills matrix with one's */
+ MAT	*m_ones(A)
+ MAT	*A;
+@@ -275,8 +291,8 @@
+ 	if ( ! A )
+ 		error(E_NULL,"m_ones");
+ 
+-	for ( i = 0; i < A->m; i++ )
+-		for ( j = 0; j < A->n; j++ )
++	for ( i = A->m; i-- > 0; )
++		for ( j = A->n; j-- > 0; )
+ 		    A->me[i][j] = 1.0;
+ 
+ 	return A;
+@@ -291,7 +307,7 @@
+ 	if ( ! x )
+ 	    error(E_NULL,"v_count");
+ 
+-	for ( i = 0; i < x->dim; i++ )
++	for ( i = x->dim; i-- > 0; )
+ 	    x->ve[i] = (Real)i;
+ 
+ 	return x;
+--- a/itertort.c
++++ b/itertort.c
+@@ -41,10 +41,10 @@
+   
+   /* for iterative methods */
+   
+-#if REAL == DOUBLE
++#if MESCHACH_REAL == MESCHACH_DOUBLE
+ #define	EPS	1e-7
+ #define KK	20
+-#elif REAL == FLOAT
++#elif MESCHACH_REAL == MESCHACH_FLOAT
+ #define EPS   1e-5
+ #define KK	8
+ #endif
+--- a/machine.h.in
++++ b/machine.h.in
+@@ -16,14 +16,15 @@
+ #undef MALLOCDECL
+ #undef NOT_SEGMENTED
+ #undef HAVE_MEMORY_H
+-#undef HAVE_COMPLEX_H
++/* #undef HAVE_COMPLEX_H */
+ #undef HAVE_MALLOC_H
++#undef HAVE_HUGE_VAL_H
+ #undef STDC_HEADERS
+ #undef HAVE_BCOPY
+ #undef HAVE_BZERO
+ #undef CHAR0ISDBL0
+ #undef WORDS_BIGENDIAN
+-#undef U_INT_DEF
++/* #undef U_INT_DEF */
+ #undef VARARGS
+ #undef HAVE_PROTOTYPES
+ #undef HAVE_PROTOTYPES_IN_STRUCT
+@@ -53,7 +54,7 @@
+ #endif /* HAVE_PROTOTYPES_IN_STRUCT */
+ 
+ /* for basic or larger versions */
+-#undef COMPLEX
++#undef MESCHACH_COMPLEX
+ #undef SPARSE
+ 
+ /* for loop unrolling */
+@@ -131,9 +132,9 @@
+ 
+ /* you can choose single, double or long double (if available) precision */
+ 
+-#define FLOAT 		1
+-#define DOUBLE 		2
+-#define LONG_DOUBLE 	3
++#define MESCHACH_FLOAT 	1
++#define MESCHACH_DOUBLE	2
++#define MESCHACH_LONG_DOUBLE 	3
+ 
+ #undef REAL_FLT
+ #undef REAL_DBL
+@@ -149,27 +150,27 @@
+ #ifdef REAL_FLT
+ #define  Real float
+ #define  LongReal float
+-#define REAL FLOAT
+-#define LONGREAL FLOAT
++#define MESCHACH_REAL MESCHACH_FLOAT
++#define MESCHACH_LONGREAL MESCHACH_FLOAT
+ #endif
+ 
+ /* double precision */
+ #ifdef REAL_DBL
+ #define Real double
+ #define LongReal double
+-#define REAL DOUBLE
+-#define LONGREAL DOUBLE
++#define MESCHACH_REAL MESCHACH_DOUBLE
++#define MESCHACH_LONGREAL MESCHACH_DOUBLE
+ #endif
+ 
+ 
+ /* machine epsilon or unit roundoff error */
+ /* This is correct on most IEEE Real precision systems */
+ #ifdef DBL_EPSILON
+-#if REAL == DOUBLE
++#if MESCHACH_REAL == MESCHACH_DOUBLE
+ #define	MACHEPS	DBL_EPSILON
+-#elif REAL == FLOAT
++#elif MESCHACH_REAL == MESCHACH_FLOAT
+ #define	MACHEPS	FLT_EPSILON
+-#elif REAL == LONGDOUBLE
++#elif MESCHACH_REAL == MESCHACH_LONGDOUBLE
+ #define MACHEPS LDBL_EPSILON
+ #endif
+ #endif
+@@ -178,11 +179,11 @@
+ #undef D_MACHEPS
+ 
+ #ifndef MACHEPS
+-#if REAL == DOUBLE
++#if MESCHACH_REAL == MESCHACH_DOUBLE
+ #define	MACHEPS	D_MACHEPS
+-#elif REAL == FLOAT  
++#elif MESCHACH_REAL == MESCHACH_FLOAT  
+ #define MACHEPS F_MACHEPS
+-#elif REAL == LONGDOUBLE
++#elif MESCHACH_REAL == MESCHACH_LONGDOUBLE
+ #define MACHEPS D_MACHEPS
+ #endif
+ #endif
+@@ -208,12 +209,16 @@
+ #endif
+ 
+ /* for non-ANSI systems */
++#ifndef HAVE_HUGE_VAL_H
+ #ifndef HUGE_VAL
+ #define HUGE_VAL HUGE
+ #else
+ #ifndef HUGE
+ #define HUGE HUGE_VAL
+ #endif
++#endif
++#else
++#define HUGE HUGE_VAL
+ #endif
+ 
+ 
+--- a/matlab.h
++++ b/matlab.h
+@@ -66,9 +66,9 @@
+ 
+ #define ORDER           ROW_ORDER
+ 
+-#if REAL == DOUBLE
++#if MESCHACH_REAL == MESCHACH_DOUBLE
+ #define PRECISION       DOUBLE_PREC
+-#elif REAL == FLOAT
++#elif MESCHACH_REAL == MESCHACH_FLOAT
+ #define PRECISION  	SINGLE_PREC
+ #endif
+ 
+@@ -90,7 +90,7 @@
+ #endif
+ 
+ /* complex variant */
+-#ifdef COMPLEX
++#ifdef MESCHACH_COMPLEX
+ #include "zmatrix.h"
+ 
+ #ifdef ANSI_C
+--- a/matrix.h
++++ b/matrix.h
+@@ -384,11 +384,17 @@
+ /* Initialisation routines -- to be zero, ones, random or identity */
+ #ifndef ANSI_C
+ extern	VEC     *v_zero(), *v_rand(), *v_ones();
++/* ANDO 01-13-99 */
++extern	VEC     *v_init();
++/* ODNA 01-13-99 */
+ extern	MAT     *m_zero(), *m_ident(), *m_rand(), *m_ones();
+ extern	PERM    *px_ident();
+ extern  IVEC    *iv_zero();
+ #else
+ extern	VEC     *v_zero(VEC *), *v_rand(VEC *), *v_ones(VEC *);
++/* ANDO 01-13-99 */
++extern	VEC     *v_init(VEC*, Real);
++/* ODNA 01-13-99 */
+ extern	MAT     *m_zero(MAT *), *m_ident(MAT *), *m_rand(MAT *),
+ 						*m_ones(MAT *);
+ extern	PERM    *px_ident(PERM *);
+--- a/matrixio.c
++++ b/matrixio.c
+@@ -124,9 +124,9 @@
+ 		    {   j--;    dynamic = FALSE;        goto redo2;     }
+ 		    if ( (*line == 'f' || *line == 'F') && j < n-1 )
+ 		    {   j++;    dynamic = FALSE;        goto redo2;     }
+-#if REAL == DOUBLE
++#if MESCHACH_REAL == MESCHACH_DOUBLE
+ 	       } while ( *line=='\0' || sscanf(line,"%lf",&mat->me[i][j])<1 );
+-#elif REAL == FLOAT
++#elif MESCHACH_REAL == MESCHACH_FLOAT
+ 	       } while ( *line=='\0' || sscanf(line,"%f",&mat->me[i][j])<1 );
+ #endif
+ 	  fprintf(stderr,"Continue: ");
+@@ -168,9 +168,9 @@
+ 	  if ( fscanf(fp," row %u:",&dummy) < 1 )
+ 	       error(E_FORMAT,"bm_finput");
+ 	  for ( j=0; j<n; j++ )
+-#if REAL == DOUBLE
++#if MESCHACH_REAL == MESCHACH_DOUBLE
+ 	       if ((io_code=fscanf(fp,"%lf",&mat->me[i][j])) < 1 )
+-#elif REAL == FLOAT
++#elif MESCHACH_REAL == MESCHACH_FLOAT
+ 	       if ((io_code=fscanf(fp,"%f",&mat->me[i][j])) < 1 )
+ #endif
+ 		    error(io_code==EOF ? 7 : 6,"bm_finput");
+@@ -337,9 +337,9 @@
+ 	       {        i--;    dynamic = FALSE;        goto redo;         }
+ 	       if ( (*line == 'f' || *line == 'F') && i < dim-1 )
+ 	       {        i++;    dynamic = FALSE;        goto redo;         }
+-#if REAL == DOUBLE
++#if MESCHACH_REAL == MESCHACH_DOUBLE
+ 	  } while ( *line=='\0' || sscanf(line,"%lf",&vec->ve[i]) < 1 );
+-#elif REAL == FLOAT
++#elif MESCHACH_REAL == MESCHACH_FLOAT
+           } while ( *line=='\0' || sscanf(line,"%f",&vec->ve[i]) < 1 );
+ #endif
+      
+@@ -367,9 +367,9 @@
+      /* get entries */
+      skipjunk(fp);
+      for ( i=0; i<dim; i++ )
+-#if REAL == DOUBLE
++#if MESCHACH_REAL == MESCHACH_DOUBLE
+ 	  if ((io_code=fscanf(fp,"%lf",&vec->ve[i])) < 1 )
+-#elif REAL == FLOAT
++#elif MESCHACH_REAL == MESCHACH_FLOAT
+ 	  if ((io_code=fscanf(fp,"%f",&vec->ve[i])) < 1 )
+ #endif
+ 	       error(io_code==EOF ? 7 : 6,"bfin_vec");
+--- a/meminfo.c
++++ b/meminfo.c
+@@ -34,7 +34,7 @@
+ #include <stdio.h>
+ #include  "matrix.h"
+ #include  "meminfo.h"
+-#ifdef COMPLEX   
++#ifdef MESCHACH_COMPLEX   
+ #include  "zmatrix.h"
+ #endif
+ #ifdef SPARSE
+@@ -60,7 +60,7 @@
+      "SPROW",
+      "SPMAT"
+ #endif
+-#ifdef COMPLEX   
++#ifdef MESCHACH_COMPLEX   
+        ,"ZVEC",
+        "ZMAT"
+ #endif
+@@ -86,7 +86,7 @@
+      sprow_free, 
+      sp_free
+ #endif
+-#ifdef COMPLEX
++#ifdef MESCHACH_COMPLEX
+        ,zv_free,	
+        zm_free
+ #endif
+--- a/meminfo.h
++++ b/meminfo.h
+@@ -58,7 +58,7 @@
+ #define TYPE_SPMAT		7
+ #endif
+ 
+-#ifdef COMPLEX
++#ifdef MESCHACH_COMPLEX
+ #ifdef SPARSE
+ #define TYPE_ZVEC		8
+ #define TYPE_ZMAT		9
+--- a/memtort.c
++++ b/memtort.c
+@@ -318,7 +318,7 @@
+ }
+ #endif
+ 
+-#ifdef COMPLEX
++#ifdef MESCHACH_COMPLEX
+ void stat_test4(par)
+ int par;
+ {
+@@ -355,7 +355,7 @@
+    IVEC *ix = IVNULL, *iy = IVNULL, *iz = IVNULL;
+    int m,n,i,j,deg,k;
+    Real s1,s2;
+-#ifdef COMPLEX
++#ifdef MESCHACH_COMPLEX
+    ZVEC        *zx = ZVNULL, *zy = ZVNULL, *zz = ZVNULL;
+    ZMAT        *zA = ZMNULL, *zB = ZMNULL, *zC = ZMNULL;
+    complex     ONE;
+@@ -580,7 +580,7 @@
+ #endif  /* SPARSE */   
+ 
+ 
+-#ifdef COMPLEX
++#ifdef MESCHACH_COMPLEX
+    /* complex stuff */
+    
+    ONE = zmake(1.0,0.0);
+@@ -629,7 +629,7 @@
+      errmesg("ZMAT resize");
+    
+    zm_free_vars(&zA,&zB,&zC,NULL);
+-#endif /* COMPLEX */
++#endif /* MESCHACH_COMPLEX */
+ 
+ #endif  /* if defined(ANSI_C) || defined(VARARGS) */
+ 
+@@ -647,7 +647,7 @@
+    mem_stat_mark(1);
+    for (i=0; i < 100; i++) {
+      stat_test1(i);
+-#ifdef COMPLEX
++#ifdef MESCHACH_COMPLEX
+      stat_test4(i);
+ #endif
+   }
+@@ -671,7 +671,7 @@
+ 
+    for (i=0; i < 100; i++) {
+       stat_test1(i);
+-#ifdef COMPLEX
++#ifdef MESCHACH_COMPLEX
+       stat_test4(i);
+ #endif
+    } 
+@@ -727,9 +727,9 @@
+ 
+    mem_info();
+    
+-#if REAL == FLOAT
++#if MESCHACH_REAL == MESCHACH_FLOAT
+    printf("# SINGLE PRECISION was used\n");
+-#elif REAL == DOUBLE
++#elif MESCHACH_REAL == MESCHACH_DOUBLE
+    printf("# DOUBLE PRECISION was used\n");
+ #endif
+ 
+@@ -744,9 +744,9 @@
+ #ifdef ANSI_OR_VAR
+ 
+    printf("# you should get: \n");
+-#if (REAL == FLOAT)
++#if (MESCHACH_REAL == MESCHACH_FLOAT)
+      printf("#   type VEC: 276 bytes allocated, 3 variables allocated\n");
+-#elif (REAL == DOUBLE)
++#elif (MESCHACH_REAL == MESCHACH_DOUBLE)
+      printf("#   type VEC: 516 bytes allocated, 3 variables allocated\n");
+ #endif
+    printf("#   and other types are zeros\n");
+--- a/otherio.c
++++ b/otherio.c
+@@ -130,9 +130,9 @@
+ 	if ( ! isatty(fileno(fp)) )
+ 	{
+ 		skipjunk(fp);
+-#if REAL == DOUBLE
++#if MESCHACH_REAL == MESCHACH_DOUBLE
+ 		if ( (retcode=fscanf(fp,"%lf",&x)) == EOF )
+-#elif REAL == FLOAT
++#elif MESCHACH_REAL == MESCHACH_FLOAT
+ 		if ( (retcode=fscanf(fp,"%f",&x)) == EOF )
+ #endif
+ 			error(E_INPUT,"fin_double");
+@@ -148,9 +148,9 @@
+ 		fprintf(stderr,"%s: ",s);
+ 		if ( fgets(scratch,MAXLINE,stdin)==NULL )
+ 			error(E_INPUT,"fin_double");
+-#if REAL == DOUBLE
++#if MESCHACH_REAL == MESCHACH_DOUBLE
+ 		retcode = sscanf(scratch,"%lf",&x);
+-#elif REAL == FLOAT 
++#elif MESCHACH_REAL == MESCHACH_FLOAT 
+ 		retcode = sscanf(scratch,"%f",&x);
+ #endif
+ 		if ( ( retcode==1 && low > high ) ||
+--- a/rk4.dat
++++ b/rk4.dat
+@@ -1,12 +0,0 @@
+-# No. of a problem
+-1
+-# Initial time
+-0
+-# Final time
+-1
+-# Solution is x(t) = (cos(t),-sin(t))
+-# x(0) =
+-Vector: dim: 2
+-1       0
+-# Step size
+-0.1
+--- a/sparse.c
++++ b/sparse.c
+@@ -61,25 +61,33 @@
+    return r->elt[idx].val;
+ }
+ 
++void _set(d, s)  double* d; double s; { *d = s; }
++void _inc(d, s)  double* d; double s; { *d += s; }
++void _dec(d, s)  double* d; double s; { *d -= s; }
++
+ /* sp_set_val -- sets the (i,j) entry of the sparse matrix A */
+-double	sp_set_val(A,i,j,val)
++double	sp_set_val_(A,i,j,val,f)
+ SPMAT	*A;
+ int	i, j;
+ double	val;
++void (*f)(double*, double);
+ {
+    SPROW	*r;
+    int	idx, idx2, new_len;
+    
+    if ( A == SMNULL )
+-     error(E_NULL,"sp_set_val");
++     error(E_NULL,"sp_set_val_");
+    if ( i < 0 || i >= A->m || j < 0 || j >= A->n )
+-     error(E_SIZES,"sp_set_val");
++     error(E_SIZES,"sp_set_val_");
+    
+    r = A->row+i;
+    idx = sprow_idx(r,j);
+-   /* printf("sp_set_val: idx = %d\n",idx); */
++   /* printf("sp_set_val_: idx = %d\n",idx); */
+    if ( idx >= 0 )
+-   {	r->elt[idx].val = val;	return val;	}
++   {
++      (*f)(&(r->elt[idx].val), val);
++      return r->elt[idx].val;	
++   }
+    /* else */ if ( idx < -1 )
+    {
+       /* Note: this destroys the column & diag access paths */
+@@ -97,7 +105,7 @@
+ 
+ 	 r->elt = RENEW(r->elt,new_len,row_elt);
+ 	 if ( ! r->elt )	/* can't allocate */
+-	   error(E_MEM,"sp_set_val");
++	   error(E_MEM,"sp_set_val_");
+ 	 r->maxlen = 2*r->maxlen+1;
+       }
+       for ( idx2 = r->len-1; idx2 >= idx; idx2-- )
+@@ -110,12 +118,40 @@
+ 	************************************************************/
+       r->len++;
+       r->elt[idx].col = j;
++      
++      /* sbagliato
++      (*f)(&(r->elt[idx].val), val);
++       */
+       return r->elt[idx].val = val;
+    }
+    /* else -- idx == -1, error in index/matrix! */
+    return 0.0;
+ }
+ 
++double	sp_set_val(A,i,j,val)
++SPMAT	*A;
++int	i, j;
++double	val;
++{
++   return sp_set_val_(A, i, j, val, _set);
++}
++
++double	sp_inc_val(A,i,j,val)
++SPMAT	*A;
++int	i, j;
++double	val;
++{
++   return sp_set_val_(A, i, j, val, _inc);
++}
++
++double	sp_dec_val(A,i,j,val)
++SPMAT	*A;
++int	i, j;
++double	val;
++{
++   return sp_set_val_(A, i, j, val, _dec);
++}
++
+ /* sp_mv_mlt -- sparse matrix/dense vector multiply
+    -- result is in out, which is returned unless out==NULL on entry
+    --  if out==NULL on entry then the result vector is created */
+@@ -612,16 +648,17 @@
+ {
+    int i;
+ 
+-   if ( ! A )
+-     error(E_NULL,"sp_smlt");
+-   if ( ! B )
+-     B = sp_get(A->m,A->n,5);
+-   else
+-     if ( A->m != B->m || A->n != B->n )
+-       error(E_SIZES,"sp_smlt");
++   if (!A) {
++      error(E_NULL, "sp_smlt");
++   }
++   if (!B) {
++      B = sp_get(A->m, A->n, 5);
++   } else if (A->m != B->m || A->n != B->n) {
++      error(E_SIZES, "sp_smlt");
++   }
+ 
+-   for (i=0; i < A->m; i++) {
+-      sprow_smlt(&(A->row[i]),alpha,0,&(B->row[i]),TYPE_SPMAT);
++   for (i = A->m; i-- > 0; ) {
++      sprow_smlt(&(A->row[i]), alpha, 0, &(B->row[i]), TYPE_SPMAT);
+    }
+    return B;
+ }
+@@ -635,15 +672,16 @@
+    int	i, idx, len;
+    row_elt	*elt;
+    
+-   if ( ! A )
+-     error(E_NULL,"sp_zero");
++   if ( ! A ) {
++      error(E_NULL,"sp_zero");
++   }
+    
+-   for ( i = 0; i < A->m; i++ )
+-   {
++   for ( i = A->m; i-- > 0; ) {
+       elt = A->row[i].elt;
+       len = A->row[i].len;
+-      for ( idx = 0; idx < len; idx++ )
+-	(*elt++).val = 0.0;
++      for ( idx = len; idx-- > 0; ) {
++	 (*elt++).val = 0.;
++      }
+    }
+    
+    return A;
+--- a/sparse.h
++++ b/sparse.h
+@@ -63,11 +63,12 @@
+ 	This starts the chain down the columns using the nxt_row and nxt_idx
+ 	fields of each entry in each row. */
+ 
+-typedef struct pair { int pos;	Real val; } pair;
++typedef struct meschach_pair { int pos;	Real val; } meschach_pair;
+ 
+ typedef struct SPVEC {
+ 	int	dim, max_dim;
+-	pair	*elt;		/* elt[max_dim] */
++	struct { int pos; Real val; } *elt;
++	/* meschach_pair	*elt; */		/* elt[max_dim] */
+ 	       } SPVEC;
+ 
+ #define	SMNULL	((SPMAT*)NULL)
+@@ -98,6 +99,9 @@
+ extern	SPMAT	*sp_get(), *sp_copy(), *sp_copy2(),
+ 			*sp_zero(), *sp_resize(), *sp_compact();
+ extern	double	sp_get_val(), sp_set_val();
++/* ANDO 01-10-99 */
++extern	double sp_inc_val(), sp_dec_val();
++/* ANDO 01-10-99 */
+ extern	VEC	*sp_mv_mlt(), *sp_vm_mlt();
+ extern	int	sp_free();
+ 
+@@ -132,6 +136,9 @@
+ 	*sp_zero(SPMAT *), *sp_resize(SPMAT *,int,int),
+ 	*sp_compact(SPMAT *,double);
+ double	sp_get_val(SPMAT *,int,int), sp_set_val(SPMAT *,int,int,double);
++/* ANDO 01-10-99 */
++double  sp_inc_val(SPMAT *,int,int,double), sp_dec_val(SPMAT *,int,int,double);
++/* ANDO 01-10-99 */
+ VEC	*sp_mv_mlt(SPMAT *,VEC *,VEC *), *sp_vm_mlt(SPMAT *,VEC *,VEC *);
+ int	sp_free(SPMAT *);
+ 
+--- a/sparseio.c
++++ b/sparseio.c
+@@ -222,9 +222,9 @@
+ 				error(E_INPUT,"sp_finput");
+ 			    if ( *line == 'e' || *line == 'E' )
+ 				break;
+-#if REAL == DOUBLE
++#if MESCHACH_REAL == MESCHACH_DOUBLE
+ 			} while ( sscanf(line,"%u %lf",&col,&val) != 2 ||
+-#elif REAL == FLOAT
++#elif MESCHACH_REAL == MESCHACH_FLOAT
+ 			} while ( sscanf(line,"%u %f",&col,&val) != 2 ||
+ #endif
+ 				    col >= n || col <= curr_col );
+@@ -282,9 +282,9 @@
+ 		    curr_col = -1;
+ 		    for ( len = 0; len < MAXSCRATCH; len++ )
+ 		    {
+-#if REAL == DOUBLE
++#if MESCHACH_REAL == MESCHACH_DOUBLE
+ 			if ( (ret_val=fscanf(fp,"%u : %lf",&col,&val)) != 2 )
+-#elif REAL == FLOAT
++#elif MESCHACH_REAL == MESCHACH_FLOAT
+ 			if ( (ret_val=fscanf(fp,"%u : %f",&col,&val)) != 2 )
+ #endif
+ 			    break;
+--- a/splufctr.c
++++ b/splufctr.c
+@@ -56,21 +56,27 @@
+ 	Real	max_val, tmp;
+ 	static VEC	*col_vals=VNULL;
+ 
+-	if ( ! A || ! px )
++	if ( ! A || ! px ) {
+ 		error(E_NULL,"spLUfctr");
+-	if ( alpha <= 0.0 || alpha > 1.0 )
++	}
++	if ( alpha <= 0.0 || alpha > 1.0 ) {
+ 		error(E_RANGE,"alpha in spLUfctr");
+-	if ( px->size <= A->m )
++	}
++	if ( px->size <= A->m ) {
+ 		px = px_resize(px,A->m);
++	}
+ 	px_ident(px);
+ 	col_vals = v_resize(col_vals,A->m);
+ 	MEM_STAT_REG(col_vals,TYPE_VEC);
+ 
+-	m = A->m;	n = A->n;
+-	if ( ! A->flag_col )
++	m = A->m;	
++        n = A->n;
++	if ( ! A->flag_col ) {
+ 		sp_col_access(A);
+-	if ( ! A->flag_diag )
++	}
++	if ( ! A->flag_diag ) {
+ 		sp_diag_access(A);
++	}
+ 	A->flag_col = A->flag_diag = FALSE;
+ 	if ( ! merge ) {
+ 	   merge = sprow_get(20);
+@@ -87,25 +93,29 @@
+ 	    {
+ 		r = &(A->row[i]);
+ 		idx = sprow_idx(r,k);
+-		if ( idx < 0 )
++		if ( idx < 0 ) {
+ 		    tmp = 0.0;
+-		else
++		} else {
+ 		    tmp = r->elt[idx].val;
+-		if ( fabs(tmp) > max_val )
++		}
++		if ( fabs(tmp) > max_val ) {
+ 		    max_val = fabs(tmp);
++		}
+ 		col_vals->ve[i] = tmp;
+ 	    }
+ 
+-	    if ( max_val == 0.0 )
++	    if ( max_val == 0.0 ) {
+ 		continue;
++	    }
+ 
+ 	    best_len = n+1;	/* only if no possibilities */
+ 	    best_i = -1;
+ 	    for ( i = k; i < m; i++ )
+ 	    {
+ 		tmp = fabs(col_vals->ve[i]);
+-		if ( tmp == 0.0 )
++		if ( tmp == 0.0 ) {
+ 		    continue;
++		}
+ 		if ( tmp >= alpha*max_val )
+ 		{
+ 		    r = &(A->row[i]);
+@@ -171,17 +181,21 @@
+ 	SPROW	*r;
+ 	row_elt	*elt;
+ 
+-	if ( ! A || ! b )
++	if ( ! A || ! b ) {
+ 	    error(E_NULL,"spLUsolve");
+-	if ( (pivot != PNULL && A->m != pivot->size) || A->m != b->dim )
++	}
++	if ( (pivot != PNULL && A->m != pivot->size) || A->m != b->dim ) {
+ 	    error(E_SIZES,"spLUsolve");
+-	if ( ! x || x->dim != A->n )
++	}
++	if ( ! x || x->dim != A->n ) {
+ 	    x = v_resize(x,A->n);
++	}
+ 
+-	if ( pivot != PNULL )
++	if ( pivot != PNULL ) {
+ 	    x = px_vec(pivot,b,x);
+-	else
++	} else {
+ 	    x = v_copy(b,x);
++	}
+ 
+ 	x_ve = x->ve;
+ 	lim = min(A->m,A->n);
+@@ -191,21 +205,24 @@
+ 	    r = &(A->row[i]);
+ 	    len = r->len;
+ 	    elt = r->elt;
+-	    for ( idx = 0; idx < len && elt->col < i; idx++, elt++ )
++	    for ( idx = 0; idx < len && elt->col < i; idx++, elt++ ) {
+ 		sum -= elt->val*x_ve[elt->col];
++	    }
+ 	    x_ve[i] = sum;
+ 	}
+ 
+-	for ( i = lim-1; i >= 0; i-- )
++	for ( i = lim; i-- > 0; )
+ 	{
+ 	    sum = x_ve[i];
+ 	    r = &(A->row[i]);
+ 	    len = r->len;
+ 	    elt = &(r->elt[len-1]);
+-	    for ( idx = len-1; idx >= 0 && elt->col > i; idx--, elt-- )
++	    for ( idx = len-1; idx >= 0 && elt->col > i; idx--, elt-- ) {
+ 		sum -= elt->val*x_ve[elt->col];
+-	    if ( idx < 0 || elt->col != i || elt->val == 0.0 )
++	    }
++	    if ( idx < 0 || elt->col != i || elt->val == 0.0 ) {
+ 		error(E_SING,"spLUsolve");
++	    }
+ 	    x_ve[i] = sum/elt->val;
+ 	}
+ 
+--- a/sptort.c
++++ b/sptort.c
+@@ -39,9 +39,9 @@
+ 
+ /* for iterative methods */
+ 
+-#if REAL == DOUBLE
++#if MESCHACH_REAL == MESCHACH_DOUBLE
+ #define	EPS	1e-7
+-#elif REAL == FLOAT
++#elif MESCHACH_REAL == MESCHACH_FLOAT
+ #define EPS   1e-3
+ #endif
+ 
+--- a/zmatio.c
++++ b/zmatio.c
+@@ -53,18 +53,18 @@
+ 	    fprintf(stderr,"real and imag parts: ");
+ 	    if ( fgets(line,MAXLINE,fp) == NULL )
+ 		error(E_EOF,"z_finput");
+-#if REAL == DOUBLE
++#if MESCHACH_REAL == MESCHACH_DOUBLE
+ 	    io_code = sscanf(line,"%lf%lf",&z.re,&z.im);
+-#elif REAL == FLOAT
++#elif MESCHACH_REAL == MESCHACH_FLOAT
+ 	    io_code = sscanf(line,"%f%f",&z.re,&z.im);
+ #endif
+ 
+ 	} while ( io_code != 2 );
+     }
+     else
+-#if REAL == DOUBLE
++#if MESCHACH_REAL == MESCHACH_DOUBLE
+       if ( (io_code=fscanf(fp," (%lf,%lf)",&z.re,&z.im)) < 2 )
+-#elif REAL == FLOAT
++#elif MESCHACH_REAL == MESCHACH_FLOAT
+       if ( (io_code=fscanf(fp," (%f,%f)",&z.re,&z.im)) < 2 )
+ #endif
+ 	    error((io_code == EOF) ? E_EOF : E_FORMAT,"z_finput");
+@@ -129,9 +129,9 @@
+ 		    if ( (*line == 'f' || *line == 'F') && j < n-1 )
+ 		    {   j++;    dynamic = FALSE;        goto redo2;     }
+ 	       } while ( *line=='\0' ||
+-#if REAL == DOUBLE
++#if MESCHACH_REAL == MESCHACH_DOUBLE
+ 			 sscanf(line,"%lf%lf",
+-#elif REAL == FLOAT
++#elif MESCHACH_REAL == MESCHACH_FLOAT
+ 			sscanf(line,"%f%f",
+ #endif	
+ 				&mat->me[i][j].re,&mat->me[i][j].im)<1 );
+@@ -176,9 +176,9 @@
+ 	  for ( j=0; j<n; j++ )
+ 	  {
+ 	      /* printf("bzm_finput: j = %d\n", j); */
+-#if REAL == DOUBLE
++#if MESCHACH_REAL == MESCHACH_DOUBLE
+ 	      if ((io_code=fscanf(fp," ( %lf , %lf )",
+-#elif REAL == FLOAT
++#elif MESCHACH_REAL == MESCHACH_FLOAT
+ 	      if ((io_code=fscanf(fp," ( %f , %f )",
+ #endif
+ 				  &mat->me[i][j].re,&mat->me[i][j].im)) < 2 )
+@@ -239,9 +239,9 @@
+ 	       if ( (*line == 'f' || *line == 'F') && i < dim-1 )
+ 	       {        i++;    dynamic = FALSE;        goto redo;         }
+ 	  } while ( *line=='\0' ||
+-#if REAL == DOUBLE
++#if MESCHACH_REAL == MESCHACH_DOUBLE
+ 		    sscanf(line,"%lf%lf",
+-#elif REAL == FLOAT
++#elif MESCHACH_REAL == MESCHACH_FLOAT
+ 		    sscanf(line,"%f%f",
+ #endif  
+ 			   &vec->ve[i].re,&vec->ve[i].im) < 2 );
+@@ -271,9 +271,9 @@
+      /* get entries */
+      skipjunk(fp);
+      for ( i=0; i<dim; i++ )
+-#if REAL == DOUBLE
++#if MESCHACH_REAL == MESCHACH_DOUBLE
+ 	  if ((io_code=fscanf(fp," (%lf,%lf)",
+-#elif REAL == FLOAT
++#elif MESCHACH_REAL == MESCHACH_FLOAT
+           if ((io_code=fscanf(fp," (%f,%f)",
+ #endif
+ 			      &vec->ve[i].re,&vec->ve[i].im)) < 2 )

diff --git a/sci-libs/meschach/files/meschach-makefile.patch b/sci-libs/meschach/files/meschach-makefile.patch
new file mode 100644
index 000000000..701c91246
--- /dev/null
+++ b/sci-libs/meschach/files/meschach-makefile.patch
@@ -0,0 +1,156 @@
+--- a/configure.in
++++ b/configure.in
+@@ -44,14 +44,15 @@
+ # and has a different meaning for keyword "complex"!  Drew Parsons, 2001.
+ ##AC_HEADER_CHECK(complex.h, AC_DEFINE(HAVE_COMPLEX_H),)
+ AC_HEADER_CHECK(malloc.h, AC_DEFINE(HAVE_MALLOC_H),)
++AC_HEADER_CHECK(huge_val.h, AC_DEFINE(HAVE_HUGE_VAL_H),)
+ AC_HEADER_CHECK(varargs.h, AC_DEFINE(VARARGS),)
+ AC_DEFINE(NOT_SEGMENTED)
+ AC_SIZE_T
+ AC_CONST
+ AC_WORDS_BIGENDIAN
+-AC_WITH(complex, AC_DEFINE(COMPLEX))
++AC_WITH(complex, AC_DEFINE(MESCHACH_COMPLEX))
+ AC_WITH(sparse, AC_DEFINE(SPARSE))
+-AC_WITH(all, AC_DEFINE(COMPLEX))
++AC_WITH(all, AC_DEFINE(MESCHACH_COMPLEX))
+ AC_WITH(all, AC_DEFINE(SPARSE))
+ AC_WITH(unroll, AC_DEFINE(VUNROLL))
+ AC_WITH(munroll, AC_DEFINE(MUNROLL))
+--- a/makefile.in
++++ b/makefile.in
+@@ -18,8 +18,7 @@
+ LIBS = @LIBS@
+ RANLIB = @RANLIB@
+ 
+-
+-CFLAGS = -O3 -fPIC
++CFLAGS += -fPIC
+ 
+ 
+ .c.o:
+@@ -68,7 +67,7 @@
+ 
+ # Different configurations
+ # the dependencies **between** the parts are for dmake
+-all: shared static
++all: shared
+ #all: @PROGS@ part1 part2 part3 zpart1 zpart2 shared
+ part2: part1
+ part3: part2
+@@ -77,50 +76,10 @@
+ zpart2: zpart1
+ complex: part1 part2 zpart1 zpart2
+ 
++shared:   libmeschach.so
+ 
+-$(LIST1): $(HBASE)
+-part1: $(LIST1)
+-	ar ru libmeschach.a $(LIST1)
+-	$(RANLIB) libmeschach.a
+-#	$(CC) -shared -o libmeschach.so $(LIST1)
+-
+-$(LIST2): $(HBASE) matrix2.h
+-part2: $(LIST2)
+-	ar ru libmeschach.a $(LIST2)
+-	$(RANLIB) libmeschach.a
+-#	$(CC) -shared -o libmeschach.so $(LIST2)
+-
+-$(LIST3): $(HBASE) sparse.h sparse2.h
+-part3: $(LIST3)
+-	ar ru libmeschach.a $(LIST3)
+-	$(RANLIB) libmeschach.a
+-#	$(CC) -shared -o libmeschach.so $(LIST3)
+-
+-$(ZLIST1): $(HBASDE) zmatrix.h
+-zpart1: $(ZLIST1)
+-	ar ru libmeschach.a $(ZLIST1)
+-	$(RANLIB) libmeschach.a
+-#	$(CC) -shared -o libmeschach.so $(ZLIST1)
+-
+-$(ZLIST2): $(HBASE) zmatrix.h zmatrix2.h 
+-zpart2: $(ZLIST2)
+-	ar ru libmeschach.a $(ZLIST2)
+-	$(RANLIB) libmeschach.a
+-#	$(CC) -shared -o libmeschach.so $(ZLIST2)
+-
+-$(OLDLIST): $(HBASE) sparse.h sparse2.h 
+-oldpart: $(OLDLIST)
+-	ar ru libmeschach.a $(OLDLIST)
+-	$(RANLIB) libmeschach.a
+-#	$(CC) -shared -o libmeschach.so $(OLDLIST)
+-
+-shared:   $(ALL_LISTS)
+-	$(CC) -shared -o libmeschach.so $(ALL_LISTS) -lc -lm -Wl,-soname -Wl,libmeschach.so.$(vers)
+-
+-static:  $(ALL_LISTS)
+-	ar ru libmeschach.a $(ALL_LISTS)
+-	$(RANLIB) libmeschach.a
+-
++libmeschach.so:   $(ALL_LISTS)
++	$(CC) $(LDFLAGS) -shared -o libmeschach.so $(ALL_LISTS) -lc -lm -Wl,-soname -Wl,libmeschach.so.$(vers)
+ 
+ #######################################
+ 
+@@ -199,32 +158,32 @@
+  
+ alltorture: torture sptort ztorture memtort itertort mfuntort iotort
+ 
+-torture:torture.o libmeschach.a
+-	$(CC) $(CFLAGS) $(DEFS) -o torture torture.o \
+-	libmeschach.a $(LIBS)
+-sptort:sptort.o libmeschach.a
+-	$(CC) $(CFLAGS) $(DEFS) -o sptort sptort.o \
+-	libmeschach.a $(LIBS)
+-memtort: memtort.o libmeschach.a
+-	$(CC) $(CFLAGS) $(DEFS) -o memtort memtort.o \
+-	libmeschach.a $(LIBS)
+-ztorture:ztorture.o libmeschach.a
+-	$(CC) $(CFLAGS) $(DEFS) -o ztorture ztorture.o \
+-	libmeschach.a $(LIBS)
+-itertort: itertort.o libmeschach.a
+-	$(CC) $(CFLAGS) $(DEFS) -o itertort itertort.o \
+-	libmeschach.a $(LIBS)
+-
+-iotort: iotort.o libmeschach.a
+-	$(CC) $(CFLAGS) $(DEFS) -o iotort iotort.o \
+-	libmeschach.a $(LIBS)
+-mfuntort: mfuntort.o libmeschach.a
+-	$(CC) $(CFLAGS) $(DEFS) -o mfuntort mfuntort.o \
+-	libmeschach.a $(LIBS)
+-tstmove: tstmove.o libmeschach.a
+-	$(CC) $(CFLAGS) $(DEFS) -o tstmove tstmove.o \
+-	libmeschach.a $(LIBS)
+-tstpxvec: tstpxvec.o libmeschach.a
+-	$(CC) $(CFLAGS) $(DEFS) -o tstpxvec tstpxvec.o \
+-	libmeschach.a $(LIBS)
++torture:torture.o libmeschach.so
++	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o torture torture.o \
++	-lmeschach -L. $(LIBS)
++sptort:sptort.o libmeschach.so
++	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o sptort sptort.o \
++	-lmeschach -L. $(LIBS)
++memtort: memtort.o libmeschach.so
++	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o memtort memtort.o \
++	-lmeschach -L. $(LIBS)
++ztorture:ztorture.o libmeschach.so
++	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o ztorture ztorture.o \
++	-lmeschach -L. $(LIBS)
++itertort: itertort.o libmeschach.so
++	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o itertort itertort.o \
++	-lmeschach -L. $(LIBS)
++
++iotort: iotort.o libmeschach.so
++	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o iotort iotort.o \
++	-lmeschach -L. $(LIBS)
++mfuntort: mfuntort.o libmeschach.so
++	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o mfuntort mfuntort.o \
++	-lmeschach -L. $(LIBS)
++tstmove: tstmove.o libmeschach.so
++	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o tstmove tstmove.o \
++	-lmeschach -L. $(LIBS)
++tstpxvec: tstpxvec.o libmeschach.so
++	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o tstpxvec tstpxvec.o \
++	-lmeschach -L. $(LIBS)
+ 

diff --git a/sci-libs/meschach/meschach-1.2b.ebuild b/sci-libs/meschach/meschach-1.2b.ebuild
index b1f5b41bd..d973fb63a 100644
--- a/sci-libs/meschach/meschach-1.2b.ebuild
+++ b/sci-libs/meschach/meschach-1.2b.ebuild
@@ -26,14 +26,15 @@ REQUIRED_USE="
 PATCHES=(
 	"${WORKDIR}/debian/patches/${PN}_${PV}-13.diff"
 	"${WORKDIR}/debian/patches/${PN}_${PV}-13.configure.diff"
-	"${FILESDIR}/makefile.patch"
 	"${FILESDIR}/configure.patch"
+	"${FILESDIR}/${PN}-2-mbdyn.diff"
+	"${FILESDIR}/${PN}-makefile.patch"
 )
 
 src_prepare() {
 	default
-	use old && sed -i -- 's/all: shared static/all: oldpart shared static/g' makefile.in
 	mv configure.in configure.ac || die
+	use old && sed -i -- 's/all: shared static/all: oldpart shared static/g' makefile.ac
 	tc-export AR CC
 	eautoreconf
 }


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [gentoo-commits] repo/proj/guru:master commit in: sci-libs/meschach/, sci-libs/meschach/files/
@ 2021-09-10 10:45 Arthur Zamarin
  0 siblings, 0 replies; 2+ messages in thread
From: Arthur Zamarin @ 2021-09-10 10:45 UTC (permalink / raw
  To: gentoo-commits

commit:     88b419c013753ab8a86c6f2f0c0647609b9e446f
Author:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Thu Sep  9 12:43:15 2021 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Thu Sep  9 12:43:15 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=88b419c0

sci-libs/meschach: switch to the cmake github version

Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>

 sci-libs/meschach/Manifest                         |   4 +-
 sci-libs/meschach/files/configure.patch            |  29 -
 sci-libs/meschach/files/meschach-2-mbdyn.diff      | 906 ---------------------
 sci-libs/meschach/files/meschach-makefile.patch    | 156 ----
 sci-libs/meschach/meschach-1.2b.ebuild             |  84 --
 ...11.ebuild => meschach-1.2b_p20170511-r1.ebuild} |  11 +-
 sci-libs/meschach/metadata.xml                     |  45 +-
 7 files changed, 30 insertions(+), 1205 deletions(-)

diff --git a/sci-libs/meschach/Manifest b/sci-libs/meschach/Manifest
index df80a73fe..9e11ac6f8 100644
--- a/sci-libs/meschach/Manifest
+++ b/sci-libs/meschach/Manifest
@@ -1,3 +1 @@
-DIST meschach-1.2b_p20170511.tar.gz 577104 BLAKE2B 83b47828c814d4a7f4957f02448babb0961383f61f329431ef74a8ec2800c196d5cb0e1363a258b06f18adccaf39d859e640f01bf7f98b5b0ac634adc5f58beb SHA512 054c9380ff2df4c8c3bda0eb20df2a9da8fe357fd939116a257bb2831d04893aad29999df0d2bd9434173a1246ec18a73779abdadc477f9c2dd9d027446393d1
-DIST meschach_1.2b-14.debian.tar.xz 40664 BLAKE2B 753cdcdf8ecd63be14a294a6607380462df8a74c1cc84fafcfe4140cb10eaeb590dbe12883e2a973691a920b1e7f4efdf884781b49ea947b1132ff213f4a2652 SHA512 9793127a1785fb757b61132db1c471a2ff7949c383870f10d0b24ea2e1dafcb9d9379b61698179f91fdba4405e18e1692efcc26b759b1a5d9519e8c46206636b
-DIST meschach_1.2b.orig.tar.gz 220166 BLAKE2B fe38d9887977f45cc54857fe9c33f1eb50d1192ce3cae643127962cfce7657d9890964aabd3690751648a3a850fbbb39c6fb2110f8b4fcd789c7b8efefcec2c5 SHA512 0b8748915739b624aa44b0bf6f2c59aaf3d09f69f9455220e4baeb423c094a89cc25c03d6ced0d58bfd7c5d6626f3995fc853119ab0f7d6af151d8479c326068
+DIST meschach-1.2b_p20170511-r1.tar.gz 577104 BLAKE2B 83b47828c814d4a7f4957f02448babb0961383f61f329431ef74a8ec2800c196d5cb0e1363a258b06f18adccaf39d859e640f01bf7f98b5b0ac634adc5f58beb SHA512 054c9380ff2df4c8c3bda0eb20df2a9da8fe357fd939116a257bb2831d04893aad29999df0d2bd9434173a1246ec18a73779abdadc477f9c2dd9d027446393d1

diff --git a/sci-libs/meschach/files/configure.patch b/sci-libs/meschach/files/configure.patch
deleted file mode 100644
index 858196846..000000000
--- a/sci-libs/meschach/files/configure.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Bug: https://bugs.gentoo.org/785196
-
---- a/configure.in
-+++ b/configure.in
-@@ -9,16 +9,6 @@
- [extern int test (int i, double x);],
- AC_DEFINE(HAVE_PROTOTYPES))])dnl
- dnl
--dnl Brook Milligan's compiler check
--dnl Check for the sun ansi c compiler, acc
--define(LOCAL_PROG_ACC,
--[AC_BEFORE([$0], [AC_PROG_CPP])AC_PROVIDE([$0])dnl
--AC_PROGRAM_CHECK(CC, acc, acc, "")])dnl
--dnl David Stewart's modified compiler check
--define(LOCAL_PROG_CC,
--[AC_BEFORE([$0], [AC_PROG_CPP])AC_PROVIDE([$0])dnl
--AC_PROGRAM_CHECK(CC, acc, acc, cc)])dnl
--dnl
- dnl
- dnl
- dnl ----------------------------------------------------------------------
-@@ -29,7 +19,6 @@
- PROGS=""
- AC_SUBST(PROGS)dnl
- LOCAL_PROG_ACC
--AC_PROGRAM_CHECK(CC, cc, cc, gcc)
- dnl AC_PROG_CC
- AC_PROG_CPP
- AC_AIX

diff --git a/sci-libs/meschach/files/meschach-2-mbdyn.diff b/sci-libs/meschach/files/meschach-2-mbdyn.diff
deleted file mode 100644
index 89db78f73..000000000
--- a/sci-libs/meschach/files/meschach-2-mbdyn.diff
+++ /dev/null
@@ -1,906 +0,0 @@
---- a/CHANGELOG
-+++ b/CHANGELOG
-@@ -0,0 +1,10 @@
-+* 2000-04-13 Pierangelo Masarati <masarati@aero.polimi.it>
-+ - fixed HUGE_VAL configure
-+ - prefixed REAL, DOUBLE and FLOAT with MESCHACH_ to avoid conflicts
-+
-+* 2000-??-?? Pierangelo Masarati <masarati@aero.polimi.it>
-+ - changed the struct pair in sparse.h to avoid conflicts with C++ stl
-+ - added some helpers for adding and subtracting coefs from sparse matrices
-+ - WARNING: in C++ the macro `catch' conflicts with the exception handling
-+   keyword; I temporarily fixed the problem by #undef-ining it after including
-+   meschach headers.
---- a/init.c
-+++ b/init.c
-@@ -59,7 +59,7 @@
-    if ( ix == IVNULL )
-      error(E_NULL,"iv_zero");
-    
--   for ( i = 0; i < ix->dim; i++ )
-+   for ( i = ix->dim; i-- > 0; )
-      ix->ive[i] = 0; 
-    
-    return ix;
-@@ -77,7 +77,7 @@
- 		error(E_NULL,"m_zero");
- 
- 	A_m = A->m;	A_n = A->n;	A_me = A->me;
--	for ( i = 0; i < A_m; i++ )
-+	for ( i = A_m; i-- > 0; )
- 		__zero__(A_me[i],A_n);
- 		/* for ( j = 0; j < A_n; j++ )
- 			A_me[i][j] = 0.0; */
-@@ -97,7 +97,7 @@
- 
- 	m_zero(A);
- 	size = min(A->m,A->n);
--	for ( i = 0; i < size; i++ )
-+	for ( i = size; i-- > 0; )
- 		A->me[i][i] = 1.0;
- 
- 	return A;
-@@ -114,7 +114,7 @@
- 		error(E_NULL,"px_ident");
- 
- 	px_size = px->size;	px_pe = px->pe;
--	for ( i = 0; i < px_size; i++ )
-+	for ( i = px_size; i-- > 0; )
- 		px_pe[i] = i;
- 
- 	return px;
-@@ -178,7 +178,7 @@
-     if ( ! started )
- 	smrand(3127);
-     
--    for ( i = 0; i < len; i++ )
-+    for ( i = len; i-- > 0; )
-     {
- 	inext = (inext >= 54) ? 0 : inext+1;
- 	inextp = (inextp >= 54) ? 0 : inextp+1;
-@@ -260,12 +260,28 @@
- 	if ( ! x )
- 		error(E_NULL,"v_ones");
- 
--	for ( i = 0; i < x->dim; i++ )
-+	for ( i = x->dim; i-- > 0; )
- 		x->ve[i] = 1.0;
- 
- 	return x;
- }
- 
-+/* v_init -- fills x with d's */
-+VEC	*v_init(x, d)
-+VEC	*x;
-+Real    d;
-+{
-+	int	i;
-+
-+	if ( ! x )
-+		error(E_NULL,"v_ones");
-+
-+	for ( i = x->dim; i-- > 0; )
-+		x->ve[i] = d;
-+
-+	return x;
-+}
-+
- /* m_ones -- fills matrix with one's */
- MAT	*m_ones(A)
- MAT	*A;
-@@ -275,8 +291,8 @@
- 	if ( ! A )
- 		error(E_NULL,"m_ones");
- 
--	for ( i = 0; i < A->m; i++ )
--		for ( j = 0; j < A->n; j++ )
-+	for ( i = A->m; i-- > 0; )
-+		for ( j = A->n; j-- > 0; )
- 		    A->me[i][j] = 1.0;
- 
- 	return A;
-@@ -291,7 +307,7 @@
- 	if ( ! x )
- 	    error(E_NULL,"v_count");
- 
--	for ( i = 0; i < x->dim; i++ )
-+	for ( i = x->dim; i-- > 0; )
- 	    x->ve[i] = (Real)i;
- 
- 	return x;
---- a/itertort.c
-+++ b/itertort.c
-@@ -41,10 +41,10 @@
-   
-   /* for iterative methods */
-   
--#if REAL == DOUBLE
-+#if MESCHACH_REAL == MESCHACH_DOUBLE
- #define	EPS	1e-7
- #define KK	20
--#elif REAL == FLOAT
-+#elif MESCHACH_REAL == MESCHACH_FLOAT
- #define EPS   1e-5
- #define KK	8
- #endif
---- a/machine.h.in
-+++ b/machine.h.in
-@@ -16,14 +16,15 @@
- #undef MALLOCDECL
- #undef NOT_SEGMENTED
- #undef HAVE_MEMORY_H
--#undef HAVE_COMPLEX_H
-+/* #undef HAVE_COMPLEX_H */
- #undef HAVE_MALLOC_H
-+#undef HAVE_HUGE_VAL_H
- #undef STDC_HEADERS
- #undef HAVE_BCOPY
- #undef HAVE_BZERO
- #undef CHAR0ISDBL0
- #undef WORDS_BIGENDIAN
--#undef U_INT_DEF
-+/* #undef U_INT_DEF */
- #undef VARARGS
- #undef HAVE_PROTOTYPES
- #undef HAVE_PROTOTYPES_IN_STRUCT
-@@ -53,7 +54,7 @@
- #endif /* HAVE_PROTOTYPES_IN_STRUCT */
- 
- /* for basic or larger versions */
--#undef COMPLEX
-+#undef MESCHACH_COMPLEX
- #undef SPARSE
- 
- /* for loop unrolling */
-@@ -131,9 +132,9 @@
- 
- /* you can choose single, double or long double (if available) precision */
- 
--#define FLOAT 		1
--#define DOUBLE 		2
--#define LONG_DOUBLE 	3
-+#define MESCHACH_FLOAT 	1
-+#define MESCHACH_DOUBLE	2
-+#define MESCHACH_LONG_DOUBLE 	3
- 
- #undef REAL_FLT
- #undef REAL_DBL
-@@ -149,27 +150,27 @@
- #ifdef REAL_FLT
- #define  Real float
- #define  LongReal float
--#define REAL FLOAT
--#define LONGREAL FLOAT
-+#define MESCHACH_REAL MESCHACH_FLOAT
-+#define MESCHACH_LONGREAL MESCHACH_FLOAT
- #endif
- 
- /* double precision */
- #ifdef REAL_DBL
- #define Real double
- #define LongReal double
--#define REAL DOUBLE
--#define LONGREAL DOUBLE
-+#define MESCHACH_REAL MESCHACH_DOUBLE
-+#define MESCHACH_LONGREAL MESCHACH_DOUBLE
- #endif
- 
- 
- /* machine epsilon or unit roundoff error */
- /* This is correct on most IEEE Real precision systems */
- #ifdef DBL_EPSILON
--#if REAL == DOUBLE
-+#if MESCHACH_REAL == MESCHACH_DOUBLE
- #define	MACHEPS	DBL_EPSILON
--#elif REAL == FLOAT
-+#elif MESCHACH_REAL == MESCHACH_FLOAT
- #define	MACHEPS	FLT_EPSILON
--#elif REAL == LONGDOUBLE
-+#elif MESCHACH_REAL == MESCHACH_LONGDOUBLE
- #define MACHEPS LDBL_EPSILON
- #endif
- #endif
-@@ -178,11 +179,11 @@
- #undef D_MACHEPS
- 
- #ifndef MACHEPS
--#if REAL == DOUBLE
-+#if MESCHACH_REAL == MESCHACH_DOUBLE
- #define	MACHEPS	D_MACHEPS
--#elif REAL == FLOAT  
-+#elif MESCHACH_REAL == MESCHACH_FLOAT  
- #define MACHEPS F_MACHEPS
--#elif REAL == LONGDOUBLE
-+#elif MESCHACH_REAL == MESCHACH_LONGDOUBLE
- #define MACHEPS D_MACHEPS
- #endif
- #endif
-@@ -208,12 +209,16 @@
- #endif
- 
- /* for non-ANSI systems */
-+#ifndef HAVE_HUGE_VAL_H
- #ifndef HUGE_VAL
- #define HUGE_VAL HUGE
- #else
- #ifndef HUGE
- #define HUGE HUGE_VAL
- #endif
-+#endif
-+#else
-+#define HUGE HUGE_VAL
- #endif
- 
- 
---- a/matlab.h
-+++ b/matlab.h
-@@ -66,9 +66,9 @@
- 
- #define ORDER           ROW_ORDER
- 
--#if REAL == DOUBLE
-+#if MESCHACH_REAL == MESCHACH_DOUBLE
- #define PRECISION       DOUBLE_PREC
--#elif REAL == FLOAT
-+#elif MESCHACH_REAL == MESCHACH_FLOAT
- #define PRECISION  	SINGLE_PREC
- #endif
- 
-@@ -90,7 +90,7 @@
- #endif
- 
- /* complex variant */
--#ifdef COMPLEX
-+#ifdef MESCHACH_COMPLEX
- #include "zmatrix.h"
- 
- #ifdef ANSI_C
---- a/matrix.h
-+++ b/matrix.h
-@@ -384,11 +384,17 @@
- /* Initialisation routines -- to be zero, ones, random or identity */
- #ifndef ANSI_C
- extern	VEC     *v_zero(), *v_rand(), *v_ones();
-+/* ANDO 01-13-99 */
-+extern	VEC     *v_init();
-+/* ODNA 01-13-99 */
- extern	MAT     *m_zero(), *m_ident(), *m_rand(), *m_ones();
- extern	PERM    *px_ident();
- extern  IVEC    *iv_zero();
- #else
- extern	VEC     *v_zero(VEC *), *v_rand(VEC *), *v_ones(VEC *);
-+/* ANDO 01-13-99 */
-+extern	VEC     *v_init(VEC*, Real);
-+/* ODNA 01-13-99 */
- extern	MAT     *m_zero(MAT *), *m_ident(MAT *), *m_rand(MAT *),
- 						*m_ones(MAT *);
- extern	PERM    *px_ident(PERM *);
---- a/matrixio.c
-+++ b/matrixio.c
-@@ -124,9 +124,9 @@
- 		    {   j--;    dynamic = FALSE;        goto redo2;     }
- 		    if ( (*line == 'f' || *line == 'F') && j < n-1 )
- 		    {   j++;    dynamic = FALSE;        goto redo2;     }
--#if REAL == DOUBLE
-+#if MESCHACH_REAL == MESCHACH_DOUBLE
- 	       } while ( *line=='\0' || sscanf(line,"%lf",&mat->me[i][j])<1 );
--#elif REAL == FLOAT
-+#elif MESCHACH_REAL == MESCHACH_FLOAT
- 	       } while ( *line=='\0' || sscanf(line,"%f",&mat->me[i][j])<1 );
- #endif
- 	  fprintf(stderr,"Continue: ");
-@@ -168,9 +168,9 @@
- 	  if ( fscanf(fp," row %u:",&dummy) < 1 )
- 	       error(E_FORMAT,"bm_finput");
- 	  for ( j=0; j<n; j++ )
--#if REAL == DOUBLE
-+#if MESCHACH_REAL == MESCHACH_DOUBLE
- 	       if ((io_code=fscanf(fp,"%lf",&mat->me[i][j])) < 1 )
--#elif REAL == FLOAT
-+#elif MESCHACH_REAL == MESCHACH_FLOAT
- 	       if ((io_code=fscanf(fp,"%f",&mat->me[i][j])) < 1 )
- #endif
- 		    error(io_code==EOF ? 7 : 6,"bm_finput");
-@@ -337,9 +337,9 @@
- 	       {        i--;    dynamic = FALSE;        goto redo;         }
- 	       if ( (*line == 'f' || *line == 'F') && i < dim-1 )
- 	       {        i++;    dynamic = FALSE;        goto redo;         }
--#if REAL == DOUBLE
-+#if MESCHACH_REAL == MESCHACH_DOUBLE
- 	  } while ( *line=='\0' || sscanf(line,"%lf",&vec->ve[i]) < 1 );
--#elif REAL == FLOAT
-+#elif MESCHACH_REAL == MESCHACH_FLOAT
-           } while ( *line=='\0' || sscanf(line,"%f",&vec->ve[i]) < 1 );
- #endif
-      
-@@ -367,9 +367,9 @@
-      /* get entries */
-      skipjunk(fp);
-      for ( i=0; i<dim; i++ )
--#if REAL == DOUBLE
-+#if MESCHACH_REAL == MESCHACH_DOUBLE
- 	  if ((io_code=fscanf(fp,"%lf",&vec->ve[i])) < 1 )
--#elif REAL == FLOAT
-+#elif MESCHACH_REAL == MESCHACH_FLOAT
- 	  if ((io_code=fscanf(fp,"%f",&vec->ve[i])) < 1 )
- #endif
- 	       error(io_code==EOF ? 7 : 6,"bfin_vec");
---- a/meminfo.c
-+++ b/meminfo.c
-@@ -34,7 +34,7 @@
- #include <stdio.h>
- #include  "matrix.h"
- #include  "meminfo.h"
--#ifdef COMPLEX   
-+#ifdef MESCHACH_COMPLEX   
- #include  "zmatrix.h"
- #endif
- #ifdef SPARSE
-@@ -60,7 +60,7 @@
-      "SPROW",
-      "SPMAT"
- #endif
--#ifdef COMPLEX   
-+#ifdef MESCHACH_COMPLEX   
-        ,"ZVEC",
-        "ZMAT"
- #endif
-@@ -86,7 +86,7 @@
-      sprow_free, 
-      sp_free
- #endif
--#ifdef COMPLEX
-+#ifdef MESCHACH_COMPLEX
-        ,zv_free,	
-        zm_free
- #endif
---- a/meminfo.h
-+++ b/meminfo.h
-@@ -58,7 +58,7 @@
- #define TYPE_SPMAT		7
- #endif
- 
--#ifdef COMPLEX
-+#ifdef MESCHACH_COMPLEX
- #ifdef SPARSE
- #define TYPE_ZVEC		8
- #define TYPE_ZMAT		9
---- a/memtort.c
-+++ b/memtort.c
-@@ -318,7 +318,7 @@
- }
- #endif
- 
--#ifdef COMPLEX
-+#ifdef MESCHACH_COMPLEX
- void stat_test4(par)
- int par;
- {
-@@ -355,7 +355,7 @@
-    IVEC *ix = IVNULL, *iy = IVNULL, *iz = IVNULL;
-    int m,n,i,j,deg,k;
-    Real s1,s2;
--#ifdef COMPLEX
-+#ifdef MESCHACH_COMPLEX
-    ZVEC        *zx = ZVNULL, *zy = ZVNULL, *zz = ZVNULL;
-    ZMAT        *zA = ZMNULL, *zB = ZMNULL, *zC = ZMNULL;
-    complex     ONE;
-@@ -580,7 +580,7 @@
- #endif  /* SPARSE */   
- 
- 
--#ifdef COMPLEX
-+#ifdef MESCHACH_COMPLEX
-    /* complex stuff */
-    
-    ONE = zmake(1.0,0.0);
-@@ -629,7 +629,7 @@
-      errmesg("ZMAT resize");
-    
-    zm_free_vars(&zA,&zB,&zC,NULL);
--#endif /* COMPLEX */
-+#endif /* MESCHACH_COMPLEX */
- 
- #endif  /* if defined(ANSI_C) || defined(VARARGS) */
- 
-@@ -647,7 +647,7 @@
-    mem_stat_mark(1);
-    for (i=0; i < 100; i++) {
-      stat_test1(i);
--#ifdef COMPLEX
-+#ifdef MESCHACH_COMPLEX
-      stat_test4(i);
- #endif
-   }
-@@ -671,7 +671,7 @@
- 
-    for (i=0; i < 100; i++) {
-       stat_test1(i);
--#ifdef COMPLEX
-+#ifdef MESCHACH_COMPLEX
-       stat_test4(i);
- #endif
-    } 
-@@ -727,9 +727,9 @@
- 
-    mem_info();
-    
--#if REAL == FLOAT
-+#if MESCHACH_REAL == MESCHACH_FLOAT
-    printf("# SINGLE PRECISION was used\n");
--#elif REAL == DOUBLE
-+#elif MESCHACH_REAL == MESCHACH_DOUBLE
-    printf("# DOUBLE PRECISION was used\n");
- #endif
- 
-@@ -744,9 +744,9 @@
- #ifdef ANSI_OR_VAR
- 
-    printf("# you should get: \n");
--#if (REAL == FLOAT)
-+#if (MESCHACH_REAL == MESCHACH_FLOAT)
-      printf("#   type VEC: 276 bytes allocated, 3 variables allocated\n");
--#elif (REAL == DOUBLE)
-+#elif (MESCHACH_REAL == MESCHACH_DOUBLE)
-      printf("#   type VEC: 516 bytes allocated, 3 variables allocated\n");
- #endif
-    printf("#   and other types are zeros\n");
---- a/otherio.c
-+++ b/otherio.c
-@@ -130,9 +130,9 @@
- 	if ( ! isatty(fileno(fp)) )
- 	{
- 		skipjunk(fp);
--#if REAL == DOUBLE
-+#if MESCHACH_REAL == MESCHACH_DOUBLE
- 		if ( (retcode=fscanf(fp,"%lf",&x)) == EOF )
--#elif REAL == FLOAT
-+#elif MESCHACH_REAL == MESCHACH_FLOAT
- 		if ( (retcode=fscanf(fp,"%f",&x)) == EOF )
- #endif
- 			error(E_INPUT,"fin_double");
-@@ -148,9 +148,9 @@
- 		fprintf(stderr,"%s: ",s);
- 		if ( fgets(scratch,MAXLINE,stdin)==NULL )
- 			error(E_INPUT,"fin_double");
--#if REAL == DOUBLE
-+#if MESCHACH_REAL == MESCHACH_DOUBLE
- 		retcode = sscanf(scratch,"%lf",&x);
--#elif REAL == FLOAT 
-+#elif MESCHACH_REAL == MESCHACH_FLOAT 
- 		retcode = sscanf(scratch,"%f",&x);
- #endif
- 		if ( ( retcode==1 && low > high ) ||
---- a/rk4.dat
-+++ b/rk4.dat
-@@ -1,12 +0,0 @@
--# No. of a problem
--1
--# Initial time
--0
--# Final time
--1
--# Solution is x(t) = (cos(t),-sin(t))
--# x(0) =
--Vector: dim: 2
--1       0
--# Step size
--0.1
---- a/sparse.c
-+++ b/sparse.c
-@@ -61,25 +61,33 @@
-    return r->elt[idx].val;
- }
- 
-+void _set(d, s)  double* d; double s; { *d = s; }
-+void _inc(d, s)  double* d; double s; { *d += s; }
-+void _dec(d, s)  double* d; double s; { *d -= s; }
-+
- /* sp_set_val -- sets the (i,j) entry of the sparse matrix A */
--double	sp_set_val(A,i,j,val)
-+double	sp_set_val_(A,i,j,val,f)
- SPMAT	*A;
- int	i, j;
- double	val;
-+void (*f)(double*, double);
- {
-    SPROW	*r;
-    int	idx, idx2, new_len;
-    
-    if ( A == SMNULL )
--     error(E_NULL,"sp_set_val");
-+     error(E_NULL,"sp_set_val_");
-    if ( i < 0 || i >= A->m || j < 0 || j >= A->n )
--     error(E_SIZES,"sp_set_val");
-+     error(E_SIZES,"sp_set_val_");
-    
-    r = A->row+i;
-    idx = sprow_idx(r,j);
--   /* printf("sp_set_val: idx = %d\n",idx); */
-+   /* printf("sp_set_val_: idx = %d\n",idx); */
-    if ( idx >= 0 )
--   {	r->elt[idx].val = val;	return val;	}
-+   {
-+      (*f)(&(r->elt[idx].val), val);
-+      return r->elt[idx].val;	
-+   }
-    /* else */ if ( idx < -1 )
-    {
-       /* Note: this destroys the column & diag access paths */
-@@ -97,7 +105,7 @@
- 
- 	 r->elt = RENEW(r->elt,new_len,row_elt);
- 	 if ( ! r->elt )	/* can't allocate */
--	   error(E_MEM,"sp_set_val");
-+	   error(E_MEM,"sp_set_val_");
- 	 r->maxlen = 2*r->maxlen+1;
-       }
-       for ( idx2 = r->len-1; idx2 >= idx; idx2-- )
-@@ -110,12 +118,40 @@
- 	************************************************************/
-       r->len++;
-       r->elt[idx].col = j;
-+      
-+      /* sbagliato
-+      (*f)(&(r->elt[idx].val), val);
-+       */
-       return r->elt[idx].val = val;
-    }
-    /* else -- idx == -1, error in index/matrix! */
-    return 0.0;
- }
- 
-+double	sp_set_val(A,i,j,val)
-+SPMAT	*A;
-+int	i, j;
-+double	val;
-+{
-+   return sp_set_val_(A, i, j, val, _set);
-+}
-+
-+double	sp_inc_val(A,i,j,val)
-+SPMAT	*A;
-+int	i, j;
-+double	val;
-+{
-+   return sp_set_val_(A, i, j, val, _inc);
-+}
-+
-+double	sp_dec_val(A,i,j,val)
-+SPMAT	*A;
-+int	i, j;
-+double	val;
-+{
-+   return sp_set_val_(A, i, j, val, _dec);
-+}
-+
- /* sp_mv_mlt -- sparse matrix/dense vector multiply
-    -- result is in out, which is returned unless out==NULL on entry
-    --  if out==NULL on entry then the result vector is created */
-@@ -612,16 +648,17 @@
- {
-    int i;
- 
--   if ( ! A )
--     error(E_NULL,"sp_smlt");
--   if ( ! B )
--     B = sp_get(A->m,A->n,5);
--   else
--     if ( A->m != B->m || A->n != B->n )
--       error(E_SIZES,"sp_smlt");
-+   if (!A) {
-+      error(E_NULL, "sp_smlt");
-+   }
-+   if (!B) {
-+      B = sp_get(A->m, A->n, 5);
-+   } else if (A->m != B->m || A->n != B->n) {
-+      error(E_SIZES, "sp_smlt");
-+   }
- 
--   for (i=0; i < A->m; i++) {
--      sprow_smlt(&(A->row[i]),alpha,0,&(B->row[i]),TYPE_SPMAT);
-+   for (i = A->m; i-- > 0; ) {
-+      sprow_smlt(&(A->row[i]), alpha, 0, &(B->row[i]), TYPE_SPMAT);
-    }
-    return B;
- }
-@@ -635,15 +672,16 @@
-    int	i, idx, len;
-    row_elt	*elt;
-    
--   if ( ! A )
--     error(E_NULL,"sp_zero");
-+   if ( ! A ) {
-+      error(E_NULL,"sp_zero");
-+   }
-    
--   for ( i = 0; i < A->m; i++ )
--   {
-+   for ( i = A->m; i-- > 0; ) {
-       elt = A->row[i].elt;
-       len = A->row[i].len;
--      for ( idx = 0; idx < len; idx++ )
--	(*elt++).val = 0.0;
-+      for ( idx = len; idx-- > 0; ) {
-+	 (*elt++).val = 0.;
-+      }
-    }
-    
-    return A;
---- a/sparse.h
-+++ b/sparse.h
-@@ -63,11 +63,12 @@
- 	This starts the chain down the columns using the nxt_row and nxt_idx
- 	fields of each entry in each row. */
- 
--typedef struct pair { int pos;	Real val; } pair;
-+typedef struct meschach_pair { int pos;	Real val; } meschach_pair;
- 
- typedef struct SPVEC {
- 	int	dim, max_dim;
--	pair	*elt;		/* elt[max_dim] */
-+	struct { int pos; Real val; } *elt;
-+	/* meschach_pair	*elt; */		/* elt[max_dim] */
- 	       } SPVEC;
- 
- #define	SMNULL	((SPMAT*)NULL)
-@@ -98,6 +99,9 @@
- extern	SPMAT	*sp_get(), *sp_copy(), *sp_copy2(),
- 			*sp_zero(), *sp_resize(), *sp_compact();
- extern	double	sp_get_val(), sp_set_val();
-+/* ANDO 01-10-99 */
-+extern	double sp_inc_val(), sp_dec_val();
-+/* ANDO 01-10-99 */
- extern	VEC	*sp_mv_mlt(), *sp_vm_mlt();
- extern	int	sp_free();
- 
-@@ -132,6 +136,9 @@
- 	*sp_zero(SPMAT *), *sp_resize(SPMAT *,int,int),
- 	*sp_compact(SPMAT *,double);
- double	sp_get_val(SPMAT *,int,int), sp_set_val(SPMAT *,int,int,double);
-+/* ANDO 01-10-99 */
-+double  sp_inc_val(SPMAT *,int,int,double), sp_dec_val(SPMAT *,int,int,double);
-+/* ANDO 01-10-99 */
- VEC	*sp_mv_mlt(SPMAT *,VEC *,VEC *), *sp_vm_mlt(SPMAT *,VEC *,VEC *);
- int	sp_free(SPMAT *);
- 
---- a/sparseio.c
-+++ b/sparseio.c
-@@ -222,9 +222,9 @@
- 				error(E_INPUT,"sp_finput");
- 			    if ( *line == 'e' || *line == 'E' )
- 				break;
--#if REAL == DOUBLE
-+#if MESCHACH_REAL == MESCHACH_DOUBLE
- 			} while ( sscanf(line,"%u %lf",&col,&val) != 2 ||
--#elif REAL == FLOAT
-+#elif MESCHACH_REAL == MESCHACH_FLOAT
- 			} while ( sscanf(line,"%u %f",&col,&val) != 2 ||
- #endif
- 				    col >= n || col <= curr_col );
-@@ -282,9 +282,9 @@
- 		    curr_col = -1;
- 		    for ( len = 0; len < MAXSCRATCH; len++ )
- 		    {
--#if REAL == DOUBLE
-+#if MESCHACH_REAL == MESCHACH_DOUBLE
- 			if ( (ret_val=fscanf(fp,"%u : %lf",&col,&val)) != 2 )
--#elif REAL == FLOAT
-+#elif MESCHACH_REAL == MESCHACH_FLOAT
- 			if ( (ret_val=fscanf(fp,"%u : %f",&col,&val)) != 2 )
- #endif
- 			    break;
---- a/splufctr.c
-+++ b/splufctr.c
-@@ -56,21 +56,27 @@
- 	Real	max_val, tmp;
- 	static VEC	*col_vals=VNULL;
- 
--	if ( ! A || ! px )
-+	if ( ! A || ! px ) {
- 		error(E_NULL,"spLUfctr");
--	if ( alpha <= 0.0 || alpha > 1.0 )
-+	}
-+	if ( alpha <= 0.0 || alpha > 1.0 ) {
- 		error(E_RANGE,"alpha in spLUfctr");
--	if ( px->size <= A->m )
-+	}
-+	if ( px->size <= A->m ) {
- 		px = px_resize(px,A->m);
-+	}
- 	px_ident(px);
- 	col_vals = v_resize(col_vals,A->m);
- 	MEM_STAT_REG(col_vals,TYPE_VEC);
- 
--	m = A->m;	n = A->n;
--	if ( ! A->flag_col )
-+	m = A->m;	
-+        n = A->n;
-+	if ( ! A->flag_col ) {
- 		sp_col_access(A);
--	if ( ! A->flag_diag )
-+	}
-+	if ( ! A->flag_diag ) {
- 		sp_diag_access(A);
-+	}
- 	A->flag_col = A->flag_diag = FALSE;
- 	if ( ! merge ) {
- 	   merge = sprow_get(20);
-@@ -87,25 +93,29 @@
- 	    {
- 		r = &(A->row[i]);
- 		idx = sprow_idx(r,k);
--		if ( idx < 0 )
-+		if ( idx < 0 ) {
- 		    tmp = 0.0;
--		else
-+		} else {
- 		    tmp = r->elt[idx].val;
--		if ( fabs(tmp) > max_val )
-+		}
-+		if ( fabs(tmp) > max_val ) {
- 		    max_val = fabs(tmp);
-+		}
- 		col_vals->ve[i] = tmp;
- 	    }
- 
--	    if ( max_val == 0.0 )
-+	    if ( max_val == 0.0 ) {
- 		continue;
-+	    }
- 
- 	    best_len = n+1;	/* only if no possibilities */
- 	    best_i = -1;
- 	    for ( i = k; i < m; i++ )
- 	    {
- 		tmp = fabs(col_vals->ve[i]);
--		if ( tmp == 0.0 )
-+		if ( tmp == 0.0 ) {
- 		    continue;
-+		}
- 		if ( tmp >= alpha*max_val )
- 		{
- 		    r = &(A->row[i]);
-@@ -171,17 +181,21 @@
- 	SPROW	*r;
- 	row_elt	*elt;
- 
--	if ( ! A || ! b )
-+	if ( ! A || ! b ) {
- 	    error(E_NULL,"spLUsolve");
--	if ( (pivot != PNULL && A->m != pivot->size) || A->m != b->dim )
-+	}
-+	if ( (pivot != PNULL && A->m != pivot->size) || A->m != b->dim ) {
- 	    error(E_SIZES,"spLUsolve");
--	if ( ! x || x->dim != A->n )
-+	}
-+	if ( ! x || x->dim != A->n ) {
- 	    x = v_resize(x,A->n);
-+	}
- 
--	if ( pivot != PNULL )
-+	if ( pivot != PNULL ) {
- 	    x = px_vec(pivot,b,x);
--	else
-+	} else {
- 	    x = v_copy(b,x);
-+	}
- 
- 	x_ve = x->ve;
- 	lim = min(A->m,A->n);
-@@ -191,21 +205,24 @@
- 	    r = &(A->row[i]);
- 	    len = r->len;
- 	    elt = r->elt;
--	    for ( idx = 0; idx < len && elt->col < i; idx++, elt++ )
-+	    for ( idx = 0; idx < len && elt->col < i; idx++, elt++ ) {
- 		sum -= elt->val*x_ve[elt->col];
-+	    }
- 	    x_ve[i] = sum;
- 	}
- 
--	for ( i = lim-1; i >= 0; i-- )
-+	for ( i = lim; i-- > 0; )
- 	{
- 	    sum = x_ve[i];
- 	    r = &(A->row[i]);
- 	    len = r->len;
- 	    elt = &(r->elt[len-1]);
--	    for ( idx = len-1; idx >= 0 && elt->col > i; idx--, elt-- )
-+	    for ( idx = len-1; idx >= 0 && elt->col > i; idx--, elt-- ) {
- 		sum -= elt->val*x_ve[elt->col];
--	    if ( idx < 0 || elt->col != i || elt->val == 0.0 )
-+	    }
-+	    if ( idx < 0 || elt->col != i || elt->val == 0.0 ) {
- 		error(E_SING,"spLUsolve");
-+	    }
- 	    x_ve[i] = sum/elt->val;
- 	}
- 
---- a/sptort.c
-+++ b/sptort.c
-@@ -39,9 +39,9 @@
- 
- /* for iterative methods */
- 
--#if REAL == DOUBLE
-+#if MESCHACH_REAL == MESCHACH_DOUBLE
- #define	EPS	1e-7
--#elif REAL == FLOAT
-+#elif MESCHACH_REAL == MESCHACH_FLOAT
- #define EPS   1e-3
- #endif
- 
---- a/zmatio.c
-+++ b/zmatio.c
-@@ -53,18 +53,18 @@
- 	    fprintf(stderr,"real and imag parts: ");
- 	    if ( fgets(line,MAXLINE,fp) == NULL )
- 		error(E_EOF,"z_finput");
--#if REAL == DOUBLE
-+#if MESCHACH_REAL == MESCHACH_DOUBLE
- 	    io_code = sscanf(line,"%lf%lf",&z.re,&z.im);
--#elif REAL == FLOAT
-+#elif MESCHACH_REAL == MESCHACH_FLOAT
- 	    io_code = sscanf(line,"%f%f",&z.re,&z.im);
- #endif
- 
- 	} while ( io_code != 2 );
-     }
-     else
--#if REAL == DOUBLE
-+#if MESCHACH_REAL == MESCHACH_DOUBLE
-       if ( (io_code=fscanf(fp," (%lf,%lf)",&z.re,&z.im)) < 2 )
--#elif REAL == FLOAT
-+#elif MESCHACH_REAL == MESCHACH_FLOAT
-       if ( (io_code=fscanf(fp," (%f,%f)",&z.re,&z.im)) < 2 )
- #endif
- 	    error((io_code == EOF) ? E_EOF : E_FORMAT,"z_finput");
-@@ -129,9 +129,9 @@
- 		    if ( (*line == 'f' || *line == 'F') && j < n-1 )
- 		    {   j++;    dynamic = FALSE;        goto redo2;     }
- 	       } while ( *line=='\0' ||
--#if REAL == DOUBLE
-+#if MESCHACH_REAL == MESCHACH_DOUBLE
- 			 sscanf(line,"%lf%lf",
--#elif REAL == FLOAT
-+#elif MESCHACH_REAL == MESCHACH_FLOAT
- 			sscanf(line,"%f%f",
- #endif	
- 				&mat->me[i][j].re,&mat->me[i][j].im)<1 );
-@@ -176,9 +176,9 @@
- 	  for ( j=0; j<n; j++ )
- 	  {
- 	      /* printf("bzm_finput: j = %d\n", j); */
--#if REAL == DOUBLE
-+#if MESCHACH_REAL == MESCHACH_DOUBLE
- 	      if ((io_code=fscanf(fp," ( %lf , %lf )",
--#elif REAL == FLOAT
-+#elif MESCHACH_REAL == MESCHACH_FLOAT
- 	      if ((io_code=fscanf(fp," ( %f , %f )",
- #endif
- 				  &mat->me[i][j].re,&mat->me[i][j].im)) < 2 )
-@@ -239,9 +239,9 @@
- 	       if ( (*line == 'f' || *line == 'F') && i < dim-1 )
- 	       {        i++;    dynamic = FALSE;        goto redo;         }
- 	  } while ( *line=='\0' ||
--#if REAL == DOUBLE
-+#if MESCHACH_REAL == MESCHACH_DOUBLE
- 		    sscanf(line,"%lf%lf",
--#elif REAL == FLOAT
-+#elif MESCHACH_REAL == MESCHACH_FLOAT
- 		    sscanf(line,"%f%f",
- #endif  
- 			   &vec->ve[i].re,&vec->ve[i].im) < 2 );
-@@ -271,9 +271,9 @@
-      /* get entries */
-      skipjunk(fp);
-      for ( i=0; i<dim; i++ )
--#if REAL == DOUBLE
-+#if MESCHACH_REAL == MESCHACH_DOUBLE
- 	  if ((io_code=fscanf(fp," (%lf,%lf)",
--#elif REAL == FLOAT
-+#elif MESCHACH_REAL == MESCHACH_FLOAT
-           if ((io_code=fscanf(fp," (%f,%f)",
- #endif
- 			      &vec->ve[i].re,&vec->ve[i].im)) < 2 )

diff --git a/sci-libs/meschach/files/meschach-makefile.patch b/sci-libs/meschach/files/meschach-makefile.patch
deleted file mode 100644
index 701c91246..000000000
--- a/sci-libs/meschach/files/meschach-makefile.patch
+++ /dev/null
@@ -1,156 +0,0 @@
---- a/configure.in
-+++ b/configure.in
-@@ -44,14 +44,15 @@
- # and has a different meaning for keyword "complex"!  Drew Parsons, 2001.
- ##AC_HEADER_CHECK(complex.h, AC_DEFINE(HAVE_COMPLEX_H),)
- AC_HEADER_CHECK(malloc.h, AC_DEFINE(HAVE_MALLOC_H),)
-+AC_HEADER_CHECK(huge_val.h, AC_DEFINE(HAVE_HUGE_VAL_H),)
- AC_HEADER_CHECK(varargs.h, AC_DEFINE(VARARGS),)
- AC_DEFINE(NOT_SEGMENTED)
- AC_SIZE_T
- AC_CONST
- AC_WORDS_BIGENDIAN
--AC_WITH(complex, AC_DEFINE(COMPLEX))
-+AC_WITH(complex, AC_DEFINE(MESCHACH_COMPLEX))
- AC_WITH(sparse, AC_DEFINE(SPARSE))
--AC_WITH(all, AC_DEFINE(COMPLEX))
-+AC_WITH(all, AC_DEFINE(MESCHACH_COMPLEX))
- AC_WITH(all, AC_DEFINE(SPARSE))
- AC_WITH(unroll, AC_DEFINE(VUNROLL))
- AC_WITH(munroll, AC_DEFINE(MUNROLL))
---- a/makefile.in
-+++ b/makefile.in
-@@ -18,8 +18,7 @@
- LIBS = @LIBS@
- RANLIB = @RANLIB@
- 
--
--CFLAGS = -O3 -fPIC
-+CFLAGS += -fPIC
- 
- 
- .c.o:
-@@ -68,7 +67,7 @@
- 
- # Different configurations
- # the dependencies **between** the parts are for dmake
--all: shared static
-+all: shared
- #all: @PROGS@ part1 part2 part3 zpart1 zpart2 shared
- part2: part1
- part3: part2
-@@ -77,50 +76,10 @@
- zpart2: zpart1
- complex: part1 part2 zpart1 zpart2
- 
-+shared:   libmeschach.so
- 
--$(LIST1): $(HBASE)
--part1: $(LIST1)
--	ar ru libmeschach.a $(LIST1)
--	$(RANLIB) libmeschach.a
--#	$(CC) -shared -o libmeschach.so $(LIST1)
--
--$(LIST2): $(HBASE) matrix2.h
--part2: $(LIST2)
--	ar ru libmeschach.a $(LIST2)
--	$(RANLIB) libmeschach.a
--#	$(CC) -shared -o libmeschach.so $(LIST2)
--
--$(LIST3): $(HBASE) sparse.h sparse2.h
--part3: $(LIST3)
--	ar ru libmeschach.a $(LIST3)
--	$(RANLIB) libmeschach.a
--#	$(CC) -shared -o libmeschach.so $(LIST3)
--
--$(ZLIST1): $(HBASDE) zmatrix.h
--zpart1: $(ZLIST1)
--	ar ru libmeschach.a $(ZLIST1)
--	$(RANLIB) libmeschach.a
--#	$(CC) -shared -o libmeschach.so $(ZLIST1)
--
--$(ZLIST2): $(HBASE) zmatrix.h zmatrix2.h 
--zpart2: $(ZLIST2)
--	ar ru libmeschach.a $(ZLIST2)
--	$(RANLIB) libmeschach.a
--#	$(CC) -shared -o libmeschach.so $(ZLIST2)
--
--$(OLDLIST): $(HBASE) sparse.h sparse2.h 
--oldpart: $(OLDLIST)
--	ar ru libmeschach.a $(OLDLIST)
--	$(RANLIB) libmeschach.a
--#	$(CC) -shared -o libmeschach.so $(OLDLIST)
--
--shared:   $(ALL_LISTS)
--	$(CC) -shared -o libmeschach.so $(ALL_LISTS) -lc -lm -Wl,-soname -Wl,libmeschach.so.$(vers)
--
--static:  $(ALL_LISTS)
--	ar ru libmeschach.a $(ALL_LISTS)
--	$(RANLIB) libmeschach.a
--
-+libmeschach.so:   $(ALL_LISTS)
-+	$(CC) $(LDFLAGS) -shared -o libmeschach.so $(ALL_LISTS) -lc -lm -Wl,-soname -Wl,libmeschach.so.$(vers)
- 
- #######################################
- 
-@@ -199,32 +158,32 @@
-  
- alltorture: torture sptort ztorture memtort itertort mfuntort iotort
- 
--torture:torture.o libmeschach.a
--	$(CC) $(CFLAGS) $(DEFS) -o torture torture.o \
--	libmeschach.a $(LIBS)
--sptort:sptort.o libmeschach.a
--	$(CC) $(CFLAGS) $(DEFS) -o sptort sptort.o \
--	libmeschach.a $(LIBS)
--memtort: memtort.o libmeschach.a
--	$(CC) $(CFLAGS) $(DEFS) -o memtort memtort.o \
--	libmeschach.a $(LIBS)
--ztorture:ztorture.o libmeschach.a
--	$(CC) $(CFLAGS) $(DEFS) -o ztorture ztorture.o \
--	libmeschach.a $(LIBS)
--itertort: itertort.o libmeschach.a
--	$(CC) $(CFLAGS) $(DEFS) -o itertort itertort.o \
--	libmeschach.a $(LIBS)
--
--iotort: iotort.o libmeschach.a
--	$(CC) $(CFLAGS) $(DEFS) -o iotort iotort.o \
--	libmeschach.a $(LIBS)
--mfuntort: mfuntort.o libmeschach.a
--	$(CC) $(CFLAGS) $(DEFS) -o mfuntort mfuntort.o \
--	libmeschach.a $(LIBS)
--tstmove: tstmove.o libmeschach.a
--	$(CC) $(CFLAGS) $(DEFS) -o tstmove tstmove.o \
--	libmeschach.a $(LIBS)
--tstpxvec: tstpxvec.o libmeschach.a
--	$(CC) $(CFLAGS) $(DEFS) -o tstpxvec tstpxvec.o \
--	libmeschach.a $(LIBS)
-+torture:torture.o libmeschach.so
-+	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o torture torture.o \
-+	-lmeschach -L. $(LIBS)
-+sptort:sptort.o libmeschach.so
-+	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o sptort sptort.o \
-+	-lmeschach -L. $(LIBS)
-+memtort: memtort.o libmeschach.so
-+	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o memtort memtort.o \
-+	-lmeschach -L. $(LIBS)
-+ztorture:ztorture.o libmeschach.so
-+	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o ztorture ztorture.o \
-+	-lmeschach -L. $(LIBS)
-+itertort: itertort.o libmeschach.so
-+	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o itertort itertort.o \
-+	-lmeschach -L. $(LIBS)
-+
-+iotort: iotort.o libmeschach.so
-+	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o iotort iotort.o \
-+	-lmeschach -L. $(LIBS)
-+mfuntort: mfuntort.o libmeschach.so
-+	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o mfuntort mfuntort.o \
-+	-lmeschach -L. $(LIBS)
-+tstmove: tstmove.o libmeschach.so
-+	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o tstmove tstmove.o \
-+	-lmeschach -L. $(LIBS)
-+tstpxvec: tstpxvec.o libmeschach.so
-+	$(CC) $(CFLAGS) $(LDFLAGS) $(DEFS) -fPIE -o tstpxvec tstpxvec.o \
-+	-lmeschach -L. $(LIBS)
- 

diff --git a/sci-libs/meschach/meschach-1.2b.ebuild b/sci-libs/meschach/meschach-1.2b.ebuild
deleted file mode 100644
index d973fb63a..000000000
--- a/sci-libs/meschach/meschach-1.2b.ebuild
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-inherit autotools eutils toolchain-funcs
-
-MAJOR="$(ver_cut 1)"
-VERSION="$(ver_cut 1-2)"
-
-DESCRIPTION="Meschach is a C-language library of routines for performing matrix computations"
-HOMEPAGE="http://homepage.divms.uiowa.edu/~dstewart/meschach"
-SRC_URI="
-	http://cdn-fastly.deb.debian.org/debian/pool/main/m/meschach/${PN}_${PV}.orig.tar.gz
-	http://cdn-fastly.deb.debian.org/debian/pool/main/m/meschach/${PN}_${PV}-14.debian.tar.xz
-"
-LICENSE="meschach"
-SLOT="0"
-KEYWORDS="~amd64"
-
-IUSE="complex +double float munroll old segmem sparse unroll"
-REQUIRED_USE="
-		^^ ( double float )
-"
-
-PATCHES=(
-	"${WORKDIR}/debian/patches/${PN}_${PV}-13.diff"
-	"${WORKDIR}/debian/patches/${PN}_${PV}-13.configure.diff"
-	"${FILESDIR}/configure.patch"
-	"${FILESDIR}/${PN}-2-mbdyn.diff"
-	"${FILESDIR}/${PN}-makefile.patch"
-)
-
-src_prepare() {
-	default
-	mv configure.in configure.ac || die
-	use old && sed -i -- 's/all: shared static/all: oldpart shared static/g' makefile.ac
-	tc-export AR CC
-	eautoreconf
-}
-
-src_configure() {
-	myconf=(
-		$(use_with complex)
-		$(use_with double)
-		$(use_with float)
-		$(use_with munroll)
-		$(use_with segmem)
-		$(use_with sparse)
-		$(use_with unroll)
-	)
-	econf "${myconf[@]}"
-}
-
-src_compile() {
-	emake vers="${VERSION}" all
-	emake alltorture
-}
-
-src_install() {
-	ln -s "lib${PN}.so" "lib${PN}.so.${MAJOR}" || die
-	ln -s "lib${PN}.so.${MAJOR}" "lib${PN}.so.${VERSION}" || die
-	dolib.so "lib${PN}.so"
-	dolib.so "lib${PN}.so.${MAJOR}"
-	dolib.so "lib${PN}.so.${VERSION}"
-
-	insinto "/usr/include/${PN}"
-	doins *.h
-
-	exeinto "/usr/libexec/${PN}"
-	doexe iotort
-	doexe itertort
-	doexe memtort
-	doexe mfuntort
-	doexe sptort
-	doexe torture
-	doexe ztorture
-
-	insinto "/usr/share/${P}"
-	doins *.dat
-
-	dodoc -r DOC/.
-	einstalldocs
-}

diff --git a/sci-libs/meschach/meschach-1.2b_p20170511.ebuild b/sci-libs/meschach/meschach-1.2b_p20170511-r1.ebuild
similarity index 84%
rename from sci-libs/meschach/meschach-1.2b_p20170511.ebuild
rename to sci-libs/meschach/meschach-1.2b_p20170511-r1.ebuild
index 8ddb5297b..062d2c971 100644
--- a/sci-libs/meschach/meschach-1.2b_p20170511.ebuild
+++ b/sci-libs/meschach/meschach-1.2b_p20170511-r1.ebuild
@@ -1,7 +1,7 @@
 # Copyright 1999-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI="7"
+EAPI=8
 
 inherit cmake
 
@@ -21,7 +21,8 @@ LICENSE="meschach"
 SLOT="0"
 KEYWORDS="~amd64"
 
-IUSE="+complex +double munroll old segmem +float +sparse unroll"
+IUSE="+complex +double-precision munroll segmem +single-precision +sparse vunroll"
+#TODO: build old functions, torture
 
 #PATCHES=(
 #	"${FILESDIR}/.patch"
@@ -31,12 +32,12 @@ src_configure() {
 	mycmakeargs=(
 		-DANDROID_COMPILE=OFF
 		-DCOMPLEX_OPTION=$(usex complex)
-		-DREAL_DBL_OPTION=$(usex double)
-		-DREAL_FLT_OPTION=$(usex float)
+		-DREAL_DBL_OPTION=$(usex double-precision)
 		-DMUNROLL_OPTION=$(usex munroll)
 		-DSEGMENTED_OPTION=$(usex segmem)
+		-DREAL_FLT_OPTION=$(usex single-precision)
 		-DSPARSE_OPTION=$(usex sparse)
-		-DVUNROLL_OPTION=$(usex unroll)
+		-DVUNROLL_OPTION=$(usex vunroll)
 	)
 	cmake_src_configure
 }

diff --git a/sci-libs/meschach/metadata.xml b/sci-libs/meschach/metadata.xml
index fde1c1444..3ba3a8929 100644
--- a/sci-libs/meschach/metadata.xml
+++ b/sci-libs/meschach/metadata.xml
@@ -1,17 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-  <maintainer type="person">
-    <email>lssndrbarbieri@gmail.com</email>
-    <name>Alessandro Barbieri</name>
-  </maintainer>
-  <upstream>
-    <maintainer>
-      <email>dstewart@math.uiowa.edu</email>
-      <name>David Stewart</name>
-    </maintainer>
-  </upstream>
-  <longdescription lang="en">
+	<maintainer type="person">
+		<email>lssndrbarbieri@gmail.com</email>
+		<name>Alessandro Barbieri</name>
+	</maintainer>
+	<upstream>
+		<remote-id type="github">yageek/Meschach</remote-id>
+		<maintainer>
+			<email>dstewart@math.uiowa.edu</email>
+			<name>David Stewart</name>
+		</maintainer>
+	</upstream>
+	<longdescription lang="en">
 The Meschach Library is a numerical library of C routines for performing
 calculations on matrices and vectors. It is intended for solving systems of
 linear equations (dense and sparse), solve least squares problems,
@@ -26,15 +27,15 @@ comprises a coherent system. The current version is enhanced with many
 features comparing with previous versions. Since the memory requirements
 are nontrivial for large problems we have paid more attention to
 allocation/deallocation of memory.
-  </longdescription>
-  <use>
-    <flag name="complex">incorporate complex functions.</flag>
-    <flag name="double">double precision</flag>
-    <flag name="float">single precision</flag>
-    <flag name="munroll">unroll low level loops on matrices</flag>
-    <flag name="old">build no longer supported functions</flag>
-    <flag name="segmem">should be set if you are working with a machine or compiler that does not allow large arrays to be allocated. See README</flag>
-    <flag name="sparse">incorporate sparse matrix functions</flag>
-    <flag name="unroll">unroll low level loops on vectors</flag>
-  </use>
+	</longdescription>
+	<use>
+		<flag name="complex">incorporate complex functions</flag>
+		<flag name="double-precision">double precision</flag>
+		<flag name="munroll">unroll low level loops on matrices</flag>
+		<!--<flag name="old">build no longer supported functions</flag>-->
+		<flag name="segmem">should be set if you are working with a machine or compiler that does not allow large arrays to be allocated. See README</flag>
+		<flag name="single-precision">single precision</flag>
+		<flag name="sparse">incorporate sparse matrix functions</flag>
+		<flag name="vunroll">unroll low level loops on vectors</flag>
+	</use>
 </pkgmetadata>


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-09-10 10:45 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-09-07  2:58 [gentoo-commits] repo/proj/guru:master commit in: sci-libs/meschach/, sci-libs/meschach/files/ Haelwenn Monnier
  -- strict thread matches above, loose matches on Subject: below --
2021-09-10 10:45 Arthur Zamarin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox