[13024] | 1 | SHELL = /bin/bash |
---|
| 2 | AGRIF=YES |
---|
| 3 | |
---|
| 4 | include make.inc |
---|
| 5 | |
---|
| 6 | PROGS = make_domain_cfg.exe |
---|
| 7 | SFMAKEDEPEND := ./sfmakedepend |
---|
| 8 | DIR_LIB=lib |
---|
| 9 | DIR_FILES=src |
---|
| 10 | DIR_PPSRC=NEMOFILES |
---|
| 11 | DIR_PPSRC_2=ppsrc |
---|
| 12 | DIR_DOC=doc |
---|
| 13 | DIR_OBJS=obj |
---|
| 14 | DIR_LIB=lib |
---|
| 15 | |
---|
| 16 | FILENAMES =$(notdir $(basename $(wildcard src/*.F90))) $(notdir $(basename $(wildcard src/*.F))) $(notdir $(basename $(wildcard src/*.c))) $(notdir $(basename $(wildcard src/*.f))) $(notdir $(basename $(wildcard src/*.f90))) |
---|
| 17 | FILES=src/* |
---|
| 18 | ifeq ($(AGRIF),YES) |
---|
| 19 | OBJS_AGRIF=obj/agrif2model.o |
---|
| 20 | else |
---|
| 21 | OBJS_AGRIF= |
---|
| 22 | endif |
---|
| 23 | |
---|
| 24 | OBJS_CREATE_DOMCFG=$(addsuffix .o,$(addprefix $(DIR_OBJS)/,$(FILENAMES))) |
---|
| 25 | OBJS_CREATE_DOMCFG := $(filter-out $(OBJS_AGRIF),$(OBJS_CREATE_DOMCFG)) |
---|
| 26 | |
---|
| 27 | all: depend conv prepagrif AGRIF_LIB $(OBJS_CREATE_DOMCFG) $(PROGS) |
---|
| 28 | @echo |
---|
| 29 | @echo =================================================== |
---|
| 30 | @echo Nesting is ok |
---|
| 31 | @echo =================================================== |
---|
| 32 | @echo |
---|
| 33 | |
---|
| 34 | |
---|
| 35 | ifeq ($(AGRIF),YES) |
---|
| 36 | make_domain_cfg.exe: $(DIR_LIB)/libdomcfg.a $(DIR_FILES)/nemogcm.F90 $(OBJS_AGRIF) $(OBJS_CREATE_DOMCFG) AGRIF_LIB |
---|
| 37 | $(FC) $(LINKFLAGS) $(FFLAGS) -o $(PROGS) $(OBJS_AGRIF) $(DIR_LIB)/libdomcfg.a $(LIBS) -I$(DIR_OBJS) $(FFLAGS_SPEC) -I../../ext/AGRIF -L../../ext/AGRIF -lagrif |
---|
| 38 | else |
---|
| 39 | make_domain_cfg.exe: $(DIR_LIB)/libdomcfg.a $(DIR_FILES)/nemogcm.F90 $(OBJS_CREATE_DOMCFG) |
---|
| 40 | $(FC) $(LINKFLAGS) $(FFLAGS) -o $(PROGS) $(DIR_LIB)/libdomcfg.a $(LIBS) -I$(DIR_OBJS) $(FFLAGS_SPEC) |
---|
| 41 | endif |
---|
| 42 | |
---|
| 43 | ifeq ($(AGRIF),YES) |
---|
| 44 | prepagrif: |
---|
| 45 | @echo |
---|
| 46 | @echo =================================================== |
---|
| 47 | @echo Create working directories for AGRIF ... |
---|
| 48 | @echo =================================================== |
---|
| 49 | mkdir -p obj |
---|
| 50 | mkdir -p $(DIR_PPSRC_2) |
---|
| 51 | mkdir -p $(DIR_LIB) |
---|
| 52 | mkdir -p $(DIR_OBJS) |
---|
| 53 | mkdir -p $(DIR_PPSRC) |
---|
| 54 | mkdir -p $(DIR_PPSRC)/AGRIF_MODELFILES |
---|
| 55 | mkdir -p $(DIR_PPSRC)/AGRIF_INC |
---|
| 56 | \cp ../../ext/AGRIF/conv $(DIR_PPSRC) |
---|
| 57 | \cp ../../ext/AGRIF/agrif_oce.in $(DIR_PPSRC) |
---|
| 58 | echo $(OBJS_CREATE_DOMCFG) |
---|
| 59 | @echo |
---|
| 60 | |
---|
| 61 | conv: |
---|
| 62 | $(MAKE) -C ../../ext/AGRIF/LIB |
---|
| 63 | |
---|
| 64 | AGRIF_LIB: |
---|
| 65 | $(MAKE) -C ../../ext/AGRIF FC=$(FC) CPP=$(CPP) CPPFLAGS="$(CPPFLAGS)" FFLAGS="$(FFLAGS)" |
---|
| 66 | else |
---|
| 67 | |
---|
| 68 | prepagrif: |
---|
| 69 | @echo |
---|
| 70 | @echo =================================================== |
---|
| 71 | @echo Create working directories ... |
---|
| 72 | @echo =================================================== |
---|
| 73 | mkdir -p obj |
---|
| 74 | mkdir -p $(DIR_PPSRC_2) |
---|
| 75 | mkdir -p $(DIR_LIB) |
---|
| 76 | mkdir -p $(DIR_OBJS) |
---|
| 77 | @echo |
---|
| 78 | conv: |
---|
| 79 | AGRIF_LIB: |
---|
| 80 | |
---|
| 81 | endif |
---|
| 82 | |
---|
| 83 | $(DIR_LIB)/libdomcfg.a: $(OBJS_CREATE_DOMCFG) |
---|
| 84 | @echo |
---|
| 85 | @echo =================================================== |
---|
| 86 | @echo Compile domcfg library... |
---|
| 87 | @echo =================================================== |
---|
| 88 | $(AR) -r $@ $(OBJS_CREATE_DOMCFG) |
---|
| 89 | ranlib $@ |
---|
| 90 | @echo |
---|
| 91 | |
---|
| 92 | |
---|
| 93 | |
---|
| 94 | ifeq ($(AGRIF),YES) |
---|
| 95 | |
---|
| 96 | $(OBJS_AGRIF):src/agrif2model.F90 $(OBJS_CREATE_DOMCFG) MODEL.CPP |
---|
| 97 | $(CPP) -I$(DIR_PPSRC)/AGRIF_INC -include MODEL.CPP $(CPPFLAGS) src/agrif2model.F90 > $(DIR_PPSRC_2)/$(*F).f90 |
---|
| 98 | $(FC) $(FFLAGS) -c $(DIR_PPSRC_2)/$(*F).f90 -o $(DIR_OBJS)/$(*F).o -I../../ext/AGRIF -I$(DIR_OBJS) $(FFLAGS_SPEC) |
---|
| 99 | |
---|
| 100 | $(DIR_OBJS)/%.o: $(DIR_FILES)/%.F90 make.inc MODEL.CPP |
---|
| 101 | $(CPP) -include MODEL.CPP $(CPPFLAGS) $(DIR_FILES)/$(*F).F90 > $(DIR_PPSRC)/$(*F).f90 |
---|
| 102 | cd NEMOFILES ; ./conv ./agrif_oce.in -rm \ |
---|
| 103 | -comdirin ./ -comdirout AGRIF_MODELFILES/. -convfile $(*F).f90 |
---|
| 104 | $(CPP) -I$(DIR_PPSRC)/AGRIF_INC -include MODEL.CPP $(CPPFLAGS) $(DIR_PPSRC)/AGRIF_MODELFILES/$(*F).f90 >$(DIR_PPSRC_2)/$(*F).f90 |
---|
| 105 | $(FC) $(FFLAGS) -c $(DIR_PPSRC_2)/$(*F).f90 -o $(DIR_OBJS)/$(*F).o -I../../ext/AGRIF -I$(DIR_OBJS) $(FFLAGS_SPEC) |
---|
| 106 | |
---|
| 107 | |
---|
| 108 | $(DIR_OBJS)/%.o: $(DIR_FILES)/%.f90 make.inc MODEL.CPP |
---|
| 109 | $(CPP) -include MODEL.CPP $(CPPFLAGS) $(DIR_FILES)/$(*F).f90 > $(DIR_PPSRC)/$(*F).f90 |
---|
| 110 | cd NEMOFILES ; ./conv agrif_oce.in -rm \ |
---|
| 111 | -comdirin ./ -comdirout AGRIF_MODELFILES/. -convfile $(*F).f90 |
---|
| 112 | $(CPP) -I$(DIR_PPSRC)/AGRIF_INC -include MODEL.CPP $(CPPFLAGS) $(DIR_PPSRC)/AGRIF_MODELFILES/$(*F).f90 >$(DIR_PPSRC_2)/$(*F).f90 |
---|
| 113 | $(FC) $(FFLAGS) -c $(DIR_PPSRC_2)/$(*F).f90 -o $(DIR_OBJS)/$(*F).o -I../../ext/AGRIF -I$(DIR_OBJS) $(FFLAGS_SPEC) |
---|
| 114 | |
---|
| 115 | else |
---|
| 116 | |
---|
| 117 | $(DIR_OBJS)/%.o: $(DIR_FILES)/%.F90 make.inc MODEL.CPP |
---|
| 118 | $(CPP) -include MODEL.CPP $(CPPFLAGS) $(DIR_FILES)/$(*F).F90 > $(DIR_PPSRC_2)/$(*F).f90 |
---|
| 119 | $(FC) $(FFLAGS) -c $(DIR_PPSRC_2)/$(*F).f90 -o $(DIR_OBJS)/$(*F).o -I$(DIR_OBJS) $(FFLAGS_SPEC) |
---|
| 120 | |
---|
| 121 | $(DIR_OBJS)/%.o: $(DIR_FILES)/%.f90 make.inc MODEL.CPP |
---|
| 122 | $(FC) $(FFLAGS) -c $(DIR_FILES)/$(*F).f90 -o $(DIR_OBJS)/$(*F).o -I$(DIR_OBJS) $(FFLAGS_SPEC) |
---|
| 123 | |
---|
| 124 | |
---|
| 125 | $(DIR_OBJS)/%.o: $(DIR_FILES)/%.c make.inc MODEL.CPP |
---|
| 126 | $(CC) -c $(CFLAGS) -c $(DIR_FILES)/$(*F).c -o $(DIR_OBJS)/$(*F).o -I$(DIR_OBJS) $(FFLAGS_SPEC) |
---|
| 127 | |
---|
| 128 | endif |
---|
| 129 | #-------------------------------------------------------------------------- |
---|
| 130 | # Target to create dependeanies. |
---|
| 131 | #-------------------------------------------------------------------------- |
---|
| 132 | |
---|
| 133 | MakeDepend: $(DIR_FILES) |
---|
| 134 | $(SFMAKEDEPEND) --silent --fext=f90 --fext=f --fext=F90 --fext=F --fext=c --file=- --moddir=$(DIR_OBJS) --objdir=$(DIR_OBJS) $(FILES) > MakeDepend |
---|
| 135 | |
---|
| 136 | depend: $(DIR_FILES) |
---|
| 137 | @echo |
---|
| 138 | @echo =================================================== |
---|
| 139 | @echo Create dependancies for Nesting ... |
---|
| 140 | @echo =================================================== |
---|
| 141 | $(SFMAKEDEPEND) --fext=f90 --fext=f --silent --fext=F90 --fext=F --fext=c --file=- --moddir=$(DIR_OBJS) --objdir=$(DIR_OBJS) $(FILES) > MakeDepend |
---|
| 142 | |
---|
| 143 | #ifneq "$(MAKECMDGOALS)" "clean" |
---|
| 144 | -include ./MakeDepend |
---|
| 145 | #endif |
---|
| 146 | |
---|
| 147 | #-------------------------------------------------------------------------- |
---|
| 148 | # Target to clean |
---|
| 149 | #-------------------------------------------------------------------------- |
---|
| 150 | |
---|
| 151 | clean: |
---|
| 152 | @echo |
---|
| 153 | @echo =================================================== |
---|
| 154 | @echo Clean ... |
---|
| 155 | @echo =================================================== |
---|
| 156 | $(RM) -rf $(DIR_PPSRC) $(DIR_PPSRC_2) $(DIR_LIB) $(DIR_OBJS) $(PROGS) |
---|
| 157 | |
---|
| 158 | # DO NOT DELETE THIS LINE - used by make depend |
---|