# ------------------------------------------------------------------------------ # --- Standard rules ---------------------------------------------------------- # ------------------------------------------------------------------------------ include Makefile # ------------------------------------------------------------------------------ # --- NUOPC additions ---------------------------------------------------------- # ------------------------------------------------------------------------------ ocn_comp_mct.o : ocn_comp_mct.F90 $(ESMF_F90COMPILER) -c $(DEP_FRONTS) $(DEP_INCS) -I$(OBJROOT)/lib/include -I$(OBJROOT)/csm_share -I$(OBJROOT)/pio $(ESMF_F90COMPILEOPTS) $(ESMF_F90COMPILEPATHS) $(ESMF_F90COMPILEFREECPP) $(ESMF_F90COMPILECPPFLAGS) $(USER_DEFS) $< ocn_comp_nuopc_mod.o : ocn_comp_nuopc_mod.F90 $(ESMF_F90COMPILER) -c $(DEP_FRONTS) $(DEP_INCS) -I$(OBJROOT)/lib/include -I$(OBJROOT)/csm_share -I$(OBJROOT)/pio $(ESMF_F90COMPILEOPTS) $(ESMF_F90COMPILEPATHS) $(ESMF_F90COMPILEFREECPP) $(ESMF_F90COMPILECPPFLAGS) $(USER_DEFS) $< mod_hycom_nuopc_glue.o : mod_hycom_nuopc_glue.F90 $(ESMF_F90COMPILER) -c $(DEP_FRONTS) $(DEP_INCS) -I$(OBJROOT)/lib/include -I$(OBJROOT)/csm_share -I$(OBJROOT)/pio $(ESMF_F90COMPILEOPTS) $(ESMF_F90COMPILEPATHS) $(ESMF_F90COMPILEFREECPP) $(ESMF_F90COMPILECPPFLAGS) $(USER_DEFS) $< mod_cb_arrays_nuopc_glue.o : mod_cb_arrays_nuopc_glue.F90 $(ESMF_F90COMPILER) -c $(DEP_FRONTS) $(DEP_INCS) -I$(OBJROOT)/lib/include -I$(OBJROOT)/csm_share -I$(OBJROOT)/pio $(ESMF_F90COMPILEOPTS) $(ESMF_F90COMPILEPATHS) $(ESMF_F90COMPILEFREECPP) $(ESMF_F90COMPILECPPFLAGS) $(USER_DEFS) $< .PRECIOUS: %.o %.mk : %.o @echo "# ESMF self-describing build dependency makefile fragment" > $@ @echo >> $@ @echo "ESMF_DEP_FRONT = hycom" >> $@ @echo "ESMF_DEP_INCPATH = `pwd`" >> $@ @echo "ESMF_DEP_CMPL_OBJS = `pwd`/"$< >> $@ @echo "ESMF_DEP_LINK_OBJS = `pwd`/libhycom_nuopc.a" >> $@ @echo "ESMF_DEP_SHRD_PATH = " >> $@ @echo "ESMF_DEP_SHRD_LIBS = " >> $@ @echo @echo "Finished generating ESMF self-describing build dependency makefile fragment:" $@ @echo nuopc: ocn_comp_mct.o ocn_comp_nuopc_mod.mk libhycom_nuopc.a ocn_comp_mct.o: $(MODS) $(OBJS) ocn_comp_nuopc_mod.o: mod_hycom_nuopc_glue.o $(MODS) $(OBJS) mod_hycom_nuopc_glue.o: mod_cb_arrays_nuopc_glue.o $(MODS) $(OBJS) mod_cb_arrays_nuopc_glue.o: $(MODS) $(OBJS) libhycom_nuopc.a: ocn_comp_mct.o ocn_comp_nuopc_mod.o mod_hycom_nuopc_glue.o mod_cb_arrays_nuopc_glue.o $(MODS) $(OBJS) ar cr $@ $^ .PHONY: clean nuopcinstall clean: rm -f hycom *.o *.mod *.a *.mk PWDIR := `pwd` ifndef DESTDIR DESTDIR := $(PWDIR) endif INSTDATE := $(shell date '+%Y-%m-%d-%H-%M-%S') ifndef INSTDIR INSTDIR := HYCOM_$(INSTDATE) endif nuopcinstall: @gmake nuopc @mkdir -p $(DESTDIR)/$(INSTDIR) @cp libhycom_nuopc.a hycom.mod $(DESTDIR)/$(INSTDIR) @sed -e 's;'$(PWDIR)';'$(DESTDIR)/$(INSTDIR)';g' ocn_comp_nuopc_mod.mk > $(DESTDIR)/$(INSTDIR)/ocn_comp_nuopc_mod.mk @touch VERSION @if [ -d .svn ]; then \ echo "SVN Repository" > VERSION; \ svn info . | grep URL >> VERSION; \ svn info . | grep "Last Changed Rev" >> VERSION; \ fi @cp VERSION $(DESTDIR)/$(INSTDIR)/ @echo Installation into \"$(DESTDIR)/$(INSTDIR)\" complete! @echo # ------------------------------------------------------------------------------