Skip to content
Browse files

Introduce common point to depend on MPI:

- detect and use already installed MPI package;
- use MPI_TYPE to determine which MPI package to use.
Support MPICH2 and OpenMPI.
  • Loading branch information...
1 parent ead184b commit cd27e67631476344032e3a211027c3cc2ca5ec66 asau committed
Showing with 39 additions and 0 deletions.
  1. +39 −0 mk/mpi.buildlink3.mk
View
39 mk/mpi.buildlink3.mk
@@ -0,0 +1,39 @@
+# $NetBSD: mpi.buildlink3.mk,v 1.1 2010/05/16 11:07:39 asau Exp $
+#
+# This Makefile fragment is meant to be included by packages
+# that use any MPI implementation instead of one particular one.
+# The available MPI implementations are "mpich" and "openmpi".
+#
+# === User-settable variables ===
+#
+# MPI_TYPE
+# This value represents the type of MPI we wish to use on the system.
+#
+# Possible: mpich, openmpi
+# Default: mpich
+
+.if !defined(MPI_BUILDLINK3_MK)
+MPI_BUILDLINK3_MK= # define it
+
+.include "../../mk/bsd.prefs.mk"
+
+# Try to find if we have anything installed already
+.if exists($(LOCALBASE)/bin/mpicc)
+_MPI_PACKAGE!= $(PKG_INFO) -Q PKGPATH -F $(LOCALBASE)/bin/mpicc
+MPI_TYPE?= $(_MPI_PACKAGE:T)
+.else
+
+MPI_TYPE?= mpich # default to MPICH due to backward compatibility
+.if $(MPI_TYPE) == "mpich"
+_MPI_PACKAGE= parallel/mpi-ch
+.elif $(MPI_TYPE) == "openmpi"
+_MPI_PACKAGE= parallel/openmpi
+.else # invalid or unimplemented type
+PKG_FAIL_REASON= \
+ "${MPI_TYPE} is not an acceptable MPI type for ${PKGNAME}."
+.endif
+.endif
+
+.include "../../$(_MPI_PACKAGE)/buildlink3.mk"
+
+.endif # MPI_BUILDLINK3_MK

0 comments on commit cd27e67

Please sign in to comment.
Something went wrong with that request. Please try again.