Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
101 changes: 54 additions & 47 deletions build/common.mk
Original file line number Diff line number Diff line change
Expand Up @@ -1459,6 +1459,60 @@ ESMF_F90LINKRPATHSTHIRD += $(ESMF_F90RPATHPREFIX)$(ESMF_ACC_SOFTWARE_STACK_LIB
endif
endif

#-------------------------------------------------------------------------------
# PIO
#-------------------------------------------------------------------------------

# This section for PIO needs to come before the NETCDF and PNETCDF sections so that -lpioc
# appears before -lnetcdf on the link line: Otherwise, some linkers fail due to missing
# symbols (e.g., on cygwin). However, note that this PIO section references ESMF_NETCDF,
# so it's important that the final value of ESMF_NETCDF be set at this point (rather than
# potentially being modified in the NETCDF section below).

ifneq ($(origin ESMF_PIO), environment)
ifndef ESMF_PIO
export ESMF_PIO = $(ESMF_PIODEFAULT)
endif

ifeq ($(ESMF_PIO),internal)
ifndef ESMF_NETCDF
# PIO, starting with version 2, depends on NetCDF. Defaulting to internal needs
# be turned off if there is no NetCDF available. Externally set PIO will be let
# through, but will trigger the error down when actually attempting to build
# PIO internally.
ESMF_PIO = OFF
endif
endif

endif

ifeq ($(ESMF_PIO),OFF)
ESMF_PIO=
endif

ifdef ESMF_PIO
ESMF_CPPFLAGS += -DESMF_PIO=1
ifneq ($(origin ESMF_PIO_LIBS), environment)
ESMF_PIO_LIBS = -lpioc
endif
ifdef ESMF_PIO_INCLUDE
ESMF_CXXCOMPILEPATHSTHIRD += -I$(ESMF_PIO_INCLUDE)
ESMF_F90COMPILEPATHSTHIRD += -I$(ESMF_PIO_INCLUDE)
endif
ifdef ESMF_PIO_LIBS
ESMF_CXXLINKLIBSTHIRD += $(ESMF_PIO_LIBS)
ESMF_CXXLINKRPATHSTHIRD += $(addprefix $(ESMF_CXXRPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_PIO_LIBS))))
ESMF_F90LINKLIBSTHIRD += $(ESMF_PIO_LIBS)
ESMF_F90LINKRPATHSTHIRD += $(addprefix $(ESMF_F90RPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_PIO_LIBS))))
endif
ifdef ESMF_PIO_LIBPATH
ESMF_CXXLINKPATHSTHIRD += -L$(ESMF_PIO_LIBPATH)
ESMF_F90LINKPATHSTHIRD += -L$(ESMF_PIO_LIBPATH)
ESMF_CXXLINKRPATHSTHIRD += $(ESMF_CXXRPATHPREFIX)$(ESMF_PIO_LIBPATH)
ESMF_F90LINKRPATHSTHIRD += $(ESMF_F90RPATHPREFIX)$(ESMF_PIO_LIBPATH)
endif
endif

#-------------------------------------------------------------------------------
# NETCDF
#-------------------------------------------------------------------------------
Expand Down Expand Up @@ -1703,53 +1757,6 @@ ESMF_F90LINKRPATHSTHIRD += $(ESMF_F90RPATHPREFIX)$(ESMF_YAMLCPP_LIBPATH)
endif
endif

#-------------------------------------------------------------------------------
# PIO
#-------------------------------------------------------------------------------
ifneq ($(origin ESMF_PIO), environment)
ifndef ESMF_PIO
export ESMF_PIO = $(ESMF_PIODEFAULT)
endif

ifeq ($(ESMF_PIO),internal)
ifndef ESMF_NETCDF
# PIO, starting with version 2, depends on NetCDF. Defaulting to internal needs
# be turned off if there is no NetCDF available. Externally set PIO will be let
# through, but will trigger the error down when actually attempting to build
# PIO internally.
ESMF_PIO = OFF
endif
endif

endif

ifeq ($(ESMF_PIO),OFF)
ESMF_PIO=
endif

ifdef ESMF_PIO
ESMF_CPPFLAGS += -DESMF_PIO=1
ifneq ($(origin ESMF_PIO_LIBS), environment)
ESMF_PIO_LIBS = -lpioc
endif
ifdef ESMF_PIO_INCLUDE
ESMF_CXXCOMPILEPATHSTHIRD += -I$(ESMF_PIO_INCLUDE)
ESMF_F90COMPILEPATHSTHIRD += -I$(ESMF_PIO_INCLUDE)
endif
ifdef ESMF_PIO_LIBS
ESMF_CXXLINKLIBSTHIRD += $(ESMF_PIO_LIBS)
ESMF_CXXLINKRPATHSTHIRD += $(addprefix $(ESMF_CXXRPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_PIO_LIBS))))
ESMF_F90LINKLIBSTHIRD += $(ESMF_PIO_LIBS)
ESMF_F90LINKRPATHSTHIRD += $(addprefix $(ESMF_F90RPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_PIO_LIBS))))
endif
ifdef ESMF_PIO_LIBPATH
ESMF_CXXLINKPATHSTHIRD += -L$(ESMF_PIO_LIBPATH)
ESMF_F90LINKPATHSTHIRD += -L$(ESMF_PIO_LIBPATH)
ESMF_CXXLINKRPATHSTHIRD += $(ESMF_CXXRPATHPREFIX)$(ESMF_PIO_LIBPATH)
ESMF_F90LINKRPATHSTHIRD += $(ESMF_F90RPATHPREFIX)$(ESMF_PIO_LIBPATH)
endif
endif

#-------------------------------------------------------------------------------
# Proj.4
#-------------------------------------------------------------------------------
Expand Down