-
Notifications
You must be signed in to change notification settings - Fork 98
/
Copy pathMakefile.am
233 lines (190 loc) · 8.15 KB
/
Makefile.am
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
## This is an automake file, part of Unidata's netCDF package.
# Copyright 2005-2006, see the COPYRIGHT file for more information.
# This file controls the building of the fortran 90 API. All testing
# of the F90 API is done in the nf_test directory.
# Remember BUILD_F90 <=> !BUILD_F03
AM_LDFLAGS =
BUILT_SOURCES =
libnetcdff_la_SOURCES =
libnetcdff_la_DEPENDENCIES =
EXTRA_DIST =
CLEANFILES =
DISTCLEANFILES =
libnetcdff_la_LDFLAGS = $(AM_LDFLAGS) -version-number 6:1:1
# This, plus either netcdf4.f90 or netcdf.f90, is the main source.
libnetcdff_la_SOURCES += typeSizes.f90
if USE_NETCDF4
NETCDF_O = netcdf4.o
else
NETCDF_O = netcdf.o
endif
# Add dependencies for source files included in "meta" source files, so the
# meta source is rebuilt properly when an included file is modified.
netcdf.$(OBJEXT): netcdf_constants.f90 netcdf_externals.f90 netcdf_overloads.f90 \
netcdf_visibility.f90 netcdf_file.f90 netcdf3_file.f90 netcdf_dims.f90 \
netcdf_attributes.f90 netcdf_variables.f90 netcdf_text_variables.f90 \
netcdf_expanded.f90 netcdf_eightbyte.f90
netcdf4.$(OBJEXT): netcdf_constants.f90 netcdf_externals.f90 netcdf4_externals.f90 \
netcdf_overloads.f90 netcdf_visibility.f90 netcdf4_visibility.f90 \
netcdf_file.f90 netcdf4_file.f90 netcdf_dims.f90 netcdf_attributes.f90 \
netcdf4_variables.f90 netcdf_text_variables.f90 netcdf_expanded.f90 \
netcdf4_eightbyte.f90 netcdf4_func.f90 netcdf4_overloads.f90
if !BUILD_F03
libnetcdff_la_LIBADD = ${top_builddir}/libsrc/libnetcdfc.la
endif
#if BUILD_F03
libnetcdff_la_SOURCES += module_netcdf_nc_data.F90 module_netcdf_nc_interfaces.f90 \
module_netcdf_nf_data.F90 module_netcdf_nf_interfaces.F90 \
module_netcdf_f03.f90 \
nf_attio.F90 nf_control.F90 nf_dim.f90 nf_misc.f90 \
nf_genatt.f90 nf_geninq.f90 nf_genvar.f90 \
nf_vario.F90 nf_var1io.F90 nf_varaio.F90 \
nf_varmio.F90 nf_varsio.F90
if USE_NETCDF4
# Use netcdf4.f90 to build the library.
libnetcdff_la_SOURCES += module_netcdf4_nc_interfaces.f90 \
module_netcdf4_nf_interfaces.F90 module_netcdf4_f03.f90 \
nf_lib.c nf_nc4.f90
endif USE_NETCDF4
if USE_LOGGING
# add nf_logging to build
libnetcdff_la_SOURCES += nf_logging.F90
endif USE_LOGGING
#else !BUILD_F03
# The file netcdf.f90 includes all of these.
libnetcdff_la_DEPENDENCIES += netcdf_attributes.f90 netcdf_constants.f90 netcdf_dims.f90 \
netcdf_expanded.f90 netcdf_externals.f90 netcdf_file.f90 \
netcdf_overloads.f90 netcdf_text_variables.f90 netcdf_variables.f90 \
netcdf_visibility.f90 netcdf_eightbyte.f90
if USE_NETCDF4
libnetcdff_la_SOURCES += netcdf4.f90
# These are the extra netCDF-4 F90 source files.
libnetcdff_la_DEPENDENCIES += netcdf4_func.f90 netcdf4_externals.f90 netcdf4_visibility.f90 \
netcdf4.f90 netcdf4_eightbyte.f90 \
netcdf4_variables.f90 netcdf4_file.f90 \
netcdf4_overloads.f90
else !USE_NETCDF4
libnetcdff_la_SOURCES += netcdf.f90 netcdf3_file.f90
endif !USE_NETCDF4
#endif !BUILD_F03
if BUILD_V2
libnetcdff_la_SOURCES += nf_v2compat.c module_netcdf_fortv2_c_interfaces.f90 nf_fortv2.f90
endif
# Tell make to rebuld fortran library if netcdf.inc has changed
libnetcdff_la_DEPENDENCIES += netcdf.inc
# All of the _DEPENDENCIES must also be in EXTRA_DIST
EXTRA_DIST += netcdf_attributes.f90 netcdf_constants.f90 netcdf_dims.f90 \
netcdf_expanded.f90 netcdf_externals.f90 netcdf_file.f90 \
netcdf_overloads.f90 netcdf_text_variables.f90 netcdf_variables.f90 \
netcdf_visibility.f90 netcdf_eightbyte.f90 \
netcdf4_func.f90 netcdf4_externals.f90 netcdf4_visibility.f90 \
netcdf4.f90 netcdf4_eightbyte.f90 netcdf4_overloads.f90 \
netcdf4_variables.f90 netcdf4_file.f90 netcdf.inc CMakeLists.txt
# Some fortran compilers change the file names of .mod files to all
# uppercase. Just to be special.
LCHEADERS =
UCHEADERS =
if BUILD_F03
LCHEADERS += netcdf_nc_data.mod netcdf_nc_interfaces.mod netcdf_nf_data.mod \
netcdf_nf_interfaces.mod netcdf_f03.mod
UCHEADERS += NETCDF_NC_DATA.mod NETCDF_NC_INTERFACES.mod NETCDF_NF_DATA.mod \
NETCDF_NF_INTERFACES.mod NETCDF_F03.mod
if BUILD_V2
LCHEADERS += netcdf_fortv2_c_interfaces.mod
UCHEADERS += NETCDF_FORTV2_C_INTERFACES.mod
endif BUILD_V2
if USE_NETCDF4
LCHEADERS += netcdf4_nc_interfaces.mod netcdf4_nf_interfaces.mod netcdf4_f03.mod
UCHEADERS += NETCDF4_NC_INTERFACES.mod NETCDF4_NF_INTERFACES.mod NETCDF4_F03.mod
endif USE_NETCDF4
endif BUILD_F03
# Must be consistent with previous list of uppercase headers
# Always construct the upper case modules (may be unused)
if BUILD_F03
#if UPPER_CASE_MOD
#NETCDF_NC_DATA.mod: module_netcdf_nc_data.o
#NETCDF_NC_INTERFACES.mod: module_netcdf_nc_interfaces.o
#NETCDF_NF_DATA.mod: module_netcdf_nf_data.o
#NETCDF_NF_INTERFACES.mod: module_netcdf_nf_interfaces.o
#NETCDF_F03.mod: module_netcdf_f03.o
#if BUILD_V2
#NETCDF_FORTV2_C_INTERFACES.mod: module_netcdf_fortv2_c_interfaces.o
#endif BUILD_V2
#else !UPPER_CASE_MOD
netcdf_nc_data.mod: module_netcdf_nc_data.o
netcdf_nc_interfaces.mod: module_netcdf_nc_interfaces.o
netcdf_nf_data.mod: module_netcdf_nf_data.o
netcdf_nf_interfaces.mod: module_netcdf_nf_interfaces.o
netcdf_f03.mod: module_netcdf_f03.o
if BUILD_V2
netcdf_fortv2_c_interfaces.mod: module_netcdf_fortv2_c_interfaces.o
endif BUILD_V2
#endif !UPPER_CASE_MOD
if USE_NETCDF4
netcdf4_nc_interfaces.mod: module_netcdf4_nc_interfaces.o
netcdf4_nf_interfaces.mod: module_netcdf4_nf_interfaces.o
netcdf4_f03.mod: module_netcdf4_f03.o
endif USE_NETCDF4
endif BUILD_F03
if UPPER_CASE_MOD
$(UCHEADERS): $(LCHEADERS)
for lc in $(LCHEADERS) ; do \
uc="$${lc%%.mod}" ; \
uc=`echo $$uc | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`; \
uc="$${uc}.mod" ; rm -f $$uc ; cp $$lc $$uc ; \
done
endif UPPER_CASE_MOD
# These are always used
if UPPER_CASE_MOD
UCCOMMON = TYPESIZES.mod NETCDF.mod
NETCDF.mod: $(NETCDF_O)
TYPESIZES.mod: typeSizes.o
else !UPPER_CASE_MOD
LCCOMMON = typesizes.mod netcdf.mod
netcdf.mod: $(NETCDF_O)
typesizes.mod: typeSizes.o
endif !UPPER_CASE_MOD
if UPPER_CASE_MOD
COMMONHEADERS = $(UCHEADERS) $(UCCOMMON)
BUILT_SOURCES += $(UCHEADERS) $(UCCOMMON) $(LCHEADERS) $(LCCOMMON)
else !UPPER_CASE_MOD
COMMONHEADERS = $(LCHEADERS) $(LCCOMMON)
BUILT_SOURCES += $(LCHEADERS) $(LCCOMMON)
endif !UPPER_CASE_MOD
nodist_include_HEADERS = $(COMMONHEADERS)
libnetcdff_la_DEPENDENCIES += $(COMMONHEADERS)
# This is what we are building: a convenience library of Fortran 2003 functions.
lib_LTLIBRARIES = libnetcdff.la
nodist_include_HEADERS += netcdf.inc
BUILT_SOURCES += netcdf.inc
# Build netcdf.inc file from netcdf2, netcdf3 and netcdf4 files
netcdf.inc: $(top_srcdir)/fortran/netcdf2.inc $(top_srcdir)/fortran/netcdf3.inc $(top_srcdir)/fortran/netcdf4.inc
echo '! NetCDF-3.' > netcdf.inc
cat $(top_srcdir)/fortran/netcdf3.inc >> netcdf.inc
if USE_NETCDF4
echo >> netcdf.inc
echo '! NetCDF-4.' >> netcdf.inc
cat $(top_srcdir)/fortran/netcdf4.inc >> netcdf.inc
endif
if BUILD_V2
echo >> netcdf.inc
echo '! NetCDF-2.' >> netcdf.inc
cat $(top_srcdir)/fortran/netcdf2.inc >> netcdf.inc
endif
if USE_LOGGING
echo >> netcdf.inc
echo '! This is to turn on netCDF internal logging.' >> netcdf.inc
echo ' integer nf_set_log_level' >> netcdf.inc
echo ' external nf_set_log_level' >> netcdf.inc
endif
# The nfconfig.in file is turned into nfconfig.inc by the configure
# script. The man page is generated on the developers machine for the dist
EXTRA_DIST += netcdf.inc netcdf2.inc netcdf3.inc netcdf4.inc
DISTCLEANFILES += nfconfig1.inc nfconfig.inc netcdf.inc
CLEANFILES += netcdf_nc_data.mod netcdf_nc_interfaces.mod netcdf_nf_data.mod \
netcdf_nf_interfaces.mod netcdf_fortv2_c_interfaces.mod \
netcdf_f03.mod netcdf4_nc_interfaces.mod \
netcdf4_nf_interfaces.mod netcdf4_f03.mod
CLEANFILES += $(UCHEADERS) $(UCCOMMON) $(LCHEADERS) $(LCCOMMON)
# Turn off parallel builds in this directory.
.NOTPARALLEL: