diff --git a/CMakeLists.txt b/CMakeLists.txt index c5a671e89..6c02cc438 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -528,9 +528,9 @@ IF(ENABLE_NETCDF_4) SET(ENABLE_NETCDF4 ON CACHE BOOL "") ELSE() SET(USE_HDF4_FILE_TESTS OFF) - SET(USE_HDF4 OFF) + SET(USE_HDF4 OFF) SET(ENABLE_HDF4_FILE_TESTS OFF) - SET(ENABLE_HDF4 OFF) + SET(ENABLE_HDF4 OFF) ENDIF() # Option to allow for strict null file padding. @@ -1085,7 +1085,7 @@ IF(STATUS_RELAX_COORD_BOUND) ENDIF() # Enable Parallel Tests. -OPTION(ENABLE_PARALLEL_TESTS "Enable Parallel IO Tests. Ignored if netCDF4 is not enabled, or if there is no parallel I/O Support." ${USE_PARALLEL}) +OPTION(ENABLE_PARALLEL_TESTS "Enable Parallel IO Tests. Requires HDF5/NetCDF4 with parallel I/O Support." ${USE_PARALLEL}) IF(ENABLE_PARALLEL_TESTS AND USE_PARALLEL) SET(TEST_PARALLEL ON CACHE BOOL "") IF(USE_NETCDF4) @@ -1093,6 +1093,10 @@ IF(ENABLE_PARALLEL_TESTS AND USE_PARALLEL) ENDIF() ENDIF() +IF (ENABLE_PARALLEL_TESTS AND NOT USE_PARALLEL) + MESSAGE(FATAL_ERROR "Parallel tests requested, but no parallel HDF5 installation detected.") +ENDIF() + # Enable special filter test; experimental when using cmake. OPTION(ENABLE_FILTER_TESTING "Enable filter testing. Ignored if shared libraries or netCDF4 are not enabled" OFF) IF(NOT ENABLE_NETCDF4) diff --git a/configure.ac b/configure.ac index f504617d1..6172fa511 100644 --- a/configure.ac +++ b/configure.ac @@ -208,7 +208,7 @@ AC_ARG_ENABLE([hdf4], [AS_HELP_STRING([--enable-hdf4], [build netcdf-4 with HDF4 read capability (HDF4, HDF5 and zlib required)])]) test "x$enable_hdf4" = xyes || enable_hdf4=no if test "x$enable_hdf4" = xyes -a "x$enable_netcdf_4" = xno; then - AC_MSG_ERROR([NetCDF-4 is required for HDF4 features]) + AC_MSG_ERROR([NetCDF-4 is required for HDF4 features]) fi AC_MSG_RESULT($enable_hdf4) @@ -243,9 +243,8 @@ AC_MSG_RESULT($enable_extra_example_tests) AC_MSG_CHECKING([whether parallel IO tests should be run]) AC_ARG_ENABLE([parallel-tests], [AS_HELP_STRING([--enable-parallel-tests], - [Run extra parallel IO tests. Ignored if \ - netCDF-4 is not enabled, or built on a system \ - without parallel I/O support.])]) + [Run extra parallel IO tests. Requires netCDF-4 + with parallel I/O support.])]) test "x$enable_parallel_tests" = xyes || enable_parallel_tests=no AC_MSG_RESULT($enable_parallel_tests) @@ -934,7 +933,9 @@ if test "x$enable_netcdf_4" = xyes; then AC_CHECK_HEADERS([hdf5.h], [], [AC_MSG_ERROR([Compiling a test with HDF5 failed. Either hdf5.h cannot be found, or config.log should be checked for other reason.])]) AC_CHECK_FUNCS([H5Z_SZIP]) + hdf5_parallel=no + AC_CHECK_FUNCS([H5Pget_fapl_mpiposix H5Pget_fapl_mpio H5Pset_deflate H5Z_SZIP H5free_memory H5Pset_libver_bounds H5Pset_all_coll_metadata_ops]) # The user may have parallel HDF5 based on MPI POSIX. if test "x$ac_cv_func_H5Pget_fapl_mpiposix" = xyes; then AC_DEFINE([USE_PARALLEL_POSIX], [1], [if true, compile in parallel netCDF-4 based on MPI/POSIX]) @@ -955,9 +956,18 @@ if test "x$enable_netcdf_4" = xyes; then if test "x$ac_cv_func_H5Pget_fapl_mpio" = xyes -o "x$ac_cv_func_H5Pget_fapl_mpiposix" = xyes; then hdf5_parallel=yes fi + AC_MSG_CHECKING([whether parallel io is enabled in hdf5]) AC_MSG_RESULT([$hdf5_parallel]) + if test "x$hdf5_parallel" = "xno"; then + if test "x$enable_parallel_tests" = "xyes"; then + AC_MSG_ERROR([Parallel tests requested, but no parallel HDF5 installation detected.]) + fi + fi + + + # The user may have built HDF5 with the SZLIB library. enable_szlib=no if test "x$ac_cv_func_H5Z_SZIP" = xyes; then