mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-10 15:45:15 -04:00
134 lines
3.0 KiB
Bash
134 lines
3.0 KiB
Bash
# Copyright 2019-2022 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
FORTRAN_NEEDED="fortran"
|
|
|
|
inherit autotools fortran-2
|
|
|
|
DESCRIPTION="implementation of the OpenSHMEM specification"
|
|
HOMEPAGE="https://github.com/Sandia-OpenSHMEM/SOS"
|
|
SRC_URI="https://github.com/Sandia-OpenSHMEM/SOS/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
|
|
|
|
LICENSE="BSD public-domain"
|
|
SLOT="0"
|
|
KEYWORDS="~amd64"
|
|
IUSE_OFI_MR="
|
|
ofi_mr_basic
|
|
+ofi_mr_scalable
|
|
ofi_mr_rma-event
|
|
"
|
|
IUSE_TOTAL_DATA_ORDERING="
|
|
total_data_ordering_always
|
|
+total_data_ordering_check
|
|
total_data_ordering_never
|
|
"
|
|
IUSE="${IUSE_OFI_MR} ${IUSE_TOTAL_DATA_ORDERING} av-map bounce-buffers cma completion-polling cxx
|
|
debug error-checking fortran long-fortran-header manual-progress memcpy ofi ofi-fence openmp
|
|
+pmi portals4 profiling pthread-mutexes remote-virtual-addressing threads
|
|
thread-completion ucx xpmem"
|
|
|
|
RDEPEND="
|
|
ofi? ( sys-block/libfabric )
|
|
pmi? ( || ( sys-cluster/slurm sys-cluster/pmix[pmi] ) )
|
|
portals4? ( sys-cluster/portals4 )
|
|
ucx? ( sys-cluster/ucx )
|
|
xpmem? ( sys-kernel/xpmem )
|
|
"
|
|
DEPEND="${RDEPEND}"
|
|
|
|
REQUIRED_USE="
|
|
^^ ( ${IUSE_OFI_MR/+/} )
|
|
^^ ( ${IUSE_TOTAL_DATA_ORDERING/+/} )
|
|
?? ( cma xpmem )
|
|
?? ( ofi portals4 )
|
|
"
|
|
|
|
pkg_setup() {
|
|
FORTRAN_NEED_OPENMP=0
|
|
use openmp && FORTRAN_NEED_OPENMP=1
|
|
|
|
fortran-2_pkg_setup
|
|
}
|
|
|
|
src_prepare() {
|
|
default
|
|
|
|
#copied from bootstrap
|
|
if [[ ! -d ./config ]]; then
|
|
mkdir ./config || die
|
|
fi
|
|
FILES=./man/*.1
|
|
echo -n "dist_man1_MANS =" > ./man/Makefile.am || die
|
|
for f in $FILES
|
|
do
|
|
echo -n " $(basename $f)" >> ./man/Makefile.am || die
|
|
done
|
|
FILES=./man/*.3
|
|
echo -e -n "\ndist_man3_MANS =" >> ./man/Makefile.am || die
|
|
for f in $FILES
|
|
do
|
|
echo -n " $(basename $f)" >> ./man/Makefile.am || die
|
|
done
|
|
echo -e "\n" >> ./man/Makefile.am || die
|
|
|
|
eautoreconf
|
|
}
|
|
|
|
src_configure() {
|
|
if use pmi; then
|
|
export CC=mpicc
|
|
export CXX=mpicxx
|
|
fi
|
|
|
|
local ofimr
|
|
use ofi_mr_basic && ofimr="basic"
|
|
use ofi_mr_scalable && ofimr="scalable"
|
|
use ofi_mr_rma-event && ofimr="rma-event"
|
|
|
|
local tda
|
|
use total_data_ordering_always && tda="always"
|
|
use total_data_ordering_check && tda="check"
|
|
use total_data_ordering_never && tda="never"
|
|
|
|
local myconf=(
|
|
--disable-picky
|
|
--disable-pmi-simple
|
|
--disable-rpm-prefix
|
|
--enable-ofi-mr="${ofimr}"
|
|
--enable-total-data-ordering="${tda}"
|
|
$(use_enable av-map)
|
|
$(use_enable bounce-buffers)
|
|
$(use_enable completion-polling)
|
|
$(use_enable cxx)
|
|
$(use_enable debug)
|
|
$(use_enable error-checking)
|
|
$(use_enable fortran)
|
|
$(use_enable long-fortran-header)
|
|
$(use_enable manual-progress)
|
|
$(use_enable memcpy)
|
|
$(use_enable ofi-fence)
|
|
$(use_enable openmp)
|
|
$(use_enable pmi pmi-mpi)
|
|
$(use_enable profiling)
|
|
$(use_enable pthread-mutexes)
|
|
$(use_enable remote-virtual-addressing)
|
|
$(use_enable threads)
|
|
$(use_enable thread-completion)
|
|
|
|
$(use_with cma)
|
|
$(use_with ofi)
|
|
$(use_with pmi)
|
|
$(use_with portals4)
|
|
$(use_with ucx)
|
|
$(use_with xpmem)
|
|
)
|
|
econf "${myconf[@]}"
|
|
}
|
|
|
|
src_install() {
|
|
default
|
|
find "${ED}" -name '*.la' -delete || die
|
|
}
|