Philippe 02/05/2016: moved all LIBTOOLS files in LIBTOOLS directory
[MNH-git_open_source-lfs.git] / LIBTOOLS / tools / diachro / Makefile.extractdia
1 B ?= 32
2 DIR_OBJ=./$(ARCH)_$(B)
3
4 ifeq ($(strip $(VERSION)),)
5 VPATH=src/BUG:src/EXTRACTDIA:src/TOOL:src/mesonh:$(DIR_OBJ)
6 else                            # string VERSION not empty
7 VPATH=src/$(VERSION):src/BUG:src/EXTRACTDIA:src/TOOL:src/mesonh:src/MOD:src/mesonh_MOD:$(DIR_OBJ)
8 endif
9
10 ifeq ($(origin MNH_LIBTOOLS), undefined)
11 include ../where.Libs
12 else
13 include $(MNH_LIBTOOLS)/tools/where.Libs
14 endif
15
16 INC  = -I $(DIR_OBJ)
17 LIBS = $(DIR_DIA)/$(DIR_OBJ)/$(LIBDIA) $(LIBCOMP) $(LIBLFI)
18
19 include $(DIR_CONF)/config.$(ARCH)
20 include Rules.$(ARCH)
21
22
23 PROG = extractdia
24 OBJS = shuman.o hor_interp_4pts.o modd_readlh.o \
25        uv_to_zonal_and_merid.o temporal_dist_for_ext.o \
26        low2up.o up2low.o \
27        change_a_grid.o \
28        zinter.o zmoy.o pinter.o \
29        readvar.o writevar.o writecdl.o writellhv.o writegrib.o\
30        dd.o ff.o computedir.o verif_group.o \
31        ini2lalo.o int2lalo.o \
32        to_computing_units.o from_computing_units.o modn_outfile.o
33
34
35 all: $(LIBEXTRACT) $(PROG)
36
37 # generation de l executable
38 $(PROG): $(addsuffix .o,$(PROG)) $(OBJS) $(LIBS)
39         #cd $(DIR_OBJ);$(F90) $(LDFLAGS) $(patsubst $(DIR_OBJ)/%,%,$^) -o $@ $(LIBV5D) $(LIBGRB)
40         cd $(DIR_OBJ);$(F90) $(LDFLAGS) $(patsubst $(DIR_OBJ)/%,%,$^) -o $@ $(LIBGRB)
41         @echo executable $@ disponible sous $(DIR_OBJ)
42
43 # gestion des versions
44 ifeq ($(strip $(VERSION)),)
45 $(LIBEXTRACT): $(OBJS)
46         cd $(DIR_OBJ) ; $(AR) rv $@ $(OBJS)
47         ls -l $(DIR_OBJ)/$@
48 else                            # string VERSION not empty
49 $(LIBEXTRACT): $(OBJS)
50         @echo '***' if libxxx_$(VERSION).a does not exist, cp libxxx.a libxxx_$(VERSION).a
51         ls -l $(DIR_OBJ)/$@
52         cd $(DIR_OBJ) ; $(AR) rv $@ $(OBJS)
53         ls -l $(DIR_OBJ)/$@
54 endif
55
56 # creation du repertoire contenant les objets
57 $(DIR_OBJ)/.dummy:
58         mkdir $(DIR_OBJ)
59         @touch $(DIR_OBJ)/.dummy
60
61 # cleaning
62 clean:
63         (if [ -d $(DIR_OBJ) ] ; then cd $(DIR_OBJ); rm $(PROG)* $(OBJS) $(addprefix cpp_,$(OBJS:.o=.f90)); fi)
64
65 distclean:
66         (if [ -d $(DIR_OBJ) ] ; then cd $(DIR_OBJ); rm * ; fi)
67
68 # regle de compilation
69 %.o:%.f90 $(DIR_OBJ)/.dummy
70         $(CPP) $(INC) $(CPPFLAGS) $< >  $(DIR_OBJ)/cpp_$(*F).f90
71         $(F90) $(INC) -c $(F90FLAGS) $(DIR_OBJ)/cpp_$(*F).f90 -o $(DIR_OBJ)/$(*F).o
72         -@mv *.mod $(DIR_OBJ)/. 2>/dev/null || echo pas de module dans $*.f90
73
74
75 # dependances du programme principal
76 $(PROG).o: $(PROG).f90 change_a_grid.o hor_interp_4pts.o \
77         uv_to_zonal_and_merid.o zinter.o zmoy.o \
78         ini2lalo.o int2lalo.o writedir.o \
79         writevar.o writecdl.o writellhv.o writegrib.o writedir.o \
80         dd.o ff.o low2up.o modn_outfile.o
81
82 # dependances des routines
83 uv_to_zonal_and_merid.o: uv_to_zonal_and_merid.f90 shuman.o 
84 writecdl.o: writecdl.f90 temporal_dist_for_ext.o from_computing_units.o
85 writevar.o: writevar.f90 modn_ncar.o modd_files_diachro.o from_computing_units.o
86 writellhv.o: writellhv.f90 from_computing_units.o
87 writegrib.o: writegrib.f90 from_computing_units.o  modn_outfile.o
88 writedir.o: writedir.f90 
89 change_a_grid.o: change_a_grid.f90 shuman.o
90 zmoy.o: zmoy.f90 zinter.o
91 temporal_dist_for_ext.o: temporal_dist_for_ext.f90
92 dd.o: dd.f90 computedir.o
93 computedir.o: computedir.f90
94 readvar.o: readvar.f90 verif_group.o to_computing_units.o modd_readlh.o
95 verif_group.o: verif_group.f90
96 modn_outfile.o: modn_outfile.f90 modd_conf.o    
97 ini2lalo.o: ini2lalo.f90 modd_cst.o modd_parameters.o modd_grid.o modd_grid1.o
98 int2lalo.o: int2lalo.f90 modd_cst.o modd_parameters.o modd_dim1.o modd_grid1.o \
99         mode_gridproj.o
100