diff options
-rw-r--r-- | sci-libs/spooles/ChangeLog | 17 | ||||
-rw-r--r-- | sci-libs/spooles/files/Make.inc.in | 9 | ||||
-rw-r--r-- | sci-libs/spooles/files/spooles-2.2-I2Ohash-64bit.patch | 28 | ||||
-rw-r--r-- | sci-libs/spooles/files/spooles-2.2-formats.patch | 17 | ||||
-rw-r--r-- | sci-libs/spooles/files/spooles-2.2-makefiles.patch | 47 | ||||
-rw-r--r-- | sci-libs/spooles/metadata.xml | 19 | ||||
-rw-r--r-- | sci-libs/spooles/spooles-2.2.ebuild | 68 |
7 files changed, 205 insertions, 0 deletions
diff --git a/sci-libs/spooles/ChangeLog b/sci-libs/spooles/ChangeLog new file mode 100644 index 000000000000..00e1dacaed01 --- /dev/null +++ b/sci-libs/spooles/ChangeLog @@ -0,0 +1,17 @@ +# ChangeLog for sci-libs/spooles +# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/sci-libs/spooles/ChangeLog,v 1.1 2011/03/05 18:20:52 bicatali Exp $ + +*spooles-2.2 (05 Mar 2011) + + 05 Mar 2011; Sébastien Fabbro <bicatali@gentoo.org> +spooles-2.2.ebuild, + +files/spooles-2.2-I2Ohash-64bit.patch, +files/spooles-2.2-formats.patch, + +files/spooles-2.2-makefiles.patch, +files/Make.inc.in, +metadata.xml: + Initial import into the main tree. Rewrote from scratch. + + 15 Oct 2008; Oliver Borm (boroli) <oli.borm@web.de> +spooles-2.2.ebuild, + +files/spooles-2.2_I2Ohash-64bit.patch, +files/spooles-2.2_MPI.patch, + +files/spooles-2.2_MT.patch, +files/spooles-2.2_makefiles.patch, + +files/spooles-2.2_shared-libs.patch, +metadata.xml: + Reworked ebuild for bug 125772, thanks to abraxxas and pva + diff --git a/sci-libs/spooles/files/Make.inc.in b/sci-libs/spooles/files/Make.inc.in new file mode 100644 index 000000000000..1557f9fe979e --- /dev/null +++ b/sci-libs/spooles/files/Make.inc.in @@ -0,0 +1,9 @@ +.POSIX: +THREAD_LIBS = -lpthread +CC = @CC@ +AR = @AR@ +RANLIB = @RANLIB@ +ARFLAGS = rv +.c.a : + $(CC) $(CFLAGS) -c $< + $(AR) $(ARFLAGS) $@ $*.o diff --git a/sci-libs/spooles/files/spooles-2.2-I2Ohash-64bit.patch b/sci-libs/spooles/files/spooles-2.2-I2Ohash-64bit.patch new file mode 100644 index 000000000000..0f608da2afc8 --- /dev/null +++ b/sci-libs/spooles/files/spooles-2.2-I2Ohash-64bit.patch @@ -0,0 +1,28 @@ +--- spooles-2.2/I2Ohash/src/util.c~ 1998-05-30 18:45:12.000000000 -0400 ++++ spooles-2.2/I2Ohash/src/util.c 2008-06-28 20:56:49.000000000 -0400 +@@ -39,9 +39,10 @@ + */ + loc1 = (key1 + 1) % hashtable->nlist ; + loc2 = (key2 + 1) % hashtable->nlist ; +-loc = (loc1*loc2) % hashtable->nlist ; ++long int loc3 = (long int)loc1*(long int)loc2 % hashtable->nlist ; ++loc =(int) loc3; + #if MYDEBUG > 0 +-fprintf(stdout, "\n loc1 = %d, loc2 = %d, loc3 = %d", loc1, loc2, loc) ; ++fprintf(stdout, "\n loc1 = %d, loc2 = %d, loc3 = %ld, loc = %d", loc1, loc2, loc3, loc) ; + fflush(stdout) ; + #endif + /* +@@ -158,9 +159,10 @@ + #endif + loc1 = (key1 + 1) % hashtable->nlist ; + loc2 = (key2 + 1) % hashtable->nlist ; +-loc = (loc1*loc2) % hashtable->nlist ; ++long int loc3 = (long int)loc1*(long int)loc2 % hashtable->nlist ; ++loc =(int) loc3; + #if MYDEBUG > 0 +-fprintf(stdout, "\n loc1 = %d, loc2 = %d, loc3 = %d", loc1, loc2, loc) ; ++fprintf(stdout, "\n loc1 = %d, loc2 = %d, loc3 = %ld, loc = %d", loc1, loc2, loc3, loc) ; + fflush(stdout) ; + #endif + /* diff --git a/sci-libs/spooles/files/spooles-2.2-formats.patch b/sci-libs/spooles/files/spooles-2.2-formats.patch new file mode 100644 index 000000000000..080574e730d0 --- /dev/null +++ b/sci-libs/spooles/files/spooles-2.2-formats.patch @@ -0,0 +1,17 @@ +--- SolveMap/src/setup.c.orig 2011-03-05 18:08:51.000000000 +0000 ++++ SolveMap/src/setup.c 2011-03-05 18:16:50.000000000 +0000 +@@ -28,12 +28,12 @@ + --------------- + */ + if ( solvemap == NULL ) { +- fprintf(stderr, "\n fatal error in SolveMap_forwardSetup(%p,%d)" ++ fprintf(stderr, "\n fatal error in SolveMap_forwardSetup" + "\n solvemap is NULL\n") ; + exit(-1) ; + } + if ( myid < 0 || myid >= solvemap->nproc ) { +- fprintf(stderr, "\n fatal error in SolveMap_forwardSetup(%p,%d)" ++ fprintf(stderr, "\n fatal error in SolveMap_forwardSetup" + "\n myid %d, solvemap->nproc %d\n", myid, solvemap->nproc) ; + exit(-1) ; + } diff --git a/sci-libs/spooles/files/spooles-2.2-makefiles.patch b/sci-libs/spooles/files/spooles-2.2-makefiles.patch new file mode 100644 index 000000000000..4af8e083736c --- /dev/null +++ b/sci-libs/spooles/files/spooles-2.2-makefiles.patch @@ -0,0 +1,47 @@ +--- MPI/makefile~ 1998-12-17 15:47:44.000000000 +0000 ++++ MPI/makefile 2008-02-26 00:10:57.000000000 +0000 +@@ -2,7 +2,7 @@ + cd drivers ; make drivers + + lib : +- cd src ; make spoolesMPI.a ++ cd src ; make makeLib + + clean : + cd src ; make clean +--- MPI/src/makefile~ 1998-12-16 21:54:41.000000000 +0000 ++++ MPI/src/makefile 2008-02-26 00:08:16.000000000 +0000 +@@ -42,3 +42,8 @@ + + clean : + - rm -f *.a *.o ++ ++makeLib : ++ perl ../../makeLib > makeG ++ make -f makeG ++ rm -f makeG +--- MT/makefile~ 1998-12-17 15:47:48.000000000 +0000 ++++ MT/makefile 2008-02-26 00:12:43.000000000 +0000 +@@ -2,7 +2,7 @@ + cd drivers ; make drivers + + lib : +- cd src ; make spoolesMT.a ++ cd src ; make makeLib + + clean : + cd src ; make clean +--- makeLib~ 2011-03-05 16:44:12.000000000 +0000 ++++ makeLib 2011-03-05 17:46:58.000000000 +0000 +@@ -70,8 +70,8 @@ + .c.o : + $(PURIFY) $(CC) -c $(CFLAGS) $*.c -o $(OBJ)_$*.o + +-../../spooles.a : ${OBJ_FILES} +- $(AR) $(ARFLAGS) ../../spooles.a $(OBJ)_*.o ++../../libspooles.a : ${OBJ_FILES} ++ $(AR) $(ARFLAGS) ../../libspooles.a $(OBJ)_*.o + rm -f $(OBJ)_*.o +- $(RANLIB) ../../spooles.a ++ $(RANLIB) ../../libspooles.a + EOF diff --git a/sci-libs/spooles/metadata.xml b/sci-libs/spooles/metadata.xml new file mode 100644 index 000000000000..38223c0500b5 --- /dev/null +++ b/sci-libs/spooles/metadata.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>sci</herd> +<longdescription lang='en'> + SPOOLES is a library for solving sparse real and complex linear + systems of equations, written in the C language using object + oriented design. At present, there is the following functionality: + 1. Compute multiple minimum degree, generalized nested dissection + and multisection orderings of matrices with symmetric structure. + 2. Factor and solve square linear systems of equations with + symmetric structure, with or without pivoting for stability. + 3. Factor and solve overdetermined full rank systems of equations + using a multifrontal QR factorization. + 4. Solve square linear systems using a variety of Krylov iterative + methods. The preconditioner is a drop tolerance factorization, + with or without pivoting for stability. +</longdescription> +</pkgmetadata> diff --git a/sci-libs/spooles/spooles-2.2.ebuild b/sci-libs/spooles/spooles-2.2.ebuild new file mode 100644 index 000000000000..ca2d9a4ddd0f --- /dev/null +++ b/sci-libs/spooles/spooles-2.2.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sci-libs/spooles/spooles-2.2.ebuild,v 1.1 2011/03/05 18:20:52 bicatali Exp $ + +EAPI=4 +inherit eutils toolchain-funcs versionator flag-o-matic + +MYP=${PN}.${PV} + +DESCRIPTION="SParse Object Oriented Linear Equations Solver" +HOMEPAGE="http://www.netlib.org/linalg/spooles" +SRC_URI="http://www.netlib.org/linalg/${PN}/${MYP}.tgz" + +LICENSE="public-domain" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="mpi static-libs threads" + +RDEPEND="mpi? ( virtual/mpi )" +DEPEND="${RDEPEND}" + +S="${WORKDIR}" + +make_shared_lib() { + local soname=$(basename "${1%.a}").so.$(get_major_version) + einfo "Making ${soname}" + ${2:-$(tc-getCC)} ${LDFLAGS} \ + -shared -Wl,-soname="${soname}" \ + -Wl,--whole-archive "${1}" -Wl,--no-whole-archive \ + -o $(dirname "${1}")/"${soname}" || return 1 +} + +src_prepare() { + epatch "${FILESDIR}"/${P}-I2Ohash-64bit.patch + epatch "${FILESDIR}"/${P}-makefiles.patch + epatch "${FILESDIR}"/${P}-formats.patch + find . -name makefile -exec \ + sed -i -e 's:make:$(MAKE):g' '{}' \; + sed -e "s/@CC@/$(tc-getCC)/" \ + -e "s/@AR@/$(tc-getAR)/" \ + -e "s/@RANLIB@/$(tc-getRANLIB)/" \ + "${FILESDIR}"/Make.inc.in > Make.inc || die +} + +src_compile () { + append-flags -fPIC + emake lib + use threads && emake -C MT lib + use mpi && emake -C MPI CC=mpicc lib + make_shared_lib libspooles.a $(use mpi && echo mpicc) || die "shared lib failed" + if use static-libs; then + filter-flags -fPIC + emake clean + emake lib + use threads && emake -C MT lib + use mpi && emake -C MPI CC=mpicc lib + fi +} + +src_install () { + dolib.so libspooles.so.2 + dosym libspooles.so.2 /usr/$(get_libdir)/libspooles.so + use static-libs && dolib.a libspooles.a + find . -name '*.h' -print0 | \ + xargs -0 -n1 --replace=headerfile install -D headerfile tmp/headerfile + insinto /usr/include/${PN} + doins -r tmp/* +} |