aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sci-mathematics/petsc/ChangeLog6
-rw-r--r--sci-mathematics/petsc/Manifest3
-rw-r--r--sci-mathematics/petsc/petsc-3.1_p8-r1.ebuild201
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."
+}