Skip to content

Commit 178b3a9

Browse files
authored
Merge pull request #4533 from jedwards4b/mpi_serial_bld_updates
allow an external install of the mpi-serial library
2 parents 1a4f1e3 + de9a478 commit 178b3a9

File tree

4 files changed

+47
-14
lines changed

4 files changed

+47
-14
lines changed

CIME/Tools/Makefile

+28-11
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,13 @@ ifeq ($(strip $(MPILIB)), mpi-serial)
373373
MPIFC := $(SFC)
374374
MPICC := $(SCC)
375375
MPICXX := $(SCXX)
376-
CONFIG_ARGS += MCT_PATH=$(SHAREDLIBROOT)/$(SHAREDPATH)/mct/mpi-serial
376+
ifndef MPI_SERIAL_PATH
377+
CONFIG_ARGS += MCT_PATH=$(SHAREDLIBROOT)/$(SHAREDPATH)/mct/mpi-serial
378+
else
379+
CONFIG_ARGS += MCT_PATH=$(MPI_SERIAL_PATH)
380+
INC_MPI := $(MPI_SERIAL_PATH)/include
381+
LIB_MPI := $(MPI_SERIAL_PATH)/lib
382+
endif
377383
else
378384
CC := $(MPICC)
379385
FC := $(MPIFC)
@@ -567,9 +573,9 @@ ifdef MPAS_LIBDIR
567573
# used to build the MPAS dycore if needed.
568574
libmpas: cam_abortutils.o physconst.o
569575
$(MAKE) -C $(MPAS_LIBDIR) CC="$(CC)" FC="$(FC)" PIODEF="$(PIODEF)" \
570-
FFLAGS='$(FREEFLAGS) $(FFLAGS)' GPUFLAGS='$(GPUFLAGS)' \
571-
CASEROOT='$(CASEROOT)' COMPILER='$(COMPILER)' MACH='$(MACH)' \
572-
FCINCLUDES='$(INCLDIR) $(INCS) -I$(ABS_INSTALL_SHAREDPATH)/include -I$(ABS_ESMF_PATH)/include'
576+
FFLAGS='$(FREEFLAGS) $(FFLAGS)' GPUFLAGS='$(GPUFLAGS)' \
577+
CASEROOT='$(CASEROOT)' COMPILER='$(COMPILER)' MACH='$(MACH)' \
578+
FCINCLUDES='$(INCLDIR) $(INCS) -I$(ABS_INSTALL_SHAREDPATH)/include -I$(ABS_ESMF_PATH)/include'
573579

574580
dyn_comp.o: libmpas
575581
dyn_grid.o: libmpas
@@ -595,10 +601,12 @@ ifdef LAPACK_LIBDIR
595601
SLIBS += -L$(LAPACK_LIBDIR) -llapack -lblas
596602
endif
597603
ifdef LIB_MPI
598-
ifndef MPI_LIB_NAME
599-
SLIBS += -L$(LIB_MPI) -lmpi
600-
else
601-
SLIBS += -L$(LIB_MPI) -l$(MPI_LIB_NAME)
604+
ifndef MPI_SERIAL_PATH
605+
ifndef MPI_LIB_NAME
606+
SLIBS += -L$(LIB_MPI) -lmpi
607+
else
608+
SLIBS += -L$(LIB_MPI) -l$(MPI_LIB_NAME)
609+
endif
602610
endif
603611
endif
604612

@@ -919,12 +927,21 @@ GENF90 ?= $(CIMEROOT)/CIME/non_py/externals/genf90/genf90.pl
919927
.SUFFIXES: .F90 .F .f90 .f .c .cpp .o .in
920928

