aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens-Malte Gottfried <jmgottfried@web.de>2010-11-14 01:18:17 +0100
committerJens-Malte Gottfried <jmgottfried@web.de>2010-11-14 01:18:17 +0100
commita2a25da1b1dc5f51b0927e45e58db7924e48e3a9 (patch)
tree8d1c3ddc89452fdeb01bb74ee11e2d8ea5fa665a /sci-mathematics/petsc
parentadded hypre version 2.4 (diff)
downloadsci-a2a25da1b1dc5f51b0927e45e58db7924e48e3a9.tar.gz
sci-a2a25da1b1dc5f51b0927e45e58db7924e48e3a9.tar.bz2
sci-a2a25da1b1dc5f51b0927e45e58db7924e48e3a9.zip
try to add hypre support to petsc
Diffstat (limited to 'sci-mathematics/petsc')
-rw-r--r--sci-mathematics/petsc/ChangeLog7
-rw-r--r--sci-mathematics/petsc/Manifest3
-rw-r--r--sci-mathematics/petsc/petsc-3.1_p5-r1.ebuild144
3 files changed, 153 insertions, 1 deletions
diff --git a/sci-mathematics/petsc/ChangeLog b/sci-mathematics/petsc/ChangeLog
index a78584a88..f6e10a66e 100644
--- a/sci-mathematics/petsc/ChangeLog
+++ b/sci-mathematics/petsc/ChangeLog
@@ -2,6 +2,13 @@
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
+*petsc-3.1_p5-r1 (14 Nov 2010)
+
+ 14 Nov 2010; Jens-Malte Gottfried <jmgottfried@web.de>
+ +petsc-3.1_p5-r1.ebuild:
+ try to add hypre support (but hypre ebuilds still need some refactoring)
+ yet buggy (configuring fails due to undefined references)
+
22 Oct 2010; Jens-Malte Gottfried <jmgottfried@web.de>
petsc-3.1_p5.ebuild:
use an array to pass configure options more comfortably and
diff --git a/sci-mathematics/petsc/Manifest b/sci-mathematics/petsc/Manifest
index f9a42a9b5..d7433d8c0 100644
--- a/sci-mathematics/petsc/Manifest
+++ b/sci-mathematics/petsc/Manifest
@@ -3,6 +3,7 @@ AUX fix-mpiuni.patch 456 RMD160 2e69463821de6c3279a3b04b3b4b149ee354fffe SHA1 6c
DIST petsc-3.1-p4.tar.gz 15455558 RMD160 42d1c587ab1a2676f62de866afe8c43365a1b236 SHA1 4516e74e7ea349fed58b26963cfa3747ef07c62e SHA256 4e9abb2d6a07e49ba77459398871c3f91c50669979f7e9d5017009615d2a24af
DIST petsc-3.1-p5.tar.gz 15456384 RMD160 c97e6cf9e000c6eb635a5c76d006b7f8b84b3320 SHA1 e884e3f670093fff66fe1a3964b2f6bfc58543ce SHA256 193c7f8a5826a2bfd47a915f74e87d31a67339f89129aadb16e7b4b9e9dbf7e1
EBUILD petsc-3.1_p4.ebuild 4138 RMD160 32626757ecff1e6a512bb33fbededbb7bbf9326a SHA1 af5aeed15c6cfc12dbc3eb579fb244304a50e786 SHA256 413b705b42b9db6059176b21dd18089babab1f919b184d8195a841f3557034d1
+EBUILD petsc-3.1_p5-r1.ebuild 4004 RMD160 098f071d99f749150afedd2e3e44894ac5f1e949 SHA1 60c95f84cd9b858175fc68992779e56bf93704ff SHA256 23fda40ae3c7023146d18c44f41304faf4764cb505cc79aea20c016e9e490c09
EBUILD petsc-3.1_p5.ebuild 3432 RMD160 31e93e18daff358519525428cf02267828028fe6 SHA1 9beec2b93c9bc595da1d8d15efb7b2e48af13b5b SHA256 51ba75d84d7d90a38904c73ac32e9d027ed6ff28eb0dd265ba14d005dd74caae
-MISC ChangeLog 1089 RMD160 19295182ba79b9ff9602c0c6fce70cf8f6b91085 SHA1 84ca9d48f4d0b3713842064891a7a43aa0b6677d SHA256 f7308505b2376e0b97a44ab2de5fa91cbd51faecdc3bdc2690b4a7fc43d814f7
+MISC ChangeLog 1341 RMD160 0e8216891706fd440c8d46e7a7a7187a1eb3ea9f SHA1 93f04b80a39dae014028df969c7617c1c2a1c274 SHA256 7ecb76642a1c98363936ec1d7dff44a3d244cf0e2865d156272e129c778f2cb6
MISC metadata.xml 270 RMD160 095cc24d79cf505fb399f4efe83c1fbd669a4777 SHA1 d694ac481815815d35bc28c0653b02b3c4bbcd08 SHA256 34185c01f89f4dac0de8133ad0d6f6e36f0e2c83f958a6cb03d0ae0f30fda007
diff --git a/sci-mathematics/petsc/petsc-3.1_p5-r1.ebuild b/sci-mathematics/petsc/petsc-3.1_p5-r1.ebuild
new file mode 100644
index 000000000..6dd1973ff
--- /dev/null
+++ b/sci-mathematics/petsc/petsc-3.1_p5-r1.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=3
+
+inherit flag-o-matic toolchain-funcs
+
+MY_P="${PN}-${PV/_/-}"
+
+DESCRIPTION="Portable, Extensible Toolkit for Scientific Computation"
+HOMEPAGE="http://www.mcs.anl.gov/petsc/petsc-as/"
+SRC_URI="http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/${MY_P}.tar.gz"
+
+LICENSE="petsc"
+SLOT="0"
+KEYWORDS=""
+IUSE="mpi hypre X cxx debug static-libs fortran doc"
+
+RDEPEND="mpi? ( virtual/mpi[cxx?,fortran?] )
+ X? ( x11-libs/libX11 )
+ virtual/lapack
+ virtual/blas
+ hypre? ( <sci-mathematics/hypre-2.6.0b[mpi=,static-libs=] )"
+
+DEPEND="${RDEPEND}
+ sys-devel/gcc[-nocxx,fortran?]"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare(){
+ epatch "${FILESDIR}/fix-configure-pic.patch"
+}
+
+src_configure(){
+ local mylang
+ local myopt
+ local myconf
+
+ use cxx && mylang="cxx" || mylang="c"
+ use debug && myopt="debug" || myopt="opt"
+
+ export PETSC_DIR="${S}" || die
+ export PETSC_ARCH="linux-gnu-${mylang}-${myopt}" || die
+
+ myconf[10]="--with-blas-lapack-lib=$(pkg-config --libs lapack)"
+ myconf[11]="CFLAGS=${CFLAGS}"
+ myconf[12]="CXXFLAGS=${CXXFLAGS}"
+ myconf[13]="LDFLAGS=${LDFLAGS}"
+ myconf[14]="--with-windows-graphics=0"
+ myconf[15]="--with-matlab=0"
+ myconf[16]="--with-python=0"
+ myconf[17]="--with-clanguage=${mylang}"
+ myconf[18]="--with-single-library=1"
+ myconf[19]="--with-petsc-arch=${PETSC_ARCH}"
+ myconf[20]="--with-precision=double"
+
+ if use mpi; then
+ myconf[30]="--with-cc=/usr/bin/mpicc"
+ myconf[31]="--with-cxx=/usr/bin/mpicxx"
+ use fortran && myconf[32]="--with-fc=/usr/bin/mpif77"
+ myconf[33]="--with-mpi=1"
+ myconf[34]="--with-mpi-compilers=1"
+ else
+ myconf[30]="--with-cc=$(tc-getCC)"
+ myconf[31]="--with-cxx=$(tc-getCXX)"
+ use fortran && myconf[32]="--with-fc=$(tc-getF77)"
+ myconf[33]="--with-mpi=0"
+ fi
+
+ use X \
+ && myconf[40]="--with-X=1" \
+ || myconf[40]="--with-X=0"
+ use static-libs \
+ && myconf[41]="--with-shared=0" \
+ || myconf[41]="--with-shared=1"
+ use fortran \
+ && myconf[43]="--with-fortran=1" \
+ || myconf[43]="--with-fortran=0"
+
+ if use debug; then
+ strip-flags
+ filter-flags -O*
+ myconf[44]="--with-debugging=1"
+ else
+ myconf[44]="--with-debugging=0"
+ fi
+
+ if use hypre; then
+ # hypre cannot handle 64 bit indices, therefore disabled
+ myconf[51]="--with-64-bit-indices=0"
+ myconf[52]="--with-hypre=1"
+ myconf[53]="--with-hypre-include=/usr/include/hypre"
+ use static-libs \
+ && myconf[54]="--with-hypre-lib=[/usr/$(get_libdir)/libHYPRE_LSI.a,/usr/$(get_libdir)/libHYPRE.a]" \
+ || myconf[54]="--with-hypre-lib=[/usr/$(get_libdir)/libHYPRE_LSI.so,/usr/$(get_libdir)/libHYPRE.so]"
+ else
+ use amd64 \
+ && myconf[51]="--with-64-bit-indices=1" \
+ || myconf[51]="--with-64-bit-indices=0"
+ myconf[52]="--with-hypre=0"
+ fi
+
+ einfo "Configure options: ${myconf[@]}"
+ python "${S}/config/configure.py" "${myconf[@]}" \
+ || die "PETSc configuration failed"
+}
+
+src_install(){
+ insinto /usr/include/"${PN}"
+ doins "${S}"/include/*.h "${S}"/include/*.hh
+ doins "${S}/${PETSC_ARCH}"/include/*.h
+
+ insinto /usr/include/"${PN}"/private
+ doins "${S}"/include/private/*.h
+
+ # fix paths stored in petscconf.h
+ dosed "s:${S}:/usr:g" /usr/include/"${PN}"/petscconf.h
+ dosed "s:${PETSC_ARCH}/lib:$(get_libdir):g" /usr/include/"${PN}"/petscconf.h \
+
+ if ! use mpi ; then
+ insinto /usr/include/"${PN}"/mpiuni
+ doins "${S}"/include/mpiuni/*.h
+ fi
+
+ if use doc ; then
+ dodoc docs/manual.pdf
+ dohtml -r docs/*.html docs/changes docs/manualpages
+ fi
+
+ use static-libs \
+ && dolib.a "${S}/${PETSC_ARCH}"/lib/*.a \
+ || dolib.so "${S}/${PETSC_ARCH}"/lib/*.so
+}
+
+pkg_postinst() {
+ elog "The petsc ebuild is still under development."
+ elog "Help us improve the ebuild in:"
+ elog "http://bugs.gentoo.org/show_bug.cgi?id=53386"
+ elog "This ebuild is known to have parallel build issues, "
+ elog "hopefully resolved by upstream soon."
+ elog "Another problem is that you can break this package by"
+ elog "switching your mpi implementation without rebuild petsc."
+}