summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mpich/PKGBUILD71
-rw-r--r--mpich/mpich.install13
-rw-r--r--mpich/mpich.profile3
3 files changed, 87 insertions, 0 deletions
diff --git a/mpich/PKGBUILD b/mpich/PKGBUILD
new file mode 100644
index 000000000..ead9fd5e1
--- /dev/null
+++ b/mpich/PKGBUILD
@@ -0,0 +1,71 @@
+# Maintainer: Erich Eckner <arch at eckner dot net>
+# Contributor: Jed Brown <jed@59A2.org>
+# Contributor: George Eleftheriou <eleftg>
+
+pkgname=mpich
+pkgver=3.4a2
+pkgrel=1
+pkgdesc="An improved implementation of the Message Passing Interface."
+url="https://mpich.org"
+arch=('i686' 'pentium4' 'x86_64')
+license=("custom")
+replaces=(mpich2)
+depends=('gcc-fortran' 'libxml2' 'openssh' 'numactl' 'pciutils')
+makedepends=('texlive-core' 'sowing')
+optdepends=("java-environment")
+install="${pkgname}.install"
+source=("http://www.mpich.org/static/downloads/${pkgver}/${pkgname}-${pkgver}.tar.gz"
+ "mpich.profile")
+sha256sums=('ca9b9a6d4d858f3f94d2ea1ed0b851fccbc6f2976eb08dfc3379be8c6278aa12'
+ 'b9716439a544511bf88618edeb40c3eb80f1b5d0d9369c30d750251feed02284')
+options=('!libtool')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # CFLAGS etc are normally written into the wrapper compilers. This
+ # gives surprising results, e.g. when the user wants to compile their
+ # program without optimization.
+ export MPICHLIB_CFLAGS="${CFLAGS}"; unset CFLAGS
+ export MPICHLIB_CXXFLAGS="${CXXFLAGS}"; unset CXXFLAGS
+ export MPICHLIB_CPPFLAGS="${CPPFLAGS}"; unset CPPFLAGS
+ export MPICHLIB_FFLAGS="${FFLAGS}"; unset FFLAGS
+ export MPICHLIB_FCFLAGS="${FCFLAGS}"; unset FCFLAGS
+ export MPICHLIB_LDFLAGS="${LDFLAGS}"; unset LDFLAGS
+
+ mkdir -p build
+ cd build
+
+ ../configure --prefix=/usr \
+ --with-device=ch3:nemesis \
+ --enable-error-checking=runtime \
+ --enable-error-messages=all \
+ --enable-g=meminit \
+ CC=gcc CXX=g++ FC=gfortran \
+ FFLAGS=-fallow-argument-mismatch \
+ FCFLAGS=-fallow-argument-mismatch
+
+ make
+ make mandoc
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}/build
+
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/build"
+ make DESTDIR="${pkgdir}" install
+
+ ln -sf mpiexec.hydra "${pkgdir}/usr/bin/mpiexec"
+ ln -sf mpiexec "${pkgdir}/usr/bin/mpirun"
+ ln -sf mpiexec.hydra "${pkgdir}/usr/bin/mpirun.hydra"
+
+ install -D -m644 "${srcdir}/${pkgname}-${pkgver}/COPYRIGHT" "${pkgdir}/usr/share/licenses/mpich/license.txt"
+ install -D -m755 "${srcdir}/${pkgname}.profile" "${pkgdir}/etc/profile.d/mpich.sh"
+
+ mkdir -p "${pkgdir}/etc/ld.so.conf.d"
+ echo /opt/mpich/lib > "${pkgdir}/etc/ld.so.conf.d/mpich.conf"
+}
diff --git a/mpich/mpich.install b/mpich/mpich.install
new file mode 100644
index 000000000..fda817101
--- /dev/null
+++ b/mpich/mpich.install
@@ -0,0 +1,13 @@
+# arg 1: the new package version
+post_install() {
+ echo " *** Documentation installed at /opt/mpich/share/doc/mpich/install.pdf"
+ echo " *** /opt/mpich/bin is appended to PATH, see /etc/profile.d/mpich.sh"
+ echo " *** Some binary names match those of OpenMPI located in /usr (if installed)"
+ /bin/true
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
diff --git a/mpich/mpich.profile b/mpich/mpich.profile
new file mode 100644
index 000000000..9cbd6f9ed
--- /dev/null
+++ b/mpich/mpich.profile
@@ -0,0 +1,3 @@
+export PATH=$PATH:/opt/mpich/bin
+export MANPATH=$MANPATH:/opt/mpich/share/man
+export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/mpich/lib/pkgconfig