diff options
author | Sébastien Fabbro <bicatali@gentoo.org> | 2011-05-23 19:35:36 +0100 |
---|---|---|
committer | Sébastien Fabbro <bicatali@gentoo.org> | 2011-05-23 19:35:36 +0100 |
commit | 39fd3922f60015368e94cd3b36d55d4a05d45721 (patch) | |
tree | 7d6c9b2c0ea6dec9fba32771c90fd7c0c7c9142e | |
parent | bumped stable atlas (diff) | |
download | bicatali-39fd3922f60015368e94cd3b36d55d4a05d45721.tar.gz bicatali-39fd3922f60015368e94cd3b36d55d4a05d45721.tar.bz2 bicatali-39fd3922f60015368e94cd3b36d55d4a05d45721.zip |
added scotch for virtual/metis
-rw-r--r-- | sci-libs/scotch/ChangeLog | 39 | ||||
-rw-r--r-- | sci-libs/scotch/Manifest | 7 | ||||
-rw-r--r-- | sci-libs/scotch/files/Makefile.inc.in | 19 | ||||
-rw-r--r-- | sci-libs/scotch/files/metis-header.patch | 11 | ||||
-rw-r--r-- | sci-libs/scotch/files/respect-ldflags.patch | 86 | ||||
-rw-r--r-- | sci-libs/scotch/metadata.xml | 26 | ||||
-rw-r--r-- | sci-libs/scotch/scotch-5.1.11-r1.ebuild | 142 |
7 files changed, 330 insertions, 0 deletions
diff --git a/sci-libs/scotch/ChangeLog b/sci-libs/scotch/ChangeLog new file mode 100644 index 0000000..5b92419 --- /dev/null +++ b/sci-libs/scotch/ChangeLog @@ -0,0 +1,39 @@ +# ChangeLog for sci-libs/scotch +# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/sci-libs/scotch/ChangeLog,v 1.5 2011/05/17 10:08:20 xarthisius Exp $ + +*scotch-5.1.11-r1 (23 May 2011) + + 23 May 2011; Sébastien Fabbro <bicatali@gentoo.org> + +scotch-5.1.11-r1.ebuild, +files/Makefile.inc.in, +files/metis-header.patch, + +files/respect-ldflags.patch, +metadata.xml: + Adapted for alternatives and virtual/metis + + 17 May 2011; Kacper Kowalik <xarthisius@gentoo.org> files/Makefile.inc.in: + Fix underlinking wrt #367495. Thanks to Diego Elio Pettenò + <flameeyes@gentoo.org> for the report. + + 15 Mar 2011; Sébastien Fabbro <bicatali@gentoo.org> scotch-5.1.11.ebuild: + Added linking with zlib, librt and libm for as-needed + +*scotch-5.1.11 (05 Mar 2011) + + 05 Mar 2011; Sébastien Fabbro <bicatali@gentoo.org> -scotch-5.1.6.ebuild, + +scotch-5.1.11.ebuild, +files/Makefile.inc.in, +files/respect-ldflags.patch, + -files/Makefile.inc, -files/mmkt-typo.patch, metadata.xml: + Version bump. Rewrote from scratch. Closing bug #324561 and bug #335468. + +*scotch-5.1.7 (15 Jan 2010) + + 15 Jan 2010; Patrick Lauer <pal@gentoo.org> +scotch-5.1.7.ebuild, + +files/Makefile.inc_5.1.7, +files/shared-libs_5.1.7.patch: + Bump, thanks to Oliver Borm. Fixes #301012 and #297656 + +*scotch-5.1.6 (03 Sep 2009) + + 03 Sep 2009; Patrick Lauer <patrick@gentoo.org> +scotch-5.1.6.ebuild, + +files/Makefile.inc, +files/metis-header.patch, +files/mmkt-typo.patch, + +files/shared-libs.patch, +metadata.xml: + Initial import of scotch, dependency of OpenFoam. Ebuild by Richard + Westwell and Oliver Borm. Fixes #220823 + diff --git a/sci-libs/scotch/Manifest b/sci-libs/scotch/Manifest new file mode 100644 index 0000000..18fdc22 --- /dev/null +++ b/sci-libs/scotch/Manifest @@ -0,0 +1,7 @@ +AUX Makefile.inc.in 369 RMD160 3261d40521cff31e0f6a4c20799578145eb7a570 SHA1 4e616420e499c7993f673f3df3519c3883f7c94f SHA256 d31c8abd49e662b0bb6af56602277e3d70c2274c9ce19110967c93539032178d +AUX metis-header.patch 381 RMD160 f364262003c72bd6f6614f0d2dae8f3be4495f2f SHA1 52ade3b7948c933f713602d39ddca88e6bb9eebe SHA256 271fe884e6a8eb423f89dbbb1fc9a73f742526d76233b1f81ab9b8d0b7d27091 +AUX respect-ldflags.patch 3867 RMD160 87a069731aa5a6a15ba892d1333419c0cc6fbcc5 SHA1 add77e8e11604adb2461112117c858b429d0d1e3 SHA256 b277e980cc6e671604dae0e5a4cba28255a786b4294f800ec20ca88d10d8aa49 +DIST scotch_5.1.11_esmumps.tgz 3952439 RMD160 f8db2bb02cbdadb7e02782daccddcdc4cdec4cac SHA1 b62501e0bf7fd24af3712647578b3e764f166287 SHA256 595ccc664ba070264b851a27b7860042a6bc716d6aade93e0909619decfabc92 +EBUILD scotch-5.1.11-r1.ebuild 3848 RMD160 b119c6c794de32b247faaff044072fed5ba46034 SHA1 b11afe91693694eaccc39b93df9033a6388c4f39 SHA256 b8fd090acaed19932c0ecb6c971a372f5ea477f808e0f5f4e776cb3e7715514d +MISC ChangeLog 1652 RMD160 5963ad94730256f2f101297b64cb84515c7a5eaa SHA1 a36592fd16555697ee2598b78b56a5c4baf144f6 SHA256 cfdf9f9005e6ce68df603c126dbf55897ee1bf1226ff89165a2f454d15f0cbb1 +MISC metadata.xml 1007 RMD160 1ef66d65ea2ff3022b287a12a26e1b08360390ff SHA1 5e624702b7ead9d165c0c698c77d76306439020c SHA256 fd9d3ef83d702452fa572e5ff3217f42819579e3510dbad5fac4081b07cb5d16 diff --git a/sci-libs/scotch/files/Makefile.inc.in b/sci-libs/scotch/files/Makefile.inc.in new file mode 100644 index 0000000..f4d9cdf --- /dev/null +++ b/sci-libs/scotch/files/Makefile.inc.in @@ -0,0 +1,19 @@ +EXE = +LIB = .a +OBJ = .o + +AR = @AR@ +ARFLAGS = -ruv +CAT = cat +CCS = @CC@ +CCP = mpicc +CCD = @CC@ +CFLAGS = @CFLAGS@ -pthread $(PICFLAGS) -Drestrict=__restrict -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME +LIBS = -lz -lm -lrt +CP = cp +LEX = flex +LN = ln +MKDIR = mkdir +MV = mv +RANLIB = @RANLIB@ +YACC = bison -y diff --git a/sci-libs/scotch/files/metis-header.patch b/sci-libs/scotch/files/metis-header.patch new file mode 100644 index 0000000..6768583 --- /dev/null +++ b/sci-libs/scotch/files/metis-header.patch @@ -0,0 +1,11 @@ +--- scotch-5.1.6.dfsg/src/libscotchmetis/metis.h~ 2007-09-03 11:14:42.000000000 -0400 ++++ scotch-5.1.6.dfsg/src/libscotchmetis/metis.h 2008-08-26 15:09:30.000000000 -0400 +@@ -55,6 +55,8 @@ + /** **/ + /************************************************************/ + ++typedef int idxtype; ++ + /* + ** The function prototypes. + */ diff --git a/sci-libs/scotch/files/respect-ldflags.patch b/sci-libs/scotch/files/respect-ldflags.patch new file mode 100644 index 0000000..7486005 --- /dev/null +++ b/sci-libs/scotch/files/respect-ldflags.patch @@ -0,0 +1,86 @@ +diff -Nur src.orig/esmumps/Makefile src/esmumps/Makefile +--- src.orig/esmumps/Makefile 2011-03-04 21:33:24.000000000 +0000 ++++ src/esmumps/Makefile 2011-03-04 23:38:01.000000000 +0000 +@@ -44,7 +44,7 @@ + $(CC) $(CFLAGS) $(CLIBFLAGS) -I$(includedir) -c $(<) -o $(@) + + %$(EXE) : %.c +- $(CC) $(CFLAGS) -I$(includedir) $(<) -o $(@) -L$(libdir) $(LDFLAGS) -L. -l$(ESMUMPSLIB) -l$(SCOTCHLIB) -l$(SCOTCHLIB)errexit ++ $(CC) $(CFLAGS) $(LDFLAGS) -I$(includedir) $(<) -L$(libdir) -L. -l$(ESMUMPSLIB) -l$(SCOTCHLIB) -l$(SCOTCHLIB)errexit $(LIBS) -o $(@) + + ## + ## Project rules. +@@ -57,9 +57,10 @@ + libesmumps$(LIB) \ + main_esmumps$(EXE) + +-ptscotch : clean ++ptscotch : clean common.h ++ $(MAKE) CFLAGS="$(CFLAGS) -DSCOTCH_PTSCOTCH" CC=$(CCP) SCOTCHLIB=ptscotch ESMUMPSLIB=ptesmumps \ ++ libesmumps$(LIB); + $(MAKE) CFLAGS="$(CFLAGS) -DSCOTCH_PTSCOTCH" CC=$(CCP) SCOTCHLIB=ptscotch ESMUMPSLIB=ptesmumps \ +- libesmumps$(LIB) \ + main_esmumps$(EXE) + + install : +diff -Nur src.orig/libscotch/Makefile src/libscotch/Makefile +--- src.orig/libscotch/Makefile 2011-03-04 21:33:24.000000000 +0000 ++++ src/libscotch/Makefile 2011-03-04 21:55:27.000000000 +0000 +@@ -43,7 +43,7 @@ + $(CC) $(CFLAGS) $(CLIBFLAGS) -c $(<) -o $(@) + + %$(EXE) : %.c +- $(CC) $(CFLAGS) -DSCOTCH_VERSION=$(VERSION) -DSCOTCH_RELEASE=$(RELEASE) -DSCOTCH_PATCHLEVEL=$(PATCHLEVEL) $(<) -o $(@) $(LDFLAGS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -DSCOTCH_VERSION=$(VERSION) -DSCOTCH_RELEASE=$(RELEASE) -DSCOTCH_PATCHLEVEL=$(PATCHLEVEL) $(<) $(LIBS) -o $(@) + + ## + ## Project rules. +@@ -2515,7 +2515,7 @@ + mapping.h \ + order.h \ + parser.h +- $(CCD) $(CFLAGS) -DSCOTCH_VERSION=$(VERSION) -DSCOTCH_RELEASE=$(RELEASE) -DSCOTCH_PATCHLEVEL=$(PATCHLEVEL) $(<) -o $(@) $(LDFLAGS) ++ $(CCD) $(CFLAGS) $(LDLFAGS) -DSCOTCH_VERSION=$(VERSION) -DSCOTCH_RELEASE=$(RELEASE) -DSCOTCH_PATCHLEVEL=$(PATCHLEVEL) $(<) -o $(@) $(LIBS) + + scotch.h : dummysizes$(EXE) \ + library.h +diff -Nur src.orig/libscotchmetis/Makefile src/libscotchmetis/Makefile +--- src.orig/libscotchmetis/Makefile 2011-03-04 21:33:24.000000000 +0000 ++++ src/libscotchmetis/Makefile 2011-03-04 21:56:06.000000000 +0000 +@@ -44,7 +44,7 @@ + $(CC) $(CFLAGS) $(CLIBFLAGS) -I$(includedir) -I../libscotch -c $(<) -o $(@) + + %$(EXE) : %.c +- $(CC) $(CFLAGS) -I$(includedir) -I../libscotch $(<) -o $(@) -L$(libdir) $(LDFLAGS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -I$(includedir) -I../libscotch $(<) -L$(libdir) $(LIBS) -o $(@) + + ## + ## Project rules. +diff -Nur src.orig/scotch/Makefile src/scotch/Makefile +--- src.orig/scotch/Makefile 2011-03-04 21:33:24.000000000 +0000 ++++ src/scotch/Makefile 2011-03-04 21:58:59.000000000 +0000 +@@ -41,13 +41,13 @@ + include ../Makefile.inc + + %$(EXE) : %$(OBJ) +- $(CC) $(CFLAGS) -I$(includedir) -I../libscotch $(<) -o $(@) -L$(libdir) -l$(SCOTCHLIB) -l$(SCOTCHLIB)errexit $(LDFLAGS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -I$(includedir) -I../libscotch $(<) -L$(libdir) -l$(SCOTCHLIB) -l$(SCOTCHLIB)errexit $(LIBS) -o $(@) + + %$(OBJ) : %.c + $(CC) $(CFLAGS) -I$(includedir) -I../libscotch -c $(<) -o $(@) + + %$(EXE) : %.c +- $(CC) $(CFLAGS) -I$(includedir) -I../libscotch $(<) -o $(@) -L$(libdir) -l$(SCOTCHLIB) -l$(SCOTCHLIB)errexit $(LDFLAGS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -I$(includedir) -I../libscotch $(<) -L$(libdir) -l$(SCOTCHLIB) -l$(SCOTCHLIB)errexit $(LIBS) -o $(@) + + ## + ## Project rules. +@@ -314,7 +314,7 @@ + gout_o.c \ + $(includedir)/scotch.h \ + $(libdir)/libscotch$(LIB) +- $(CC) $(CFLAGS) -I../libscotch -I$(includedir) gout_c.c gout_o.c -o $(@) -L$(libdir) -lscotch -lscotcherrexit $(LDFLAGS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -I../libscotch -I$(includedir) gout_c.c gout_o.c -L$(libdir) -lscotch -lscotcherrexit $(LIBS) -o $(@) + + gpart$(EXE) : gmap$(EXE) + -$(RM) gpart$(EXE) diff --git a/sci-libs/scotch/metadata.xml b/sci-libs/scotch/metadata.xml new file mode 100644 index 0000000..62e57c7 --- /dev/null +++ b/sci-libs/scotch/metadata.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>sci</herd> +<maintainer> + <email>patrick@gentoo.org</email> + <name>Patrick Lauer</name> +</maintainer> +<maintainer> + <email>oli.borm@web.de</email> + <name>Oliver Borm</name> +</maintainer> +<longdescription lang='en'> + SCOTCH is a software package and libraries for graph, mesh and + hypergraph partitioning, static mapping, and sparse matrix block + ordering. + Its purpose of Scotch is to apply graph theory, with a divide and + conquer approach, to scientific computing problems such as graph and + mesh partitioning, static mapping, and sparse matrix ordering, in + application domains ranging from structural mechanics to operating + systems or bio-chemistry. + The SCOTCH distribution is a set of programs and libraries which + implement the static mapping and sparse matrix reordering algorithms + developed within the SCOTCH project. +</longdescription> +</pkgmetadata> diff --git a/sci-libs/scotch/scotch-5.1.11-r1.ebuild b/sci-libs/scotch/scotch-5.1.11-r1.ebuild new file mode 100644 index 0000000..210e339 --- /dev/null +++ b/sci-libs/scotch/scotch-5.1.11-r1.ebuild @@ -0,0 +1,142 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sci-libs/scotch/scotch-5.1.11.ebuild,v 1.2 2011/03/15 16:58:35 bicatali Exp $ + +EAPI=4 + +inherit eutils toolchain-funcs versionator alternatives-2 + +# use esmumps version to allow linking with mumps +MYP="${PN}_${PV}_esmumps" +# download id on gforge changes every goddamn release +DID=28044 + +DESCRIPTION="Software for graph, mesh and hypergraph partitioning" +HOMEPAGE="http://www.labri.u-bordeaux.fr/perso/pelegrin/scotch/" +SRC_URI="http://gforge.inria.fr/frs/download.php/${DID}/${MYP}.tgz" + +LICENSE="CeCILL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="doc examples mpi static-libs tools" + +DEPEND="sys-devel/bison + sys-libs/zlib + mpi? ( virtual/mpi )" +RDEPEND="${DEPEND}" + +S="${WORKDIR}/${MYP}/src" + +make_shared_lib() { + local libstatic=${1} + local soname=$(basename "${1%.a}").so.$(get_major_version) + shift + einfo "Making ${soname}" + ${LINK:-$(tc-getCC)} ${LDFLAGS} \ + -shared -Wl,-soname="${soname}" \ + -Wl,--whole-archive "${libstatic}" -Wl,--no-whole-archive \ + "$@" -o $(dirname "${libstatic}")/"${soname}" || die "${soname} failed" +} + +src_prepare() { + epatch "${FILESDIR}"/metis-header.patch + epatch "${FILESDIR}"/respect-ldflags.patch + sed -e "s/@CFLAGS@/${CFLAGS}/" \ + -e "s/@CC@/$(tc-getCC)/" \ + -e "s/@AR@/$(tc-getAR)/" \ + -e "s/@RANLIB@/$(tc-getRANLIB)/" \ + "${FILESDIR}"/Makefile.inc.in > Makefile.inc || die +} + +src_compile() { + emake PICFLAGS=-fPIC + make_shared_lib libscotch/libscotcherr.a + make_shared_lib libscotch/libscotcherrexit.a + make_shared_lib libscotch/libscotch.a -L. -lscotcherr -lz -lm -lrt + make_shared_lib esmumps/libesmumps.a -Llibscotch -lscotch + make_shared_lib libscotchmetis/libscotchmetis.a -Llibscotch -lscotch + + if use mpi; then + emake PICFLAGS=-fPIC ptscotch + export LINK=mpicc + make_shared_lib libscotch/libptscotcherr.a + make_shared_lib libscotch/libptscotcherrexit.a + make_shared_lib libscotch/libptscotch.a -Llibscotch -lptscotcherr -lz -lm -lrt + make_shared_lib esmumps/libptesmumps.a -Llibscotch -lptscotch + make_shared_lib libscotchmetis/libptscotchparmetis.a -Llibscotch -lptscotch + fi + if use static-libs; then + emake clean + emake + use mpi && emake ptscotch + fi +} + +src_install() { + cd .. + local l b m + for l in $(find . -name \*.so.\*); do + dolib.so ${l} + dosym $(basename ${l}) /usr/$(get_libdir)/$(basename ${l%.*}) + done + use static-libs && dolib.a $(find . -name \*.a) + + insinto /usr/include/scotch + doins include/* + + cat <<-EOF > scotchmetis.pc + prefix=${EPREFIX}/usr + libdir=\${prefix}/$(get_libdir) + includedir=\${prefix}/include + Name: ptscotch + Description: ${DESCRIPTION} + Version: ${PV} + URL: ${HOMEPAGE} + Libs: -L\${libdir} -lscotchmetis -lscotcherr -lscotch + Private: -lm -lz -lrt + Cflags: -I\${includedir}/scotch + EOF + insinto /usr/$(get_libdir)/pkgconfig + doins scotchmetis.pc + alternatives_for metis scotch 0 \ + "/usr/$(get_libdir)/pkgconfig/metis.pc" "scotchmetis.pc" + cat <<-EOF > ptscotchmetis.pc + prefix=${EPREFIX}/usr + libdir=\${prefix}/$(get_libdir) + includedir=\${prefix}/include + Name: ptscotch + Description: ${DESCRIPTION} + Version: ${PV} + URL: ${HOMEPAGE} + Libs: -L\${libdir} -lptscotchmetis -lptscotcherr -lptscotch + Private: -lm -lz -lrt + Cflags: -I\${includedir}/scotch + EOF + insinto /usr/$(get_libdir)/pkgconfig + doins ptscotchmetis.pc + alternatives_for metis-mpi scotch 0 \ + "/usr/$(get_libdir)/pkgconfig/metis-mpi.pc" "ptscotchmetis.pc" + + dodoc README.txt + + if use tools; then + pushd bin > /dev/null + for b in *; do + newbin ${b} scotch_${b} + done + popd + + pushd man/man1 > /dev/null + for m in *; do + newman ${m} scotch_${m} + done + popd > /dev/null + fi + + use doc && dodoc doc/*.pdf + + if use examples; then + insinto /usr/share/doc/${PF}/examples + doins -r examples/* tgt grf + fi +} |