diff options
author | Jens-Malte Gottfried <jmgottfried@web.de> | 2010-11-14 01:18:17 +0100 |
---|---|---|
committer | Jens-Malte Gottfried <jmgottfried@web.de> | 2010-11-14 01:18:17 +0100 |
commit | a2a25da1b1dc5f51b0927e45e58db7924e48e3a9 (patch) | |
tree | 8d1c3ddc89452fdeb01bb74ee11e2d8ea5fa665a /sci-mathematics/petsc | |
parent | added hypre version 2.4 (diff) | |
download | sci-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/ChangeLog | 7 | ||||
-rw-r--r-- | sci-mathematics/petsc/Manifest | 3 | ||||
-rw-r--r-- | sci-mathematics/petsc/petsc-3.1_p5-r1.ebuild | 144 |
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." +} |