diff --git a/make-rules/mpi-macros.mk b/make-rules/mpi-macros.mk index 4b5db3190a1..297c75ce2e0 100644 --- a/make-rules/mpi-macros.mk +++ b/make-rules/mpi-macros.mk @@ -40,19 +40,31 @@ MPIFC.openmpi = mpif90 # Default to mpich MPI_IMPLEMENTATION ?= $(MPI.mpich) -MPI_COMPILER = $(COMPILER) MPICC = $(MPICC.$(MPI_IMPLEMENTATION)) MPICXX = $(MPICXX.$(MPI_IMPLEMENTATION)) MPIF77 = $(MPIF77.$(MPI_IMPLEMENTATION)) MPIFC = $(MPIFC.$(MPI_IMPLEMENTATION)) -# Define immplementatio specific paths +# Define compiler enviromnent +MPI_COMPILER = $(COMPILER) +MPI_COMPILER_ROOT= +MPI_COMPILER_LIBDIR= + +ifeq ($(strip $(MPI_COMPILER)),gcc) + +GCC_VERSION=7 +MPI_COMPILER_ROOT=$(GCC_ROOT) +MPI_COMPILER_LIBDIR=$(MPI_COMPILER_ROOT)/lib/$(ARCHLIBSUBDIR$(BITS)) + +endif + +# Define implementation specific paths MPI_BUNDLE = $(MPI_IMPLEMENTATION)-$(MPI_COMPILER) MPI_PREFIX.32 = $(USRLIBDIR)/$(MPI_IMPLEMENTATION)/$(MPI_COMPILER) MPI_PREFIX.64 = $(USRLIBDIR64)/$(MPI_IMPLEMENTATION)/$(MPI_COMPILER) -MPI_PREFIX = $(MPI_PREFIX.$(BITS)) +MPI_PREFIX = $(MPI_PREFIX.$(BITS)) MPI_BINDIR.32 = $(MPI_PREFIX.32)/bin MPI_BINDIR.64 = $(MPI_PREFIX.64)/bin @@ -64,19 +76,20 @@ MPI_SBINDIR = $(MPI_SBINDIR.$(BITS)) MPI_LIBDIR.32 = $(MPI_PREFIX.32)/lib MPI_LIBDIR.64 = $(MPI_PREFIX.64)/lib -MPI_LIBDIR = $(MPI_LIBDIR.$(BITS)) +MPI_LIBDIR = $(MPI_LIBDIR.$(BITS)) MPI_ETCDIR.32 = $(MPI_PREFIX.32)/etc MPI_ETCDIR.64 = $(MPI_PREFIX.64)/etc -MPI_ETCDIR = $(MPI_ETCDIR.$(BITS)) +MPI_ETCDIR = $(MPI_ETCDIR.$(BITS)) MPI_INCDIR = $(USRINCDIR)/$(MPI_IMPLEMENTATION) MPI_SHAREDIR = $(USRSHAREDIR) -MPI_DATADIR = $(MPI_SHAREDIR)/$(MPI_IMPLEMENTATION) -MPI_DOCDIR = $(USRSHAREDOCDIR)/$(MPI_IMPLEMENTATION) -MPI_HTMLDIR = $(USRSHAREDOCDIR)/www -MPI_MANDIR = $(USRSHAREMANDIR) +MPI_DATADIR = $(MPI_SHAREDIR)/$(MPI_IMPLEMENTATION) +MPI_DOCDIR = $(USRSHAREDOCDIR)/$(MPI_IMPLEMENTATION) +MPI_HTMLDIR = $(USRSHAREDOCDIR)/www +MPI_MANDIR = $(USRSHAREMANDIR) + # Create meta rule to trigger build for each listed implementation @@ -140,3 +153,5 @@ endef $(foreach mpi, $(COMPONENT_MPI_BUILD), $(eval $(call mpi-rule,$(mpi)))) endif + +COMPONENT_MPI_BUILD_DIR= $(BUILD_DIR_$(BITS)_$(MPI_IMPLEMENTATION))