# Template file for 'openmpi'
pkgname=openmpi
version=4.1.3
revision=1
build_style=gnu-configure
configure_args="--enable-ipv6 --with-hwloc=${XBPS_CROSS_BASE}/usr
 --libdir=\${prefix}/lib${XBPS_TARGET_WORDSIZE}"
hostmakedepends="gcc-fortran libgomp-devel perl pkg-config automake libtool"
makedepends="libgfortran-devel 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=3d81d04c54efb55d3871a465ffb098d8d72c1f48ff1cbaf2580eb058567c0a3b
nocross="configure attempts to run target binaries"
lib32disabled=yes

post_extract() {
	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() {
	./autogen.pl --force

	# used wrongly upstream? but nocross anyway
	export CFLAGS="$CFLAGS $LDFLAGS"
	export CXXFLAGS="$CXXFLAGS $LDFLAGS"

	export CC_FOR_BUILD="$CC"
	export CFLAGS_FOR_BUILD="$CFLAGS"
	export CPP_FOR_BUILD="$CPP"
	export CXX_FOR_BUILD="$CXX"
	export CXXFLAGS_FOR_BUILD="$CXXFLAGS"
	export CPPFLAGS_FOR_BUILD="$CPPFLAGS"
	export LDFLAGS_FOR_BUILD="$LDFLAGS"
	export LIBS_FOR_BUILD="$LDFLAGS"
	export LIBS="$LDFLAGS"
}

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}"
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/include
		vmove usr/lib/pkgconfig
		vmove usr/share/man/man3
		vmove "usr/lib/*.so"
	}
}
