mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-12-27 08:49:16 +08:00
1552d894a2
re: Issue https://github.com/Unidata/netcdf-c/issues/2748 This PR fixes a number of issues and bugs. ## s3cleanup fixes * Delete extraneous s3cleanup.sh related files. * Remove duplicate s3cleanup.uids entries. ## Support the Google S3 API * Add code to recognize "storage.gooleapis.com" * Add extra code to track the kind of server being accessed: unknown, Amazon, Google. * Add a new mode flag "gs3" (analog to "s3") to support this api. * Modify the S3 URL code to support this case. * Modify the listobjects result parsing because Google returns some non-standard XML elements. * Change signature and calls for NC_s3urlrebuild. ## Handle corrupt Zarr files where shape is empty for a variable. Modify behavior when a variable's "shape" dictionary entry. Previously it returned an error, but now it suppresses such a variable. This change makes it possible to read non-corrupt data from the file. Also added a test case. ## Misc. Other Changes * Fix the nclog level handling to suppress output by default. * Fix de-duplicates code in ncuri.c * Restore testing of iridl.ldeo.columbia.edu. * Fix bug in define_vars() which did not always do a proper reclaim between variables.
228 lines
7.1 KiB
Makefile
228 lines
7.1 KiB
Makefile
## This is a automake file, part of Unidata's netCDF package.
|
|
# Copyright 2005-2018, see the COPYRIGHT file for more information.
|
|
|
|
# This is the main automake file for netCDF. It builds the different
|
|
# netcdf directories. Not all directories are built, depending on the
|
|
# options selected during configure.
|
|
|
|
# Ed Hartnett, Ward Fisher
|
|
|
|
# Put together AM_CPPFLAGS and AM_LDFLAGS.
|
|
include $(top_srcdir)/lib_flags.am
|
|
|
|
# This directory stores libtool macros, put there by aclocal.
|
|
ACLOCAL_AMFLAGS = -I m4
|
|
|
|
TESTS_ENVIRONMENT =
|
|
TEST_EXTENSIONS = .sh
|
|
#SH_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver-verbose
|
|
#sh_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver-verbose
|
|
#LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver-verbose
|
|
#TESTS_ENVIRONMENT += export SETX=1;
|
|
|
|
##
|
|
# Turn off plugin directory during distcheck, see
|
|
# comment thread at https://github.com/Unidata/netcdf-c/pull/2348
|
|
# for more information.
|
|
##
|
|
AM_DISTCHECK_CONFIGURE_FLAGS = --without-plugin-dir
|
|
|
|
# These files get added to the distribution.
|
|
EXTRA_DIST = README.md COPYRIGHT INSTALL.md test_prog.c lib_flags.am \
|
|
cmake CMakeLists.txt COMPILE.cmake.txt config.h.cmake.in \
|
|
cmake_uninstall.cmake.in FixBundle.cmake.in nc-config.cmake.in \
|
|
RELEASE_NOTES.md CTestConfig.cmake.in CTestCustom.cmake.in \
|
|
libnetcdf.settings.in netCDFConfig.cmake.in CMakeInstallation.cmake \
|
|
test-driver-verbose test_common.in fuzz
|
|
|
|
pkgconfigdir = $(libdir)/pkgconfig
|
|
pkgconfig_DATA = netcdf.pc
|
|
|
|
# Does the user want to build and run unit tests?
|
|
if BUILD_UNIT_TESTS
|
|
UNIT_TEST = unit_test
|
|
endif # BUILD_UNIT_TESTS
|
|
|
|
# Does the user want to build the V2 API?
|
|
if BUILD_V2
|
|
V2_TEST = nctest
|
|
endif
|
|
|
|
# Does the user want to build ncgen/ncdump?
|
|
if BUILD_UTILITIES
|
|
NCGEN3 = ncgen3
|
|
NCGEN = ncgen
|
|
NCDUMP = ncdump
|
|
endif
|
|
|
|
# Does the user want to build the examples?
|
|
if BUILD_EXAMPLES
|
|
EXAMPLES = examples
|
|
endif
|
|
|
|
# Is the user building netCDF-4?
|
|
if USE_NETCDF4
|
|
LIBSRC4_DIR = libsrc4
|
|
endif
|
|
|
|
# Is the user building with HDF5?
|
|
# Note that USE_HDF5 does not imply USE_NETCDF4
|
|
if USE_HDF5
|
|
H5_TEST_DIR = h5_test
|
|
LIBHDF5 = libhdf5
|
|
if USE_HDF5
|
|
NC_TEST4 = nc_test4
|
|
endif
|
|
endif
|
|
|
|
# Build the dap2 client
|
|
if ENABLE_DAP
|
|
OCLIB = oc2
|
|
DAP2 = libdap2
|
|
NCDAP2TESTDIR = ncdap_test
|
|
endif
|
|
|
|
if ENABLE_DAP4
|
|
DAP4 = libdap4
|
|
NCDAP4TESTDIR = dap4_test
|
|
XML = libncxml
|
|
endif #DAP4
|
|
|
|
if ENABLE_S3_INTERNAL
|
|
XML = libncxml # Internal S3 requires XML
|
|
endif #ENABLE_S3_INTERNAL
|
|
|
|
# Build PnetCDF
|
|
if USE_PNETCDF
|
|
LIBSRCP = libsrcp
|
|
endif
|
|
|
|
# Build HDF4 if desired.
|
|
if USE_HDF4
|
|
HDF4_TEST_DIR = hdf4_test
|
|
LIBHDF4 = libhdf4
|
|
endif
|
|
|
|
# Build Plugin support
|
|
if ENABLE_PLUGINS
|
|
NCPOCO = libncpoco
|
|
endif
|
|
|
|
# Build Cloud Storage if desired.
|
|
if ENABLE_NCZARR
|
|
ZARR_TEST_DIR = nczarr_test
|
|
ZARR = libnczarr
|
|
endif
|
|
|
|
# Optionally build test plugins
|
|
if ENABLE_PLUGINS
|
|
PLUGIN_DIR = plugins
|
|
endif
|
|
|
|
# If benchmarks were turned on, build and run a bunch more tests.
|
|
if BUILD_BENCHMARKS
|
|
BENCHMARKS_DIR = nc_perf
|
|
endif # BUILD_BENCHMARKS
|
|
|
|
# Define Test directories
|
|
if BUILD_TESTSETS
|
|
TESTDIRS = $(H5_TEST_DIR)
|
|
TESTDIRS += $(UNIT_TEST) $(V2_TEST) nc_test $(NC_TEST4)
|
|
TESTDIRS += $(BENCHMARKS_DIR) $(HDF4_TEST_DIR) $(NCDAP2TESTDIR) $(NCDAP4TESTDIR)
|
|
TESTDIRS += ${ZARR_TEST_DIR}
|
|
endif
|
|
|
|
# This is the list of subdirs for which Makefiles will be constructed
|
|
# and run. ncgen must come before ncdump, because their tests
|
|
# depend on it.
|
|
SUBDIRS = include ${XML} libdispatch libsrc $(LIBSRC4_DIR) \
|
|
$(LIBSRCP) $(LIBHDF4) $(LIBHDF5) $(OCLIB) $(DAP2) ${DAP4} \
|
|
${NCPOCO} ${ZARR} liblib \
|
|
$(NCGEN3) $(NCGEN) $(NCDUMP) ${PLUGIN_DIR} $(TESTDIRS) docs \
|
|
$(EXAMPLES)
|
|
|
|
# Remove these generated files, for a distclean.
|
|
DISTCLEANFILES = VERSION comps.txt test_prog libnetcdf.settings \
|
|
test_common.sh
|
|
|
|
# The nc-config script helps the user build programs with netCDF.
|
|
bin_SCRIPTS = nc-config
|
|
|
|
# install libnetcdf.settings in lib directory.
|
|
settingsdir = $(libdir)
|
|
settings_DATA = libnetcdf.settings
|
|
|
|
####
|
|
# Provide an entry to rebuild all the m4 generated files
|
|
# List of files to create: WARNING leave off the extension
|
|
####
|
|
|
|
MM4= ./nc_test/test_put ./nc_test/test_get ./nc_test/test_write \
|
|
./nc_test/test_read ./libsrc/netcdf ./libsrc/putget ./libsrc/ncx \
|
|
./libsrc/t_ncxx ./libsrc/attr
|
|
|
|
mm4::
|
|
for m in ${MM4} ; do \
|
|
b=`basename $$m` ; d=`dirname $$m`;\
|
|
pushd $$d; m4 -s $${b}.m4 > $${b}.c ; popd; done
|
|
|
|
check_nc_config:
|
|
$(CC) `./nc-config --cflags` test_prog.c -o test_prog `./nc-config --libs`
|
|
./test_prog
|
|
|
|
install-data-hook:
|
|
|
|
@echo ''
|
|
@echo '+-------------------------------------------------------------+'
|
|
@echo '| Congratulations! You have successfully installed netCDF! |'
|
|
@echo '| |'
|
|
@echo '| You can use script "nc-config" to find out the relevant |'
|
|
@echo '| compiler options to build your application. Enter |'
|
|
@echo '| |'
|
|
@echo '| nc-config --help |'
|
|
@echo '| |'
|
|
@echo '| for additional information. |'
|
|
@echo '| |'
|
|
@echo '| CAUTION: |'
|
|
@echo '| |'
|
|
@echo '| If you have not already run "make check", then we strongly |'
|
|
@echo '| recommend you do so. It does not take very long. |'
|
|
@echo '| |'
|
|
@echo '| Before using netCDF to store important data, test your |'
|
|
@echo '| build with "make check". |'
|
|
@echo '| |'
|
|
@echo '| NetCDF is tested nightly on many platforms at Unidata |'
|
|
@echo '| but your platform is probably different in some ways. |'
|
|
@echo '| |'
|
|
@echo '| If any tests fail, please see the netCDF web site: |'
|
|
@echo '| https://www.unidata.ucar.edu/software/netcdf/ |'
|
|
@echo '| |'
|
|
@echo '| NetCDF is developed and maintained at the Unidata Program |'
|
|
@echo '| Center. Unidata provides a broad array of data and software |'
|
|
@echo '| tools for use in geoscience education and research. |'
|
|
@echo '| https://www.unidata.ucar.edu |'
|
|
@echo '+-------------------------------------------------------------+'
|
|
@echo ''
|
|
|
|
|
|
# Create the VERSION file after the build
|
|
# in case it is being used by packagers
|
|
# Also track the S3 cleanup id
|
|
all-local: liblib/libnetcdf.la
|
|
echo ${PACKAGE_VERSION} > VERSION
|
|
if ENABLE_S3_TESTALL
|
|
rm -f ${abs_top_builddir}/tmp_@PLATFORMUID@.uids
|
|
echo "@TESTUID@" >> ${abs_top_builddir}/s3cleanup_@PLATFORMUID@.uids
|
|
cat ${abs_top_builddir}/s3cleanup_@PLATFORMUID@.uids | sort | uniq > ${abs_top_builddir}/tmp_@PLATFORMUID@.uids
|
|
rm -f ${abs_top_builddir}/s3cleanup_@PLATFORMUID@.uids
|
|
mv ${abs_top_builddir}/tmp_@PLATFORMUID@.uids ${abs_top_builddir}/s3cleanup_@PLATFORMUID@.uids
|
|
endif
|
|
|
|
if ENABLE_S3_TESTALL
|
|
distclean-local:
|
|
rm -f ${abs_top_builddir}/s3cleanup_@PLATFORMUID@.uids
|
|
endif
|
|
|
|
# Remove the VERSION file
|
|
CLEANFILES = VERSION
|