# Template file for 'openmpi'
pkgname=openmpi
version=4.1.4
revision=1
build_style=gnu-configure
configure_args="--enable-ipv6 --with-hwloc=${XBPS_CROSS_BASE}/usr
 --libdir=\${prefix}/lib${XBPS_TARGET_WORDSIZE}"
hostmakedepends="perl pkg-config automake libtool"
makedepends="libgomp-devel libhwloc-devel zlib-devel libevent-devel"
conf_files="
 /etc/openmpi-default-hostfile
 /etc/openmpi-mca-params.conf
 /etc/openmpi-totalview.tcl"
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="${homepage}/software/ompi/v${version%.*}/downloads/${pkgname}-${version}.tar.bz2"
checksum=92912e175fd1234368c8730c03f4996fe5942e7479bb1d10059405e7f2b3930d
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

if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
	makedepends+=" libatomic-devel"
	export LIBS="-latomic"
fi

post_patch() {
	vsed -e 's,sys/unistd.h,unistd.h,g' -i opal/include/opal/sys/cma.h
	vsed -e '1i#include <unistd.h>' -i opal/mca/pmix/pmix3x/pmix/include/pmix_server.h
}

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

post_install() {
	vlicense LICENSE
	# https://github.com/void-linux/void-packages/pull/28996#issuecomment-784255185
	mv "${DESTDIR}/usr/lib/ompi_monitoring_prof.so" "${DESTDIR}/usr/lib/openmpi"
}

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"
	}
}
