mirror of
https://git.freebsd.org/ports.git
synced 2025-04-30 02:26:38 -04:00
Clang does not support 16 byte atomic operations without -mcx16 on amd64 Upstream issue: https://github.com/open-mpi/ompi/issues/13134 PR: 285341 MFH: 2025Q1
117 lines
3.4 KiB
Makefile
117 lines
3.4 KiB
Makefile
PORTNAME= openmpi
|
|
DISTVERSION= 5.0.7
|
|
PORTREVISION= 1
|
|
CATEGORIES= net parallel
|
|
MASTER_SITES= https://download.open-mpi.org/release/open-mpi/v${PORTVERSION:R}/
|
|
|
|
MAINTAINER= laurent.chardon@gmail.com
|
|
COMMENT= High Performance Message Passing Library
|
|
WWW= https://www.open-mpi.org/
|
|
|
|
LICENSE= BSD3CLAUSE
|
|
LICENSE_FILE= ${WRKSRC}/LICENSE
|
|
|
|
NOT_FOR_ARCHS= armv6 armv7 i386 powerpc
|
|
NOT_FOR_ARCHS_REASON= Not supported on 32-bits - see net/openmpi4
|
|
|
|
LIB_DEPENDS= libhwloc.so:devel/hwloc2 \
|
|
libevent.so:devel/libevent \
|
|
libmunge.so:security/munge
|
|
|
|
# :keepla because port uses lt_dlopen
|
|
USES= compiler:c11 fortran gmake libtool:keepla localbase perl5 \
|
|
pkgconfig python:build shebangfix tar:bzip2
|
|
USE_LDCONFIG= ${PREFIX}/${MPIDIR}/lib
|
|
USE_PERL5= build
|
|
SHEBANG_FILES= ompi/mca/common/monitoring/profile2mat.pl \
|
|
ompi/mca/common/monitoring/aggregate_profile.pl
|
|
|
|
MPIBASE?= mpi
|
|
MPIDIR?= ${MPIBASE}/${PKGBASE}
|
|
|
|
GNU_CONFIGURE= yes
|
|
GNU_CONFIGURE_PREFIX= ${PREFIX}/${MPIDIR}
|
|
GNU_CONFIGURE_MANPREFIX=${PREFIX}/${MPIDIR}/share
|
|
CONFIGURE_ARGS+= --program-prefix= \
|
|
--with-hwloc=external \
|
|
--without-ofi \
|
|
--enable-mpi-fortran=usempif08 \
|
|
--with-libevent=external \
|
|
--with-pmix=internal \
|
|
--enable-mca-no-build=verbs,btl_openib,oob_ud \
|
|
--with-wrapper-ldflags=-Wl,-rpath=-Wl,-rpath=${LOCALBASE}/lib/gcc${_GCC_VER}
|
|
TEST_TARGET= check
|
|
CFLAGS+= ${CFLAGS_F2018}
|
|
PIE_UNSAFE= yes
|
|
CONFLICTS_INSTALL= openmpi4-4*
|
|
|
|
DOCSDIR= ${PREFIX}/${MPIDIR}/share/doc
|
|
MANDIRS= ${PREFIX}/${MPIDIR}/share/man
|
|
BINARY_ALIAS= python3=${PYTHON_CMD}
|
|
PLIST_SUB+= MPIDIR=${MPIDIR}
|
|
PORTDOCS= *
|
|
|
|
OPTIONS_DEFINE= AVX DEBUG DOCS IPV6 ROMIO SLURM
|
|
OPTIONS_DEFAULT= ROMIO
|
|
OPTIONS_EXCLUDE_aarch64= AVX
|
|
OPTIONS_EXCLUDE_armv6= AVX SLURM
|
|
OPTIONS_EXCLUDE_armv7= AVX SLURM
|
|
OPTIONS_EXCLUDE_i386= SLURM
|
|
OPTIONS_EXCLUDE_mips= AVX SLURM
|
|
OPTIONS_EXCLUDE_mips64= AVX
|
|
OPTIONS_EXCLUDE_powerpc= AVX SLURM
|
|
OPTIONS_EXCLUDE_powerpc64= AVX
|
|
OPTIONS_EXCLUDE_powerpc64le= AVX
|
|
OPTIONS_EXCLUDE_riscv64= AVX
|
|
OPTIONS_SUB= yes
|
|
|
|
AVX_DESC= Enable AVX instructions
|
|
ROMIO_DESC= Enable romio mpi-io support
|
|
SLURM_DESC= Enable SLURM support
|
|
|
|
AVX_CONFIGURE_OFF= --enable-mca-no-build=op-avx
|
|
|
|
DEBUG_CONFIGURE_ENABLE= debug
|
|
DEBUG_INSTALL_TARGET_OFF= install-strip
|
|
|
|
DOCS_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinx>0:textproc/py-sphinx@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}recommonmark>0:textproc/py-recommonmark@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}sphinx_rtd_theme>0:textproc/py-sphinx_rtd_theme@${PY_FLAVOR}
|
|
|
|
IPV6_CONFIGURE_ENABLE= ipv6
|
|
|
|
ROMIO_CONFIGURE_OFF= --disable-io-romio
|
|
|
|
SLURM_LIB_DEPENDS= libslurm.so:sysutils/slurm-wlm
|
|
SLURM_CONFIGURE_WITH= slurm
|
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
.if ${FORTRAN_DEFAULT} == gfortran && ${GCC_DEFAULT} >= 10
|
|
FCFLAGS+= -fallow-argument-mismatch
|
|
.endif
|
|
|
|
# Both clang and gcc support half precision on these platforms
|
|
# Note: RISC-V can support half precision with Zhf extension
|
|
.if ${ARCH:Maarch64} || ${ARCH:Mamd64}
|
|
PLIST_SUB+= SHORTFLOAT=""
|
|
.else
|
|
PLIST_SUB+= SHORTFLOAT="@comment "
|
|
.endif
|
|
|
|
# clang does not support 16 byte atomic operations without -mcx16 on amd64
|
|
# See https://github.com/open-mpi/ompi/issues/13134
|
|
.if ${ARCH} == amd64 && ${COMPILER_TYPE} == clang
|
|
CFLAGS+= -mcx16
|
|
.endif
|
|
|
|
LIBDIR2FIX= oshmem/tools/wrappers opal/tools/wrappers \
|
|
3rd-party/openpmix ompi/tools/wrappers
|
|
|
|
pre-configure:
|
|
.for d in ${LIBDIR2FIX}
|
|
${REINPLACE_CMD} -e 's|$$(libdir)/pkgconfig|${LOCALBASE}/libdata/pkgconfig|g' \
|
|
${WRKSRC}/${d}/Makefile.in
|
|
.endfor
|
|
|
|
.include <bsd.port.post.mk>
|