Commit Graph

48 Commits

Author SHA1 Message Date
Dennis Heimbigner
f0f0f39950 Cleanup various Zarr-related build issues
# Description
Remove various obsolete build options. Also do some code movement.

## Specific Changes

* The remotetest server is sometimes unstable, so provide a mechanism
  to force disabling calls to remotetest.unidata.ucar.edu.
  This is enabled by adding a repository variable named
  REMOTETESTDOWN with the value "yes".
* Fix CMakeLists.txt to use the uname command as an alternate
  to using the hostname command (which does not work under cygwin).
* Remove the JNA stuff as obsolete
* Remove the ENABLE_CLIENTSIDE_FILTERS options since it has been
  disabled for a while.
* Fix bad option flag in some github action .yml files: change --disable-xml2 to --disable-libxml2
* Collect globalstate definitions into nc4internal.h
* Remove ENABLE_NCZARR_FILTERS_TESTING option as obsolete and replace
  with ENABLE_NCZARR_FILTERS
* Move some dispatcher independent functions from libsrc4/nc4internal.c to libdispatch/ddispatch.c
* As a long term goal, and because it is now the case that --enable-nczarr
    => USE_NETCDF4, make the external options --enable-netcdf-4 and
    --enable-netcdf4 obsolete in favor of --enable-hdf5
    We will do the following for one more release cycle.
        1. Make --enable-netcdf-4 be an alias for --enable-netcdf4.
        2. Make --enable-netcdf4 an alias for --enable-hdf5.
        3. Internally, convert most uses of USE_NETCDF_4 ad USE_NETCDF4 to USE_HDF5
    After the next release, --enable-netcdf-4 and --enable-netcdf4 will
    be removed.
2024-05-15 18:46:25 -06:00
Ward Fisher
057f716d7f Updated the nc-config script with the following:
o Added --build-system to report whether netcdf was configured using cmake or autotools.
o For cmake-based installs, added an argument which will allow non-cmake projects to get traditionally formated dependancy syntax, --libs-ac-syntax.
2024-03-19 11:19:57 -06:00
Ward Fisher
6d426ce006 Fix --has-quantize in autotools-generated nc-config. 2023-09-05 18:42:47 -06:00
Dennis Heimbigner
cdbf04956b Provide a single option to disable all network access and testing.
Add the option "--disable-network-access" (automake)
or "-DENABLE_NETWORK_ACCESS=OFF" (cmake).
When disabled, this option transitively disables all
network access capabilities and testing.
If set, this option implies the following:
* --disable-dap
* --disable-byterange
* --disable-s3

This PR answers a request for a feature from Ed Hartnett.

## Misc. Other changes
* Take the opportunity to clean up some old, unused options;
e.g. --enable-multifilters.
* Fix bug in using S3 urls.
2023-06-10 14:08:04 -06:00
Ward Fisher
6f55c85260 Update nc-config in support of https://github.com/Unidata/netcdf-c/issues/2274 2023-02-13 10:52:41 -07:00
Ward Fisher
f396913e1e Corrected an error. 2022-09-22 13:29:41 -06:00
Ward Fisher
d0208901bb Updated test logic in nc-config.in file. 2022-09-22 13:09:00 -06:00
Ward Fisher
3649364217 Added plugin directory to nc-config 2022-09-19 15:21:27 -06:00
Ward Fisher
7e62782daf Adding additional flags to nc-config to indicate presence of newer functionality, and plugin directory location. 2022-09-19 15:02:01 -06:00
Edward Hartnett
cd4f9eea3c added some entries to nc-config 2022-04-30 06:48:16 -06:00
Dennis Heimbigner
730aa1f6bc Improve the building of NCZARR S3 support in CMake and Autoconf
There were some irregularities in the flags for handling NCZarr S3 support.

The primary change is to regularize the flags controlling this to the following.

1. Automake: --enable-nczarr-s3 and CMake: ENABLE_NCZARR_S3
2. Automake: --enable-nczarr-s3-tests and CMake: ENABLE_NCZARR_S3_TESTS

