aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Lecher <jlec@gentoo.org>2014-01-06 18:59:53 +0100
committerJustin Lecher <jlec@gentoo.org>2014-01-06 18:59:53 +0100
commit9c6e622f1fef336d50457597c17671f0d3065e70 (patch)
tree82860bbe50f4d170ab37f5345b35af4c3278c8bf
parentsys-cluster/nullmpi: Switch from git-2 to git-r3 (diff)
downloadsci-9c6e622f1fef336d50457597c17671f0d3065e70.tar.gz
sci-9c6e622f1fef336d50457597c17671f0d3065e70.tar.bz2
sci-9c6e622f1fef336d50457597c17671f0d3065e70.zip
sci-mathematics/petsc: Punt base.eclass
Package-Manager: portage-2.2.8
-rw-r--r--sci-mathematics/petsc/ChangeLog6
-rw-r--r--sci-mathematics/petsc/Manifest1
-rw-r--r--sci-mathematics/petsc/metadata.xml2
-rw-r--r--sci-mathematics/petsc/petsc-3.3_p5.ebuild223
-rw-r--r--sci-mathematics/petsc/petsc-3.4.2.ebuild22
5 files changed, 18 insertions, 236 deletions
diff --git a/sci-mathematics/petsc/ChangeLog b/sci-mathematics/petsc/ChangeLog
index d2c6a94ac..f9638033e 100644
--- a/sci-mathematics/petsc/ChangeLog
+++ b/sci-mathematics/petsc/ChangeLog
@@ -1,7 +1,11 @@
# ChangeLog for sci-mathematics/petsc
-# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
+# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
+ 06 Jan 2014; Justin Lecher <jlec@gentoo.org> -petsc-3.3_p5.ebuild,
+ petsc-3.4.2.ebuild, metadata.xml:
+ Punt base.eclass
+
22 Feb 2013; Justin Lecher <jlec@gentoo.org> metadata.xml:
Drop unused local USE-description: 'metis'
diff --git a/sci-mathematics/petsc/Manifest b/sci-mathematics/petsc/Manifest
index c60a5138c..e6e6ac036 100644
--- a/sci-mathematics/petsc/Manifest
+++ b/sci-mathematics/petsc/Manifest
@@ -1,2 +1 @@
-DIST petsc-3.3-p5.tar.gz 18062672 SHA256 a4a146c469d76a351ca66384e10a65bfe7bcbfc2019dfea69a5340320a9f4591 SHA512 d3347d9bd48d327e27f6e27a9c83e75fcb49ca2874e263292204efafb5d651158012b4644016dcf2b580469bccb92befaaf52123d83d216a20d4182c0788dbea WHIRLPOOL 6c8488f2a13fcb38779e95ab93e3a87737ea8d9858076d41af82fcb26a5df5383cd7a68be3e067e6b119b6c05c556f80377969d618c7cb29a542578e5ccf8eb0
DIST petsc-3.4.2.tar.gz 18658689 SHA256 f13b0dc978fe0dcc1df032f8142a2fd345217f02b9967936d9aac26ce4b2b52e SHA512 f839e4cfadbee720e53993eb8de74a2d82bfe2a46a418f528b4cdb2e9245b8ecafbc02d6d1718034cfe80d291095187b0946ebe237c8f985e4213c4c35bc345b WHIRLPOOL a00f4340e5dc151c57d9f5e2b764a609a508490756d8337d52bec4712fb26b8c06edf46293ed838f08ff34e1c068549ea9680657b7282cb884df4c1314c58cdb
diff --git a/sci-mathematics/petsc/metadata.xml b/sci-mathematics/petsc/metadata.xml
index eb753da2c..a22c6dc7d 100644
--- a/sci-mathematics/petsc/metadata.xml
+++ b/sci-mathematics/petsc/metadata.xml
@@ -8,6 +8,8 @@
<flag name="complex-scalars">Make scalars complex</flag>
<flag name="sparse">Use suitesparse (sci-libs/suitesparse) including cholmod (sci-libs/cholmod) for sparse factorization</flag>
<flag name="superlu">Use superlu (sci-libs/superlu) for preconditioning</flag>
+ <flag name="mumps">PLEASE FIX MY DESCRIPTION</flag>
+ <flag name="scotch">PLEASE FIX MY DESCRIPTION</flag>
<!-- Disabled:
<flag name="boost">Use boost (dev-libs/boost)</flag>
-->
diff --git a/sci-mathematics/petsc/petsc-3.3_p5.ebuild b/sci-mathematics/petsc/petsc-3.3_p5.ebuild
deleted file mode 100644
index e0a13406f..000000000
--- a/sci-mathematics/petsc/petsc-3.3_p5.ebuild
+++ /dev/null
@@ -1,223 +0,0 @@
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=4
-
-inherit base flag-o-matic fortran-2 toolchain-funcs versionator
-
-MY_P="${PN}-$(replace_version_separator _ -)"
-
-DESCRIPTION="Portable, Extensible Toolkit for Scientific Computation"
-HOMEPAGE="http://www.mcs.anl.gov/petsc/"
-SRC_URI="http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/${MY_P}.tar.gz"
-
-LICENSE="petsc"
-SLOT="0"
-KEYWORDS="~x86 ~amd64"
-IUSE="afterimage complex-scalars cxx debug doc
- fortran hdf5 hypre mpi sparse superlu threads X"
-# Failed: boost imagemagick metis
-
-# hypre and superlu curretly exclude each other due to missing linking to hypre
-# if both are enabled
-REQUIRED_USE="
- hypre? ( cxx mpi )
- hdf5? ( mpi )
- afterimage? ( X )
- ^^ ( hypre superlu )
-"
-# imagemagick? ( X )
-
-RDEPEND="
- virtual/blas
- virtual/lapack
- afterimage? ( media-libs/libafterimage )
- hdf5? ( sci-libs/hdf5[mpi?] )
- hypre? ( >=sci-libs/hypre-2.8.0b[mpi?] )
- mpi? ( virtual/mpi[cxx?,fortran?] )
- sparse? ( sci-libs/suitesparse >=sci-libs/cholmod-1.7.0 )
- superlu? ( sci-libs/superlu )
- X? ( x11-libs/libX11 )
-"
-# boost? ( dev-libs/boost )
-# metis? ( sci-libs/parmetis )
-# imagemagick? ( media-gfx/imagemagick )
-
-DEPEND="${RDEPEND}
- virtual/pkgconfig
- dev-util/cmake
-"
-# cmake is used for parralel building
-# in some configuration setups, legacy build is used (slow)
-
-S="${WORKDIR}/${MY_P}"
-
-PATCHES=(
- "${FILESDIR}"/${P%_*}-configure-pic.patch
- "${FILESDIR}"/${P%_*}-disable-rpath.patch
- "${FILESDIR}"/${P%_*}-fix-complex-threads.patch
-)
-
-src_configure() {
- # petsc uses --with-blah=1 and --with-blah=0 to en/disable options
- petsc_enable() {
- use "$1" && echo "--with-${2:-$1}=1" || echo "--with-${2:-$1}=0"
- }
- # add external library:
- # petsc_with use_flag libname libdir
- # petsc_with use_flag libname include linking_libs
- petsc_with() {
- local myuse p=${2:-${1}}
- if use ${1}; then
- myuse="--with-${p}=1"
- if [[ $# -ge 4 ]]; then
- myuse="${myuse} --with-${p}-include=${EPREFIX}${3}"
- shift 3
- myuse="${myuse} --with-${p}-lib=$@"
- else
- myuse="${myuse} --with-${p}-dir=${EPREFIX}${3:-/usr}"
- fi
- else
- myuse="--with-${p}=0"
- fi
- echo ${myuse}
- }
-
- # select between configure options depending on use flag
- petsc_select() {
- use "$1" && echo "--with-$2=$3" || echo "--with-$2=$4"
- }
-
- local mylang
- local myopt
-
- use cxx && mylang="cxx" || mylang="c"
- use debug && myopt="debug" || myopt="opt"
-
- # environmental variables expected by petsc during build
- export PETSC_DIR="${S}"
- export PETSC_ARCH="linux-gnu-${mylang}-${myopt}"
-
- if use debug; then
- strip-flags
- filter-flags -O*
- fi
-
- # C Support on Cxx builds is enabled if possible
- # i.e. when not using complex scalars
- # (no complex type for both available at the same time)
-
- if use threads; then
- ewarn "Threads support may be incomplete on $PN-3.3 release and is not officially supported."
- ewarn "Upstream recommends not to enable threads support for production runs."
- fi
-
- # run petsc configure script
- econf \
- scrollOutput=1 \
- CFLAGS="${CFLAGS}" \
- CXXFLAGS="${CXXFLAGS}" \
- LDFLAGS="${LDFLAGS}" \
- --with-shared-libraries \
- --with-single-library \
- --with-clanguage=${mylang} \
- $(use cxx && ! use complex-scalars && echo "with-c-support=1") \
- --with-petsc-arch=${PETSC_ARCH} \
- --with-precision=double \
- --with-gnu-compilers \
- --with-blas-lapack-lib="$($(tc-getPKG_CONFIG) --libs lapack)" \
- $(petsc_enable debug debugging) \
- $(petsc_enable mpi) \
- $(petsc_select mpi cc mpicc $(tc-getCC)) \
- $(petsc_select mpi cxx mpicxx $(tc-getCXX)) \
- $(petsc_enable fortran) \
- $(use fortran && echo "$(petsc_select mpi fc mpif77 $(tc-getF77))") \
- $(petsc_enable mpi mpi-compilers) \
- $(petsc_enable threads pthread) \
- $(petsc_enable threads pthreadclasses) \
- $(petsc_select complex-scalars scalar-type complex real) \
- --with-windows-graphics=0 \
- --with-matlab=0 \
- --with-cmake=cmake \
- $(petsc_with afterimage afterimage \
- /usr/include/libAfterImage -lAfterImage) \
- $(petsc_with hdf5) \
- $(petsc_with hypre hypre \
- /usr/include/hypre -lHYPRE) \
- $(petsc_with sparse cholmod) \
- $(petsc_with superlu superlu \
- /usr/include/superlu -lsuperlu) \
- $(petsc_with X x) \
- $(petsc_with X x11) \
- --with-imagemagick=0 \
- --with-python=0 \
- --with-scotch=0
-
-# not yet tested:
-# python bindings, sctotch, netcdf, scalapack
-# non-working:
-# fftw: no mpi-implementaion available in gentoo
-
-# failed dependencies, perhaps fixed in upstream soon:
-# $(petsc_with metis parmetis) \ # needs metis too (>=5.0.2)
-# $(petsc_with boost) \
-# $(petsc_with imagemagick imagemagick \
-# /usr/include/ImageMagick $($(tc-getPKG_CONFIG) --libs MagickCore)) \
-}
-
-src_install() {
- # petsc install structure is very different from
- # installing headers to /usr/include/petsc and lib to /usr/lib
- # it also installs many unneeded executables and scripts
- # so manual install is easier than cleanup after "emake install"
- insinto /usr/include/${PN}
- doins include/*.h*
- insinto /usr/include/${PN}/${PETSC_ARCH}/include
- doins ${PETSC_ARCH}/include/*
- if use fortran; then
- insinto /usr/include/${PN}/finclude
- doins include/finclude/*.h
- fi
- if ! use mpi ; then
- insinto /usr/include/${PN}/mpiuni
- doins include/mpiuni/*.h
- fi
- insinto /usr/include/${PN}/conf
- doins conf/{variables,rules,test}
- insinto /usr/include/${PN}/${PETSC_ARCH}/conf
- doins ${PETSC_ARCH}/conf/{petscrules,petscvariables,RDict.db}
- insinto /usr/include/${PN}/petsc-private
- doins include/petsc-private/*.h
-
- # fix configuration files: replace ${S} by installed location
- sed -i \
- -e "s:${S}::g" \
- "${ED}"/usr/include/${PN}/${PETSC_ARCH}/include/petscconf.h \
- "${ED}"/usr/include/${PN}/${PETSC_ARCH}/conf/petscvariables || die
- sed -i \
- -e "s:usr/lib:usr/$(get_libdir):g" \
- "${ED}"/usr/include/${PN}/${PETSC_ARCH}/include/petscconf.h || die
-
- # add information about installation directory and
- # PETSC_ARCH to environmental variables
- cat >> 99petsc <<- EOF
- PETSC_ARCH=${PETSC_ARCH}
- PETSC_DIR=${EPREFIX}/usr/include/${PN}
- EOF
- doenvd 99petsc
-
- dolib.so ${PETSC_ARCH}/lib/*.so
-
- if use doc ; then
- einfo "installing documentation (this could take a while)"
- dodoc docs/manual.pdf
- dohtml -r docs/*.html docs/changes docs/manualpages
- fi
-}
-
-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"
-}
diff --git a/sci-mathematics/petsc/petsc-3.4.2.ebuild b/sci-mathematics/petsc/petsc-3.4.2.ebuild
index 1d8462fd8..52632631a 100644
--- a/sci-mathematics/petsc/petsc-3.4.2.ebuild
+++ b/sci-mathematics/petsc/petsc-3.4.2.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2013 Gentoo Foundation
+# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=5
-inherit base flag-o-matic fortran-2 toolchain-funcs versionator
+inherit eutils flag-o-matic fortran-2 toolchain-funcs versionator
MY_P="${PN}-$(replace_version_separator _ -)"
@@ -64,9 +64,9 @@ MAKEOPTS="${MAKEOPTS} -j1"
S="${WORKDIR}/${MY_P}"
-PATCHES=(
- "${FILESDIR}"/${P%_*}-disable-rpath.patch
-)
+src_prepare() {
+ epatch "${FILESDIR}"/${P%_*}-disable-rpath.patch
+}
src_configure() {
# petsc uses --with-blah=1 and --with-blah=0 to en/disable options
@@ -160,12 +160,12 @@ src_configure() {
$(petsc_with X x) \
$(petsc_with X x11) \
$(petsc_with scotch ptscotch \
- /usr/include/scotch \
- [-lptesmumps,-lptscotch,-lptscotcherr,-lscotch,-lscotcherr]) \
+ /usr/include/scotch \
+ [-lptesmumps,-lptscotch,-lptscotcherr,-lscotch,-lscotcherr]) \
$(petsc_with mumps scalapack \
- /usr/include/scalapack -lscalapack) \
+ /usr/include/scalapack -lscalapack) \
$(petsc_with mumps mumps \
- /usr/include \
+ /usr/include \
[-lcmumps,-ldmumps,-lsmumps,-lzmumps,-lmumps_common,-lpord]) \
--with-imagemagick=0 \
--with-python=0 \
@@ -206,9 +206,9 @@ src_install() {
insinto /usr/include/${PN}/petsc-private
doins include/petsc-private/*.h
- # fix configuration files: replace ${S} by installed location
+ # fix configuration files: replace "${S}" by installed location
sed -i \
- -e "s:${S}::g" \
+ -e "s:"${S}"::g" \
"${ED}"/usr/include/${PN}/${PETSC_ARCH}/include/petscconf.h \
"${ED}"/usr/include/${PN}/${PETSC_ARCH}/conf/petscvariables || die
sed -i \