From ba27c5abd5a986dc687d272d91312f2374d9ae93 Mon Sep 17 00:00:00 2001 From: Marius Brehler Date: Sat, 29 Nov 2014 22:56:06 +0100 Subject: sys-cluster/mpe2: Add ebuild to overlay and bump version --- sys-cluster/mpe2/ChangeLog | 9 +++ sys-cluster/mpe2/Manifest | 1 + sys-cluster/mpe2/metadata.xml | 5 ++ sys-cluster/mpe2/mpe2-1.3.0.ebuild | 142 +++++++++++++++++++++++++++++++++++++ 4 files changed, 157 insertions(+) create mode 100644 sys-cluster/mpe2/ChangeLog create mode 100644 sys-cluster/mpe2/Manifest create mode 100644 sys-cluster/mpe2/metadata.xml create mode 100644 sys-cluster/mpe2/mpe2-1.3.0.ebuild (limited to 'sys-cluster') diff --git a/sys-cluster/mpe2/ChangeLog b/sys-cluster/mpe2/ChangeLog new file mode 100644 index 000000000..b424437d5 --- /dev/null +++ b/sys-cluster/mpe2/ChangeLog @@ -0,0 +1,9 @@ +# ChangeLog for sys-cluster/mpe2 +# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 +# $Header: $ + +*mpe2-1.3.0 (29 Nov 2014) + + 29 Nov 2014; Marius Brehler +metadata.xml, + +mpe2-1.3.0.ebuild: + Add to overlay and bump version diff --git a/sys-cluster/mpe2/Manifest b/sys-cluster/mpe2/Manifest new file mode 100644 index 000000000..c4f4ef209 --- /dev/null +++ b/sys-cluster/mpe2/Manifest @@ -0,0 +1 @@ +DIST mpe2-1.3.0.tar.gz 9703024 SHA256 0faf32f9adab6fd882be30be913089ebf75272f8b5e4a012bb20c54abc21c0be SHA512 84f0be89f4c17e5b86bc4d067be650b65938af4f7e71224e8f65b723f217649da3d5b8991f3eb9c83823d9c0831d9847c90e6940d9f30958803984efb2e028ca WHIRLPOOL 00fa0a566871ddcb1d5b04fb7a425ad7db423de1326e75716bb07e46ad0f72028ec89a4cf59f05cc02b161cac014d234e0ed099b72b967081970584f56e88674 diff --git a/sys-cluster/mpe2/metadata.xml b/sys-cluster/mpe2/metadata.xml new file mode 100644 index 000000000..55dd68aad --- /dev/null +++ b/sys-cluster/mpe2/metadata.xml @@ -0,0 +1,5 @@ + + + + cluster + diff --git a/sys-cluster/mpe2/mpe2-1.3.0.ebuild b/sys-cluster/mpe2/mpe2-1.3.0.ebuild new file mode 100644 index 000000000..b76e7add0 --- /dev/null +++ b/sys-cluster/mpe2/mpe2-1.3.0.ebuild @@ -0,0 +1,142 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=5 + +FORTRAN_NEEDED=fortran + +inherit eutils fortran-2 java-utils-2 toolchain-funcs + +MY_P=${P/_/} +DESCRIPTION="MPI development tools" +HOMEPAGE="http://www-unix.mcs.anl.gov/perfvis/download/index.htm" +SRC_URI="ftp://ftp.mcs.anl.gov/pub/mpi/${PN%2}/${MY_P}.tar.gz" + +LICENSE="mpich2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="minimal fortran threads debug" + +COMMON_DEPEND="!minimal? ( x11-libs/libXtst + x11-libs/libXi ) + || ( sys-cluster/openmpi[fortran?,threads?] + sys-cluster/mpich2[fortran?,threads?] )" + +DEPEND="!minimal? ( >=virtual/jdk-1.4 ) + ${COMMON_DEPEND}" + +RDEPEND=" +!minimal? ( >=virtual/jre-1.4 ) + ${COMMON_DEPEND}" + +S="${WORKDIR}"/${MY_P} +MPE_IMP="" + +# README: +# This ebuild is created to handle building with both mpich2 and openmpi. +# However, without empi (in the science overlay), and some further +# conversion to use mpi.eclass, we can only handle one implementation +# at a time. I still believe it's better to have the ebuild setup +# correctly in preperation. + +pkg_setup() { + fortran-2_pkg_setup + local i + + if has_version sys-cluster/openmpi; then + MPE_IMP=openmpi + elif has_version sys-cluster/mpich2; then + MPE_IMP=mpich2 + else + die "Unknown MPI implementation" + fi + + export JFLAGS="${JFLAGS} $(java-pkg_javac-args)" + + if [[ "${MPE_IMP}" == openmpi ]] && [ -z "${MPE2_FORCE_OPENMPI_TEST}" ]; then + echo + elog "Currently src_test fails on collchk with openmpi, hence" + elog "testing is disabled by default. If you would like to" + elog "force testing, please add MPE_FORCE_OPENMPI_TEST=1" + elog "to your environment." + echo + fi + + einfo "Building with support for: sys-cluster/${MPE_IMP}" +} + +src_prepare() { + # Don't assume path contains ./ + sed -i 's,\($MPERUN\) $pgm,\1 ./$pgm,' sbin/mpetestexeclog.in +} + +src_configure() { + local c="--with-mpicc=/usr/bin/mpicc" + + if use fortran; then + c="${c} --with-mpif77=/usr/bin/mpif77" + else + c="${c} --disable-f77" + fi + + if use minimal; then + c="${c} --enable-slog2=no --disable-rlog --disable-sample" + else + c="${c} --with-java2=$(java-config --jdk-home) --enable-slog2=build" + fi + + if [[ "${MPE_IMP}" == openmpi ]]; then + c="${c} --disable-rlog --disable-sample" + fi + + econf ${c} \ + --sysconfdir=/etc/${PN} \ + --datadir=/usr/share/${PN} \ + --with-htmldir=/usr/share/${PN} \ + --with-docdir=/usr/share/${PN} \ + --enable-collchk \ + --enable-wrappers \ + $(use_enable !minimal graphics) \ + $(use_enable threads threadlogging) \ + $(use_enable debug g) +} + +src_test() { + local rc + + cd "${S}" + if [[ "${MPE_IMP}" == mpich2 ]]; then + echo "MPD_SECRETWORD=junk" > "${T}"/mpd.conf + chmod 600 "${T}"/mpd.conf + export MPD_CONF_FILE="${T}/mpd.conf" + "${ROOT}"usr/bin/mpd -d --pidfile="${T}"/mpd.pid + elif [[ "${MPE_IMP}" == openmpi* ]] && [ -z "${MPE2_FORCE_OPENMPI_TEST}" ]; then + elog + elog "Skipping tests for openmpi" + elog + return 0 + fi + + # No parallel make: + # http://trac.mcs.anl.gov/projects/mpich2/ticket/1095#comment:1 + emake -j1 \ + CC="${S}"/bin/mpecc \ + FC="${S}"/bin/mpefc \ + MPERUN="${ROOT}/usr/bin/mpiexec -n 4" \ + CLOG2TOSLOG2="${S}/src/slog2sdk/bin/clog2TOslog2" \ + check; + rc=${?} + if [[ "${MPE_IMP}" == mpich2 ]]; then + "${ROOT}"usr/bin/mpdallexit || kill $(<"${T}"/mpd.pid) + fi + + return ${rc} +} + +src_install() { + # No parallel make: + # http://trac.mcs.anl.gov/projects/mpich2/ticket/1095#comment:1 + emake -j1 DESTDIR="${D}" install || die + rm -f "${D}"/usr/sbin/mpeuninstall || die +} -- cgit v1.2.3