summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Seifert <soap@gentoo.org>2016-08-11 19:18:18 +0200
committerDavid Seifert <soap@gentoo.org>2016-08-11 19:18:45 +0200
commit69839aef87e8d5d6beb318e8e7c6ac2c33b30b3e (patch)
tree8fbbd0a9ed1f94bebf1cfb4a5f0e87071c04084c /sys-cluster
parentsci-libs/metis: Ported EAPI from 5 to 6 (diff)
downloadgentoo-69839aef87e8d5d6beb318e8e7c6ac2c33b30b3e.tar.gz
gentoo-69839aef87e8d5d6beb318e8e7c6ac2c33b30b3e.tar.bz2
gentoo-69839aef87e8d5d6beb318e8e7c6ac2c33b30b3e.zip
sys-cluster/openmpi: Revbump for multilib support
Package-Manager: portage-2.3.0
Diffstat (limited to 'sys-cluster')
-rw-r--r--sys-cluster/openmpi/openmpi-1.10.3-r1.ebuild (renamed from sys-cluster/openmpi/openmpi-1.10.3.ebuild)124
1 files changed, 69 insertions, 55 deletions
diff --git a/sys-cluster/openmpi/openmpi-1.10.3.ebuild b/sys-cluster/openmpi/openmpi-1.10.3-r1.ebuild
index 9cbddc7ac0a0..c4fe80b92189 100644
--- a/sys-cluster/openmpi/openmpi-1.10.3.ebuild
+++ b/sys-cluster/openmpi/openmpi-1.10.3-r1.ebuild
@@ -2,11 +2,11 @@
# Distributed under the terms of the GNU General Public License v2
# $Id$
-EAPI=5
+EAPI=6
FORTRAN_NEEDED=fortran
-inherit cuda eutils flag-o-matic fortran-2 java-pkg-opt-2 multilib toolchain-funcs versionator
+inherit cuda flag-o-matic fortran-2 java-pkg-opt-2 toolchain-funcs versionator multilib-minimal
MY_P=${P/-mpi}
S=${WORKDIR}/${MY_P}
@@ -53,15 +53,16 @@ MPI_UNCLASSED_DEP_STR="
!app-text/lcdf-typetools
)"
+# dev-util/nvidia-cuda-toolkit is always multilib
CDEPEND="
!sys-cluster/mpich
!sys-cluster/mpich2
!sys-cluster/mpiexec
- dev-libs/libevent
- dev-libs/libltdl:0
- >=sys-apps/hwloc-1.9.1[numa?]
- sys-libs/zlib
- cuda? ( dev-util/nvidia-cuda-toolkit )
+ >=dev-libs/libevent-2.0.21[${MULTILIB_USEDEP}]
+ dev-libs/libltdl:0[${MULTILIB_USEDEP}]
+ >=sys-apps/hwloc-1.10.0-r2[${MULTILIB_USEDEP},numa?]
+ >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]
+ cuda? ( >=dev-util/nvidia-cuda-toolkit-6.5.19-r1 )
elibc_FreeBSD? ( dev-libs/libexecinfo )
openmpi_fabrics_ofed? ( sys-fabric/ofed:* )
openmpi_fabrics_knem? ( sys-cluster/knem )
@@ -76,49 +77,41 @@ RDEPEND="${CDEPEND}
DEPEND="${CDEPEND}
java? ( >=virtual/jdk-1.6 )"
+MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/mpi.h
+)
+
pkg_setup() {
fortran-2_pkg_setup
java-pkg-opt-2_pkg_setup
if use mpi-threads; then
- echo
+ ewarn
ewarn "WARNING: use of MPI_THREAD_MULTIPLE is still disabled by"
ewarn "default and officially unsupported by upstream."
ewarn "You may stop now and set USE=-mpi-threads"
- echo
+ ewarn
fi
- echo
+ elog
elog "OpenMPI has an overwhelming count of configuration options."
elog "Don't forget the EXTRA_ECONF environment variable can let you"
elog "specify configure options if you find them necessary."
- echo
+ elog
}
src_prepare() {
+ default
+
# Necessary for scalibility, see
# http://www.open-mpi.org/community/lists/users/2008/09/6514.php
if use threads; then
echo 'oob_tcp_listen_mode = listen_thread' \
- >> opal/etc/openmpi-mca-params.conf
+ >> opal/etc/openmpi-mca-params.conf || die
fi
}
-src_configure() {
- local myconf=(
- --sysconfdir="${EPREFIX}/etc/${PN}"
- --enable-pretty-print-stacktrace
- --enable-orterun-prefix-by-default
- --with-hwloc="${EPREFIX}/usr"
- --with-libltdl="${EPREFIX}/usr"
- )
-
- if use fortran; then
- myconf+=(--enable-mpi-fortran=all)
- else
- myconf+=(--enable-mpi-fortran=no)
- fi
-
+multilib_src_configure() {
if use java; then
# We must always build with the right -source and -target
# flags. Passing flags to javac isn't explicitly supported here
@@ -126,55 +119,76 @@ src_configure() {
export ac_cv_path_JAVAC="$(java-pkg_get-javac) $(java-pkg_javac-args)"
fi
- ! use vt && myconf+=(--enable-contrib-no-build=vt)
-
- econf "${myconf[@]}" \
+ ECONF_SOURCE=${S} econf \
+ --sysconfdir="${EPREFIX}/etc/${PN}" \
+ --enable-pretty-print-stacktrace \
+ --enable-orterun-prefix-by-default \
+ --with-hwloc="${EPREFIX}/usr" \
+ --with-libltdl="${EPREFIX}/usr" \
+ --enable-mpi-fortran=$(usex fortran all no) \
+ $(usex !vt --enable-contrib-no-build=vt "") \
$(use_enable cxx mpi-cxx) \
$(use_with cma) \
$(use_with cuda cuda "${EPREFIX}"/opt/cuda) \
$(use_enable romio io-romio) \
$(use_enable heterogeneous) \
$(use_enable ipv6) \
- $(use_enable java) \
- $(use_enable java mpi-java) \
- $(use_enable mpi-threads mpi-thread-multiple) \
- $(use_with openmpi_fabrics_ofed verbs "${EPREFIX}"/usr) \
- $(use_with openmpi_fabrics_knem knem "${EPREFIX}"/usr) \
- $(use_with openmpi_fabrics_psm psm "${EPREFIX}"/usr) \
- $(use_enable openmpi_ofed_features_control-hdr-padding openib-control-hdr-padding) \
- $(use_enable openmpi_ofed_features_connectx-xrc openib-connectx-xrc) \
- $(use_enable openmpi_ofed_features_rdmacm openib-rdmacm) \
- $(use_enable openmpi_ofed_features_udcm openib-udcm) \
- $(use_enable openmpi_ofed_features_dynamic-sl openib-dynamic-sl) \
- $(use_enable openmpi_ofed_features_failover btl-openib-failover) \
- $(use_with openmpi_rm_pbs tm) \
- $(use_with openmpi_rm_slurm slurm)
+ $(multilib_native_use_enable java) \
+ $(multilib_native_use_enable java mpi-java) \
+ $(multilib_native_use_enable mpi-threads mpi-thread-multiple) \
+ $(multilib_native_use_with openmpi_fabrics_ofed verbs "${EPREFIX}"/usr) \
+ $(multilib_native_use_with openmpi_fabrics_knem knem "${EPREFIX}"/usr) \
+ $(multilib_native_use_with openmpi_fabrics_psm psm "${EPREFIX}"/usr) \
+ $(multilib_native_use_enable openmpi_ofed_features_control-hdr-padding openib-control-hdr-padding) \
+ $(multilib_native_use_enable openmpi_ofed_features_connectx-xrc openib-connectx-xrc) \
+ $(multilib_native_use_enable openmpi_ofed_features_rdmacm openib-rdmacm) \
+ $(multilib_native_use_enable openmpi_ofed_features_udcm openib-udcm) \
+ $(multilib_native_use_enable openmpi_ofed_features_dynamic-sl openib-dynamic-sl) \
+ $(multilib_native_use_enable openmpi_ofed_features_failover btl-openib-failover) \
+ $(multilib_native_use_with openmpi_rm_pbs tm) \
+ $(multilib_native_use_with openmpi_rm_slurm slurm)
+}
+
+multilib_src_test() {
+ # Doesn't work with the default src_test as the dry run (-n) fails.
+ emake -j1 check
}
-src_install () {
+multilib_src_install() {
default
+ # fortran header cannot be wrapped (bug #540508), workaround part 1
+ if multilib_is_native_abi && use fortran; then
+ mkdir "${T}"/fortran || die
+ mv "${ED}"usr/include/mpif* "${T}"/fortran || die
+ else
+ # some fortran files get installed unconditionally
+ rm "${ED}"usr/include/mpif* "${ED}"usr/bin/mpif* || die
+ fi
+}
+
+multilib_src_install_all() {
# From USE=vt see #359917
- rm -rf "${ED}"/usr/share/libtool &> /dev/null
+ rm -rf "${ED}"usr/share/libtool &> /dev/null || die
+
+ # fortran header cannot be wrapped (bug #540508), workaround part 2
+ if use fortran; then
+ mv "${T}"/fortran/mpif* "${ED}"usr/include || die
+ fi
# Avoid collisions with libevent
- rm -rf "${ED}"/usr/include/event2 &> /dev/null
+ rm -rf "${ED}"usr/include/event2 &> /dev/null || die
# Remove la files, no static libs are installed and we have pkg-config
- find "${ED}"/usr/$(get_libdir)/ -type f -name '*.la' -delete
+ find "${ED}" -name '*.la' -delete || die
if use java; then
- local mpi_jar="${ED}"/usr/$(get_libdir)/mpi.jar
+ local mpi_jar="${ED}"usr/$(get_libdir)/mpi.jar
java-pkg_dojar "${mpi_jar}"
# We don't want to install the jar file twice
# so let's clean after ourselves.
rm "${mpi_jar}" || die
fi
- dodoc README AUTHORS NEWS VERSION || die
-}
-
-src_test() {
- # Doesn't work with the default src_test as the dry run (-n) fails.
- emake -j1 check
+ einstalldocs
}