# Template file for 'openmpi'
pkgname=openmpi
version=5.0.7
revision=1
# OpenMPI >= 5 is 64-bit only
archs="x86_64* aarch64* ppc64* riscv64*"
build_style=gnu-configure
configure_args="--enable-ipv6 --with-pmix=internal --with-prrte=internal \
 --libdir=\${prefix}/lib${XBPS_TARGET_WORDSIZE} --sysconfdir=/etc/openmpi \
 --with-hwloc=${XBPS_CROSS_BASE}/usr "
hostmakedepends="perl pkg-config python3"
makedepends="libgomp-devel libhwloc-devel zlib-devel libevent-devel"
conf_files="/etc/openmpi/*"
short_desc="High Performance Message Passing Library"
maintainer="Andrew J. Hesford <ajh@sideband.org>"
license="BSD-3-Clause"
homepage="https://www.open-mpi.org/"
distfiles="https://download.open-mpi.org/release/open-mpi/v${version%.*}/openmpi-${version}.tar.bz2"
checksum=119f2009936a403334d0df3c0d74d5595a32d99497f9b1d41e90019fee2fc2dd
lib32disabled=yes

if [ "${CROSS_BUILD}" ]; then
	# configure can't figure out cross-fortran
	configure_args+=" --enable-mpi-fortran=none --enable-oshmem-fortran=none"
else
	hostmakedepends+=" gcc-fortran"
	makedepends+=" libgfortran-devel"
fi

post_patch() {
	vsed -e 's,sys/unistd.h,unistd.h,g' -i opal/include/opal/sys/cma.h
}

pre_configure() {
	# OpenMPI only respects FCFLAGS now
	export FCFLAGS="${FFLAGS}"
}

post_install() {
	vlicense LICENSE

	# Avoid a conflict with PuTTY's pterm executable
	mv "${DESTDIR}"/usr/bin/{,prrte-}pterm
	mv "${DESTDIR}"/usr/share/man/man1/{,prrte-}pterm.1
}

libopenmpi_package() {
	short_desc+=" - runtime libraries"
	pkg_install() {
		vmove usr/lib/*.so.*
	}
}

openmpi-devel_package() {
	depends="libopenmpi-${version}_${revision}
	 libhwloc-devel libevent-devel zlib-devel"
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/include
		vmove usr/lib/pkgconfig
		vmove usr/share/man/man3
		vmove "usr/lib/*.so"

		if [ -z "${CROSS_BUILD}" ]; then
			vmove "usr/lib/*.mod"
		fi
	}
}
