SHELL = /bin/sh include ../../conf/configure.nems MAKEFILE = makefile UTILINCS = -I../share #TODO: DRY $(FIMSRC) and $(SMS), they are redundant with FIMsrc/* and ../../makefile FIMSRC = FIMsrc_devccs SMS = /gpfs/t3/global/save/wx20tbh/SMS/SMS_r237 FIMINCS = -I$(SMS)/include -I$(FIMSRC)/prep/sigio -I$(FIMSRC)/prep/sfcio -I$(FIMSRC)/post/pop -I$(FIMSRC)/utils -I$(FIMSRC)/icosio -I$(FIMSRC)/fim/Horizontal -I$(FIMSRC)/fim/column LIBRARY = libfimtop.a MODULES = fim_internal_state.o fim_grid_comp.o module_FIM_INTEGRATE.o module_DYNAMICS_GRID_COMP.o module_DYN_PHY_CPL_COMP.o module_PHYSICS_GRID_COMP.o MODULES_STUB = fim_grid_comp_stub.o DEPEND_FILES = ${MODULES:.o=.F90} # TODO: consider passing configuration settings from ../../conf/configure.nems # TODO: down into makefim via "env x=y a=b makefim" # TODO: at present we use settings specified in FIMsrc/Makefile and # TODO: FIMsrc/macros.make.devccs # TODO: replace with explicit depenence on built libraries in $(FIMSRC)/lib*.a all default: depend buildfimsrclibs @gmake -f $(MAKEFILE) $(LIBRARY) # always execute makefim, it is cheap if a re-build is not needed .PHONY: buildfimsrclibs buildfimsrclibs: (cd FIMsrc && ./makefim devccs) || (echo "makefim failure" && exit 1) $(LIBRARY): $(MODULES) $(AR) $(ARFLAGS) $@ $(MODULES) stub: $(MODULES_STUB) $(AR) $(ARFLAGS) $(LIBRARY) $(MODULES_STUB) $(MODULES): %.o: %.f90 $(FC) $(FFLAGS_FIM) $(UTILINCS) $(FIMINCS) -c $*.f90 $(MODULES_STUB): %.o: %.f90 $(FC) $(FFLAGS_FIM) $(UTILINCS) -c $*.f90 clean: $(RM) -f $(LIBRARY) *.o *.mod *.f90 *.lst lm map depend (cd FIMsrc && ./makefim clean) MKDEPENDS = ../../../exe/mkDepends.pl include ../../conf/make.rules include depend