mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-12-21 08:39:46 +08:00
49737888ca
## Improvements to S3 Documentation * Create a new document *quickstart_paths.md* that give a summary of the legal path formats used by netcdf-c. This includes both file paths and URL paths. * Modify *nczarr.md* to remove most of the S3 related text. * Move the S3 text from *nczarr.md* to a new document *cloud.md*. * Add some S3-related text to the *byterange.md* document. Hopefully, this will make it easier for users to find the information they want. ## Rebuild NCZarr Testing In order to avoid problems with running make check in parallel, two changes were made: 1. The *nczarr_test* test system was rebuilt. Now, for each test. any generated files are kept in a test-specific directory, isolated from all other test executions. 2. Similarly, since the S3 test bucket is shared, any generated S3 objects are isolated using a test-specific key path. ## Other S3 Related Changes * Add code to ensure that files created on S3 are reclaimed at end of testing. * Used the bash "trap" command to ensure S3 cleanup even if the test fails. * Cleanup the S3 related configure.ac flag set since S3 is used in several places. So now one should use the option *--enable-s3* instead of *--enable-nczarr-s3*, although the latter is still kept as a deprecated alias for the former. * Get some of the github actions yml to work with S3; required fixing various test scripts adding a secret to access the Unidata S3 bucket. * Cleanup S3 portion of libnetcdf.settings.in and netcdf_meta.h.in and test_common.in. * Merge partial S3 support into dhttp.c. * Create an experimental s3 access library especially for use with Windows. It is enabled by using the options *--enable-s3-internal* (automake) or *-DENABLE_S3_INTERNAL=ON* (CMake). Also add a unit-test for it. * Move some definitions from ncrc.h to ncs3sdk.h ## Other Changes * Provide a default implementation of strlcpy and move this and similar defaults into *dmissing.c*.
157 lines
4.6 KiB
Makefile
157 lines
4.6 KiB
Makefile
# Copyright 2018, UCAR/Unidata
|
|
# See netcdf/COPYRIGHT file for copying and redistribution conditions.
|
|
|
|
# Put Together AM_CPPFLAGS and AM_LDFLAGS
|
|
include $(top_srcdir)/lib_flags.am
|
|
|
|
# This linker flag specifies libtool version info.
|
|
# See http://www.gnu.org/software/libtool/manual/libtool.html#Libtool-versioning
|
|
# for information regarding incrementing `-version-info`.
|
|
plugin_version_info = -version-info 0:0:0
|
|
|
|
AM_LDFLAGS += -module -shared -export-dynamic $(NOUNDEFINED)
|
|
|
|
if ISMINGW
|
|
AM_LDFLAGS += -avoid-version
|
|
else !ISMINGW
|
|
if ISCYGWIN
|
|
AM_LDFLAGS += -avoid-version
|
|
else !ISCYGWIN
|
|
AM_LDFLAGS += $(plugin_version_info)
|
|
endif !ISCYGWIN
|
|
endif !ISMINGW
|
|
|
|
# Create an alternate directory if not installing.
|
|
ALTPLUGINDIR = ${abs_top_builddir}/plugins/plugindir
|
|
|
|
RPATH = -rpath $(abs_builddir)/.libs
|
|
|
|
# This is where the plugins are to be installed
|
|
if ENABLE_PLUGIN_DIR
|
|
plugindir = @PLUGIN_INSTALL_DIR@
|
|
else
|
|
plugindir = ${ALTPLUGINDIR}
|
|
AM_LDFLAGS += ${RPATH}
|
|
endif
|
|
|
|
plugin_LTLIBRARIES =
|
|
plugins_to_install =
|
|
|
|
# These libraries are for testing only
|
|
check_LTLIBRARIES =
|
|
|
|
if ISMINGW
|
|
LDADD = ${top_builddir}/liblib/libnetcdf.la
|
|
LIBADD = $(LDADD)
|
|
endif
|
|
if ISCYGWIN
|
|
LDADD = $(top_builddir)/liblib/libnetcdf.la
|
|
LIBADD = $(top_builddir)/liblib/libnetcdf.la
|
|
endif
|
|
|
|
EXTRA_DIST = CMakeLists.txt
|
|
|
|
# The HDF5 filter wrappers
|
|
EXTRA_DIST += \
|
|
H5Ztemplate.c H5Zmisc.c H5Zutil.c H5Znoop.c h5noop.h NCZmisc.c \
|
|
H5Zshuffle.c H5Zdeflate.c H5Zszip.c H5Zszip.h \
|
|
H5Zbzip2.c h5bzip2.h H5Zblosc.c H5Zblosc.h H5Zzstd.c H5Zzstd.h
|
|
|
|
# The Codec filter wrappers
|
|
EXTRA_DIST += NCZhdf5filters.c NCZstdfilters.c
|
|
# The Filter implementations
|
|
EXTRA_DIST += H5checksum.c
|
|
|
|
if ENABLE_FILTER_TESTING
|
|
|
|
if ENABLE_NCZARR_FILTERS
|
|
plugins_to_install += lib__nch5fletcher32.la lib__nch5shuffle.la lib__nch5deflate.la
|
|
lib__nch5shuffle_la_SOURCES = H5Zshuffle.c
|
|
lib__nch5fletcher32_la_SOURCES = H5Zfletcher32.c H5checksum.c
|
|
lib__nch5deflate_la_SOURCES = H5Zdeflate.c
|
|
|
|
# Need our version of szip if libsz available and we are not using HDF5
|
|
if HAVE_SZ
|
|
plugins_to_install += lib__nch5szip.la
|
|
lib__nch5szip_la_SOURCES = H5Zszip.c H5Zszip.h
|
|
endif
|
|
|
|
endif # ENABLE_NCZARR_FILTERS
|
|
|
|
if ENABLE_PLUGINS
|
|
|
|
# The NCZarr codec libraries (they need libnetcdf)
|
|
lib__nczstdfilters_la_SOURCES = NCZstdfilters.c
|
|
lib__nczstdfilters_la_LIBADD = $(LIBADD) $(top_builddir)/liblib/libnetcdf.la
|
|
lib__nczhdf5filters_la_SOURCES = NCZhdf5filters.c
|
|
lib__nczhdf5filters_la_LIBADD = $(LIBADD) $(top_builddir)/liblib/libnetcdf.la
|
|
|
|
plugins_to_install += lib__nczhdf5filters.la
|
|
plugins_to_install += lib__nczstdfilters.la
|
|
|
|
if HAVE_BLOSC
|
|
lib__nch5blosc_la_SOURCES = H5Zblosc.c H5Zblosc.h
|
|
plugins_to_install += lib__nch5blosc.la
|
|
endif
|
|
|
|
if HAVE_ZSTD
|
|
lib__nch5zstd_la_SOURCES = H5Zzstd.c H5Zzstd.h
|
|
plugins_to_install += lib__nch5zstd.la
|
|
endif
|
|
|
|
endif #ENABLE_PLUGINS
|
|
|
|
# The noop filter is to allow testing of multifilters and filter order
|
|
# Need two distinct instances
|
|
lib__nch5noop_la_SOURCES = H5Znoop.c H5Zutil.c h5noop.h
|
|
lib__nch5noop1_la_SOURCES = H5Znoop1.c H5Zutil.c h5noop.h
|
|
lib__nch5noop_la_LDFLAGS = $(AM_LDFLAGS) ${RPATH}
|
|
lib__nch5noop1_la_LDFLAGS = $(AM_LDFLAGS) ${RPATH}
|
|
|
|
# The misc filter is to allow testing of filter arguments
|
|
lib__nch5misc_la_SOURCES = H5Zmisc.c H5Zutil.c h5misc.h
|
|
lib__nch5misc_la_LDFLAGS = $(AM_LDFLAGS) ${RPATH}
|
|
lib__nczmisc_la_SOURCES = NCZmisc.c
|
|
lib__nczmisc_la_LDFLAGS = $(AM_LDFLAGS) ${RPATH}
|
|
|
|
# Provide a filter to test missing filter
|
|
lib__nch5unknown_la_SOURCES = H5Zunknown.c
|
|
lib__nch5unknown_la_LDFLAGS = $(AM_LDFLAGS) ${RPATH}
|
|
|
|
check_LTLIBRARIES += lib__nch5noop.la lib__nch5noop1.la lib__nch5unknown.la
|
|
check_LTLIBRARIES += lib__nch5misc.la lib__nczmisc.la
|
|
|
|
# Bzip2 is used to test more complex filters
|
|
lib__nch5bzip2_la_SOURCES = H5Zbzip2.c h5bzip2.h
|
|
BZIP2SRC = blocksort.c huffman.c crctable.c randtable.c compress.c decompress.c bzlib.c bzlib.h bzlib_private.h
|
|
EXTRA_DIST += ${BZIP2SRC} BZIP2_LICENSE
|
|
if HAVE_LOCAL_BZ2
|
|
lib__nch5bzip2_la_SOURCES += ${BZIP2SRC}
|
|
endif
|
|
plugins_to_install += lib__nch5bzip2.la
|
|
|
|
endif #ENABLE_FILTER_TESTING
|
|
|
|
if ENABLE_PLUGIN_DIR
|
|
plugin_LTLIBRARIES += $(plugins_to_install)
|
|
else
|
|
check_LTLIBRARIES += $(plugins_to_install)
|
|
endif
|
|
|
|
BUILT_SOURCES = H5Znoop1.c
|
|
DISTCLEANFILES = H5Znoop1.c H5Znoop2.c ncjson.h
|
|
H5Znoop1.c: Makefile H5Znoop.c
|
|
echo '#define NOOP_INSTANCE 1' > $@
|
|
cat ${srcdir}/H5Znoop.c >> $@
|
|
|
|
# Record where bzip2 came from; may be out of date
|
|
BZIP2VER = 1.0.8
|
|
BZIP2DIR = bzip2-${BZIP2VER}
|
|
BZIP2URL = https://sourceware.org/pub/bzip2/${BZIP2DIR}.tar.gz
|
|
bzip2::
|
|
rm -fr ./${BZIP2DIR} ${BZIP2SRC} BZIP2_LICENSE
|
|
wget ${BZIP2URL}
|
|
tar -zxf ${BZIP2DIR}.tar.gz
|
|
cd ${BZIP2DIR}; cp ${BZIP2SRC} ..; cp LICENSE ../BZIP2_LICENSE ; cd ..
|
|
rm -fr ./${BZIP2DIR}
|