Flag 1 indicates that NCZarr should be built with S3 support enabled.
Flag 2 indicates that the NCZarr S3 tests should be run

These two flags are separate because running the NCZarr S3 tests
requires access to protected S3 resources. Currently, running
these tests is restricted to Unidata personnel. However, users
may want to enable S3 support even if they cannot run the tests.
It is, of course, an error to specify 2 without specifying 1.

Additionally, if the AWS S3 SDK library is not found, then the NCZARR S3
support and testing must be disabled. Otherwise an error is signaled
during the build.

Some of these NCZarr and S3 changes are propagated to nc-config.

Misc. Other Changes:

1. Allow testing for CYGWIN or MSVC in shell scripts.
2. Add specific test for HDF5 library version 1.10.6.
   This is encoded as "HDF5_UTF8_PATHS" because that is the first
   version where HDF5 properly supports it under Windows. This is used
   in hdf5internal/nc4_ndf5_ansi_to_utf8.
3. Add a AM Conditional -- AX_IGNORE -- for use in testing
   when it is desirable to temporarily suppress Makefile code.
4. Add MULTIFILTER flag to CMakeLists.txt
2020-10-16 15:04:51 -06:00
Ward Fisher
31dee0c4da
Revert "Revert "Fix nczarr-experimental: improve build support, disengage hdf5 vs netcdf4 flags, and find AWS libraries"" 2020-08-17 19:15:47 -06:00
Ward Fisher
16c27ca13f
Revert "Fix nczarr-experimental: improve build support, disengage hdf5 vs netcdf4 flags, and find AWS libraries" 2020-08-17 15:51:01 -06:00
Dennis Heimbigner
d538cf38c2 Fix nczarr-experimental to better support CMake and find AWS libraries
The primary fix is to improve CMake build support.
Specific changes include:
* CMake: Provide a better soln to locating the AWS SDK
  libraries; the new way is the preferred method as described in
  the aws-cpp-sdk documentation.
* CMake (and Automake): allow -DENABLE_S3_SDK (default off) to suppress
  looking for AWS libraries.
* CMake: add the complete set of nczarr tests
* CMake: add EXTERNL as needed to various .h files.
* Improve support for windows drive letters in paths.
* Add nczarr and s3 flags to nc-config
* For VisualStudio X nczarr, cleanup the NAN+INFINITY handling
* Convert _MSC_VER -> _WIN32 and vice versa as needed
* NCZarr - support multiple platform paths including windows, cygwin.
  mingw, etc.
* NCZarr - sort the test outputs because different platforms
  produce directory contents in different orders.

One big change concerns netcdf-c/CMakeLists.txt and netcdf-c/configure.ac.
In the current versions, it was the case that --disable-hdf5
disabled netcdf-4 (libsrc4). With nczarr, this can no longer
be the case because nczarr requires libsrc4 even if libhdf5
is disabled. So, I modified the above files to move the
format options (HDF5, NCZarr, HDF4, etc) to a single place
near the front of the files. Now it is the case that:
* Enabling any of the formats that require libsrc4
  also does an implicit --enable-netcdf4.
* --disable-netcdf4 | --disable-netcdf-4 now becomes
  and alias for --disable-hdf5.

There are probably some bugs in this change in terms of
dependencies between format options.

Problems:
* CMake S3 support is still not working for Visual Studio
* A recent issue points out that there is work to do on handling
  UTF8 filenames, but that will be addressed in a separate fix.

