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:
|