summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Arnold <nerdboy@gentoo.org>2006-06-24 16:13:48 +0000
committerSteve Arnold <nerdboy@gentoo.org>2006-06-24 16:13:48 +0000
commit33e95002adcce762d7eb4c5ac6f3d43ff62b9528 (patch)
tree0385f86ffcf2936e28d8a0abc9723eb2267c2b7b /sci-libs/hdf5
parent-jabber (diff)
downloadgentoo-2-33e95002adcce762d7eb4c5ac6f3d43ff62b9528.tar.gz
gentoo-2-33e95002adcce762d7eb4c5ac6f3d43ff62b9528.tar.bz2
gentoo-2-33e95002adcce762d7eb4c5ac6f3d43ff62b9528.zip
Added fix for bug 134439, fortran support, tests, configure logic, and more
(Portage version: 2.1.1_pre1-r1)
Diffstat (limited to 'sci-libs/hdf5')
-rw-r--r--sci-libs/hdf5/ChangeLog16
-rw-r--r--sci-libs/hdf5/files/digest-hdf5-1.6.5-r13
-rw-r--r--sci-libs/hdf5/files/mpd.conf2
-rw-r--r--sci-libs/hdf5/hdf5-1.6.5-r1.ebuild207
-rw-r--r--sci-libs/hdf5/hdf5-1.6.5.ebuild31
5 files changed, 251 insertions, 8 deletions
diff --git a/sci-libs/hdf5/ChangeLog b/sci-libs/hdf5/ChangeLog
index 386b0879efd5..58248dd2bc84 100644
--- a/sci-libs/hdf5/ChangeLog
+++ b/sci-libs/hdf5/ChangeLog
@@ -1,10 +1,20 @@
# ChangeLog for sci-libs/hdf5
# Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sci-libs/hdf5/ChangeLog,v 1.13 2006/06/14 15:20:27 fmccor Exp $
+# $Header: /var/cvsroot/gentoo-x86/sci-libs/hdf5/ChangeLog,v 1.14 2006/06/24 16:13:48 nerdboy Exp $
+
+*hdf5-1.6.5-r1 (24 Jun 2006)
+
+ 24 Jun 2006; Steve Arnold <nerdboy@gentoo.org> +files/mpd.conf,
+ hdf5-1.6.5.ebuild, +hdf5-1.6.5-r1.ebuild:
+ Updated for bug 134439, fortran support, tests, and creeping complexity.
+ Added use flags and logic for incompatible configure options, and support
+ for additional Fortran compilers (currently only tested with gfortran).
+ See comments and einfo for more details. Backport install fixes. Also
+ made SHLIB change for issue below (bug #118777).
14 Jun 2006; Ferris McCormick <fmccor@gentoo.org> hdf5-1.6.5.ebuild:
- Add ~sparc keyword, closing Bug #118777 --- but please see Comments 4 and 5 on
- the bug for conditions under which hdf5 should be built. (USE flags and
+ Add ~sparc keyword, closing Bug #118777 --- but please see Comments 4 and 5
+ on the bug for conditions under which hdf5 should be built. (USE flags and
environment variables curiosities.)
*hdf5-1.6.5 (25 May 2006)
diff --git a/sci-libs/hdf5/files/digest-hdf5-1.6.5-r1 b/sci-libs/hdf5/files/digest-hdf5-1.6.5-r1
new file mode 100644
index 000000000000..0e151bfe2241
--- /dev/null
+++ b/sci-libs/hdf5/files/digest-hdf5-1.6.5-r1
@@ -0,0 +1,3 @@
+MD5 67187b3253b89f1f41756b7fd4396ecf hdf5-1.6.5.tar.gz 4930666
+RMD160 70db16a832f77aa6d0c97da517353665304b7b27 hdf5-1.6.5.tar.gz 4930666
+SHA256 85b7cfc1e34db544fa93f5bf7effe189a5e1eb97f0cfa7b212adc11915a756b2 hdf5-1.6.5.tar.gz 4930666
diff --git a/sci-libs/hdf5/files/mpd.conf b/sci-libs/hdf5/files/mpd.conf
new file mode 100644
index 000000000000..07dd9825023a
--- /dev/null
+++ b/sci-libs/hdf5/files/mpd.conf
@@ -0,0 +1,2 @@
+secretword=test69hike
+MPD_SECRETWORD=test69hike
diff --git a/sci-libs/hdf5/hdf5-1.6.5-r1.ebuild b/sci-libs/hdf5/hdf5-1.6.5-r1.ebuild
new file mode 100644
index 000000000000..4ed6e1b88885
--- /dev/null
+++ b/sci-libs/hdf5/hdf5-1.6.5-r1.ebuild
@@ -0,0 +1,207 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sci-libs/hdf5/hdf5-1.6.5-r1.ebuild,v 1.1 2006/06/24 16:13:48 nerdboy Exp $
+
+inherit fortran eutils toolchain-funcs
+
+DESCRIPTION="General purpose library and file format for storing scientific data"
+HOMEPAGE="http://hdf.ncsa.uiuc.edu/HDF5/"
+SRC_URI="ftp://ftp.ncsa.uiuc.edu/HDF/HDF5/current/src/${P}.tar.gz"
+
+LICENSE="NCSA-HDF"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86"
+# need to update szip to get alpha, ia64, etc back in here,
+IUSE="cxx f90 fortran hlapi mpi ssl szip threads zlib static debug"
+
+DEPEND="mpi? ( virtual/mpi )
+ ssl? ( dev-libs/openssl )
+ szip? ( sci-libs/szip )
+ zlib? ( sys-libs/zlib )
+ sys-devel/gcc
+ sys-apps/coreutils
+ sys-apps/which
+ sys-process/time"
+
+RDEPEND="${DEPEND}
+ dev-lang/perl"
+
+pkg_setup() {
+ # The above gcc dep is a hack to insure at least one Fortran 90
+ # compiler is installed if the user enables fortran support. Feel
+ # free to improve it...
+ if use fortran ; then
+ if [ $(gcc-major-version) -ge 4 ] \
+ && built_with_use sys-devel/gcc fortran ; then
+ FORTRAN="gfortran"
+ fortran_pkg_setup
+ einfo "Configuring for GNU fortran..."
+ elif
+ test -d /opt/intel/fortran90 ; then
+ FORTRAN="ifc"
+ fortran_pkg_setup
+ einfo "Configuring for Intel fortran..."
+ elif
+ test -f `which pgf90` ; then
+ FORTRAN="pgf90"
+ fortran_pkg_setup
+ einfo "Configuring for PGI fortran..."
+ elif use f90 ; then
+ einfo "Relying on H5Detect to configure Fortran compiler..."
+ FORTRAN=""
+ else
+ einfo "No F90 compiler found; please install either gcc 4 with"
+ einfo "fortran support or some other Fortran 90 compiler such"
+ einfo "as ifc or pgf90 (or disable fortran support)."
+ die "No usable Fortran 90 compiler found."
+ fi
+ fi
+}
+
+src_compile() {
+ local myconf="--with-pic"
+
+ # --disable-static conflicts with --enable-cxx, so we have to do either
+ # or here. --enable-cxx also conflicts with parallel (mpi) support.
+ # fortran needs f90 support and requires static and mpi (for gfortran).
+ if use static ; then
+ if use cxx && ! use mpi ; then
+ myconf="${myconf} --enable-cxx"
+ elif use cxx && use mpi ; then
+ ewarn "C++ support is not compatible with the mpi interface."
+ die "Please disable either cxx or mpi."
+ else
+ myconf="${myconf} --disable-cxx"
+ fi
+ if use fortran && use mpi ; then
+ ewarn "Requires Fortran 90 support in your mpi library..."
+ myconf="${myconf} --enable-fortran --enable-static"
+ elif use fortran && use f90 ; then
+ ewarn "Relying on configure to detect Fortran 90 compiler..."
+ myconf="${myconf} --enable-fortran --enable-static"
+ elif
+ use fortran && ! use mpi && ! use f90 ; then
+ ewarn "Configure fortran will probably fail without mpi, if all"
+ ewarn "you have is gfortran installed. Please enable mpi or"
+ ewarn "install another Fortran compiler. Fortran support is"
+ ewarn "not enabled for this build..."
+ myconf="${myconf} --disable-fortran --enable-static"
+ else
+ myconf="${myconf} --disable-fortran --enable-static"
+ fi
+ else
+ einfo "C++ support cannot be enabled without both enabling static"
+ einfo "library support and disabling mpi. Fortran9X support needs"
+ einfo "both static and mpi enabled to work with GNU fortran."
+ echo
+ einfo "Suggested USE flags for fortran and mpi using gfortran:"
+ einfo "USE=\"fortran mpi static -cxx\""
+ echo
+ if use fortran || use cxx ; then
+ die "Please adjust your use flags."
+ else
+ einfo "Disabling fortran, C++, and static library support..."
+ myconf="${myconf} --disable-static --disable-fortran \
+ --disable-cxx"
+ fi
+ fi
+ use threads && myconf="${myconf} --with-pthread"
+ use debug && myconf="${myconf} --enable-debug=all"
+ use mpi && myconf="${myconf} --enable-parallel --enable-gpfs"
+ use hlapi || myconf="${myconf} --disable-hl"
+
+ # NOTE: the hdf5 configure script has its own interpretation of
+ # the ARCH environment variable which conflicts with that of
+ # ebuild/emerge. As a work around, we save the ARCH variable as
+ # EBUILD_ARCH and restore it when we are done.
+ EBUILD_ARCH=${ARCH}
+ unset ARCH
+
+ if use mpi ; then
+ export CC="/usr/bin/mpicc"
+ fi
+ ./configure --prefix=/usr ${myconf} \
+ $(use_enable zlib) \
+ $(use_with ssl) \
+ --enable-linux-lfs \
+ --sysconfdir=/etc \
+ --infodir=/usr/share/info \
+ --libdir=/usr/$(get_libdir)/${PN} \
+ --mandir=/usr/share/man || die "configure failed"
+
+ # restore the ARCH environment variable
+ ARCH=${EBUILD_ARCH}
+
+ # emake has occasional segfaults
+ make || die "make failed"
+ echo "LDPATH=\"/usr/$(get_libdir)/${PN}\"" > 50hdf5
+}
+
+src_test() {
+ # make test is not reliable, and the mpi tests have a weird failure
+ export HDF5_Make_Ignore=yes
+ install -g portage -o portage -m 0600 ${FILESDIR}/mpd.conf ${HOME}/.mpd.conf
+ /usr/bin/mpd --daemon
+ make check || die "make test failed"
+ /usr/bin/mpdallexit
+ export HDF5_Make_Ignore=no
+}
+
+src_install() {
+ make \
+ prefix=${D}usr \
+ mandir=${D}usr/share/man \
+ docdir=${D}usr/share/doc/${PF} \
+ libdir=${D}usr/$(get_libdir)/${PN} \
+ infodir=${D}usr/share/info \
+ install || die "make install failed"
+
+ dolib.so ${S}/test/.libs/lib*so* || die "dolib.so failed"
+
+ if use static ; then
+ dolib.a ${S}/tools/lib/.libs/libh5tools.a \
+ ${S}/test/.libs/libh5test.a || die "dolib.a failed"
+ insinto /usr/$(get_libdir)/${PN}
+ doins ${S}/tools/lib/libh5tools.la \
+ ${S}/test/libh5test.la || die "doins failed"
+ fi
+ mv ${D}usr/$(get_libdir)/libh5* ${D}usr/$(get_libdir)/${PN}/
+
+ dobin ${S}/bin/iostats || die "dobin failed"
+ dodoc README.txt COPYING MANIFEST
+ dohtml doc/html/*
+
+ if use mpi ; then
+ mv ${D}usr/bin/h5pcc ${D}usr/bin/h5cc
+ fi
+ if use fortran ; then
+ mv ${D}usr/bin/h5pfc ${D}usr/bin/h5fc
+ fi
+ # change the SHLIB default for C
+ if ! use static ; then
+ dosed "s/SHLIB:-no/SHLIB:-yes/g" ${D}usr/bin/h5cc || die "dosed failed"
+ fi
+
+ doenvd 50hdf5
+}
+
+pkg_postinst() {
+ echo
+ einfo "Use the fortran flag for gfortran, ifc, or pgf90, and add the"
+ einfo "f90 flag to override the fortran flag if you have a different"
+ einfo "f90 compiler installed (gfortran requires gcc 4.x). Note that"
+ einfo "gfortran only works as mpif90 and is not detected properly by"
+ einfo "configure without the mpi wrapper."
+ echo
+ einfo "There are currently 2 non-fatal test errors in the mpi tests,"
+ einfo "however, all C++, Fortran, and other tests pass successfully."
+ einfo "The only expected failure is currently in the PHDF5 section"
+ einfo "under MPI functionality tests. The second section using the"
+ einfo "MPIPOSIX driver should work, along with all other tests."
+ echo
+ einfo "Suggested USE flags for fortran and mpi support using gfortran:"
+ einfo "USE=\"fortran mpi static -cxx\""
+ echo
+ ewarn "Note: currently untested on a virtual (parallel) filesystem."
+ echo
+}
diff --git a/sci-libs/hdf5/hdf5-1.6.5.ebuild b/sci-libs/hdf5/hdf5-1.6.5.ebuild
index eace4aa86383..1ce8ad82661f 100644
--- a/sci-libs/hdf5/hdf5-1.6.5.ebuild
+++ b/sci-libs/hdf5/hdf5-1.6.5.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sci-libs/hdf5/hdf5-1.6.5.ebuild,v 1.2 2006/06/14 15:20:27 fmccor Exp $
+# $Header: /var/cvsroot/gentoo-x86/sci-libs/hdf5/hdf5-1.6.5.ebuild,v 1.3 2006/06/24 16:13:48 nerdboy Exp $
inherit eutils
@@ -29,7 +29,7 @@ src_compile() {
#myconf="${myconf} $(use_enable fortran)"
use threads && myconf="${myconf} --with-pthread"
use debug && myconf="${myconf} --enable-debug=all"
- use mpi && myconf="${myconf} --enable-parallel"
+ use mpi && myconf="${myconf} --enable-parallel --disable-cxx"
use hlapi || myconf="${myconf} --disable-hl"
# NOTE: the hdf5 configure script has its own interpretation of
@@ -39,8 +39,9 @@ src_compile() {
EBUILD_ARCH=${ARCH}
unset ARCH
- use mpi && \
- export CC="/usr/bin/mpicc"
+ if use mpi ; then
+ export CC="/usr/bin/mpicc"
+ fi
./configure --prefix=/usr ${myconf} \
$(use_enable zlib) \
$(use_with ssl) \
@@ -52,7 +53,7 @@ src_compile() {
# restore the ARCH environment variable
ARCH=${EBUILD_ARCH}
- emake || die "emake failed"
+ make || die "make failed"
}
src_install() {
@@ -64,6 +65,26 @@ src_install() {
infodir=${D}/usr/share/info \
install || die "make install failed"
+ dolib.so ${S}/test/.libs/lib*so* || die "dolib.so failed"
+
+ if use static ; then
+ dolib.a ${S}/tools/lib/.libs/libh5tools.a \
+ ${S}/test/.libs/libh5test.a || die "dolib.a failed"
+ insinto /usr/$(get_libdir)
+ doins ${S}/tools/lib/libh5tools.la \
+ ${S}/test/libh5test.la || die "doins failed"
+ fi
+
+ dobin ${S}/bin/iostats || die "dobin failed"
+
dodoc README.txt COPYING MANIFEST
dohtml doc/html/*
+
+ if use mpi ; then
+ mv ${D}usr/bin/h5pcc ${D}usr/bin/h5cc
+ fi
+ # change the SHLIB default for C
+ if ! use static ; then
+ dosed "s/SHLIB:-no/SHLIB:-yes/g" ${D}usr/bin/h5cc || die "dosed failed"
+ fi
}