Philippe 23/02/2016: lfi2cdf: modif for JPHEXT/=1
[MNH-git_open_source-lfs.git] / LIBTOOLS / tools / lfi2cdf / Makefile
1 VPATH = src:$(DIR_OBJ)
2 #######################################
3 DIR_OBJ = ./$(ARCH)
4
5 ifeq ($(origin SRC_MESONH), undefined)
6 SRC_MESONH := $(shell pwd|sed -e 's/\/tools\/.*//')
7 endif
8
9 ifeq ($(origin DIR_LIB), undefined)
10 DIR_LIB := $(SRC_MESONH)/lib
11 endif
12
13 DIR_LFI = $(DIR_LIB)/NEWLFI
14 LIBLFI  = $(DIR_LFI)/$(ARCH)/libNEWLFI_ALL.a
15
16 DIR_COMP = $(DIR_LIB)/COMPRESS
17 LIBCOMP  = $(DIR_COMP)/$(ARCH)/liblficomp.a
18
19
20 OBJS = mode_options.o lfi2cdf.o modd_ncparam.o mode_dimlist.o fieldtype.o mode_util.o
21 PROGS = lfi2cdf 
22
23 INC = -I$(DIR_OBJ) -DLFI_INT=$(LFI_INT)
24
25 DIR_CONF:=$(SRC_MESONH)/conf
26
27 include $(DIR_CONF)/config.$(ARCH)
28 include Rules.$(ARCH)
29
30 %.o:%.f90 $(DIR_OBJ)/.dummy
31         $(CPP) $(INC) $(CPPFLAGS) $< >  $(DIR_OBJ)/cpp_$(*F).f90
32         $(F90) $(INC) -c $(F90FLAGS) $(DIR_OBJ)/cpp_$(*F).f90 -o $(DIR_OBJ)/$(*F).o
33         -@mv  *.mod $(DIR_OBJ)/. 2> /dev/null || echo pas de module dans $*.f90
34
35 %.o:%.c $(DIR_OBJ)/.dummy
36         $(CC) $(INC) $(CFLAGS) $(CPPFLAGS) -c $< -o $(DIR_OBJ)/$(*F).o
37
38 all : $(PROGS) cdf2cdf cdf2lfi
39
40 cdf2cdf: $(PROGS) 
41         cd $(DIR_OBJ); rm -f cdf2cdf; ln -s $(PROGS) cdf2cdf
42
43 cdf2lfi: $(PROGS) 
44         cd $(DIR_OBJ); rm -f cdf2lfi; ln -s $(PROGS) cdf2lfi
45
46 $(PROGS): $(OBJS) $(LIBLFI) $(LIBCOMP)
47         cd $(DIR_OBJ); $(F90) $(LDFLAGS) -o $@ $(OBJS) $(LIBLFI) $(LIBCOMP) $(LIBCDF)
48
49 #$(OBJS): $(LIBCDF)
50 $(OBJS): 
51
52 $(DIR_OBJ)/.dummy :
53         mkdir -p $(DIR_OBJ)
54         @touch $(DIR_OBJ)/.dummy
55
56 $(LIBLFI): $(DIR_LFI)
57         $(MAKE) -C $(DIR_LFI)
58
59 $(LIBCOMP): $(DIR_COMP)
60         $(MAKE) -C $(DIR_COMP)
61
62 $(DIR_LFI):
63         @echo "ERROR : NEWLFI directory can't be found"
64         @echo "        from root directory DIR_LIB = $(DIR_LIB)";echo
65         @echo "please check SRC_MESONH or DIR_LIB (= \$$SRC_MESONH/lib) env. variable"
66         @echo "and try again...";exit 1
67
68 $(LIBCDF):
69         @echo "*************      NETCDF library not found        ***************";\
70         echo "Please, give NETCDFHOME variable in Rules.$(ARCH) the right path !";\
71         echo "******************************************************************";\
72         exit 1
73
74 clean:
75         (if [ -d $(DIR_OBJ) ] ; then cd $(DIR_OBJ); rm -f cpp_*.f90 cpp_*.f *.o *.mod ; fi)
76
77 distclean:
78         rm -rf $(DIR_OBJ) 
79
80
81 lfi2cdf.o: lfi2cdf.f90 mode_util.o
82 modd_ncparam.o: modd_ncparam.f90
83 mode_dimlist.o: mode_dimlist.f90
84 mode_util.o: mode_util.f90 modd_ncparam.o fieldtype.o mode_dimlist.o
85 fieldtype.o: fieldtype.f90 modd_ncparam.o
86