You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/sys-cluster/lam-mpi/lam-mpi-7.1.4-r1.ebuild

149 lines
4.6 KiB

# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-cluster/lam-mpi/lam-mpi-7.1.4-r1.ebuild,v 1.15 2011/06/21 14:24:39 jlec Exp $
EAPI="3"
inherit autotools eutils fortran-2 flag-o-matic multilib portability toolchain-funcs
IUSE="crypt pbs fortran xmpi romio examples"
MY_P=${P/-mpi}
S=${WORKDIR}/${MY_P}
DESCRIPTION="the LAM MPI parallel computing environment"
SRC_URI="http://www.lam-mpi.org/download/files/${MY_P}.tar.bz2"
HOMEPAGE="http://www.lam-mpi.org"
DEPEND="pbs? ( sys-cluster/torque )
!sys-cluster/mpich
!sys-cluster/openmpi
!sys-cluster/mpich2
!app-misc/wipe"
RDEPEND="
fortran? ( virtual/fortran )
${DEPEND}
crypt? ( net-misc/openssh )
!crypt? ( net-misc/netkit-rsh )"
SLOT="6"
KEYWORDS="amd64 hppa ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~x86-macos"
LICENSE="lam-mpi"
src_prepare() {
sed -i "s|docdir=\"\$datadir/lam/doc\"|docdir=\"${ED}/usr/share/doc/${PF}\"|" romio/util/romioinstall.in
for i in share/memory/{ptmalloc,ptmalloc2,darwin7}/Makefile.in; do
sed -i -e 's@^\(docdir = \)\$(datadir)/lam/doc@\1'"${EPREFIX}"/usr/share/doc/${PF}'@' ${i}
done
epatch "${FILESDIR}"/7.1.2-lam_prog_f77.m4.patch
epatch "${FILESDIR}"/7.1.2-liblam-use-extra-libs.patch
epatch "${FILESDIR}"/7.1.4-as-needed.patch
if has_version '>=sys-devel/libtool-2.2'; then
# Compatibility patch for the newer libtools, uses LT_INIT
# which is not compatible with older versions.
epatch "${FILESDIR}"/${PN}-7.1.4-libtool.patch
fi
# gcc-4.3.0 fix. char *argv[] -> char **argv.
# replaces a few more than necessary, but should be harmless.
# TODO: Already applied upstream, will be in 7.1.5
for f in config/*.m4; do
sed -i 's:^\(int main(int argc, char\)[^{]*\([{]\?\):\1** argv) \2:g' $f
done
# eautoreconf doesn't work correctly as lam-mpi uses their own
# LAM_CONFIG_SUBDIR instead of AC_CONFIG_SUBDIRS. Even better, they use
# variables inside of the definitions, so --trace doesn't work.
for f in $(find ./ -name 'configure.ac'); do
pushd $(dirname $f) &>/dev/null
eautoreconf
popd &>/dev/null
done
eautoreconf
}
pkg_setup() {
fortran-2_pkg_setup
einfo
elog "LAM/MPI is now in a maintenance mode. Bug fixes and critical patches"
elog "are still being applied, but little real new work is happening in"
elog "LAM/MPI. This is a direct result of the LAM/MPI Team spending the"
elog "vast majority of their time working on our next-generation MPI"
elog "implementation, http://www.openmpi.org"
elog " ---From the lam-mpi hompage. Please consider upgrading."
einfo
}
src_configure() {
local myconf
if use crypt; then
myconf="${myconf} --with-rsh=ssh"
else
myconf="${myconf} --with-rsh=rsh"
fi
if ! use pbs; then
# See: http://www.lam-mpi.org/MailArchives/lam/2006/05/12445.php
rm -rf "${S}"/share/ssi/boot/tm
elif has_version "<=sys-cluster/torque-2.1.6"; then
# Newer versions dropped the conflicting names and can
# be installed to nice directories.
append-ldflags -L/usr/$(get_libdir)/pbs/lib
fi
# Following the above post to the mailing list, we'll get
# rid of bproc, globus and slurm as well, none of which are
# in the current tree.
rm -rf "${S}"/share/ssi/boot/{bproc,globus,slurm}
# Disable totalview, see #245439 and #276194
econf \
--with-ltdl-include="${EPREFIX}"/usr/include \
--with-ltdl-lib="${EPREFIX}"/usr/$(get_libdir) \
--disable-ltdl-install \
$(use_with xmpi trillium) \
--sysconfdir="${EPREFIX}"/etc/lam-mpi \
--enable-shared \
--with-threads=posix \
--disable-tv \
$(use_with romio) \
$(use_with fortran fc "$(tc-getFC)") \
${myconf}
}
src_install () {
emake DESTDIR="${D}" install || die "emake install failed"
# With USE=xmpi /usr/bin/sweep is installed. However it's just
# a bash script to call bfctl -R and it causes file collisions
# with media-sound/sweep. Hence, we remove it, see man bfcfl.
if [ -f "${ED}"/usr/bin/sweep ]; then
rm -f "${ED}"/usr/bin/sweep || die
fi
# There are a bunch more tex docs we could make and install too,
# but they are replicated in the pdfs!
dodoc README HISTORY VERSION
dodoc "${S}"/doc/{user,install}.pdf
# With USE=xmpi /usr/bin/sweep is installed. However it's just
# a bash script to call bfctl -R and it causes file collisions
# with media-sound/sweep. Hence, we remove it, see man bfcfl.
if [ -f "${ED}"/usr/bin/sweep ]; then
rm -f "${ED}"/usr/bin/sweep || die
fi
if use examples; then
cd "${S}"/examples
dodir /usr/share/${P}/examples
find -name README -or -iregex '.*\.[chf][c]?$' >"${T}"/testlist
while read p; do
treecopy $p "${ED}"/usr/share/${P}/examples ;
done < "${T}"/testlist
fi
}