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