diff options
author | Steve Arnold <nerdboy@gentoo.org> | 2007-07-09 01:58:30 +0000 |
---|---|---|
committer | Steve Arnold <nerdboy@gentoo.org> | 2007-07-09 01:58:30 +0000 |
commit | 86f82c55b691cb2310dd15fa617eaa76fbbb722f (patch) | |
tree | d98c132353a3d3e1112f8bb72b4f86902e3563fa /sys-cluster/mpich2 | |
parent | updated for new mpich2 flag (diff) | |
download | gentoo-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/ChangeLog | 19 | ||||
-rw-r--r-- | sys-cluster/mpich2/files/digest-mpich2-1.0.5_p4 | 3 | ||||
-rw-r--r-- | sys-cluster/mpich2/files/mpich2-1.0.5_p4-make.patch | 28 | ||||
-rw-r--r-- | sys-cluster/mpich2/files/mpich2-1.0.5_p4-soname.patch | 36 | ||||
-rw-r--r-- | sys-cluster/mpich2/mpich2-1.0.5_p4.ebuild | 219 |
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 +} |