diff options
-rw-r--r-- | sci-mathematics/petsc/ChangeLog | 6 | ||||
-rw-r--r-- | sci-mathematics/petsc/Manifest | 3 | ||||
-rw-r--r-- | sci-mathematics/petsc/petsc-3.1_p8-r1.ebuild | 201 |
3 files changed, 209 insertions, 1 deletions
diff --git a/sci-mathematics/petsc/ChangeLog b/sci-mathematics/petsc/ChangeLog index 5a3533bb9..52f6b1a69 100644 --- a/sci-mathematics/petsc/ChangeLog +++ b/sci-mathematics/petsc/ChangeLog @@ -2,6 +2,12 @@ # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 # $Header: $ +*petsc-3.1_p8-r1 (19 Apr 2011) + + 19 Apr 2011; Thomas Kahle <tomka@gentoo.org> +petsc-3.1_p8-r1.ebuild: + various improvements to install locations and IUSE=complex scalars + patch by Joshua Rich + *petsc-3.1_p8 (19 Mar 2011) 19 Mar 2011; Jens-Malte Gottfried <jmgottfried@web.de> diff --git a/sci-mathematics/petsc/Manifest b/sci-mathematics/petsc/Manifest index 82e2c7b8f..5fc9c5bd9 100644 --- a/sci-mathematics/petsc/Manifest +++ b/sci-mathematics/petsc/Manifest @@ -8,6 +8,7 @@ DIST petsc-3.1-p8.tar.gz 15460606 RMD160 7d2bdc1bb5eda1d3fee39fe96d9edb2ce0e21af EBUILD petsc-3.1_p4.ebuild 4102 RMD160 6dbe234a3b77a1c123df8892352a5c3810e5003d SHA1 46dc5828b917b510a65b72012a88fe2d350559ca SHA256 ec1a91c2025aca456a113702bd4fef0973e61c2fec90c3a413fde12b94b2ae81 EBUILD petsc-3.1_p5-r2.ebuild 4881 RMD160 2294d4569b98bb6db0903e92c99d641143b241dd SHA1 6ed44e1417e88973c575bbdb8afe65a4d5176dc9 SHA256 02465efaf67fd0b8a0ff12e750ccbac7bb76432b399b67528f699c61d8cbd581 EBUILD petsc-3.1_p7.ebuild 4881 RMD160 ef5a6585d776f5db34e956754177c24b3d97bd9a SHA1 c0ef05217cba012ae7a54cda908353510d553e00 SHA256 111d150b4243d6a4be72601c99704f1eb7692845ba70069ddbcea795aace197b +EBUILD petsc-3.1_p8-r1.ebuild 5750 RMD160 8aa2890ce6e424ac8f2df33bf8f8e853477aeeec SHA1 12919e67ea1c92708c3c8bcd15bb69029449b523 SHA256 b2894ea85c8939f440bfe29bd0cff496cbb9af547815e849c10ec8ba65fc8034 EBUILD petsc-3.1_p8.ebuild 4880 RMD160 ac0078f38be42553853945dab348321e2dbe3906 SHA1 cb3c7625abd4bd660651abf9969a552a6114084f SHA256 e7c9fb3f339717367393f0583dedc1e94b1e4f0510a9206e5e561957643446e1 -MISC ChangeLog 2452 RMD160 544ae500be282c92c727a6a545dc4b382212d852 SHA1 c6cb772f1d25f4337c8eef3d8ece94f67c44c823 SHA256 5123c553f4e10e07aef86e1e512eea465bbe62b00e84fa69d0159ce8b532e4cf +MISC ChangeLog 2649 RMD160 833ac07759fdef4dccee5fe7fa070fa42c01e8e7 SHA1 c165c8d802fb32346241a624cdcadeca6ce198d1 SHA256 9c268c813ebb933269c380f99147b020ac1e6304455b2a524ba87489030d9324 MISC metadata.xml 338 RMD160 7bb392dfe214a3ed4048d083323cf5ee5cb10bdb SHA1 e2b7a8a4963ff82d009e5ffcb1a444caaea4262e SHA256 efafc54fd365ea7eee3a0140b197068c8aa2168fefb3a196c091699bf6d18e53 diff --git a/sci-mathematics/petsc/petsc-3.1_p8-r1.ebuild b/sci-mathematics/petsc/petsc-3.1_p8-r1.ebuild new file mode 100644 index 000000000..5f2eaa7fc --- /dev/null +++ b/sci-mathematics/petsc/petsc-3.1_p8-r1.ebuild @@ -0,0 +1,201 @@ +# Copyright 1999-2011 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="~x86 ~amd64" +IUSE="mpi hypre metis hdf5 X cxx debug static-libs fortran doc complex-scalars" + +RDEPEND="mpi? ( virtual/mpi[cxx?,fortran?] ) + X? ( x11-libs/libX11 ) + virtual/lapack + virtual/blas + hypre? ( >=sci-mathematics/hypre-2.6.0b[static-libs=] ) + metis? ( sci-libs/parmetis ) + hdf5? ( sci-libs/hdf5[!mpi?] ) +" + +DEPEND="${RDEPEND} + sys-devel/gcc[-nocxx,fortran?]" + +S="${WORKDIR}/${MY_P}" + +if use hypre; then + use cxx || die "hypre needs cxx, please enable cxx or disable hypre use flag" + use mpi || die "hypre needs mpi, please enable mpi or disable hypre use flag" +fi + +src_prepare(){ + epatch "${FILESDIR}/${P}-configure-pic.patch" + epatch "${FILESDIR}/${PN}-disable-rpath.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" + myconf[21]="--with-gnu-compilers=1" + use amd64 \ + && myconf[22]="--with-64-bit-pointers=1" \ + || myconf[22]="--with-64-bit-pointers=0" + use cxx \ + && myconf[23]="--with-c-support=1" + use amd64 \ + && myconf[24]="--with-64-bit-indices=1" \ + || myconf[24]="--with-64-bit-indices=0" + + 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[24]="--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.a" \ + || myconf[54]="--with-hypre-lib=/usr/$(get_libdir)/libHYPRE.so" + else + myconf[52]="--with-hypre=0" + fi + + if use metis; then + # parmetis cannot handle 64 bit indices, therefore disabled + myconf[24]="--with-64-bit-indices=0" + myconf[61]="--with-parmetis=1" + myconf[62]="--with-parmetis-include=/usr/include/parmetis" + myconf[63]="--with-parmetis-lib=/usr/$(get_libdir)/libparmetis.so" + else + myconf[61]="--with-parmetis=0" + fi + + if use hdf5; then + myconf[71]="--with-hdf5=1" + myconf[72]="--with-hdf5-include=/usr/include" + myconf[73]="--with-hdf5-lib=/usr/$(get_libdir)/libhdf5.so" + else + myconf[71]="--with-hdf5=0" + fi + + myconf[81]="--with-scotch=0" + + if use complex-scalars; then + # cannot enable C support with complex scalars + # (cannot even set configure option to zero!) + myconf[23]="" + myconf[82]="--with-scalar-type=complex" + 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 + insinto /usr/include/"${PN}/${PETSC_ARCH}"/include + doins "${S}/${PETSC_ARCH}"/include/* + if use fortran; then + insinto /usr/include/"${PN}"/finclude + doins "${S}"/include/finclude/*.h + fi + insinto /usr/include/"${PN}"/conf + doins "${S}"/conf/{variables,rules,test} + insinto /usr/include/"${PN}/${PETSC_ARCH}"/conf + doins "${S}/${PETSC_ARCH}"/conf/{petscrules,petscvariables,RDict.db} + + insinto /usr/include/"${PN}"/private + doins "${S}"/include/private/*.h + + dosed "s:${S}:/usr:g" /usr/include/"${PN}/${PETSC_ARCH}"/include/petscconf.h + dosed "s:${PETSC_ARCH}/lib:$(get_libdir):g" /usr/include/"${PN}/${PETSC_ARCH}"/include/petscconf.h + dosed "s:INSTALL_DIR =.*:INSTALL_DIR = /usr:" /usr/include/"${PN}/${PETSC_ARCH}"/conf/petscvariables + + cat > ${T}/99petsc <<EOF +PETSC_ARCH=${PETSC_ARCH} +PETSC_DIR=/usr/include/${PN} +EOF + doenvd ${T}/99petsc + + 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." +} |