pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/mk
Module Name: pkgsrc
Committed By: thor
Date: Tue May 11 21:30:57 UTC 2021
Modified Files:
pkgsrc/mk: mpi.buildlink3.mk
Log Message:
mk/mpi.buildlink3.mk: Add MPI_TYPE=native and diagnostics
This enables use of MPI compiler wrappers present in the host
system via MPI_TYPE=native. Also, it checks for conflicts with
a preintalled different MPI choice from pkgsrc and.
To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 pkgsrc/mk/mpi.buildlink3.mk
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/mk/mpi.buildlink3.mk
diff -u pkgsrc/mk/mpi.buildlink3.mk:1.5 pkgsrc/mk/mpi.buildlink3.mk:1.6
--- pkgsrc/mk/mpi.buildlink3.mk:1.5 Mon Sep 2 02:23:02 2019
+++ pkgsrc/mk/mpi.buildlink3.mk Tue May 11 21:30:57 2021
@@ -1,15 +1,24 @@
-# $NetBSD: mpi.buildlink3.mk,v 1.5 2019/09/02 02:23:02 rillig Exp $
+# $NetBSD: mpi.buildlink3.mk,v 1.6 2021/05/11 21:30:57 thor 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".
+# The available MPI implementations are "mpich" and "openmpi",
+# or just whatever you have installed in the system (mpi wrapper
+# compiler names are standardized).
+#
+# You have to decide on one implementation and stick to it. Especially
+# with the native option, installing an MPI implementation from pkgsrc
+# will break things for programs that you built before.
#
# User-settable variables:
#
# MPI_TYPE
# This value represents the type of MPI we wish to use on the system.
+# Changing this value is only safe when you ensure that all MPI-using
+# packages are re-built, and if switching to native, the MPI package
+# from pkgsrc needs to be deinstalled first.
#
-# Possible: mpich, openmpi
+# Possible: mpich, openmpi, native
# Default: mpich
.if !defined(MPI_BUILDLINK3_MK)
@@ -19,12 +28,17 @@ MPI_BUILDLINK3_MK= # define it
# 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
+_INST_MPI_PACKAGE!= ${PKG_INFO} -Q PKGPATH -F ${LOCALBASE}/bin/mpicc
+MPI_TYPE?= ${_INST_MPI_PACKAGE:T:S/-//}
+.endif
MPI_TYPE?= mpich # default to MPICH due to backward compatibility
-.if ${MPI_TYPE} == "mpich"
+.if ${MPI_TYPE} == "native"
+. if exists(${LOCALBASE}/bin/mpicc)
+PKG_FAIL_REASON+= \
+ "MPI installed from pkgsrc conflicts with native. Deinstall ${_INST_MPI_PACKAGE}."
+. endif
+.elif ${MPI_TYPE} == "mpich"
_MPI_PACKAGE= parallel/mpi-ch
.elif ${MPI_TYPE} == "openmpi"
_MPI_PACKAGE= parallel/openmpi
@@ -32,8 +46,14 @@ _MPI_PACKAGE= parallel/openmpi
PKG_FAIL_REASON+= \
"${MPI_TYPE} is not an acceptable MPI type for ${PKGNAME}."
.endif
-.endif
+.if defined(_MPI_PACKAGE)
+. if !defined(_INST_MPI_PACKAGE) || ${_INST_MPI_PACKAGE} == ${_MPI_PACKAGE}
.include "../../${_MPI_PACKAGE}/buildlink3.mk"
+. else
+PKG_FAIL_REASON+= \
+ "Attempt to switch MPI type to ${MPI_TYPE} conflicting with installed ${_INST_MPI_PACKAGE}."
+. endif
+.endif
.endif # MPI_BUILDLINK3_MK
Home |
Main Index |
Thread Index |
Old Index