Notes:
* Consider converting all of our includes/.h files to use EXTERNL
2020-07-12 12:21:56 -06:00
Ward Fisher
8421dccbf0 Fixed line return issue. 2019-04-08 15:05:26 -06:00
Ward Fisher
3ec310829a Updating template files for nc-config in support of https://github.com/Unidata/netcdf-c/issues/1360. Still have a linebreak to deal with to bring this into line with the behavior of pkgconfig, currently nc-config --libs --static will print two separate lines. 2019-04-08 14:46:08 -06:00
Ward Fisher
f940969fdc Fix typo, exploring solution to https://github.com/Unidata/netcdf-c/issues/1324 2019-02-27 14:14:53 -07:00
Wei-keng Liao
cfcf93eda3 add missing option --has_parallel4 2018-10-02 01:58:21 -05:00
Wei-keng Liao
48da78e133 Use PnetCDF instead of parallel-netcdf to avoid confusion with
parallel netcdf4. Also, update PnetCDF web page.
2018-09-17 17:18:48 -05:00
Ward Fisher
b52f3dd0d5 Corrected issue with nc-config generatred by autotools. 2017-10-16 10:30:47 -06:00
Ward Fisher
d432dc4083 Correcting typos. 2017-10-16 09:55:47 -06:00
Ward Fisher
bd510c33a8 Added help messages to nc-config for the new --has-parallel flag. 2017-10-16 09:40:59 -06:00
Ward Fisher
1e0c260234 Merge branch 'patch-3' of https://github.com/gsjaardema/netcdf-c into has-parallel 2017-10-16 09:36:52 -06:00
Ward Fisher
a5a9e483ff Corrected an issue with --has-szlib 2017-09-18 14:40:51 -06:00
Ward Fisher
1f07874421 Added --has-cdf5 to nc-config generated by autotools. 2017-09-18 14:32:20 -06:00
Peter Hill
2fec785794 Fix method of finding ncxx[4]-config for non-bash shells
`type -p` is a bashism, and might not work with other shells
2017-05-30 11:13:27 +01:00
Dennis Heimbigner
6d8809100f Fix pull request https://github.com/Unidata/netcdf-c/pull/374 (dap4.dmh)
1. When running under windows (as opposed to cygwin)
   we need to make sure to not user /cygdrive/ file paths.
   This was ocurring in libdap4/d4read.c, but may occur
   elsewhere.
2. Shell scripts in the git repo are not being checked-out
   with the executable mode set. Had core.filemode set to false.
   Was a major hassle to fix.
2017-04-03 21:39:44 -06:00
Dennis Heimbigner
3db4f013bf Primary change: add dap4 support
Specific changes:
1. Add dap4 code: libdap4 and dap4_test.
   Note that until the d4ts server problem is solved, dap4 is turned off.
2. Modify various files to support dap4 flags:
	configure.ac, Makefile.am, CMakeLists.txt, etc.
3. Add nc_test/test_common.sh. This centralizes
   the handling of the locations of various
   things in the build tree: e.g. where is
   ncgen.exe located. See nc_test/test_common.sh
   for details.
4. Modify .sh files to use test_common.sh
5. Obsolete separate oc2 by moving it to be part of
   netcdf-c. This means replacing code with netcdf-c
   equivalents.
5. Add --with-testserver to configure.ac to allow
   override of the servers to be used for --enable-dap-remote-tests.
6. There were multiple versions of nctypealignment code. Try to
   centralize in libdispatch/doffset.c and include/ncoffsets.h
7. Add a unit test for the ncuri code because of its complexity.
8. Move the findserver code out of libdispatch and into
   a separate, self contained program in ncdap_test and dap4_test.
9. Move the dispatch header files (nc{3,4}dispatch.h) to
   .../include because they are now shared by modules.
10. Revamp the handling of TOPSRCDIR and TOPBUILDDIR for shell scripts.
11. Make use of MREMAP if available
12. Misc. minor changes e.g.
	- #include <config.h> -> #include "config.h"
	- Add some no-install headers to /include
	- extern -> EXTERNL and vice versa as needed
	- misc header cleanup
	- clean up checking for misc. unix vs microsoft functions
