/[gentoo-x86]/sys-cluster/openmpi/openmpi-1.5.5.ebuild
Gentoo

Contents of /sys-cluster/openmpi/openmpi-1.5.5.ebuild

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (hide annotations) (download)
Mon Jun 25 18:28:11 2012 UTC (2 years, 1 month ago) by jsbronder
Branch: MAIN
Changes since 1.2: +1 -3 lines
Drop blockers (sys-cluster/mpich and sys-cluster/lam-mpi) that are no longer in the tree.

(Portage version: 2.1.10.57/cvs/Linux x86_64)

1 alexxy 1.1 # Copyright 1999-2012 Gentoo Foundation
2     # Distributed under the terms of the GNU General Public License v2
3 jsbronder 1.3 # $Header: /var/cvsroot/gentoo-x86/sys-cluster/openmpi/openmpi-1.5.5.ebuild,v 1.2 2012/04/19 20:15:34 alexxy Exp $
4 alexxy 1.1
5     EAPI=4
6     inherit eutils fortran-2 multilib flag-o-matic toolchain-funcs versionator
7    
8     MY_P=${P/-mpi}
9     S=${WORKDIR}/${MY_P}
10    
11     IUSE_OPENMPI_FABRICS="
12     openmpi_fabrics_dapl
13     openmpi_fabrics_ofed
14     openmpi_fabrics_knem
15     openmpi_fabrics_open-mx
16     openmpi_fabrics_psm
17     openmpi_fabrics_sctp"
18    
19     IUSE_OPENMPI_RM="
20     openmpi_rm_pbs
21     openmpi_rm_slurm"
22    
23     IUSE_OPENMPI_OFED_FEATURES="
24     openmpi_ofed_features_control-hdr-padding
25     openmpi_ofed_features_connectx-xrc
26     openmpi_ofed_features_rdmacm
27     openmpi_ofed_features_dynamic-sl
28     openmpi_ofed_features_failover
29     "
30    
31     DESCRIPTION="A high-performance message passing library (MPI)"
32     HOMEPAGE="http://www.open-mpi.org"
33     SRC_URI="http://www.open-mpi.org/software/ompi/v$(get_version_component_range 1-2)/downloads/${MY_P}.tar.bz2"
34     LICENSE="BSD"
35     SLOT="0"
36     KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux"
37     IUSE="+cxx elibc_FreeBSD fortran heterogeneous ipv6 mpi-threads romio threads vt
38     ${IUSE_OPENMPI_FABRICS} ${IUSE_OPENMPI_RM} ${IUSE_OPENMPI_OFED_FEATURES}"
39    
40     REQUIRED_USE="openmpi_rm_slurm? ( !openmpi_rm_pbs )
41     openmpi_rm_pbs? ( !openmpi_rm_slurm )
42     openmpi_fabrics_psm? ( openmpi_fabrics_ofed )
43     openmpi_ofed_features_control-hdr-padding? ( openmpi_fabrics_ofed )
44     openmpi_ofed_features_connectx-xrc? ( openmpi_fabrics_ofed )
45     openmpi_ofed_features_rdmacm? ( openmpi_fabrics_ofed )
46     openmpi_ofed_features_dynamic-sl? ( openmpi_fabrics_ofed )
47     openmpi_ofed_features_failover? ( openmpi_fabrics_ofed )"
48    
49     RDEPEND="
50     !sys-cluster/mpich2
51     !sys-cluster/mpiexec
52     >=sys-apps/hwloc-1.3
53     elibc_FreeBSD? ( dev-libs/libexecinfo )
54     openmpi_fabrics_dapl? ( sys-infiniband/dapl )
55     openmpi_fabrics_ofed? ( sys-infiniband/ofed )
56     openmpi_fabrics_knem? ( sys-cluster/knem )
57     openmpi_fabrics_open-mx? ( sys-cluster/open-mx )
58     openmpi_fabrics_psm? ( sys-infiniband/infinipath-psm )
59     openmpi_fabrics_sctp? ( net-misc/lksctp-tools )
60     openmpi_rm_pbs? ( sys-cluster/torque )
61     openmpi_rm_slurm? ( sys-cluster/slurm )
62 alexxy 1.2 openmpi_ofed_features_rdmacm? ( sys-infiniband/librdmacm )
63 alexxy 1.1 fortran? ( virtual/fortran )
64     vt? (
65     !dev-libs/libotf
66     !app-text/lcdf-typetools
67     )
68     "
69     DEPEND="${RDEPEND}"
70    
71     pkg_setup() {
72     use fortran && fortran-2_pkg_setup
73     if use mpi-threads; then
74     echo
75     ewarn "WARNING: use of MPI_THREAD_MULTIPLE is still disabled by"
76     ewarn "default and officially unsupported by upstream."
77     ewarn "You may stop now and set USE=-mpi-threads"
78     echo
79     fi
80    
81     echo
82     elog "OpenMPI has an overwhelming count of configuration options."
83     elog "Don't forget the EXTRA_ECONF environment variable can let you"
84     elog "specify configure options if you find them necessary."
85     echo
86     }
87    
88     src_prepare() {
89     # Necessary for scalibility, see
90     # http://www.open-mpi.org/community/lists/users/2008/09/6514.php
91     if use threads; then
92     echo 'oob_tcp_listen_mode = listen_thread' \
93     >> opal/etc/openmpi-mca-params.conf
94     fi
95    
96     epatch "${FILESDIR}"/openmpi-r24328.patch
97     }
98    
99     src_configure() {
100     local myconf=(
101     --sysconfdir="${EPREFIX}/etc/${PN}"
102     --enable-pretty-print-stacktrace
103     --enable-orterun-prefix-by-default
104     --with-hwloc="${EPREFIX}/usr"
105     )
106    
107     if use mpi-threads; then
108     myconf+=(
109     --enable-mpi-thread-multiple
110     --enable-opal-multi-threads
111     )
112     fi
113    
114     if use fortran; then
115     if [[ $(tc-getFC) =~ g77 ]]; then
116     myconf+=(--disable-mpi-f90)
117     elif [[ $(tc-getFC) =~ if ]]; then
118     # Enabled here as gfortran compile times are huge with this enabled.
119     myconf+=(--with-mpi-f90-size=medium)
120     fi
121     else
122     myconf+=(--disable-mpi-f90 --disable-mpi-f77)
123     fi
124    
125     ! use vt && myconf+=(--enable-contrib-no-build=vt)
126    
127     econf "${myconf[@]}" \
128     $(use_enable cxx mpi-cxx) \
129     $(use_enable romio io-romio) \
130     $(use_enable heterogeneous) \
131     $(use_enable ipv6) \
132     $(use_with openmpi_fabrics_dapl udapl "${EPREFIX}"/usr) \
133     $(use_with openmpi_fabrics_ofed openib "${EPREFIX}"/usr) \
134     $(use_with openmpi_fabrics_knem knem "${EPREFIX}"/usr) \
135     $(use_with openmpi_fabrics_open-mx mx "${EPREFIX}"/usr) \
136     $(use_with openmpi_fabrics_psm psm "${EPREFIX}"/usr) \
137     $(use_enable openmpi_ofed_features_control-hdr-padding openib-control-hdr-padding) \
138     $(use_enable openmpi_ofed_features_connectx-xrc openib-connectx-xrc) \
139     $(use_enable openmpi_ofed_features_rdmacm openib-rdmacm) \
140     $(use_enable openmpi_ofed_features_dynamic-sl openib-dynamic-sl) \
141     $(use_enable openmpi_ofed_features_failover btl-openib-failover) \
142     $(use_with openmpi_fabrics_sctp sctp) \
143     $(use_with openmpi_rm_pbs tm) \
144     $(use_with openmpi_rm_slurm slurm)
145     }
146    
147     src_install () {
148     emake DESTDIR="${D}" install || die "make install failed"
149     # From USE=vt see #359917
150     rm "${ED}"/usr/share/libtool &> /dev/null
151     dodoc README AUTHORS NEWS VERSION || die
152     }
153    
154     src_test() {
155     # Doesn't work with the default src_test as the dry run (-n) fails.
156     emake -j1 check || die "emake check failed"
157     }

  ViewVC Help
Powered by ViewVC 1.1.20