summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Arnold <nerdboy@gentoo.org>2007-07-09 01:58:30 +0000
committerSteve Arnold <nerdboy@gentoo.org>2007-07-09 01:58:30 +0000
commit86f82c55b691cb2310dd15fa617eaa76fbbb722f (patch)
treed98c132353a3d3e1112f8bb72b4f86902e3563fa /sys-cluster/mpich2
parentupdated for new mpich2 flag (diff)
downloadgentoo-2-86f82c55b691cb2310dd15fa617eaa76fbbb722f.tar.gz
gentoo-2-86f82c55b691cb2310dd15fa617eaa76fbbb722f.tar.bz2
gentoo-2-86f82c55b691cb2310dd15fa617eaa76fbbb722f.zip
updated to current version with major ebuild enhancements
(Portage version: 2.1.3_rc6)
Diffstat (limited to 'sys-cluster/mpich2')
-rw-r--r--sys-cluster/mpich2/ChangeLog19
-rw-r--r--sys-cluster/mpich2/files/digest-mpich2-1.0.5_p43
-rw-r--r--sys-cluster/mpich2/files/mpich2-1.0.5_p4-make.patch28
-rw-r--r--sys-cluster/mpich2/files/mpich2-1.0.5_p4-soname.patch36
-rw-r--r--sys-cluster/mpich2/mpich2-1.0.5_p4.ebuild219
5 files changed, 304 insertions, 1 deletions
diff --git a/sys-cluster/mpich2/ChangeLog b/sys-cluster/mpich2/ChangeLog
index fcb93d287162..675719b0ad22 100644
--- a/sys-cluster/mpich2/ChangeLog
+++ b/sys-cluster/mpich2/ChangeLog
@@ -1,6 +1,23 @@
# ChangeLog for sys-cluster/mpich2
# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-cluster/mpich2/ChangeLog,v 1.19 2007/04/26 06:10:51 dberkholz Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/mpich2/ChangeLog,v 1.20 2007/07/09 01:58:30 nerdboy Exp $
+
+*mpich2-1.0.5_p4 (09 Jul 2007)
+
+ 09 Jul 2007; Steve Arnold <nerdboy@gentoo.org>
+ +files/mpich2-1.0.5_p4-make.patch, +files/mpich2-1.0.5_p4-soname.patch,
+ +mpich2-1.0.5_p4.ebuild:
+ Updated to current version with major ebuild enhancements (it even builds
+ with all USE flags now :)
+
+ Note: the mpe-sdk flag requires a JDK and libX11, so it's really intended
+ for a development workstation or at least a machine with an X desktop. The
+ JDK parts of the ebuild could probably be improved, and it doesn't currently
+ rebuild the jar files. The docs handling is also hackish, but should Do The
+ Right Thing (TM). I'm pretty sure the upstream *.so config is whacked, and
+ the current patch is about the best I can do right now. Please enhance it.
+
+ Test away...
26 Apr 2007; Donnie Berkholz <dberkholz@gentoo.org>; metadata.xml:
Update for cluster herd split to hp-cluster and ha-cluster.
diff --git a/sys-cluster/mpich2/files/digest-mpich2-1.0.5_p4 b/sys-cluster/mpich2/files/digest-mpich2-1.0.5_p4
new file mode 100644
index 000000000000..1aa7b58b853c
--- /dev/null
+++ b/sys-cluster/mpich2/files/digest-mpich2-1.0.5_p4
@@ -0,0 +1,3 @@
+MD5 44d4769e45f5bbd692bca80df732c593 mpich2-1.0.5p4.tar.gz 12849546
+RMD160 1a2b56468f88c5b4704662ae0dc6d648a6ca8a65 mpich2-1.0.5p4.tar.gz 12849546
+SHA256 4b819d318ec514c350ce0fea730126faa2ef36b5f00bc72c4a097dcf9979918d mpich2-1.0.5p4.tar.gz 12849546
diff --git a/sys-cluster/mpich2/files/mpich2-1.0.5_p4-make.patch b/sys-cluster/mpich2/files/mpich2-1.0.5_p4-make.patch
new file mode 100644
index 000000000000..10acbeb3b91d
--- /dev/null
+++ b/sys-cluster/mpich2/files/mpich2-1.0.5_p4-make.patch
@@ -0,0 +1,28 @@
+--- Makefile.in.orig 2007-06-18 19:19:21.000000000 -0700
++++ Makefile.in 2007-06-18 19:27:36.000000000 -0700
+@@ -236,9 +236,9 @@
+ if [ -s lib/lib${MPIFWRAPNAME}.a ] ; then $(INSTALL_DATA) lib/lib${MPIFWRAPNAME}.a ${DESTDIR}${libdir}/lib${MPIFWRAPNAME}.a ; fi
+ if [ -s lib/lib${PMPILIBNAME}.a ] ; then $(INSTALL_DATA) lib/lib${PMPILIBNAME}.a ${DESTDIR}${libdir}/lib${PMPILIBNAME}.a ; fi
+ if [ -s lib/libf${MPILIBNAME}.a ] ; then $(INSTALL_DATA) lib/libf${MPILIBNAME}.a ${DESTDIR}${libdir}/libf${MPILIBNAME}.a ; fi
+- if [ -s lib/lib${MPILIBNAME}.@SHLIB_EXT@ ] ; then $(CREATESHLIB) --mode=install lib/lib${MPILIBNAME}.@SHLIB_EXT@ ${DESTDIR}${libdir}/lib${MPILIBNAME}.@SHLIB_EXT@ ; fi
+- if [ -s lib/lib${PMPILIBNAME}.@SHLIB_EXT@ ] ; then $(CREATESHLIB) --mode=install lib/lib${PMPILIBNAME}.@SHLIB_EXT@ ${DESTDIR}${libdir}/lib${PMPILIBNAME}.@SHLIB_EXT@ ; fi
+- if [ -s lib/libf${MPILIBNAME}.@SHLIB_EXT@ ] ; then $(CREATESHLIB) --mode=install lib/libf${MPILIBNAME}.@SHLIB_EXT@ ${DESTDIR}${libdir}/libf${MPILIBNAME}.@SHLIB_EXT@ ; fi
++ if [ -s lib/lib${MPILIBNAME}.@SHLIB_EXT@ ] ; then $(CREATESHLIB) --mode=install lib/lib${MPILIBNAME}.@SHLIB_EXT@ ${DESTDIR}${libdir}/lib${MPILIBNAME}.@SHLIB_EXT@.0.0 ; fi
++ if [ -s lib/lib${PMPILIBNAME}.@SHLIB_EXT@ ] ; then $(CREATESHLIB) --mode=install lib/lib${PMPILIBNAME}.@SHLIB_EXT@ ${DESTDIR}${libdir}/lib${PMPILIBNAME}.@SHLIB_EXT@.0.0 ; fi
++ if [ -s lib/libf${MPILIBNAME}.@SHLIB_EXT@ ] ; then $(CREATESHLIB) --mode=install lib/libf${MPILIBNAME}.@SHLIB_EXT@ ${DESTDIR}${libdir}/libf${MPILIBNAME}.@SHLIB_EXT@.0.0 ; fi
+ if [ -s $(srcdir)/doc/userguide/user.pdf ] ; then $(INSTALL_DATA) $(srcdir)/doc/userguide/user.pdf ${DESTDIR}${docdir}/user.pdf ; fi
+ if [ -s $(srcdir)/doc/installguide/install.pdf ] ; then $(INSTALL_DATA) $(srcdir)/doc/installguide/install.pdf ${DESTDIR}${docdir}/install.pdf ; fi
+ if [ -s $(srcdir)/doc/smpd/smpd_pmi.pdf ] ; then $(INSTALL_DATA) $(srcdir)/doc/smpd/smpd_pmi.pdf ${DESTDIR}${docdir}/smpd_pmi.pdf ; fi
+@@ -266,9 +266,9 @@
+ -rm -f ${DESTDIR}${libdir}/lib${MPIFWRAPNAME}.a
+ -rm -f ${DESTDIR}${libdir}/lib${PMPILIBNAME}.a
+ -rm -f ${DESTDIR}${libdir}/libf${MPILIBNAME}.a
+- -rm -f ${DESTDIR}${libdir}/lib${MPILIBNAME}.@SHLIB_EXT@
+- -rm -f ${DESTDIR}${libdir}/lib${PMPILIBNAME}.@SHLIB_EXT@
+- -rm -f ${DESTDIR}${libdir}/libf${MPILIBNAME}.@SHLIB_EXT@
++ -rm -f ${DESTDIR}${libdir}/lib${MPILIBNAME}.@SHLIB_EXT@*
++ -rm -f ${DESTDIR}${libdir}/lib${PMPILIBNAME}.@SHLIB_EXT@*
++ -rm -f ${DESTDIR}${libdir}/libf${MPILIBNAME}.@SHLIB_EXT@*
+ -rm -f ${DESTDIR}${docdir}/user.pdf
+ -rm -f ${DESTDIR}${docdir}/install.pdf
+ -rm -f ${DESTDIR}${docdir}/smpd_pmi.pdf
diff --git a/sys-cluster/mpich2/files/mpich2-1.0.5_p4-soname.patch b/sys-cluster/mpich2/files/mpich2-1.0.5_p4-soname.patch
new file mode 100644
index 000000000000..37aabe0ec92f
--- /dev/null
+++ b/sys-cluster/mpich2/files/mpich2-1.0.5_p4-soname.patch
@@ -0,0 +1,36 @@
+--- configure.orig 2005-11-23 10:41:50.000000000 -0800
++++ configure 2006-05-20 21:04:16.000000000 -0700
+@@ -9619,6 +9619,7 @@
+ C_LINK_SHL=true
+ SHLIB_EXT=so
+ SHLIB_FROM_LO=no
++SHLIB_VER=0.0
+ SHLIB_INSTALL='$(INSTALL_PROGRAM)'
+ case "$enable_sharedlibs" in
+ no|none)
+@@ -9640,11 +9641,11 @@
+ # Not quite right yet. See mpich/util/makesharedlib
+ # Use syntax that works in both Make and the shell
+ #C_LINK_SHL='${CC} -shared -Wl,-r'
+- C_LINK_SHL='${CC} -shared'
++ C_LINK_SHL='${CC} -shared -Wl,-soname'
+ # For example, include the libname as ${LIBNAME_SHL}
+ #C_LINK_SHL='${CC} -shared -Wl,-h,<finallibname>'
+ # May need -fPIC
+- CC_SHL='${CC} -fpic'
++ CC_SHL='${CC} -fPIC'
+ C_LINKPATH_SHL="-Wl,-rpath -Wl,"
+ # We need to test that this isn't osx. The following is a
+ # simple hack
+ esac
+--- src/util/createshlib.in.orig 2006-07-11 19:52:47.000000000 -0700
++++ src/util/createshlib.in 2006-07-11 19:56:09.000000000 -0700
+@@ -172,7 +172,7 @@
+
+ *)
+ # This is the default model
+- $Show ${C_LINK_SHL} -o $srclibbase.$SHLIB_EXT .tmp/*.o
++ $Show ${C_LINK_SHL} -Wl,$srclibbase.$SHLIB_EXT.0 -o $srclibbase.$SHLIB_EXT .tmp/*.o
+ ;;
+ esac
+
diff --git a/sys-cluster/mpich2/mpich2-1.0.5_p4.ebuild b/sys-cluster/mpich2/mpich2-1.0.5_p4.ebuild
new file mode 100644
index 000000000000..5dcfb7d83d2d
--- /dev/null
+++ b/sys-cluster/mpich2/mpich2-1.0.5_p4.ebuild
@@ -0,0 +1,219 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/mpich2/mpich2-1.0.5_p4.ebuild,v 1.1 2007/07/09 01:58:30 nerdboy Exp $
+
+inherit eutils fortran distutils autotools kde-functions toolchain-funcs java-pkg
+
+DESCRIPTION="MPICH2 - A portable MPI implementation"
+HOMEPAGE="http://www-unix.mcs.anl.gov/mpi/mpich2"
+MY_P=${P/_/}
+SRC_URI="ftp://ftp.mcs.anl.gov/pub/mpi/${MY_P}.tar.gz"
+
+LICENSE="as-is"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="crypt cxx debug doc fast fortran mpe mpe-sdk romio threads"
+
+DEPEND="virtual/libc
+ sys-devel/libtool
+ dev-lang/perl
+ >=dev-lang/python-2.3
+ mpe-sdk? ( >=virtual/jdk-1.5
+ x11-proto/xproto )
+ romio? ( >=dev-libs/libaio-0.3.106
+ net-fs/nfs-utils )
+ doc? ( virtual/tetex )"
+
+RDEPEND="${DEPEND}
+ mpe-sdk? ( x11-libs/libX11 )
+ crypt? ( net-misc/openssh )
+ !crypt? ( net-misc/netkit-rsh )
+ !sys-cluster/mpich
+ !sys-cluster/lam-mpi
+ !sys-cluster/openmpi
+ !media-sound/mpd
+ !media-sound/mpd-svn"
+
+RESTRICT="-test"
+
+# To-do: work on tests and add SCTP support for kernel and user tools
+
+pkg_setup() {
+ if [ -n "${MPICH_CONFIGURE_OPTS}" ]; then
+ elog "User-specified configure options are ${MPICH_CONFIGURE_OPTS}."
+ else
+ elog "User-specified configure options are not set."
+ elog "If needed, see the docs and set MPICH_CONFIGURE_OPTS."
+ fi
+
+ if use fortran ; then
+ if [ $(gcc-major-version) -ge 4 ] \
+ && built_with_use sys-devel/gcc fortran ; then
+ FORTRAN="gfortran"
+ # we should conform to the Fortran standard, ie, integers
+ # and reals must be the same size
+ export F90FLAGS="-i4 ${F90FLAGS}"
+ fortran_pkg_setup
+ else
+ ewarn "You need gcc-4 built with fortran support in order to"
+ ewarn "build the f90 mpi interface, which is required for f90"
+ ewarn "and mpi support in hdf5 (for example)."
+ fi
+ else
+ ewarn "Unless you have another f90 compiler installed, we can only"
+ ewarn "build the f77 and C++ interfaces with gcc-3.x"
+ fi
+}
+
+src_unpack() {
+ unpack ${A}
+ mv ${WORKDIR}/${MY_P} ${S}
+ cd ${S}
+
+ ebegin "Reconfiguring"
+ find . -name configure -print | xargs rm
+ ./maint/updatefiles
+ use mpe-sdk && ./src/mpe2/maint/updatefiles
+ eend
+
+ epatch ${FILESDIR}/${P}-make.patch || die "make patch failed"
+ epatch ${FILESDIR}/${P}-soname.patch || die "soname patch failed"
+
+ sed -i -e "s:@LDFLAGS@:@LDFLAGS@ -Wl,-z,now:g" src/pm/mpd/Makefile.in \
+ || die "sed failed"
+}
+
+src_compile() {
+ local RSHCOMMAND
+ if use crypt ; then
+ RSHCOMMAND="ssh -x"
+ else
+ RSHCOMMAND="rsh"
+ fi
+ export RSHCOMMAND
+
+ local myconf="${MPICH_CONFIGURE_OPTS}"
+
+ if ! use debug ; then
+ myconf="${myconf} --enable-g=none"
+ else
+ myconf="${myconf} --enable-g=dbg --enable-debuginfo"
+ fi
+
+ if ! use mpe-sdk ; then
+ myconf="${myconf} --enable-rlog=no --enable-slog2=no"
+ fi
+
+ if use threads ; then
+ myconf="${myconf} --with-thread-package=pthreads"
+ else
+ myconf="${myconf} --with-thread-package=none"
+ fi
+
+ # enable f90 support for appropriate compilers
+ case ${FORTRANC} in
+ gfortran|ifc|ifort|f95)
+ myconf="${myconf} --enable-f90"
+ esac
+
+ use romio && myconf="${myconf} --with-file-system=nfs"
+
+ use mpe && MPE_SRC_DIR=${S}/src/mpe2
+
+ if use doc; then
+ doc_conf="--docdir=/usr/share/doc/${PF} \
+ --with-docdir=/usr/share/doc/${PF} \
+ --with-htmldir=/usr/share/doc/${PF}/html \
+ --with-pdfdir=/usr/share/doc/${PF} \
+ --with-psdir=/usr/share/doc/${PF}"
+ else
+ doc_conf="--with-docdir=/usr/share/doc/${PF} \
+ --with-htmldir=/usr/share/doc/${PF}/html"
+ fi
+
+ ./configure --enable-sharedlibs=gcc \
+ ${myconf} \
+ ${doc_conf} \
+ $(use_enable fast) \
+ $(use_enable cxx) \
+ $(use_enable mpe) \
+ $(use_enable romio) \
+ $(use_enable threads) \
+ --libdir=/usr/$(get_libdir) \
+ --includedir=/usr/include \
+ --mandir=/usr/share/man \
+ --sysconfdir=/etc/${PN} \
+ --prefix=/usr --exec-prefix=/usr \
+ --datadir=/usr/share/${PN} || die "configure failed"
+
+ if use mpe-sdk; then
+ cd ${S}/src/mpe2
+ ./configure --prefix=/usr --libdir=/usr/$(get_libdir)/mpe \
+ --with-mpicc=${S}/bin/mpicc --with-mpif77=${S}/bin/mpif77 \
+ --enable-collchk --enable-graphics=yes --enable-wrappers \
+ --with-java=${JAVA_HOME} --datadir=/usr/share/${PN} \
+ --with-flib_path_leader="-Wl,-L" --enable-mpich ${doc_conf} \
+ --with-trace-libdir=/usr/$(get_libdir)/mpe/trace_rlog \
+ || die "MPE configure failed"
+ cd ${S}
+ fi
+
+ # no parallel make here
+ make FFLAGS="-fPIC" || die "make failed"
+}
+
+src_install() {
+ dodir /etc/${PN}
+
+ rm -rf src/mpe2/etc/*.in
+
+ make DESTDIR=${D} LIBDIR=${D}usr/$(get_libdir) install \
+ || die "make install failed"
+
+ dodir /usr/share/doc/${PF}
+ if use doc; then
+ dodoc COPYRIGHT README README.romio README.testing CHANGES
+ dodoc README.developer RELEASE_NOTES
+ newdoc src/pm/mpd/README README.mpd
+
+ if use mpe-sdk; then
+ dodoc src/mpe2/src/slog2sdk/README.sdk \
+ src/mpe2/src/slog2sdk/README.rte
+ newdoc src/mpe2/src/slog2sdk/FAQ FAQ.sdk
+ fi
+ else
+ rm -rf ${D}usr/share/doc/${PF}/html
+ dodoc README CHANGES COPYRIGHT RELEASE_NOTES
+ fi
+
+ # Tidy up a bit and create the missing links
+ rm ${D}usr/sbin/mpeuninstall
+ cd ${D}usr/$(get_libdir)
+ dosym libmpich.so.0.0 /usr/$(get_libdir)/libmpich.so
+ dosym libfmpich.so.0.0 /usr/$(get_libdir)/libfmpich.so
+}
+
+pkg_postinst() {
+ python_version
+ python_mod_optimize ${ROOT}usr/bin
+
+ elog ""
+ elog "Note 1: enabling the MPE2 SDK requires both a JDK and the core"
+ elog "X11 library for the full set of log analysis and conversion"
+ elog "utilities. You probably don't want to enable the mpe-sdk USE"
+ elog "flag on a server, cluster node, etc."
+ elog ""
+ elog "Note 2: this package still needs testing with other Fortran90"
+ elog "compilers besides gfortran (gcc4). The tests also need some"
+ elog "magic to build properly within the portage build environment."
+ elog "(currently the tests only build and run manually)"
+ elog ""
+ elog "The gfortran support has been tested successfully with hdf5"
+ elog "(using gfortran and the mpif90 wrapper)."
+ elog ""
+}
+
+pkg_postrm() {
+ python_version
+ python_mod_cleanup
+}