diff --git a/configure b/configure index 7be3e3d8aa4315fcb7a9def1e45c03f1193e9bd3..e911624155b1f3f4a26a164044cf4555b113cf9f 100755 --- a/configure +++ b/configure @@ -26855,8 +26855,7 @@ esac # ---------------------------------------------------------------------- -# Compile application with SZLIB library, needed for GRIB1 or for -# linking against hdf5/netcdf4 +# Compile application with SZLIB library, needed for GRIB1 SZLIB_INCLUDE='' SZLIB_LIBS='' @@ -27430,7 +27429,7 @@ for ac_lib in '' netcdf; do ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -lhdf5_hl -lhdf5 $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_H5TS_mutex_lock=$ac_res @@ -27461,6 +27460,67 @@ fi fi +if test "x$ENABLE_NC4HDF5" = "xyes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing H5get_libversion" >&5 +$as_echo_n "checking for library containing H5get_libversion... " >&6; } +if ${ac_cv_search_H5get_libversion+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char H5get_libversion (); +int +main () +{ +return H5get_libversion (); + ; + return 0; +} +_ACEOF +for ac_lib in '' netcdf; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_H5get_libversion=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_H5get_libversion+:} false; then : + break +fi +done +if ${ac_cv_search_H5get_libversion+:} false; then : + +else + ac_cv_search_H5get_libversion=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_H5get_libversion" >&5 +$as_echo "$ac_cv_search_H5get_libversion" >&6; } +ac_res=$ac_cv_search_H5get_libversion +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +$as_echo "#define HAVE_H5GET_LIBVERSION 1" >>confdefs.h + +fi + +fi + diff --git a/m4/acx_options.m4 b/m4/acx_options.m4 index 5a557c63269a9478d658195bad138baf516c79e8..8782e5893883b0c57738dbc5c76303fd15394c35 100644 --- a/m4/acx_options.m4 +++ b/m4/acx_options.m4 @@ -27,8 +27,7 @@ AS_CASE([$with_threads], AC_SUBST([THREADS_INCLUDE]) AC_SUBST([THREADS_LIBS]) # ---------------------------------------------------------------------- -# Compile application with SZLIB library, needed for GRIB1 or for -# linking against hdf5/netcdf4 +# Compile application with SZLIB library, needed for GRIB1 SZLIB_INCLUDE='' SZLIB_LIBS='' AC_ARG_WITH([szlib], @@ -138,8 +137,11 @@ AC_ARG_WITH([netcdf], AS_IF([test "x$ENABLE_NC4HDF5" = "xyes"], [AC_SEARCH_LIBS([H5TS_mutex_lock], [netcdf], - [AC_DEFINE([HAVE_NC4HDF5_THREADSAFE],[1],[Define to 1 for NetCDF4/HDF5 threadsafe support])],, - [-lhdf5_hl -lhdf5])]) + [AC_DEFINE([HAVE_NC4HDF5_THREADSAFE],[1],[Define to 1 for NetCDF4/HDF5 threadsafe support])],,)]) + +AS_IF([test "x$ENABLE_NC4HDF5" = "xyes"], + [AC_SEARCH_LIBS([H5get_libversion], [netcdf], + [AC_DEFINE([HAVE_H5GET_LIBVERSION],[1],[Define to 1 for H5get_libversion support])],,)]) AC_SUBST([ENABLE_NETCDF]) AC_SUBST([ENABLE_NC2]) diff --git a/src/cdf.c b/src/cdf.c index cc5cbbc5063dda77358d993cbeaad60a68fa3f52..cde2c37a7fdb704edbdd61eab65346b6e0e9a63e 100644 --- a/src/cdf.c +++ b/src/cdf.c @@ -17,13 +17,13 @@ const char *cdfLibraryVersion(void) { #if defined (HAVE_LIBNETCDF) - return (nc_inq_libvers()); + return nc_inq_libvers(); #else - return ("library undefined"); + return "library undefined"; #endif } -#if defined(HAVE_NC4HDF5) +#if defined(HAVE_H5GET_LIBVERSION) #if defined(__cplusplus) extern "C" { #endif @@ -35,7 +35,7 @@ extern "C" { const char *hdfLibraryVersion(void) { -#if defined(HAVE_NC4HDF5) +#if defined(HAVE_H5GET_LIBVERSION) static char hdf_libvers[256]; unsigned majnum, minnum, relnum; @@ -43,9 +43,9 @@ const char *hdfLibraryVersion(void) sprintf(hdf_libvers, "%u.%u.%u", majnum, minnum, relnum); - return (hdf_libvers); + return hdf_libvers; #else - return ("library undefined"); + return "library undefined"; #endif } @@ -137,24 +137,23 @@ static int cdfOpenFile(const char *filename, const char *mode, int *filetype) } #endif - return (ncid); + return ncid; } int cdfOpen(const char *filename, const char *mode) { - int fileID = 0; int filetype = FILETYPE_NC; if ( CDF_Debug ) Message("Open %s with mode %c", filename, *mode); - fileID = cdfOpenFile(filename, mode, &filetype); + int fileID = cdfOpenFile(filename, mode, &filetype); if ( CDF_Debug ) Message("File %s opened with id %d", filename, fileID); - return (fileID); + return fileID; } @@ -185,7 +184,7 @@ int cdfOpen64(const char *filename, const char *mode) fileID = CDI_ELIBNAVAIL; } - return (fileID); + return fileID; } @@ -213,7 +212,7 @@ int cdf4Open(const char *filename, const char *mode, int *filetype) fileID = CDI_ELIBNAVAIL; } - return (fileID); + return fileID; } diff --git a/src/config.h.in b/src/config.h.in index f8848fc02cf53d03f2d24a6cfcc97e9ce9f73ffe..8f6932de4a47db0698cb1c59cf9fa5520b51ad15 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -79,6 +79,9 @@ /* Define to 1 if you have the `grib_get_length' function. */ #undef HAVE_GRIB_GET_LENGTH +/* Define to 1 for H5get_libversion support */ +#undef HAVE_H5GET_LIBVERSION + /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H