# Example GNU Makefile for user ESMF application

################################################################################
################################################################################
## This Makefile must be able to find the "esmf.mk" Makefile fragment in the  ##
## 'include' line below. When this Makefile is used as an example the user    ##
## must adjust the path in order to find the "esmf.mk" according to their     ##
## situation!                                                                 ##
## It is _not_ necessary to set and use the ESMF_INSTALL_LIBDIR_ABSPATH       ##
## variable, it is perfectly fine to hardcode the path to "esmf.mk" directly  ##
## into the 'include' line.                                                   ##
################################################################################
ifndef ESMF_INSTALL_LIBDIR_ABSPATH
ESMF_INSTALL_LIBDIR_ABSPATH = /this/is/just/a/dummy/path
endif
################################################################################
## This is the important statement: Make sure 'include' finds your "esmf.mk"!!!
include $(ESMF_INSTALL_LIBDIR_ABSPATH)/esmf.mk
################################################################################
################################################################################

.SUFFIXES: .f90 .F90 .c .C

.f90:
	$(ESMF_F90COMPILER) -c $(ESMF_F90COMPILEOPTS) $(ESMF_F90COMPILEPATHS) $(ESMF_F90COMPILEFREENOCPP) $<
	$(ESMF_F90LINKER) $(ESMF_F90LINKOPTS) $(ESMF_F90LINKPATHS) $(ESMF_F90LINKRPATHS) -o $@ $*.o $(ESMF_F90ESMFLINKLIBS)        

.F90:
	$(ESMF_F90COMPILER) -c $(ESMF_F90COMPILEOPTS) $(ESMF_F90COMPILEPATHS) $(ESMF_F90COMPILEFREECPP) $(ESMF_F90COMPILECPPFLAGS) $<
	$(ESMF_F90LINKER) $(ESMF_F90LINKOPTS) $(ESMF_F90LINKPATHS) $(ESMF_F90LINKRPATHS) -o $@ $*.o $(ESMF_F90ESMFLINKLIBS)        
        
.c:
	$(ESMF_CXXCOMPILER) -c $(ESMF_CXXCOMPILEOPTS) $(ESMF_CXXCOMPILEPATHSLOCAL) $(ESMF_CXXCOMPILEPATHS) $(ESMF_CXXCOMPILECPPFLAGS) $<
	$(ESMF_CXXLINKER) $(ESMF_CXXLINKOPTS) $(ESMF_CXXLINKPATHS) $(ESMF_CXXLINKRPATHS) -o $@ $*.o $(ESMF_CXXESMFLINKLIBS)

.C:
	$(ESMF_CXXCOMPILER) -c $(ESMF_CXXCOMPILEOPTS) $(ESMF_CXXCOMPILEPATHSLOCAL) $(ESMF_CXXCOMPILEPATHS) $(ESMF_CXXCOMPILECPPFLAGS) $<
	$(ESMF_CXXLINKER) $(ESMF_CXXLINKOPTS) $(ESMF_CXXLINKPATHS) $(ESMF_CXXLINKRPATHS) -o $@ $*.o $(ESMF_CXXESMFLINKLIBS)



# -----------------------------------------------------------------------------
all: esmf_application esmc_application

esmf_application:

esmc_application:

# -----------------------------------------------------------------------------
.PHONY: check
check:
	@if [ -f esmf_application ]; then \
          if [ -f esmc_application ]; then \
            echo "PASS: check"; \
          fi; \
        fi

# -----------------------------------------------------------------------------
# -----------------------------------------------------------------------------
.PHONY: clean
clean:
	rm -f esmf_application esmc_application *.o *.mod
