Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/extra/openmpi4/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'extra/openmpi4/PKGBUILD')
-rw-r--r--extra/openmpi4/PKGBUILD115
1 files changed, 115 insertions, 0 deletions
diff --git a/extra/openmpi4/PKGBUILD b/extra/openmpi4/PKGBUILD
new file mode 100644
index 00000000..295cc9a6
--- /dev/null
+++ b/extra/openmpi4/PKGBUILD
@@ -0,0 +1,115 @@
+# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
+# Maintainer: David Runge <dvzrv@archlinux.org>
+# Contributor: Anatol Pomozov <anatol dot pomozov at gmail>
+# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
+
+pkgname=openmpi4
+_pkgname=${pkgname%4}
+pkgver=4.1.6
+pkgrel=3
+pkgdesc='High performance message passing library (MPI)'
+arch=(x86_64 pentium4 i686 i486)
+url='https://www.open-mpi.org'
+license=('custom:OpenMPI')
+depends=(
+ gcc-libs
+ glibc
+ hwloc
+ libevent
+ libnl
+ openpmix
+ openssh
+ zlib
+)
+makedepends=(
+ cuda
+ gcc-fortran
+ valgrind
+)
+optdepends=(
+ 'cuda: cuda support'
+ 'gcc-fortran: fortran support'
+ 'perl: for aggregate_profile.pl and profile2mat.pl'
+)
+provides=(
+ openmpi
+ libmca_common_cuda.so
+ libmca_common_monitoring.so
+ libmca_common_ompio.so
+ libmca_common_sm.so
+ libmpi.so
+ libmpi_cxx.so
+ libmpi_mpifh.so
+ libmpi_usempi_ignore_tkr.so
+ libmpi_usempif08.so
+ libompitrace.so
+ libopen-pal.so
+ libopen-rte.so
+)
+conflicts=(openmpi)
+replaces=(openmpi)
+source=(
+ https://download.open-mpi.org/release/open-mpi/v${pkgver%.*}/${pkgname%4}-$pkgver.tar.bz2)
+sha256sums=('f740994485516deb63b5311af122c265179f5328a0d857a567b85db00b11e415')
+b2sums=('4f119e1ed9b8787f0f860295ab1721fe2fd5300b8e182230a9eba3a864680b02bbd30618cc6d798a693a121626fc0ad5f447144d9ba91becb734f1a530d7a23a')
+
+build() {
+ local configure_options=(
+ --prefix=/usr
+ --enable-builtin-atomics
+ --enable-memchecker
+ --enable-mpi-cxx
+ --enable-mpi-fortran=all
+ --enable-pretty-print-stacktrace
+ --libdir=/usr/lib
+ --sysconfdir=/etc/$_pkgname
+ --with-cuda=/opt/cuda
+ --with-hwloc=external
+ --with-libevent=external
+ --with-pmix=external
+ --with-valgrind
+ )
+ cd $_pkgname-$pkgver
+
+ # set environment variables for reproducible build
+ # see https://github.com/open-mpi/ompi/blob/main/docs/release-notes/general.rst
+ export HOSTNAME=buildhost
+ export USER=builduser
+
+ # TODO: depend on prrte with openmpi >= 5
+ # TODO: remove ac_cv_func_sem_open=no when there is a glibc release fixing https://sourceware.org/bugzilla/show_bug.cgi?id=30789
+ ac_cv_func_sem_open=no ./configure "${configure_options[@]}"
+ # prevent excessive overlinking due to libtool
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+ make V=1
+}
+
+check() {
+ make check -C $_pkgname-$pkgver
+}
+
+package() {
+ depends+=(libpmix.so)
+
+ make DESTDIR="$pkgdir" install -C $_pkgname-$pkgver
+ install -Dm 644 $_pkgname-$pkgver/LICENSE -t "$pkgdir/usr/share/licenses/$_pkgname/"
+}
+
+# vim: ts=2 sw=2 et:
+
+# -- Arch32 specific --
+
+# no CUDA
+makedepends=(${makedepends[@]//cuda/})
+eval "$(
+ declare -f build | \
+ sed '
+ /local configure_options.*/ a \
+ configure_options=(${configure_options[@]//--with-cuda=\\/opt\\/cuda})
+ '
+)"
+
+# new tests break happilly on 32-bit and with newer gccs
+unset check
+unset checkdepends
+