Lines 6-12
Link Here
|
6 |
|
6 |
|
7 |
FORTRAN_NEEDED=fortran |
7 |
FORTRAN_NEEDED=fortran |
8 |
|
8 |
|
9 |
inherit autotools cuda eutils flag-o-matic fortran-2 multilib toolchain-funcs versionator |
9 |
inherit autotools cuda eutils flag-o-matic fortran-2 multilib toolchain-funcs versionator multilib-minimal |
10 |
|
10 |
|
11 |
MY_P=${P/-mpi} |
11 |
MY_P=${P/-mpi} |
12 |
S=${WORKDIR}/${MY_P} |
12 |
S=${WORKDIR}/${MY_P} |
Lines 54-68
Link Here
|
54 |
!app-text/lcdf-typetools |
54 |
!app-text/lcdf-typetools |
55 |
)" |
55 |
)" |
56 |
|
56 |
|
|
|
57 |
# dev-util/nvidia-cuda-toolkit is always multilib |
57 |
RDEPEND=" |
58 |
RDEPEND=" |
58 |
!sys-cluster/mpich |
59 |
!sys-cluster/mpich |
59 |
!sys-cluster/mpich2 |
60 |
!sys-cluster/mpich2 |
60 |
!sys-cluster/mpiexec |
61 |
!sys-cluster/mpiexec |
61 |
dev-libs/libevent |
62 |
>=dev-libs/libevent-2.0.21[${MULTILIB_USEDEP}] |
62 |
dev-libs/libltdl:0 |
63 |
dev-libs/libltdl:0[${MULTILIB_USEDEP}] |
63 |
>=sys-apps/hwloc-1.9.1[numa?] |
64 |
>=sys-apps/hwloc-1.10.0-r2[${MULTILIB_USEDEP},numa?] |
64 |
sys-libs/zlib |
65 |
>=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] |
65 |
cuda? ( dev-util/nvidia-cuda-toolkit ) |
66 |
cuda? ( >=dev-util/nvidia-cuda-toolkit-6.5.19-r1 ) |
66 |
elibc_FreeBSD? ( dev-libs/libexecinfo ) |
67 |
elibc_FreeBSD? ( dev-libs/libexecinfo ) |
67 |
openmpi_fabrics_ofed? ( sys-infiniband/ofed ) |
68 |
openmpi_fabrics_ofed? ( sys-infiniband/ofed ) |
68 |
openmpi_fabrics_knem? ( sys-cluster/knem ) |
69 |
openmpi_fabrics_knem? ( sys-cluster/knem ) |
Lines 74-79
Link Here
|
74 |
" |
75 |
" |
75 |
DEPEND="${RDEPEND}" |
76 |
DEPEND="${RDEPEND}" |
76 |
|
77 |
|
|
|
78 |
MULTILIB_WRAPPED_HEADERS=( |
79 |
/usr/include/mpi.h |
80 |
) |
81 |
|
77 |
pkg_setup() { |
82 |
pkg_setup() { |
78 |
fortran-2_pkg_setup |
83 |
fortran-2_pkg_setup |
79 |
|
84 |
|
Lines 106-112
Link Here
|
106 |
AT_M4DIR=config eautoreconf |
111 |
AT_M4DIR=config eautoreconf |
107 |
} |
112 |
} |
108 |
|
113 |
|
109 |
src_configure() { |
114 |
multilib_src_configure() { |
110 |
local myconf=( |
115 |
local myconf=( |
111 |
--sysconfdir="${EPREFIX}/etc/${PN}" |
116 |
--sysconfdir="${EPREFIX}/etc/${PN}" |
112 |
--enable-pretty-print-stacktrace |
117 |
--enable-pretty-print-stacktrace |
Lines 120-126
Link Here
|
120 |
--enable-opal-multi-threads) |
125 |
--enable-opal-multi-threads) |
121 |
fi |
126 |
fi |
122 |
|
127 |
|
123 |
if use fortran; then |
128 |
if multilib_is_native_abi && use fortran; then |
124 |
myconf+=(--enable-mpi-fortran=all) |
129 |
myconf+=(--enable-mpi-fortran=all) |
125 |
else |
130 |
else |
126 |
myconf+=(--enable-mpi-fortran=no) |
131 |
myconf+=(--enable-mpi-fortran=no) |
Lines 128-170
Link Here
|
128 |
|
133 |
|
129 |
! use vt && myconf+=(--enable-contrib-no-build=vt) |
134 |
! use vt && myconf+=(--enable-contrib-no-build=vt) |
130 |
|
135 |
|
131 |
econf "${myconf[@]}" \ |
136 |
ECONF_SOURCE=${S} econf "${myconf[@]}" \ |
132 |
$(use_enable cxx mpi-cxx) \ |
137 |
$(use_enable cxx mpi-cxx) \ |
133 |
$(use_with cma) \ |
138 |
$(use_with cma) \ |
134 |
$(use_with cuda cuda "${EPREFIX}"/opt/cuda) \ |
139 |
$(use_with cuda cuda "${EPREFIX}"/opt/cuda) \ |
135 |
$(use_enable romio io-romio) \ |
140 |
$(use_enable romio io-romio) \ |
136 |
$(use_enable heterogeneous) \ |
141 |
$(use_enable heterogeneous) \ |
137 |
$(use_enable ipv6) \ |
142 |
$(use_enable ipv6) \ |
138 |
$(use_with openmpi_fabrics_ofed verbs "${EPREFIX}"/usr) \ |
143 |
$(multilib_native_use_with openmpi_fabrics_ofed verbs "${EPREFIX}"/usr) \ |
139 |
$(use_with openmpi_fabrics_knem knem "${EPREFIX}"/usr) \ |
144 |
$(multilib_native_use_with openmpi_fabrics_knem knem "${EPREFIX}"/usr) \ |
140 |
$(use_with openmpi_fabrics_open-mx mx "${EPREFIX}"/usr) \ |
145 |
$(multilib_native_use_with openmpi_fabrics_open-mx mx "${EPREFIX}"/usr) \ |
141 |
$(use_with openmpi_fabrics_psm psm "${EPREFIX}"/usr) \ |
146 |
$(multilib_native_use_with openmpi_fabrics_psm psm "${EPREFIX}"/usr) \ |
142 |
$(use_enable openmpi_ofed_features_control-hdr-padding openib-control-hdr-padding) \ |
147 |
$(multilib_native_use_enable openmpi_ofed_features_control-hdr-padding openib-control-hdr-padding) \ |
143 |
$(use_enable openmpi_ofed_features_connectx-xrc openib-connectx-xrc) \ |
148 |
$(multilib_native_use_enable openmpi_ofed_features_connectx-xrc openib-connectx-xrc) \ |
144 |
$(use_enable openmpi_ofed_features_rdmacm openib-rdmacm) \ |
149 |
$(multilib_native_use_enable openmpi_ofed_features_rdmacm openib-rdmacm) \ |
145 |
$(use_enable openmpi_ofed_features_udcm openib-udcm) \ |
150 |
$(multilib_native_use_enable openmpi_ofed_features_udcm openib-udcm) \ |
146 |
$(use_enable openmpi_ofed_features_dynamic-sl openib-dynamic-sl) \ |
151 |
$(multilib_native_use_enable openmpi_ofed_features_dynamic-sl openib-dynamic-sl) \ |
147 |
$(use_enable openmpi_ofed_features_failover btl-openib-failover) \ |
152 |
$(multilib_native_use_enable openmpi_ofed_features_failover btl-openib-failover) \ |
148 |
$(use_with openmpi_rm_pbs tm) \ |
153 |
$(multilib_native_use_with openmpi_rm_pbs tm) \ |
149 |
$(use_with openmpi_rm_slurm slurm) |
154 |
$(multilib_native_use_with openmpi_rm_slurm slurm) |
150 |
} |
155 |
} |
151 |
|
156 |
|
152 |
src_install () { |
157 |
multilib_src_install() { |
153 |
emake DESTDIR="${D}" install |
158 |
emake DESTDIR="${D}" install |
154 |
|
159 |
|
|
|
160 |
# Remove la files, no static libs are installed and we have pkg-config |
161 |
find "${ED}"/usr/$(get_libdir)/ -type f -name '*.la' -delete |
162 |
|
163 |
# fortran header cannot be wrapped (bug #540508), workaround part 1 |
164 |
if multilib_is_native_abi && use fortran; then |
165 |
mkdir "${T}"/fortran || die |
166 |
mv "${ED}"/usr/include/mpif* "${T}"/fortran || die |
167 |
else |
168 |
#some fortran files get installed unconditionally |
169 |
rm "${ED}"/usr/include/mpif* "${ED}"/usr/bin/mpif* || die |
170 |
fi |
171 |
} |
172 |
|
173 |
multilib_src_install_all() { |
155 |
# From USE=vt see #359917 |
174 |
# From USE=vt see #359917 |
156 |
rm "${ED}"/usr/share/libtool &> /dev/null |
175 |
rm "${ED}"/usr/share/libtool &> /dev/null |
157 |
|
176 |
|
|
|
177 |
# fortran header cannot be wrapped (bug #540508), workaround part 2 |
178 |
if use fortran; then |
179 |
mv "${T}"/fortran/mpif* "${ED}"/usr/include || die |
180 |
fi |
181 |
|
158 |
# Avoid collisions with libevent |
182 |
# Avoid collisions with libevent |
159 |
rm -rf "${ED}"/usr/include/event2 &> /dev/null |
183 |
rm -rf "${ED}"/usr/include/event2 &> /dev/null |
160 |
|
184 |
|
161 |
# Remove la files, no static libs are installed and we have pkg-config |
|
|
162 |
find "${ED}"/usr/$(get_libdir)/ -type f -name '*.la' -delete |
163 |
|
164 |
dodoc README AUTHORS NEWS VERSION || die |
185 |
dodoc README AUTHORS NEWS VERSION || die |
165 |
} |
186 |
} |
166 |
|
187 |
|
167 |
src_test() { |
188 |
multilib_src_test() { |
168 |
# Doesn't work with the default src_test as the dry run (-n) fails. |
189 |
# Doesn't work with the default src_test as the dry run (-n) fails. |
169 |
emake -j1 check |
190 |
emake -j1 check |
170 |
} |
191 |
} |