921929
ifeq ($(MPILIB),mpi-serial)
922-
MPISERIAL = $(INSTALL_SHAREDPATH)/lib/libmpi-serial.a
923-
MLIBS += -L$(INSTALL_SHAREDPATH)/lib -lmpi-serial
924-
CMAKE_OPTS += -DMPI_C_INCLUDE_PATH=$(INSTALL_SHAREDPATH)/include \
930+
ifdef MPI_SERIAL_PATH
931+
MPISERIAL = $(MPI_SERIAL_PATH)/lib/libmpi-serial.a
932+
MLIBS += -L$(MPI_SERIAL_PATH)/lib -lmpi-serial
933+
CMAKE_OPTS += -DMPI_C_INCLUDE_PATH=$(MPI_SERIAL_PATH)/include \
934+
-DMPI_Fortran_INCLUDE_PATH=$(MPI_SERIAL_PATH)/include \
935+
-DMPI_C_LIBRARIES=$(MPI_SERIAL_PATH)/lib/libmpi-serial.a \
936+
-DMPI_Fortran_LIBRARIES=$(MPI_SERIAL_PATH)/lib/libmpi-serial.a
937+
else
938+
MPISERIAL = $(INSTALL_SHAREDPATH)/lib/libmpi-serial.a
939+
MLIBS += -L$(INSTALL_SHAREDPATH)/lib -lmpi-serial
940+
CMAKE_OPTS += -DMPI_C_INCLUDE_PATH=$(INSTALL_SHAREDPATH)/include \
925941
-DMPI_Fortran_INCLUDE_PATH=$(INSTALL_SHAREDPATH)/include \
926942
-DMPI_C_LIBRARIES=$(INSTALL_SHAREDPATH)/lib/libmpi-serial.a \
927943
-DMPI_Fortran_LIBRARIES=$(INSTALL_SHAREDPATH)/lib/libmpi-serial.a
944+
endif
928945
endif
929946

930947
$(MCTLIBS) : $(MPISERIAL)

CIME/XML/machines.py

+9-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,14 @@
1212

1313

1414
class Machines(GenericXML):
15-
def __init__(self, infile=None, files=None, machine=None, extra_machines_dir=None):
15+
def __init__(
16+
self,
17+
infile=None,
18+
files=None,
19+
machine=None,
20+
extra_machines_dir=None,
21+
read_only=True,
22+
):
1623
"""
1724
initialize an object
1825
if a filename is provided it will be used,
@@ -46,7 +53,7 @@ def __init__(self, infile=None, files=None, machine=None, extra_machines_dir=Non
4653
else:
4754
expect(False, f"file not found {infile}")
4855

49-
GenericXML.__init__(self, infile, schema)
56+
GenericXML.__init__(self, infile, schema, read_only=read_only)
5057

5158
# Append the contents of $HOME/.cime/config_machines.xml if it exists.
5259
#

CIME/build_scripts/buildlib.mpi-serial

+5
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ def buildlib(bldroot, installpath, case):
5050
###############################################################################
5151
caseroot = case.get_value("CASEROOT")
5252
srcroot = case.get_value("SRCROOT")
53+
# check to see if MPI_SERIAL is installed
54+
with open(os.path.join(caseroot, "Macros.make"), "r") as f:
55+
for line in f:
56+
if "MPI_SERIAL_PATH" in line:
57+
return
5358

5459
customize_path = os.path.join(srcroot, "cime_config", "customize")
5560

CIME/non_py/src/timing/Makefile

+5-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,11 @@ ifeq ($(strip $(MPILIB)), mpi-serial)
5252
FC := $(SFC)
5353
MPIFC := $(SFC)
5454
MPICC := $(SCC)
55-
INCLDIR += -I$(GPTL_LIBDIR)/../mct/mpi-serial
55+
ifdef MPI_SERIAL_PATH
56+
INCLDIR += -I$(MPI_SERIAL_PATH)/include
57+
else
58+
INCLDIR += -I$(GPTL_LIBDIR)/../mct/mpi-serial
59+
endif
5660
else
5761
CC := $(MPICC)
5862
FC := $(MPIFC)

0 commit comments

Comments
 (0)