1 | |
---|
2 | SRCS1 = $(shell ls $(COUPLE)/lib/psmile/src/*.F90) |
---|
3 | OBJS0 = $(patsubst $(COUPLE)/lib/psmile/src/%.F90, %.o, $(SRCS1)) |
---|
4 | OBJS1 = $(OBJS0) GPTLget_memusage.o shr_reprosumx86.o |
---|
5 | |
---|
6 | VPATH = .:$(COUPLE)/lib/psmile/src:\ |
---|
7 | $(COUPLE)/lib/psmile/include:\ |
---|
8 | $(NETCDF_INCLUDE):$(MPI_INCLUDE) |
---|
9 | |
---|
10 | LIBRARY = $(ARCHDIR)/lib/libpsmile.${CHAN}.a |
---|
11 | |
---|
12 | DYNLIBRARY = $(ARCHDIR)/lib/libpsmile.${CHAN}.so |
---|
13 | |
---|
14 | clean: |
---|
15 | rm -f i.* *.o *.mod |
---|
16 | |
---|
17 | all: $(LIBRARY) |
---|
18 | |
---|
19 | shared: $(DYNLIBRARY) |
---|
20 | |
---|
21 | $(LIBRARY): PREBUILTDIR := $(LIBBUILD) |
---|
22 | $(LIBRARY): $(OBJS1) |
---|
23 | $(AR) $(ARFLAGS) $(LIBRARY) $(OBJS1) |
---|
24 | |
---|
25 | $(DYNLIBRARY): PREBUILTDIR := $(LIBBUILDSHARED) |
---|
26 | $(DYNLIBRARY): F90FLAGS += $(DYNOPT) |
---|
27 | $(DYNLIBRARY): CCFLAGS += $(DYNOPT) |
---|
28 | $(DYNLIBRARY): LDFLAGS += $(DYNOPT) $(LDDYNOPT) |
---|
29 | $(DYNLIBRARY): $(OBJS1) $(OBJS3) $(OBJS4) |
---|
30 | $(F90) $(LDFLAGS) -o $(DYNLIBRARY) $(OBJS1) $(OBJS3) $(OBJS4) $(NETCDF_LIBRARY) -L$(ARCHDIR)/lib -lscrip -lmct -lmpeu |
---|
31 | |
---|
32 | INCLS = -I$(COUPLE)/lib/psmile/include \ |
---|
33 | -I$(PREBUILTDIR)/mct \ |
---|
34 | -I$(PREBUILTDIR)/scrip |
---|
35 | |
---|
36 | INCLSC = -I$(COUPLE)/lib/psmile/include |
---|
37 | .SUFFIXES: |
---|
38 | .SUFFIXES: .o .F90 .c |
---|
39 | |
---|
40 | %.o: %.F90 |
---|
41 | $(F90) $(F90FLAGS) $(INCLS) -c $< |
---|
42 | |
---|
43 | %.o: %.c |
---|
44 | $(CC) $(CCFLAGS) $(INCLSC) -c $< |
---|
45 | |
---|
46 | GPTLget_memusage.o: GPTLget_memusage.c |
---|
47 | $(CC) $(CCFLAGS) -DHAVE_SLASHPROC -c $< |
---|
48 | |
---|
49 | shr_reprosumx86.o: shr_reprosumx86.c |
---|
50 | $(CC) $(CCFLAGS) -c $< |
---|
51 | |
---|
52 | mod_psmile_io.o: mod_psmile_io.F90 |
---|
53 | $(F90) $(F90FLAGS) $(INCLS) -c $< |
---|
54 | |
---|
55 | # problem is that mct_mod always has a new timestamp even when it shouldn't |
---|
56 | # so just copy the file, but don't create a dependency for now. |
---|
57 | # need to add a check whether mct_mod.o has changed and only copy if it has. |
---|
58 | #mct_mod.o: $(ARCHDIR)/build/lib/mct/mct_mod.o |
---|
59 | # cp -p $(ARCHDIR)/build/lib/mct/mct_mod.o . |
---|
60 | mct_mod.o: |
---|
61 | cp -p $(PREBUILTDIR)/mct/mct_mod.o . |
---|
62 | |
---|
63 | # |
---|
64 | # ALL dependencies ... |
---|
65 | # |
---|
66 | |
---|
67 | shr_reprosumx86.o: |
---|
68 | GPTLget_memusage.o: |
---|
69 | mod_oasis_kinds.o: |
---|
70 | mod_oasis_parameters.o: mod_oasis_kinds.o |
---|
71 | mod_oasis_data.o: mod_oasis_kinds.o |
---|
72 | mod_oasis_sys.o: mod_oasis_kinds.o mod_oasis_data.o |
---|
73 | mod_oasis_mem.o: mod_oasis_kinds.o GPTLget_memusage.o mod_oasis_sys.o |
---|
74 | mod_oasis_timer.o: mod_oasis_kinds.o mod_oasis_sys.o mod_oasis_data.o |
---|
75 | mod_oasis_load_balancing.o: mod_oasis_kinds.o mod_oasis_sys.o mod_oasis_data.o |
---|
76 | mod_oasis_mpi.o: mod_oasis_kinds.o mod_oasis_data.o mod_oasis_sys.o mod_oasis_timer.o |
---|
77 | mod_oasis_reprosum.o: mod_oasis_kinds.o mod_oasis_data.o mod_oasis_sys.o \ |
---|
78 | mod_oasis_timer.o shr_reprosumx86.o mod_oasis_mpi.o |
---|
79 | mod_oasis_string.o: mod_oasis_kinds.o mod_oasis_data.o mod_oasis_sys.o \ |
---|
80 | mod_oasis_parameters.o |
---|
81 | mod_oasis_namcouple.o: mod_oasis_kinds.o mod_oasis_data.o mod_oasis_sys.o \ |
---|
82 | mod_oasis_parameters.o mod_oasis_mpi.o mod_oasis_string.o |
---|
83 | mod_oasis_part.o: mod_oasis_kinds.o mod_oasis_data.o mod_oasis_sys.o \ |
---|
84 | mod_oasis_parameters.o mod_oasis_timer.o mod_oasis_mpi.o mct_mod.o \ |
---|
85 | mod_oasis_load_balancing.o mod_oasis_io.o |
---|
86 | mod_oasis_var.o: mod_oasis_kinds.o mod_oasis_data.o mod_oasis_sys.o \ |
---|
87 | mod_oasis_parameters.o mod_oasis_timer.o mod_oasis_mpi.o mod_oasis_part.o |
---|
88 | mod_oasis_ioshr.o: mod_oasis_kinds.o mod_oasis_data.o mod_oasis_sys.o \ |
---|
89 | mod_oasis_mpi.o mod_oasis_string.o mct_mod.o |
---|
90 | mod_oasis_io.o: mod_oasis_kinds.o mod_oasis_data.o mod_oasis_sys.o \ |
---|
91 | mod_oasis_parameters.o mod_oasis_ioshr.o mod_oasis_mpi.o mct_mod.o |
---|
92 | mod_oasis_grid.o: mod_oasis_kinds.o mod_oasis_data.o mod_oasis_sys.o \ |
---|
93 | mod_oasis_io.o mod_oasis_part.o mod_oasis_mpi.o mod_oasis_timer.o mct_mod.o |
---|
94 | mod_oasis_map.o: mod_oasis_kinds.o mod_oasis_data.o mod_oasis_sys.o \ |
---|
95 | mod_oasis_parameters.o mod_oasis_mpi.o mod_oasis_var.o mod_oasis_part.o \ |
---|
96 | mod_oasis_string.o mod_oasis_namcouple.o mod_oasis_timer.o mod_oasis_io.o mct_mod.o |
---|
97 | mod_oasis_coupler.o: mod_oasis_kinds.o mod_oasis_data.o mod_oasis_sys.o \ |
---|
98 | mod_oasis_map.o mod_oasis_parameters.o mod_oasis_mpi.o mod_oasis_var.o mod_oasis_part.o \ |
---|
99 | mod_oasis_string.o mod_oasis_namcouple.o mod_oasis_timer.o mod_oasis_io.o \ |
---|
100 | mod_oasis_mem.o mct_mod.o mod_oasis_load_balancing.o |
---|
101 | mod_oasis_advance.o: mod_oasis_kinds.o mod_oasis_data.o mod_oasis_sys.o \ |
---|
102 | mod_oasis_parameters.o mod_oasis_var.o mod_oasis_part.o mod_oasis_mpi.o \ |
---|
103 | mod_oasis_coupler.o mod_oasis_timer.o mod_oasis_io.o mod_oasis_mem.o mct_mod.o \ |
---|
104 | mod_oasis_map.o mod_oasis_reprosum.o mod_oasis_load_balancing.o |
---|
105 | mod_oasis_method.o: mod_oasis_kinds.o mod_oasis_data.o mod_oasis_sys.o \ |
---|
106 | mod_oasis_parameters.o mod_oasis_coupler.o mod_oasis_namcouple.o \ |
---|
107 | mod_oasis_timer.o mod_oasis_ioshr.o mod_oasis_advance.o mod_oasis_grid.o \ |
---|
108 | mod_oasis_mpi.o mod_oasis_part.o mod_oasis_var.o mod_oasis_mem.o mct_mod.o \ |
---|
109 | mod_oasis_load_balancing.o |
---|
110 | mod_oasis_getput_interface.o: mod_oasis_kinds.o mod_oasis_data.o mod_oasis_sys.o \ |
---|
111 | mod_oasis_parameters.o mod_oasis_var.o mod_oasis_advance.o mct_mod.o |
---|
112 | mod_oasis_auxiliary_routines.o: mod_oasis_kinds.o mod_oasis_data.o mod_oasis_sys.o \ |
---|
113 | mod_oasis_parameters.o mod_oasis_var.o mod_oasis_mpi.o \ |
---|
114 | mod_oasis_coupler.o mod_oasis_timer.o mod_oasis_io.o mct_mod.o |
---|
115 | mod_prism.o: mod_oasis_kinds.o mod_oasis_part.o mod_oasis_sys.o \ |
---|
116 | mod_oasis_getput_interface.o mod_oasis_parameters.o \ |
---|
117 | mod_oasis_grid.o mod_oasis_method.o mod_oasis_var.o |
---|
118 | mod_oasis.o: mod_oasis_kinds.o mod_oasis_part.o mod_oasis_sys.o \ |
---|
119 | mod_oasis_getput_interface.o mod_oasis_parameters.o mod_oasis_auxiliary_routines.o \ |
---|
120 | mod_oasis_grid.o mod_oasis_method.o mod_oasis_var.o |
---|
121 | |
---|