# GNU Makefile template for user ESMF application ################################################################################ ################################################################################ ## This Makefile must be able to find the "esmf.mk" Makefile fragment in the ## ## 'include' line below. Following the ESMF User's Guide, a complete ESMF ## ## installation should ensure that a single environment variable "ESMFMKFILE" ## ## is made available on the system. This variable should point to the ## ## "esmf.mk" file. ## ## ## ## This example Makefile uses the "ESMFMKFILE" environment variable. ## ## ## ## If you notice that this Makefile cannot find variable ESMFMKFILE then ## ## please contact the person responsible for the ESMF installation on your ## ## system. ## ## As a work-around you can simply hardcode the path to "esmf.mk" in the ## ## include line below. However, doing so will render this Makefile a lot less ## ## flexible and non-portable. ## ################################################################################ ifneq ($(origin ESMFMKFILE), environment) $(error Environment variable ESMFMKFILE was not set.) endif include $(ESMFMKFILE) ################################################################################ ################################################################################ .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