13. Change copyright decls in some files to point to LICENSE file.
14. Add notes to RELEASENOTES.md
2017-03-08 17:01:10 -07:00
Ward Fisher
a5b595e974 Removed stray info lines in nc-config templates. 2016-11-01 10:47:17 -06:00
Peter Hill
d455718f40 Usage function called wrong in nc-config
`usage` needs to be called with an exit value. Incorrect options won't
set the exit value, so are trickier to detect
2016-08-18 16:48:30 +01:00
Peter Hill
6c028fbf5c Get C++ flags from ncxx{4}-config 2016-08-17 14:45:40 +01:00
Peter Hill
ce15b1cc2d Add couple of missing flags to nc-config
- Add --has-fortran, in addition to the specific --has-f90, --has-f03
- Add --libdir to print just the libdir
- Also 'which nf-config' will spit out errors if nf-config is not found.
  Silence these errors
2016-08-17 14:45:05 +01:00
Peter Hill
a49816ad43 Use libs variable instead of pkg-config
pkg-config isn't used in the cmake version of nc-config, so probably
shouldn't be used in autotools version either?
2016-08-17 14:03:38 +01:00
Peter Hill
86c7575f97 Use correct autotools variables in nc-config
This was fixed in a previous commit for nc-config.cmake.in, but not for
the autotools version
2016-08-17 14:01:25 +01:00
Ward Fisher
792322dc4b Got nc-config to properly parse nf-config in support of https://github.com/Unidata/netcdf-c/issues/296 2016-07-27 14:05:47 -06:00
Ward Fisher
2206527ba5 Wired logging status into nc-config generated by cmake. 2016-02-29 11:32:26 -07:00
Ward Fisher
6f06fb71da Modified nc-config to reflect value of --has-f03 when netcdf-fortran is found, and also added '--enable-logging' to determine if netcdf-c was built with logging enabled. 2016-02-29 11:24:46 -07:00
Ward Fisher
e4ee2add6b Modified nc-config to reflect value of --has-f03 when netcdf-fortran is found, and also added '--enable-logging' to determine if netcdf-c was built with logging enabled. 2016-02-29 11:22:10 -07:00
Russ Rew
7a44b66300 Make nc-config work even if user doesn't set PKG_CONFIG_PATH 2015-06-12 14:00:38 -06:00
posophe
a6b6ea54da Use pkgconfig for libs 2015-04-18 13:12:13 +02:00
Russ Rew
c34a4e674b - Deleted --has-szlib option for nc-config, since that is controlled
by an HDF5 configure option, not a netCDF-4 configure option.
 - Fixed bug in HDF5 strings test code.
 - Minor fixes to nccopy man page documentation.
 - Minor fixes to Fortran-90 texinfo docs, since we don't have doxygen
   docs for Fortran yet: just using "Fortran" instead of "fortran" or
   "FORTRAN".
2012-10-31 21:31:07 +00:00
Russ Rew
23898afed1 Minor doc updates for 4.2.1.
Fix nc-config to report information from nf-config, ncxx-config, and
ncxx4-config for backward compatibility (NCF-179).
2012-06-14 18:29:09 +00:00
Russ Rew
df361a2891 Fix nc-config.in so --all option works with or without nf-config installed. Add -r and -w options to nccopy for diskless speedups. 2012-04-12 17:18:06 +00:00
Russ Rew
83675ef257 Fix nc-config.in so nf-config is called for Fortran info, for backward compatibility with use of nc-config in current Makefiles, fixes NCF-165 2012-03-29 12:38:46 +00:00
Ed Hartnett
818b27af54 changed nc-config to no longer rely upon EXTERN_LDFLAGS and EXTERN_CPPFLAGS 2011-05-18 12:06:00 +00:00
Russ Rew
7fb25a2a5a Jeff Whitaker's nc-config change. Cosmetic change to benchmark output. 2010-11-16 23:08:42 +00:00
Ed Hartnett
57d743dddb fixed build problems for libcf/gridspec, pnetcdf, and hdf4 2010-06-10 17:18:48 +00:00
Ed Hartnett
18f4bca367 moving to trunk subdir 2010-06-03 13:24:43 +00:00