New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
AA_make in trunk/EXTERNAL/XMLIO_SERVER – NEMO

source: trunk/EXTERNAL/XMLIO_SERVER/AA_make @ 1722

Last change on this file since 1722 was 1722, checked in by rblod, 14 years ago

Add sx9mercure as new target

File size: 13.0 KB
Line 
1VPATH=../src/IOSERVER:../src/XMLIO
2MAKE_NAM = $(MAKE)
3ifneq ($(MAKE_NAM),$(M_K))
4 @$(error You must invoke this Makefile with the $(M_K) command)
5endif
6USER_DIR = $(shell /bin/pwd)
7MAKE_DIR = '??'
8ifneq ($(USER_DIR),$(MAKE_DIR))
9 @$(error You must invoke this Makefile from its directory)
10endif
11#-
12#-Q- sx6nec F_O := $(F_O) -Wf,-ptr byte
13#-Q- sx8brodie F_O := $(F_O) -Wf,-ptr byte
14#-Q- sx8mercure F_O := $(F_O) -Wf,-ptr byte
15#-Q- sx9mercure F_O := $(F_O) -Wf,-ptr byte
16#-Q- sxdkrz F_O := $(F_O) -Wf,-ptr byte
17#-Q- eshpux F_O := $(F_O) -Wf,-ptr byte
18#-Q- aix6 F_O = $(F_P) -O3 -qextname -qsuffix=cpp=F90 -qsuffix=f=f90  -qmoddir=$(MODDIR) -I $(MODDIR)
19#-Q- aix F_O = $(F_P) -O3 -qextname -qsuffix=cpp=F90 -qsuffix=f=f90  -qmoddir=$(MODDIR) -I $(MODDIR)
20#-Q- osxxlf F_O = $(F_P) -O3 -qextname -qsuffix=cpp=F90 -qsuffix=f=f90  -qmoddir=$(MODDIR) -I $(MODDIR)
21F_O := $(F_O) -I../../../lib
22P_O := $(P_O) -traditional
23#-Q- aix6 L_O = $(F_P) -q64 -O3
24#-Q- aix L_O = $(F_P) -q64 -O3
25prefix=''
26#-Q- aix6 prefix='-WF,'
27#-Q- aix prefix='-WF,'
28override P_P := $(P_P:%=$(prefix)%)
29
30#---------------------------------------------------------------------
31#- Create libioserver and libxmlio
32#---------------------------------------------------------------------
33
34.PRECIOUS : $(MODEL_LIB1) $(MODEL_LIB2)
35SXMODEL_LIB1 = $(MODEL_LIB1)
36SXMODEL_LIB2 = $(MODEL_LIB2)
37ifeq ($(L_X),1)
38SXMODEL_LIB1 = $(LIBDIR)/libsxioserver.a
39SXMODEL_LIB2 = $(LIBDIR)/libsxxmlio.a
40.PRECIOUS : $(SXMODEL_LIB1) $(SXMODEL_LIB2)
41endif
42
43MODS1 =  ../src/IOSERVER/mod_ioclient_para.F90 \
44   ../src/IOSERVER/mod_ioserver_para.F90 ../src/IOSERVER/mpi_mod.F90 \
45   ../src/IOSERVER/mpi_wrapper.F90 ../src/IOSERVER/mpitrace.F90 \
46   ../src/IOSERVER/init_vampir.f90 ../src/IOSERVER/main.f90 \
47   ../src/IOSERVER/mod_box_grid.f90 ../src/IOSERVER/mod_boxed_domain.f90 \
48   ../src/IOSERVER/mod_event_client.f90 \
49   ../src/IOSERVER/mod_event_parameters.f90 \
50   ../src/IOSERVER/mod_event_server.f90 \
51   ../src/IOSERVER/mod_field_bufferize.f90 \
52   ../src/IOSERVER/mod_global_memory.f90 \
53   ../src/IOSERVER/mod_interface_ioipsl.f90 \
54   ../src/IOSERVER/mod_ioclient.f90 ../src/IOSERVER/mod_iomanager.f90 \
55   ../src/IOSERVER/mod_ioserver_namelist.f90 \
56   ../src/IOSERVER/mod_mpi_buffer_client.f90 \
57   ../src/IOSERVER/mod_mpi_buffer_parameters.f90 \
58   ../src/IOSERVER/mod_mpi_buffer_server.f90 \
59   ../src/IOSERVER/mod_pack.f90 ../src/IOSERVER/mod_prec.f90 \
60   ../src/IOSERVER/mod_wait.f90 ../src/IOSERVER/pack_f.f90 \
61   ../src/IOSERVER/server.f90
62
63OBJSMODS1 = mod_ioclient_para.o mod_ioserver_para.o mpi_mod.o mpi_wrapper.o \
64   mpitrace.o init_vampir.o main.o mod_box_grid.o mod_boxed_domain.o \
65   mod_event_client.o mod_event_parameters.o mod_event_server.o \
66   mod_field_bufferize.o mod_global_memory.o mod_interface_ioipsl.o \
67   mod_ioclient.o mod_iomanager.o mod_ioserver_namelist.o \
68   mod_mpi_buffer_client.o mod_mpi_buffer_parameters.o \
69   mod_mpi_buffer_server.o mod_pack.o mod_prec.o mod_wait.o pack_f.o
70
71MODS2 =  ../src/XMLIO/mod_axis.f90 ../src/XMLIO/mod_axis_definition.f90 \
72   ../src/XMLIO/mod_axis_group.f90 ../src/XMLIO/mod_context.f90 \
73   ../src/XMLIO/mod_dependency.f90 ../src/XMLIO/mod_domain.f90 \
74   ../src/XMLIO/mod_error_msg.f90 ../src/XMLIO/mod_field.f90 \
75   ../src/XMLIO/mod_field_definition.f90 \
76   ../src/XMLIO/mod_field_group.f90 ../src/XMLIO/mod_file.f90 \
77   ../src/XMLIO/mod_file_definition.f90 ../src/XMLIO/mod_file_group.f90 \
78   ../src/XMLIO/mod_grid.f90 ../src/XMLIO/mod_grid_definition.f90 \
79   ../src/XMLIO/mod_grid_group.f90 ../src/XMLIO/mod_parse_xml.f90 \
80   ../src/XMLIO/mod_sorted_list.f90 ../src/XMLIO/mod_time_parameters.f90 \
81   ../src/XMLIO/mod_xmlio_parameters.f90 ../src/XMLIO/mod_zoom.f90 \
82   ../src/XMLIO/string_function.f90 ../src/XMLIO/test_xmlio.f90 \
83   ../src/XMLIO/xmlio.f90
84
85OBJSMODS2 = mod_axis.o mod_axis_definition.o mod_axis_group.o mod_context.o \
86   mod_dependency.o mod_domain.o mod_error_msg.o mod_field.o \
87   mod_field_definition.o mod_field_group.o mod_file.o \
88   mod_file_definition.o mod_file_group.o mod_grid.o \
89   mod_grid_definition.o mod_grid_group.o mod_parse_xml.o \
90   mod_sorted_list.o mod_time_parameters.o mod_xmlio_parameters.o \
91   mod_zoom.o string_function.o  xmlio.o
92
93.SUFFIXES: .f90 .F90
94
95all: libioipsl libxmlf90 dirxml $(MODEL_LIB2)($(OBJSMODS2)) key $(MODEL_LIB1)($(OBJSMODS1)) server.o EXEC_BIN
96   @echo IOSERVER is OK
97
98key :
99   -@if [ "`cat KEY_CPP`" != "$(P_P)" ] ; then \
100   echo "$(P_P)" > KEY_CPP ; fi
101
102ifneq  (,$(findstring NO_MPI,$(P_P)))
103EXEC_BIN :
104server.o :
105else
106EXEC_BIN : server.o
107   $(F_L) $(L_O) -o ../../../bin/ioserver server.o $(MODEL_LIB1) $(MODEL_LIB2) ../../../lib/libioipsl.a $(NCDF_LIB) ../../../lib/libxmlio_server/libxmlf90.a
108server.o :       ../src/IOSERVER/server.f90
109   @$(F_C) $(F_O) -c ../src/IOSERVER/server.f90
110endif
111
112#Rules for ioserver
113#---- Using VPATH instead $(MODEL_LIB1)(%.o): ../src/IOSERVER/%.f90
114$(MODEL_LIB1)(%.o): %.f90
115   $(F_C) $(F_O) -I$(NCDF_INC) $<
116   $(A_C) $(MODEL_LIB1) $*.o
117ifeq ($(L_X),1)
118   $(A_X) $(SXMODEL_LIB1) $*.o
119endif
120#-Q- sgi6       mv $(shell echo $* | tr '[:lower:]' '[:upper:]').mod $(MODDIR)
121ifeq ($(M_M),1)
122   @mv -f *.mod $(MODDIR)  2> /dev/null || true
123endif
124   $(RM) $*.o
125
126#Rules for ioserver
127#---- Using VPATH instead $(MODEL_LIB1)(%.o): ../src/IOSERVER/%.F90
128$(MODEL_LIB1)(%.o): %.F90 KEY_CPP
129   $(F_C) $(F_O) $(P_P) -I$(NCDF_INC) -I../src/IOSERVER $<
130   $(A_C) $(MODEL_LIB1) $*.o
131ifeq ($(L_X),1)
132   $(A_X) $(SXMODEL_LIB1) $*.o
133endif
134#-Q- sgi6       mv $(shell echo $* | tr '[:lower:]' '[:upper:]').mod $(MODDIR)
135ifeq ($(M_M),1)
136   @mv -f *.mod $(MODDIR)  2> /dev/null || true
137endif
138   $(RM) $*.o
139
140#Rules for xmlio
141#---- Using VPATH instead $(MODEL_LIB1)(%.o): ../src/XMLIO/%.F90
142$(MODEL_LIB2)(%.o): %.f90
143   $(F_C) $(F_O) -I$(NCDF_INC) -I../src/XMLIO $<
144   $(A_C) $(MODEL_LIB2) $*.o
145ifeq ($(L_X),1)
146   $(A_X) $(SXMODEL_LIB2) $*.o
147endif
148#-Q- sgi6       mv $(shell echo $* | tr '[:lower:]' '[:upper:]').mod $(MODDIR)
149ifeq ($(M_M),1)
150   @mv -f *.mod $(MODDIR)  2> /dev/null || true
151endif
152   $(RM) $*.o
153
154dirxml:
155   @if [ ! -d ../../../lib/libxmlio_server ] ; then mkdir ../../../lib/libxmlio_server ; fi
156
157# IOIPSL library
158libioipsl :
159   (cd ../../IOIPSL/src ; $(M_K) -f Makefile )
160
161# XMLF90 library
162libxmlf90 :
163   (cd ../../XMLF90/external ; $(M_K) -f Makefile )
164
165clean:
166   $(RM) *.*~ Makefile~ core *.o *.mod i.*.L *.L
167   $(RM) server.o $(MODEL_LIB1) $(MODEL_LIB2)
168
169$(MODEL_LIB1)(init_vampir.o): $(MODEL_LIB1)(mpitrace.o)
170$(MODEL_LIB1)(main.o): $(MODEL_LIB1)(mod_pack.o) $(MODEL_LIB1)(mod_wait.o)
171$(MODEL_LIB1)(mod_event_client.o): $(MODEL_LIB1)(mod_event_parameters.o) \
172   $(MODEL_LIB1)(mod_iomanager.o) $(MODEL_LIB1)(mod_ioserver_namelist.o) \
173   $(MODEL_LIB1)(mod_mpi_buffer_client.o) $(MODEL_LIB1)(mod_pack.o)
174$(MODEL_LIB1)(mod_event_server.o): $(MODEL_LIB1)(mod_event_parameters.o) \
175   $(MODEL_LIB1)(mod_iomanager.o) $(MODEL_LIB1)(mod_pack.o)
176$(MODEL_LIB1)(mod_global_memory.o): $(MODEL_LIB1)(mpi_mod.o)
177$(MODEL_LIB1)(mod_interface_ioipsl.o): $(MODEL_LIB1)(mod_ioserver_para.o) \
178   $(MODEL_LIB2)
179$(MODEL_LIB1)(mod_ioclient.o): $(MODEL_LIB1)(mod_event_client.o) \
180   $(MODEL_LIB1)(mod_ioclient_para.o) $(MODEL_LIB1)(mod_iomanager.o) \
181   $(MODEL_LIB1)(mod_ioserver_namelist.o) \
182   $(MODEL_LIB1)(mod_mpi_buffer_client.o) $(MODEL_LIB1)(mod_wait.o) \
183   $(MODEL_LIB1)(mpi_mod.o)
184$(MODEL_LIB1)(mod_iomanager.o): $(MODEL_LIB1)(mod_field_bufferize.o) \
185   $(MODEL_LIB1)(mod_interface_ioipsl.o) $(MODEL_LIB2)
186$(MODEL_LIB1)(mod_mpi_buffer_client.o): $(MODEL_LIB1)(mod_global_memory.o) \
187   $(MODEL_LIB1)(mod_ioclient_para.o) \
188   $(MODEL_LIB1)(mod_mpi_buffer_parameters.o) $(MODEL_LIB1)(mod_pack.o) \
189   $(MODEL_LIB1)(mod_wait.o) $(MODEL_LIB1)(mpi_mod.o) \
190   $(MODEL_LIB1)(mpitrace.o)
191$(MODEL_LIB1)(mod_mpi_buffer_parameters.o): $(MODEL_LIB1)(mod_ioserver_namelist.o)
192$(MODEL_LIB1)(mod_mpi_buffer_server.o): $(MODEL_LIB1)(mod_event_server.o) \
193   $(MODEL_LIB1)(mod_global_memory.o) $(MODEL_LIB1)(mod_ioserver_para.o) \
194   $(MODEL_LIB1)(mod_mpi_buffer_parameters.o) $(MODEL_LIB1)(mod_pack.o) \
195   $(MODEL_LIB1)(mod_wait.o) $(MODEL_LIB1)(mpi_mod.o) \
196   $(MODEL_LIB1)(mpitrace.o)
197$(MODEL_LIB1)(pack_f.o): $(MODEL_LIB1)(mod_prec.o)
198$(MODEL_LIB1)(server.o): $(MODEL_LIB1)(mod_global_memory.o) \
199   $(MODEL_LIB1)(mod_interface_ioipsl.o) $(MODEL_LIB1)(mod_iomanager.o) \
200   $(MODEL_LIB1)(mod_ioserver_namelist.o) \
201   $(MODEL_LIB1)(mod_ioserver_para.o) \
202   $(MODEL_LIB1)(mod_mpi_buffer_server.o) $(MODEL_LIB1)(mod_wait.o)
203$(MODEL_LIB1)(mod_ioclient_para.o): $(MODEL_LIB1)(mod_ioserver_namelist.o) \
204   $(MODEL_LIB1)(mpi_mod.o) $(MODEL_LIB1)(mpitrace.o)
205$(MODEL_LIB1)(mod_ioserver_para.o): $(MODEL_LIB1)(mod_ioserver_namelist.o) \
206   $(MODEL_LIB1)(mpi_mod.o) $(MODEL_LIB1)(mpitrace.o)
207$(MODEL_LIB1)(mpi_mod.o):
208$(MODEL_LIB1)(mpitrace.o):
209$(MODEL_LIB2)(mod_axis.o): $(MODEL_LIB2)(mod_error_msg.o) \
210   $(MODEL_LIB2)(mod_sorted_list.o) \
211   $(MODEL_LIB2)(mod_xmlio_parameters.o) \
212   $(MODEL_LIB2)(string_function.o) ../src/XMLIO/vector_axis_def.inc
213$(MODEL_LIB2)(mod_axis_definition.o): $(MODEL_LIB2)(mod_axis_group.o)
214$(MODEL_LIB2)(mod_axis_group.o): $(MODEL_LIB2)(mod_axis.o) \
215   $(MODEL_LIB2)(mod_xmlio_parameters.o) \
216   $(MODEL_LIB2)(string_function.o) \
217   ../src/XMLIO/vector_axis_group_def.inc
218$(MODEL_LIB2)(mod_context.o): $(MODEL_LIB2)(mod_axis.o) \
219   $(MODEL_LIB2)(mod_axis_definition.o) $(MODEL_LIB2)(mod_axis_group.o) \
220   $(MODEL_LIB2)(mod_dependency.o) $(MODEL_LIB2)(mod_field.o) \
221   $(MODEL_LIB2)(mod_field_definition.o) \
222   $(MODEL_LIB2)(mod_field_group.o) $(MODEL_LIB2)(mod_file.o) \
223   $(MODEL_LIB2)(mod_file_definition.o) $(MODEL_LIB2)(mod_file_group.o) \
224   $(MODEL_LIB2)(mod_grid.o) $(MODEL_LIB2)(mod_grid_definition.o) \
225   $(MODEL_LIB2)(mod_grid_group.o) $(MODEL_LIB2)(mod_sorted_list.o) \
226   $(MODEL_LIB2)(mod_time_parameters.o) \
227   $(MODEL_LIB2)(mod_xmlio_parameters.o) $(MODEL_LIB2)(mod_zoom.o) \
228   $(MODEL_LIB2)(string_function.o) ../src/XMLIO/vector_context_def.inc
229$(MODEL_LIB2)(mod_dependency.o): $(MODEL_LIB2)(mod_axis.o) \
230   $(MODEL_LIB2)(mod_field.o) $(MODEL_LIB2)(mod_file.o) \
231   $(MODEL_LIB2)(mod_file_definition.o) $(MODEL_LIB2)(mod_file_group.o) \
232   $(MODEL_LIB2)(mod_grid.o) $(MODEL_LIB2)(mod_sorted_list.o) \
233   $(MODEL_LIB2)(mod_zoom.o) $(MODEL_LIB2)(string_function.o) \
234   ../src/XMLIO/vector_field_dep_def.inc
235$(MODEL_LIB2)(mod_domain.o): $(MODEL_LIB2)(mod_error_msg.o) \
236   $(MODEL_LIB2)(mod_xmlio_parameters.o) \
237   ../src/XMLIO/vector_domain_def.inc
238$(MODEL_LIB2)(mod_error_msg.o): $(MODEL_LIB2)(mod_xmlio_parameters.o)
239$(MODEL_LIB2)(mod_field.o): $(MODEL_LIB2)(mod_axis.o) \
240   $(MODEL_LIB2)(mod_error_msg.o) $(MODEL_LIB2)(mod_grid.o) \
241   $(MODEL_LIB2)(mod_sorted_list.o) \
242   $(MODEL_LIB2)(mod_xmlio_parameters.o) $(MODEL_LIB2)(mod_zoom.o) \
243   $(MODEL_LIB2)(string_function.o) ../src/XMLIO/vector_field_def.inc
244$(MODEL_LIB2)(mod_field_definition.o): $(MODEL_LIB2)(mod_field_group.o)
245$(MODEL_LIB2)(mod_field_group.o): $(MODEL_LIB2)(mod_field.o) \
246   $(MODEL_LIB2)(mod_xmlio_parameters.o) \
247   $(MODEL_LIB2)(string_function.o) \
248   ../src/XMLIO/vector_field_group_def.inc
249$(MODEL_LIB2)(mod_file.o): $(MODEL_LIB2)(mod_error_msg.o) \
250   $(MODEL_LIB2)(mod_field_group.o) $(MODEL_LIB2)(mod_sorted_list.o) \
251   $(MODEL_LIB2)(mod_xmlio_parameters.o) \
252   $(MODEL_LIB2)(string_function.o) ../src/XMLIO/vector_file_def.inc
253$(MODEL_LIB2)(mod_file_definition.o): $(MODEL_LIB2)(mod_file_group.o)
254$(MODEL_LIB2)(mod_file_group.o): $(MODEL_LIB2)(mod_file.o) \
255   $(MODEL_LIB2)(mod_xmlio_parameters.o) \
256   $(MODEL_LIB2)(string_function.o) \
257   ../src/XMLIO/vector_file_group_def.inc
258$(MODEL_LIB2)(mod_grid.o): $(MODEL_LIB2)(mod_domain.o) \
259   $(MODEL_LIB2)(mod_sorted_list.o) \
260   $(MODEL_LIB2)(mod_xmlio_parameters.o) $(MODEL_LIB2)(mod_zoom.o) \
261   $(MODEL_LIB2)(string_function.o) ../src/XMLIO/vector_grid_def.inc
262$(MODEL_LIB2)(mod_grid_definition.o): $(MODEL_LIB2)(mod_grid_group.o)
263$(MODEL_LIB2)(mod_grid_group.o): $(MODEL_LIB2)(mod_grid.o) \
264   $(MODEL_LIB2)(mod_xmlio_parameters.o) \
265   $(MODEL_LIB2)(string_function.o) \
266   ../src/XMLIO/vector_grid_group_def.inc
267$(MODEL_LIB2)(mod_parse_xml.o): $(MODEL_LIB2)(mod_axis.o) \
268   $(MODEL_LIB2)(mod_axis_definition.o) $(MODEL_LIB2)(mod_axis_group.o) \
269   $(MODEL_LIB2)(mod_context.o) $(MODEL_LIB2)(mod_error_msg.o) \
270   $(MODEL_LIB2)(mod_field.o) $(MODEL_LIB2)(mod_field_definition.o) \
271   $(MODEL_LIB2)(mod_field_group.o) $(MODEL_LIB2)(mod_file.o) \
272   $(MODEL_LIB2)(mod_file_definition.o) $(MODEL_LIB2)(mod_file_group.o) \
273   $(MODEL_LIB2)(mod_grid.o) $(MODEL_LIB2)(mod_grid_definition.o) \
274   $(MODEL_LIB2)(mod_grid_group.o) $(MODEL_LIB2)(mod_zoom.o) \
275   $(MODEL_LIB2)(string_function.o)
276$(MODEL_LIB2)(mod_sorted_list.o): ../src/XMLIO/vector_node_def.inc
277$(MODEL_LIB2)(mod_zoom.o): $(MODEL_LIB2)(mod_sorted_list.o) \
278   $(MODEL_LIB2)(mod_xmlio_parameters.o) \
279   $(MODEL_LIB2)(string_function.o) ../src/XMLIO/vector_zoom_def.inc
280$(MODEL_LIB2)(string_function.o): $(MODEL_LIB2)(mod_error_msg.o)
281$(MODEL_LIB2)(test_xmlio.o): $(MODEL_LIB2)(mod_interface_ioipsl.o) \
282   $(MODEL_LIB2)(xmlio.o)
283$(MODEL_LIB2)(xmlio.o): $(MODEL_LIB2)(mod_axis.o) \
284   $(MODEL_LIB2)(mod_axis_definition.o) $(MODEL_LIB2)(mod_axis_group.o) \
285   $(MODEL_LIB2)(mod_context.o) $(MODEL_LIB2)(mod_dependency.o) \
286   $(MODEL_LIB2)(mod_error_msg.o) $(MODEL_LIB2)(mod_field.o) \
287   $(MODEL_LIB2)(mod_field_definition.o) \
288   $(MODEL_LIB2)(mod_field_group.o) $(MODEL_LIB2)(mod_file.o) \
289   $(MODEL_LIB2)(mod_file_definition.o) $(MODEL_LIB2)(mod_file_group.o) \
290   $(MODEL_LIB2)(mod_grid.o) $(MODEL_LIB2)(mod_grid_definition.o) \
291   $(MODEL_LIB2)(mod_grid_group.o) $(MODEL_LIB2)(mod_parse_xml.o) \
292   $(MODEL_LIB2)(mod_time_parameters.o) $(MODEL_LIB2)(string_function.o)
Note: See TracBrowser for help on using the repository browser.