summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2010-09-01 10:27:45 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2010-09-01 10:27:45 (GMT)
commit642f392ba3e2d30ae2a82e32f249461121d17cbc (patch)
treebbce1ae1606153f323156f207b50d88d7fba2ddf /config
parentc034336452ee48574f0dd65bf053079f9801e269 (diff)
downloadhdf5-642f392ba3e2d30ae2a82e32f249461121d17cbc.zip
hdf5-642f392ba3e2d30ae2a82e32f249461121d17cbc.tar.gz
hdf5-642f392ba3e2d30ae2a82e32f249461121d17cbc.tar.bz2
[svn-r19330] Description:
Bring r19109:19328 from trunk to revise_chunks branch. Tested on: FreeBSD/32 6.3 (duty) in debug mode FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, w/threadsafe, in production mode Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode Mac OS X/32 10.6.4 (amazon) in debug mode Mac OS X/32 10.6.4 (amazon) w/C++ & FORTRAN, w/threadsafe, in production mode Mac OS X/32 10.6.4 (amazon) w/parallel, in debug mode
Diffstat (limited to 'config')
-rwxr-xr-xconfig/cmake/CTestCustom.ctest16
-rw-r--r--config/cmake/ConfigureChecks.cmake93
-rw-r--r--config/cmake/FindMPI.cmake364
-rw-r--r--config/cmake/FindSZIP.cmake6
-rw-r--r--config/cmake/H5pubconf.h.in12
-rw-r--r--config/cmake/HDF5-config.cmake.build.in42
-rw-r--r--config/cmake/HDF5Tests.c8
-rw-r--r--config/cmake/hdf5-config-version.cmake.in27
-rw-r--r--config/cmake/hdf5-config.cmake.build.in49
-rw-r--r--config/cmake/hdf5-config.cmake.install.in (renamed from config/cmake/HDF5-config.cmake.install.in)61
-rw-r--r--config/cmake/hdf5_zlib.h.in1
-rw-r--r--config/cmake/runTest.cmake9
-rw-r--r--config/ibm-aix5
-rw-r--r--config/intel-flags2
-rw-r--r--config/pgi-flags4
-rw-r--r--config/powerpc-ibm-aix5.x5
16 files changed, 597 insertions, 107 deletions
diff --git a/config/cmake/CTestCustom.ctest b/config/cmake/CTestCustom.ctest
index 23b4163..d55a559 100755
--- a/config/cmake/CTestCustom.ctest
+++ b/config/cmake/CTestCustom.ctest
@@ -1,2 +1,18 @@
SET (CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS 1500)
+SET (CTEST_CUSTOM_WARNING_EXCEPTION
+ ${CTEST_CUSTOM_WARNING_EXCEPTION}
+ "H5detect.c.[0-9]+. : warning C4090:"
+ "testhdf5.h.[0-9]+. : warning C4005:"
+ "disabling jobserver mode"
+)
+
+SET (CTEST_CUSTOM_MEMCHECK_IGNORE
+ ${CTEST_CUSTOM_MEMCHECK_IGNORE}
+ H5DUMP
+ H5DIFF
+ H5REPACK
+ H5STAT
+ H5COPY
+ H5LS
+)
diff --git a/config/cmake/ConfigureChecks.cmake b/config/cmake/ConfigureChecks.cmake
index 47e6521..3a16856 100644
--- a/config/cmake/ConfigureChecks.cmake
+++ b/config/cmake/ConfigureChecks.cmake
@@ -17,7 +17,15 @@ MESSAGE (STATUS " GetConsoleScreenBufferInfo function for Windows")
# Always SET this for now IF we are on an OS X box
#-----------------------------------------------------------------------------
IF (APPLE)
- SET (H5_AC_APPLE_UNIVERSAL_BUILD 1)
+ LIST(LENGTH CMAKE_OSX_ARCHITECTURES ARCH_LENGTH)
+ IF(ARCH_LENGTH GREATER 1)
+ set (CMAKE_OSX_ARCHITECTURES "" CACHE STRING "" FORCE)
+ message(FATAL_ERROR "Building Universal Binaries on OS X is NOT supported by the HDF5 project. This is"
+ "due to technical reasons. The best approach would be build each architecture in separate directories"
+ "and use the 'lipo' tool to combine them into a single executable or library. The 'CMAKE_OSX_ARCHITECTURES'"
+ "variable has been set to a blank value which will build the default architecture for this system.")
+ ENDIF()
+ SET (H5_AC_APPLE_UNIVERSAL_BUILD 0)
ENDIF (APPLE)
#-----------------------------------------------------------------------------
@@ -366,6 +374,8 @@ CHECK_FUNCTION_EXISTS (ioctl H5_HAVE_IOCTL)
CHECK_FUNCTION_EXISTS (difftime H5_HAVE_DIFFTIME)
CHECK_FUNCTION_EXISTS (fseeko H5_HAVE_FSEEKO)
CHECK_FUNCTION_EXISTS (ftello H5_HAVE_FTELLO)
+CHECK_FUNCTION_EXISTS (fseeko64 H5_HAVE_FSEEKO64)
+CHECK_FUNCTION_EXISTS (ftello64 H5_HAVE_FTELLO64)
CHECK_FUNCTION_EXISTS (fstat64 H5_HAVE_FSTAT64)
CHECK_FUNCTION_EXISTS (stat64 H5_HAVE_STAT64)
@@ -466,7 +476,7 @@ MACRO (HDF5_FUNCTION_TEST OTHER_TEST)
# (STATUS "Performing ${OTHER_TEST}")
TRY_COMPILE (${OTHER_TEST}
${CMAKE_BINARY_DIR}
- ${HDF5_RESOURCES_DIR}//HDF5Tests.c
+ ${HDF5_RESOURCES_DIR}/HDF5Tests.c
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
"${OTHER_TEST_ADD_LIBRARIES}"
OUTPUT_VARIABLE OUTPUT
@@ -491,6 +501,7 @@ ENDMACRO (HDF5_FUNCTION_TEST)
IF (WINDOWS)
SET (H5_HAVE_TIMEZONE 1)
SET (H5_HAVE_FUNCTION 1)
+ SET (H5_LONE_COLON 0)
ELSE (WINDOWS)
FOREACH (test
TIME_WITH_SYS_TIME
@@ -513,6 +524,7 @@ ELSE (WINDOWS)
HAVE_C99_FUNC
HAVE_C99_DESIGNATED_INITIALIZER
CXX_HAVE_OFFSETOF
+ LONE_COLON
)
HDF5_FUNCTION_TEST (${test})
ENDFOREACH (test)
@@ -523,7 +535,6 @@ ENDIF (WINDOWS)
#-----------------------------------------------------------------------------
IF (HAVE_OFF64_T)
CHECK_FUNCTION_EXISTS (lseek64 H5_HAVE_LSEEK64)
- CHECK_FUNCTION_EXISTS (fseek64 H5_HAVE_FSEEK64)
ENDIF (HAVE_OFF64_T)
#-----------------------------------------------------------------------------
@@ -551,44 +562,46 @@ ENDIF (INLINE_TEST___inline__)
#-----------------------------------------------------------------------------
# Check how to print a Long Long integer
#-----------------------------------------------------------------------------
-SET (H5_PRINTF_LL_WIDTH "H5_PRINTF_LL_WIDTH")
-IF (H5_PRINTF_LL_WIDTH MATCHES "^H5_PRINTF_LL_WIDTH$")
- SET (PRINT_LL_FOUND 0)
- MESSAGE (STATUS "Checking for appropriate format for 64 bit long:")
- FOREACH (HDF5_PRINTF_LL l64 l L q I64 ll)
- SET (CURRENT_TEST_DEFINITIONS "-DPRINTF_LL_WIDTH=${HDF5_PRINTF_LL}")
- IF (H5_SIZEOF_LONG_LONG)
- SET (CURRENT_TEST_DEFINITIONS "${CURRENT_TEST_DEFINITIONS} -DHAVE_LONG_LONG")
- ENDIF (H5_SIZEOF_LONG_LONG)
- TRY_RUN (HDF5_PRINTF_LL_TEST_RUN HDF5_PRINTF_LL_TEST_COMPILE
- ${HDF5_BINARY_DIR}/CMake
- ${HDF5_RESOURCES_DIR}/HDF5Tests.c
- CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${CURRENT_TEST_DEFINITIONS}
- OUTPUT_VARIABLE OUTPUT
- )
- IF (HDF5_PRINTF_LL_TEST_COMPILE)
- IF (HDF5_PRINTF_LL_TEST_RUN MATCHES 0)
- SET (H5_PRINTF_LL_WIDTH "\"${HDF5_PRINTF_LL}\"" CACHE INTERNAL "Width for printf for type `long long' or `__int64', us. `ll")
- SET (PRINT_LL_FOUND 1)
- ELSE (HDF5_PRINTF_LL_TEST_RUN MATCHES 0)
- MESSAGE ("Width with ${HDF5_PRINTF_LL} failed with result: ${HDF5_PRINTF_LL_TEST_RUN}")
- ENDIF (HDF5_PRINTF_LL_TEST_RUN MATCHES 0)
- ELSE (HDF5_PRINTF_LL_TEST_COMPILE)
- FILE (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
- "Test H5_PRINTF_LL_WIDTH for ${HDF5_PRINTF_LL} failed with the following output:\n ${OUTPUT}\n"
+IF (NOT H5_PRINTF_LL_WIDTH OR H5_PRINTF_LL_WIDTH MATCHES "unknown")
+ SET (H5_PRINTF_LL_WIDTH "H5_PRINTF_LL_WIDTH")
+ IF (H5_PRINTF_LL_WIDTH MATCHES "^H5_PRINTF_LL_WIDTH$")
+ SET (PRINT_LL_FOUND 0)
+ MESSAGE (STATUS "Checking for appropriate format for 64 bit long:")
+ FOREACH (HDF5_PRINTF_LL l64 l L q I64 ll)
+ SET (CURRENT_TEST_DEFINITIONS "-DPRINTF_LL_WIDTH=${HDF5_PRINTF_LL}")
+ IF (H5_SIZEOF_LONG_LONG)
+ SET (CURRENT_TEST_DEFINITIONS "${CURRENT_TEST_DEFINITIONS} -DHAVE_LONG_LONG")
+ ENDIF (H5_SIZEOF_LONG_LONG)
+ TRY_RUN (HDF5_PRINTF_LL_TEST_RUN HDF5_PRINTF_LL_TEST_COMPILE
+ ${HDF5_BINARY_DIR}/CMake
+ ${HDF5_RESOURCES_DIR}/HDF5Tests.c
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${CURRENT_TEST_DEFINITIONS}
+ OUTPUT_VARIABLE OUTPUT
)
- ENDIF (HDF5_PRINTF_LL_TEST_COMPILE)
- ENDFOREACH (HDF5_PRINTF_LL)
-
- IF (PRINT_LL_FOUND)
- MESSAGE (STATUS "Checking for apropriate format for 64 bit long: found ${H5_PRINTF_LL_WIDTH}")
- ELSE (PRINT_LL_FOUND)
- MESSAGE (STATUS "Checking for apropriate format for 64 bit long: not found")
- SET (H5_PRINTF_LL_WIDTH "\"unknown\"" CACHE INTERNAL
- "Width for printf for type `long long' or `__int64', us. `ll"
- )
- ENDIF (PRINT_LL_FOUND)
-ENDIF (H5_PRINTF_LL_WIDTH MATCHES "^H5_PRINTF_LL_WIDTH$")
+ IF (HDF5_PRINTF_LL_TEST_COMPILE)
+ IF (HDF5_PRINTF_LL_TEST_RUN MATCHES 0)
+ SET (H5_PRINTF_LL_WIDTH "\"${HDF5_PRINTF_LL}\"" CACHE INTERNAL "Width for printf for type `long long' or `__int64', us. `ll")
+ SET (PRINT_LL_FOUND 1)
+ ELSE (HDF5_PRINTF_LL_TEST_RUN MATCHES 0)
+ MESSAGE ("Width with ${HDF5_PRINTF_LL} failed with result: ${HDF5_PRINTF_LL_TEST_RUN}")
+ ENDIF (HDF5_PRINTF_LL_TEST_RUN MATCHES 0)
+ ELSE (HDF5_PRINTF_LL_TEST_COMPILE)
+ FILE (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
+ "Test H5_PRINTF_LL_WIDTH for ${HDF5_PRINTF_LL} failed with the following output:\n ${OUTPUT}\n"
+ )
+ ENDIF (HDF5_PRINTF_LL_TEST_COMPILE)
+ ENDFOREACH (HDF5_PRINTF_LL)
+
+ IF (PRINT_LL_FOUND)
+ MESSAGE (STATUS "Checking for apropriate format for 64 bit long: found ${H5_PRINTF_LL_WIDTH}")
+ ELSE (PRINT_LL_FOUND)
+ MESSAGE (STATUS "Checking for apropriate format for 64 bit long: not found")
+ SET (H5_PRINTF_LL_WIDTH "\"unknown\"" CACHE INTERNAL
+ "Width for printf for type `long long' or `__int64', us. `ll"
+ )
+ ENDIF (PRINT_LL_FOUND)
+ ENDIF (H5_PRINTF_LL_WIDTH MATCHES "^H5_PRINTF_LL_WIDTH$")
+ENDIF (NOT H5_PRINTF_LL_WIDTH OR H5_PRINTF_LL_WIDTH MATCHES "unknown")
# ----------------------------------------------------------------------
# Set the flag to indicate that the machine can handle converting
diff --git a/config/cmake/FindMPI.cmake b/config/cmake/FindMPI.cmake
new file mode 100644
index 0000000..555d2d5
--- /dev/null
+++ b/config/cmake/FindMPI.cmake
@@ -0,0 +1,364 @@
+# - Message Passing Interface (MPI) module.
+#
+# The Message Passing Interface (MPI) is a library used to write
+# high-performance parallel applications that use message passing, and
+# is typically deployed on a cluster. MPI is a standard interface
+# (defined by the MPI forum) for which many implementations are
+# available. All of these implementations have somewhat different
+# compilation approaches (different include paths, libraries to link
+# against, etc.), and this module tries to smooth out those differences.
+#
+# This module will set the following variables:
+# MPI_FOUND TRUE if we have found MPI
+# MPI_COMPILE_FLAGS Compilation flags for MPI programs
+# MPI_INCLUDE_PATH Include path(s) for MPI header
+# MPI_LINK_FLAGS Linking flags for MPI programs
+# MPI_LIBRARY First MPI library to link against (cached)
+# MPI_EXTRA_LIBRARY Extra MPI libraries to link against (cached)
+# MPI_LIBRARIES All libraries to link MPI programs against
+# MPIEXEC Executable for running MPI programs
+# MPIEXEC_NUMPROC_FLAG Flag to pass to MPIEXEC before giving it the
+# number of processors to run on
+# MPIEXEC_PREFLAGS Flags to pass to MPIEXEC directly before the
+# executable to run.
+# MPIEXEC_POSTFLAGS Flags to pass to MPIEXEC after all other flags.
+#
+# This module will attempt to auto-detect these settings, first by
+# looking for a MPI compiler, which many MPI implementations provide
+# as a pass-through to the native compiler to simplify the compilation
+# of MPI programs. The MPI compiler is stored in the cache variable
+# MPI_COMPILER, and will attempt to look for commonly-named drivers
+# mpic++, mpicxx, mpiCC, or mpicc. If the compiler driver is found and
+# recognized, it will be used to set all of the module variables. To
+# skip this auto-detection, set MPI_LIBRARY and MPI_INCLUDE_PATH in
+# the CMake cache.
+#
+# If no compiler driver is found or the compiler driver is not
+# recognized, this module will then search for common include paths
+# and library names to try to detect MPI.
+#
+# If CMake initially finds a different MPI than was intended, and you
+# want to use the MPI compiler auto-detection for a different MPI
+# implementation, set MPI_COMPILER to the MPI compiler driver you want
+# to use (e.g., mpicxx) and then set MPI_LIBRARY to the string
+# MPI_LIBRARY-NOTFOUND. When you re-configure, auto-detection of MPI
+# will run again with the newly-specified MPI_COMPILER.
+#
+# When using MPIEXEC to execute MPI applications, you should typically
+# use all of the MPIEXEC flags as follows:
+# ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} PROCS ${MPIEXEC_PREFLAGS} EXECUTABLE
+# ${MPIEXEC_POSTFLAGS} ARGS
+# where PROCS is the number of processors on which to execute the program,
+# EXECUTABLE is the MPI program, and ARGS are the arguments to pass to the
+# MPI program.
+
+#=============================================================================
+# Copyright 2001-2009 Kitware, Inc.
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distributed this file outside of CMake, substitute the full
+# License text for the above reference.)
+
+# This module is maintained by David Partyka <dave.partyka@kitware.com>.
+
+# A set of directories to search through in addition to the standard system paths
+# that find_program will search through.
+# Microsoft HPC SDK is automatically added to the system path
+# Argonne National Labs MPICH2 sets a registry key that we can use.
+
+set(_MPI_PACKAGE_DIR
+ mpi
+ mpich
+ openmpi
+ lib/mpi
+ lib/mpich
+ lib/openmpi
+ "MPICH/SDK"
+ "Microsoft Compute Cluster Pack"
+ )
+
+set(_MPI_PREFIX_PATH)
+if(WIN32)
+ list(APPEND _MPI_PREFIX_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MPICH\\SMPD;binary]/..")
+ list(APPEND _MPI_PREFIX_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MPICH2;Path]")
+endif()
+
+foreach(SystemPrefixDir ${CMAKE_SYSTEM_PREFIX_PATH})
+ foreach(MpiPackageDir ${_MPI_PREFIX_PATH})
+ if(EXISTS ${SystemPrefixDir}/${MpiPackageDir})
+ list(APPEND _MPI_PREFIX_PATH "${SystemPrefixDir}/${MpiPackageDir}")
+ endif()
+ endforeach(MpiPackageDir)
+endforeach(SystemPrefixDir)
+
+# Most mpi distros have some form of mpiexec which gives us something we can reliably look for.
+find_program(MPIEXEC
+ NAMES mpiexec mpirun lamexec
+ PATHS ${_MPI_PREFIX_PATH}
+ PATH_SUFFIXES bin
+ DOC "Executable for running MPI programs."
+ )
+
+# call get_filename_component twice to remove mpiexec and the directory it exists in (typically bin).
+# This gives us a fairly reliable base directory to search for /bin /lib and /include from.
+get_filename_component(_MPI_BASE_DIR "${MPIEXEC}" PATH)
+get_filename_component(_MPI_BASE_DIR "${_MPI_BASE_DIR}" PATH)
+
+# If there is an mpi compiler find it and interogate (farther below) it for the include
+# and lib dirs otherwise we will continue to search from ${_MPI_BASE_DIR}.
+find_program(MPI_COMPILER
+ NAMES mpiCC mpicc mpic++ mpicxx
+ HINTS "${_MPI_BASE_DIR}"
+ PATH_SUFFIXES bin
+ DOC "MPI compiler. Used only to detect MPI compilation flags.")
+mark_as_advanced(MPI_COMPILER)
+
+set(MPIEXEC_NUMPROC_FLAG "-np" CACHE STRING "Flag used by MPI to specify the number of processes for MPIEXEC; the next option will be the number of processes.")
+set(MPIEXEC_PREFLAGS "" CACHE STRING "These flags will be directly before the executable that is being run by MPIEXEC.")
+set(MPIEXEC_POSTFLAGS "" CACHE STRING "These flags will come after all flags given to MPIEXEC.")
+set(MPIEXEC_MAX_NUMPROCS "2" CACHE STRING "Maximum number of processors available to run MPI applications.")
+mark_as_advanced(MPIEXEC MPIEXEC_NUMPROC_FLAG MPIEXEC_PREFLAGS
+ MPIEXEC_POSTFLAGS MPIEXEC_MAX_NUMPROCS)
+
+if (MPI_INCLUDE_PATH AND MPI_LIBRARY)
+ # Do nothing: we already have MPI_INCLUDE_PATH and MPI_LIBRARY in
+ # the cache, and we don't want to override those settings.
+elseif (MPI_COMPILER)
+ # Check whether the -showme:compile option works. This indicates
+ # that we have either Open MPI or a newer version of LAM-MPI, and
+ # implies that -showme:link will also work.
+ # Note that Windows distros do not have an mpi compiler to interogate.
+ exec_program(${MPI_COMPILER}
+ ARGS -showme:compile
+ OUTPUT_VARIABLE MPI_COMPILE_CMDLINE
+ RETURN_VALUE MPI_COMPILER_RETURN)
+
+ if (MPI_COMPILER_RETURN EQUAL 0)
+ # If we appear to have -showme:compile, then we should also have
+ # -showme:link. Try it.
+ exec_program(${MPI_COMPILER}
+ ARGS -showme:link
+ OUTPUT_VARIABLE MPI_LINK_CMDLINE
+ RETURN_VALUE MPI_COMPILER_RETURN)
+
+ # Note that we probably have -showme:incdirs and -showme:libdirs
+ # as well.
+ set(MPI_COMPILER_MAY_HAVE_INCLIBDIRS TRUE)
+ endif (MPI_COMPILER_RETURN EQUAL 0)
+
+ if (MPI_COMPILER_RETURN EQUAL 0)
+ # Do nothing: we have our command lines now
+ else (MPI_COMPILER_RETURN EQUAL 0)
+ # Older versions of LAM-MPI have "-showme". Try it.
+ exec_program(${MPI_COMPILER}
+ ARGS -showme
+ OUTPUT_VARIABLE MPI_COMPILE_CMDLINE
+ RETURN_VALUE MPI_COMPILER_RETURN)
+ endif (MPI_COMPILER_RETURN EQUAL 0)
+
+ if (MPI_COMPILER_RETURN EQUAL 0)
+ # Do nothing: we have our command lines now
+ else (MPI_COMPILER_RETURN EQUAL 0)
+ # MPICH uses "-show". Try it.
+ exec_program(${MPI_COMPILER}
+ ARGS -show
+ OUTPUT_VARIABLE MPI_COMPILE_CMDLINE
+ RETURN_VALUE MPI_COMPILER_RETURN)
+ endif (MPI_COMPILER_RETURN EQUAL 0)
+
+ if (MPI_COMPILER_RETURN EQUAL 0)
+ # We have our command lines, but we might need to copy
+ # MPI_COMPILE_CMDLINE into MPI_LINK_CMDLINE, if the underlying
+ if (NOT MPI_LINK_CMDLINE)
+ SET(MPI_LINK_CMDLINE ${MPI_COMPILE_CMDLINE})
+ endif (NOT MPI_LINK_CMDLINE)
+ else (MPI_COMPILER_RETURN EQUAL 0)
+ message(STATUS "Unable to determine MPI from MPI driver ${MPI_COMPILER}")
+ endif (MPI_COMPILER_RETURN EQUAL 0)
+endif (MPI_INCLUDE_PATH AND MPI_LIBRARY)
+
+if (MPI_INCLUDE_PATH AND MPI_LIBRARY)
+ # Do nothing: we already have MPI_INCLUDE_PATH and MPI_LIBRARY in
+ # the cache, and we don't want to override those settings.
+elseif (MPI_COMPILE_CMDLINE)
+ # Extract compile flags from the compile command line.
+ string(REGEX MATCHALL "-D([^\" ]+|\"[^\"]+\")" MPI_ALL_COMPILE_FLAGS "${MPI_COMPILE_CMDLINE}")
+ set(MPI_COMPILE_FLAGS_WORK)
+ foreach(FLAG ${MPI_ALL_COMPILE_FLAGS})
+ if (MPI_COMPILE_FLAGS_WORK)
+ set(MPI_COMPILE_FLAGS_WORK "${MPI_COMPILE_FLAGS_WORK} ${FLAG}")
+ else(MPI_COMPILE_FLAGS_WORK)
+ set(MPI_COMPILE_FLAGS_WORK ${FLAG})
+ endif(MPI_COMPILE_FLAGS_WORK)
+ endforeach(FLAG)
+
+ # Extract include paths from compile command line
+ string(REGEX MATCHALL "-I([^\" ]+|\"[^\"]+\")" MPI_ALL_INCLUDE_PATHS "${MPI_COMPILE_CMDLINE}")
+ set(MPI_INCLUDE_PATH_WORK)
+ foreach(IPATH ${MPI_ALL_INCLUDE_PATHS})
+ string(REGEX REPLACE "^-I" "" IPATH ${IPATH})
+ string(REGEX REPLACE "//" "/" IPATH ${IPATH})
+ list(APPEND MPI_INCLUDE_PATH_WORK ${IPATH})
+ endforeach(IPATH)
+
+ if (NOT MPI_INCLUDE_PATH_WORK)
+ if (MPI_COMPILER_MAY_HAVE_INCLIBDIRS)
+ # The compile command line didn't have any include paths on it,
+ # but we may have -showme:incdirs. Use it.
+ exec_program(${MPI_COMPILER}
+ ARGS -showme:incdirs
+ OUTPUT_VARIABLE MPI_INCLUDE_PATH_WORK
+ RETURN_VALUE MPI_COMPILER_RETURN)
+ separate_arguments(MPI_INCLUDE_PATH_WORK)
+ endif (MPI_COMPILER_MAY_HAVE_INCLIBDIRS)
+ endif (NOT MPI_INCLUDE_PATH_WORK)
+
+ if (NOT MPI_INCLUDE_PATH_WORK)
+ # If all else fails, just search for mpi.h in the normal include
+ # paths.
+ find_path(MPI_INCLUDE_PATH mpi.h
+ HINTS ${_MPI_BASE_DIR} ${_MPI_PREFIX_PATH}
+ PATH_SUFFIXES include
+ )
+ set(MPI_INCLUDE_PATH_WORK ${MPI_INCLUDE_PATH})
+ endif (NOT MPI_INCLUDE_PATH_WORK)
+
+ # Extract linker paths from the link command line
+ string(REGEX MATCHALL "-L([^\" ]+|\"[^\"]+\")" MPI_ALL_LINK_PATHS "${MPI_LINK_CMDLINE}")
+ set(MPI_LINK_PATH)
+ foreach(LPATH ${MPI_ALL_LINK_PATHS})
+ string(REGEX REPLACE "^-L" "" LPATH ${LPATH})
+ string(REGEX REPLACE "//" "/" LPATH ${LPATH})
+ list(APPEND MPI_LINK_PATH ${LPATH})
+ endforeach(LPATH)
+
+ if (NOT MPI_LINK_PATH)
+ if (MPI_COMPILER_MAY_HAVE_INCLIBDIRS)
+ # The compile command line didn't have any linking paths on it,
+ # but we may have -showme:libdirs. Use it.
+ exec_program(${MPI_COMPILER}
+ ARGS -showme:libdirs
+ OUTPUT_VARIABLE MPI_LINK_PATH
+ RETURN_VALUE MPI_COMPILER_RETURN)
+ separate_arguments(MPI_LINK_PATH)
+ endif (MPI_COMPILER_MAY_HAVE_INCLIBDIRS)
+ endif (NOT MPI_LINK_PATH)
+
+ # Extract linker flags from the link command line
+ string(REGEX MATCHALL "-Wl,([^\" ]+|\"[^\"]+\")" MPI_ALL_LINK_FLAGS "${MPI_LINK_CMDLINE}")
+ set(MPI_LINK_FLAGS_WORK)
+ foreach(FLAG ${MPI_ALL_LINK_FLAGS})
+ if (MPI_LINK_FLAGS_WORK)
+ set(MPI_LINK_FLAGS_WORK "${MPI_LINK_FLAGS_WORK} ${FLAG}")
+ else(MPI_LINK_FLAGS_WORK)
+ set(MPI_LINK_FLAGS_WORK ${FLAG})
+ endif(MPI_LINK_FLAGS_WORK)
+ endforeach(FLAG)
+
+ # Extract the set of libraries to link against from the link command
+ # line
+ string(REGEX MATCHALL "-l([^\" ]+|\"[^\"]+\")" MPI_LIBNAMES "${MPI_LINK_CMDLINE}")
+
+ # Determine full path names for all of the libraries that one needs
+ # to link against in an MPI program
+ set(MPI_LIBRARIES)
+ foreach(LIB ${MPI_LIBNAMES})
+ string(REGEX REPLACE "^-l" "" LIB ${LIB})
+ set(MPI_LIB "MPI_LIB-NOTFOUND" CACHE FILEPATH "Cleared" FORCE)
+ find_library(MPI_LIB ${LIB} HINTS ${MPI_LINK_PATH})
+ if (MPI_LIB)
+ list(APPEND MPI_LIBRARIES ${MPI_LIB})
+ else (MPI_LIB)
+ message(SEND_ERROR "Unable to find MPI library ${LIB}")
+ endif (MPI_LIB)
+ endforeach(LIB)
+ set(MPI_LIB "MPI_LIB-NOTFOUND" CACHE INTERNAL "Scratch variable for MPI detection" FORCE)
+
+ # Chop MPI_LIBRARIES into the old-style MPI_LIBRARY and
+ # MPI_EXTRA_LIBRARY.
+ list(LENGTH MPI_LIBRARIES MPI_NUMLIBS)
+ list(LENGTH MPI_LIBNAMES MPI_NUMLIBS_EXPECTED)
+ if (MPI_NUMLIBS EQUAL MPI_NUMLIBS_EXPECTED)
+ list(GET MPI_LIBRARIES 0 MPI_LIBRARY_WORK)
+ set(MPI_LIBRARY ${MPI_LIBRARY_WORK} CACHE FILEPATH "MPI library to link against" FORCE)
+ else (MPI_NUMLIBS EQUAL MPI_NUMLIBS_EXPECTED)
+ set(MPI_LIBRARY "MPI_LIBRARY-NOTFOUND" CACHE FILEPATH "MPI library to link against" FORCE)
+ endif (MPI_NUMLIBS EQUAL MPI_NUMLIBS_EXPECTED)
+ if (MPI_NUMLIBS GREATER 1)
+ set(MPI_EXTRA_LIBRARY_WORK ${MPI_LIBRARIES})
+ list(REMOVE_AT MPI_EXTRA_LIBRARY_WORK 0)
+ set(MPI_EXTRA_LIBRARY ${MPI_EXTRA_LIBRARY_WORK} CACHE STRING "Extra MPI libraries to link against" FORCE)
+ else (MPI_NUMLIBS GREATER 1)
+ set(MPI_EXTRA_LIBRARY "MPI_EXTRA_LIBRARY-NOTFOUND" CACHE STRING "Extra MPI libraries to link against" FORCE)
+ endif (MPI_NUMLIBS GREATER 1)
+
+ # Set up all of the appropriate cache entries
+ set(MPI_COMPILE_FLAGS ${MPI_COMPILE_FLAGS_WORK} CACHE STRING "MPI compilation flags" FORCE)
+ set(MPI_INCLUDE_PATH ${MPI_INCLUDE_PATH_WORK} CACHE STRING "MPI include path" FORCE)
+ set(MPI_LINK_FLAGS ${MPI_LINK_FLAGS_WORK} CACHE STRING "MPI linking flags" FORCE)
+else (MPI_COMPILE_CMDLINE)
+# No MPI compiler to interogate so attempt to find everything with find functions.
+ find_path(MPI_INCLUDE_PATH mpi.h
+ HINTS ${_MPI_BASE_DIR} ${_MPI_PREFIX_PATH}
+ PATH_SUFFIXES include
+ )
+
+ # Decide between 32-bit and 64-bit libraries for Microsoft's MPI
+ if("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
+ set(MS_MPI_ARCH_DIR amd64)
+ else()
+ set(MS_MPI_ARCH_DIR i386)
+ endif()
+
+ find_library(MPI_LIBRARY
+ NAMES mpi mpich msmpi
+ HINTS ${_MPI_BASE_DIR} ${_MPI_PREFIX_PATH}
+ PATH_SUFFIXES lib lib/${MS_MPI_ARCH_DIR} Lib Lib/${MS_MPI_ARCH_DIR}
+ )
+
+ find_library(MPI_EXTRA_LIBRARY
+ NAMES mpi++
+ HINTS ${_MPI_BASE_DIR} ${_MPI_PREFIX_PATH}
+ PATH_SUFFIXES lib
+ DOC "Extra MPI libraries to link against.")
+
+ set(MPI_COMPILE_FLAGS "" CACHE STRING "MPI compilation flags")
+ set(MPI_LINK_FLAGS "" CACHE STRING "MPI linking flags")
+endif (MPI_INCLUDE_PATH AND MPI_LIBRARY)
+
+# on BlueGene/L the MPI lib is named libmpich.rts.a, there also these additional libs are required
+if("${MPI_LIBRARY}" MATCHES "mpich.rts")
+ set(MPI_EXTRA_LIBRARY ${MPI_EXTRA_LIBRARY} msglayer.rts devices.rts rts.rts devices.rts)
+ set(MPI_LIBRARY ${MPI_LIBRARY} msglayer.rts devices.rts rts.rts devices.rts)
+endif("${MPI_LIBRARY}" MATCHES "mpich.rts")
+
+# Set up extra variables to conform to
+if (MPI_EXTRA_LIBRARY)
+ set(MPI_LIBRARIES ${MPI_LIBRARY} ${MPI_EXTRA_LIBRARY})
+else (MPI_EXTRA_LIBRARY)
+ set(MPI_LIBRARIES ${MPI_LIBRARY})
+endif (MPI_EXTRA_LIBRARY)
+
+if (MPI_INCLUDE_PATH AND MPI_LIBRARY)
+ set(MPI_FOUND TRUE)
+else (MPI_INCLUDE_PATH AND MPI_LIBRARY)
+ set(MPI_FOUND FALSE)
+endif (MPI_INCLUDE_PATH AND MPI_LIBRARY)
+
+include(FindPackageHandleStandardArgs)
+# handle the QUIETLY and REQUIRED arguments
+find_package_handle_standard_args(MPI DEFAULT_MSG MPI_LIBRARY MPI_INCLUDE_PATH)
+
+mark_as_advanced(MPI_INCLUDE_PATH MPI_COMPILE_FLAGS MPI_LINK_FLAGS MPI_LIBRARY
+ MPI_EXTRA_LIBRARY)
+
+# unset to cleanup namespace
+unset(_MPI_PACKAGE_DIR)
+unset(_MPI_PREFIX_PATH)
+unset(_MPI_BASE_DIR)
diff --git a/config/cmake/FindSZIP.cmake b/config/cmake/FindSZIP.cmake
index 190b0b5..6118f7a 100644
--- a/config/cmake/FindSZIP.cmake
+++ b/config/cmake/FindSZIP.cmake
@@ -8,10 +8,10 @@
# SZIP_FOUND, If false, do not try to use SZIP.
# also defined, but not for general use are
# SZIP_LIBRARY, where to find the SZIP library.
-# SZIP_LIBRARY_DEBUG - Debug version of tiff library
-# SZIP_LIBRARY_RELEASE - Release Version of tiff library
+# SZIP_LIBRARY_DEBUG - Debug version of SZIP library
+# SZIP_LIBRARY_RELEASE - Release Version of SZIP library
-# MESSAGE (STATUS "Finding Szip library and headers..." )
+# MESSAGE (STATUS "Finding SZIP library and headers..." )
############################################
#
diff --git a/config/cmake/H5pubconf.h.in b/config/cmake/H5pubconf.h.in
index 3f4bdc5..fdcf6b2 100644
--- a/config/cmake/H5pubconf.h.in
+++ b/config/cmake/H5pubconf.h.in
@@ -142,18 +142,21 @@
/* Define to 1 if you have the `frexpl' function. */
#cmakedefine H5_HAVE_FREXPL @H5_HAVE_FREXPL@
-/* Define to 1 if you have the `fseek64' function. */
-#cmakedefine H5_HAVE_FSEEK64 @H5_HAVE_FSEEK64@
-
/* Define to 1 if you have the `fseeko' function. */
#cmakedefine H5_HAVE_FSEEKO @H5_HAVE_FSEEKO@
+/* Define to 1 if you have the `fseeko64' function. */
+#cmakedefine H5_HAVE_FSEEKO64 @H5_HAVE_FSEEKO64@
+
/* Define to 1 if you have the `fstat64' function. */
#cmakedefine H5_HAVE_FSTAT64 @H5_HAVE_FSTAT64@
/* Define to 1 if you have the `ftello' function. */
#cmakedefine H5_HAVE_FTELLO @H5_HAVE_FTELLO@
+/* Define to 1 if you have the `ftello64' function. */
+#cmakedefine H5_HAVE_FTELLO64 @H5_HAVE_FTELLO64@
+
/* Define to 1 if you have the `ftruncate64' function. */
#cmakedefine H5_HAVE_FTRUNCATE64 @H5_HAVE_FTRUNCATE64@
@@ -317,6 +320,9 @@
/* Define to 1 if you have the <stdint.h> header file. */
#cmakedefine H5_HAVE_STDINT_H @H5_HAVE_STDINT_H@
+/* Define to 1 if you have the <stdint.h> header file for Cplusplus. */
+#cmakedefine H5_HAVE_STDINT_H_CXX @H5_HAVE_STDINT_H_CXX@
+
/* Define to 1 if you have the <stdlib.h> header file. */
#cmakedefine H5_HAVE_STDLIB_H @H5_HAVE_STDLIB_H@
diff --git a/config/cmake/HDF5-config.cmake.build.in b/config/cmake/HDF5-config.cmake.build.in
deleted file mode 100644
index 132e8be..0000000
--- a/config/cmake/HDF5-config.cmake.build.in
+++ /dev/null
@@ -1,42 +0,0 @@
-#-----------------------------------------------------------------------------
-# HDF5 Config file for compiling against hdf5 build directory
-#-----------------------------------------------------------------------------
-
-SET (HDF5_INCLUDE_DIRS "@HDF5_INCLUDES_BUILD_TIME@")
-
-#-----------------------------------------------------------------------------
-# Don't include targets if this file is being picked up by another
-# project which has already build hdf5 as a subproject
-#-----------------------------------------------------------------------------
-IF (NOT TARGET "hdf5" AND NOT HDF5_INSTALL_SKIP_TARGETS)
- GET_FILENAME_COMPONENT (SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
- INCLUDE (${SELF_DIR}/HDF5-targets.cmake)
-ENDIF (NOT TARGET "hdf5" AND NOT HDF5_INSTALL_SKIP_TARGETS)
-
-SET (HDF5_VERSION_STRING @HDF5_VERSION_STRING@)
-SET (HDF5_VERSION_MAJOR @HDF5_VERSION_MAJOR@)
-SET (HDF5_VERSION_MINOR @HDF5_VERSION_MINOR@)
-
-SET (HDF5_ENABLE_PARALLEL @HDF5_ENABLE_PARALLEL@)
-SET (HDF5_BUILD_FORTRAN @HDF5_BUILD_FORTRAN@)
-SET (HDF5_BUILD_CPP_LIB @HDF5_BUILD_CPP_LIB@)
-SET (HDF5_BUILD_TOOLS @HDF5_BUILD_TOOLS@)
-SET (HDF5_BUILD_HL_LIB @HDF5_BUILD_HL_LIB@)
-
-#
-# To be continued ...
-#
-# XXX_INCLUDE_DIRS The final set of include directories listed in one variable for use by client code. This should not be a cache entry.
-# XXX_LIBRARIES The libraries to link against to use XXX. These should include full paths. This should not be a cache entry.
-# XXX_DEFINITIONS Definitions to use when compiling code that uses XXX. This really shouldn't include options such as (-DHAS_JPEG)that a client source-code file uses to decide whether to #include <jpeg.h>
-# XXX_EXECUTABLE Where to find the XXX tool.
-# XXX_YYY_EXECUTABLE Where to find the YYY tool that comes with XXX.
-# XXX_LIBRARY_DIRS Optionally, the final set of library directories listed in one variable for use by client code. This should not be a cache entry.
-# XXX_ROOT_DIR Where to find the base directory of XXX.
-# XXX_VERSION_YY Expect Version YY if true. Make sure at most one of these is ever true.
-# XXX_WRAP_YY If False, do not try to use the relevent CMake wrapping command.
-# XXX_YY_FOUND If False, optional YY part of XXX sytem is not available.
-# XXX_FOUND Set to false, or undefined, if we haven't found, or don't want to use XXX.
-# XXX_RUNTIME_LIBRARY_DIRS Optionally, the runtime library search path for use when running an executable linked to shared libraries.
-# The list should be used by user code to create the PATH on windows or LD_LIBRARY_PATH on unix.
-# This should not be a cache entry.
diff --git a/config/cmake/HDF5Tests.c b/config/cmake/HDF5Tests.c
index 35e7258..f909ed9 100644
--- a/config/cmake/HDF5Tests.c
+++ b/config/cmake/HDF5Tests.c
@@ -364,3 +364,11 @@ int main(void)
}
#endif
+#ifdef LONE_COLON
+int main(int argc, char * argv)
+{
+ return 0;
+}
+#endif
+
+
diff --git a/config/cmake/hdf5-config-version.cmake.in b/config/cmake/hdf5-config-version.cmake.in
new file mode 100644
index 0000000..c1201cc
--- /dev/null
+++ b/config/cmake/hdf5-config-version.cmake.in
@@ -0,0 +1,27 @@
+#-----------------------------------------------------------------------------
+# HDF5 Version file for install directory
+#-----------------------------------------------------------------------------
+
+SET (PACKAGE_VERSION @HDF5_VERSION_STRING@)
+
+IF ("${PACKAGE_FIND_VERSION_MAJOR}" EQUAL @H5_VERS_MAJOR@)
+
+ # exact match for version @H5_VERS_MAJOR@.@H5_VERS_MINOR@
+ IF ("${PACKAGE_FIND_VERSION_MINOR}" EQUAL @H5_VERS_MINOR@)
+
+ # compatible with any version @H5_VERS_MAJOR@.@H5_VERS_MINOR@.x
+ SET (PACKAGE_VERSION_COMPATIBLE 1)
+
+ IF ("${PACKAGE_FIND_VERSION_PATCH}" EQUAL @H5_VERS_RELEASE@)
+ SET (PACKAGE_VERSION_EXACT 1)
+
+ IF ("${PACKAGE_FIND_VERSION_TWEAK}" EQUAL @H5_VERS_SUBRELEASE@)
+ # not using this yet
+ ENDIF ("${PACKAGE_FIND_VERSION_TWEAK}" EQUAL @H5_VERS_SUBRELEASE@)
+
+ ENDIF ("${PACKAGE_FIND_VERSION_PATCH}" EQUAL @H5_VERS_RELEASE@)
+
+ ENDIF ("${PACKAGE_FIND_VERSION_MINOR}" EQUAL @H5_VERS_MINOR@)
+ENDIF ("${PACKAGE_FIND_VERSION_MAJOR}" EQUAL @H5_VERS_MAJOR@)
+
+
diff --git a/config/cmake/hdf5-config.cmake.build.in b/config/cmake/hdf5-config.cmake.build.in
new file mode 100644
index 0000000..32bab7c
--- /dev/null
+++ b/config/cmake/hdf5-config.cmake.build.in
@@ -0,0 +1,49 @@
+#-----------------------------------------------------------------------------
+# HDF5 Config file for compiling against hdf5 build directory
+#-----------------------------------------------------------------------------
+GET_FILENAME_COMPONENT (SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+
+#-----------------------------------------------------------------------------
+# User Options
+#-----------------------------------------------------------------------------
+SET (HDF5_ENABLE_PARALLEL @HDF5_ENABLE_PARALLEL@)
+SET (HDF5_BUILD_FORTRAN @HDF5_BUILD_FORTRAN@)
+SET (HDF5_BUILD_CPP_LIB @HDF5_BUILD_CPP_LIB@)
+SET (HDF5_BUILD_TOOLS @HDF5_BUILD_TOOLS@)
+SET (HDF5_BUILD_HL_LIB @HDF5_BUILD_HL_LIB@)
+
+#-----------------------------------------------------------------------------
+# Directories
+#-----------------------------------------------------------------------------
+SET (HDF5_INCLUDE_DIR "@HDF5_INCLUDES_BUILD_TIME@")
+
+IF (HDF5_BUILD_FORTRAN)
+ SET (HDF5_INCLUDE_DIR_FORTRAN "@CMAKE_Fortran_MODULE_DIRECTORY@" )
+ENDIF (HDF5_BUILD_FORTRAN)
+
+IF (HDF5_BUILD_CPP_LIB)
+ SET (HDF5_INCLUDE_DIR_CPP ${HDF5_INCLUDE_DIR} )
+ENDIF (HDF5_BUILD_CPP_LIB)
+
+IF (HDF5_BUILD_HL_LIB)
+ SET (HDF5_INCLUDE_DIR_HL ${HDF5_INCLUDE_DIR} )
+ENDIF (HDF5_BUILD_HL_LIB)
+
+IF (HDF5_BUILD_TOOLS)
+ SET (HDF5_INCLUDE_DIR_TOOLS ${HDF5_INCLUDE_DIR} )
+ENDIF (HDF5_BUILD_TOOLS)
+
+#-----------------------------------------------------------------------------
+# Version Strings
+#-----------------------------------------------------------------------------
+SET (HDF5_VERSION_STRING @HDF5_VERSION_STRING@)
+SET (HDF5_VERSION_MAJOR @HDF5_VERSION_MAJOR@)
+SET (HDF5_VERSION_MINOR @HDF5_VERSION_MINOR@)
+
+#-----------------------------------------------------------------------------
+# Don't include targets if this file is being picked up by another
+# project which has already build hdf5 as a subproject
+#-----------------------------------------------------------------------------
+IF (NOT TARGET "hdf5")
+ INCLUDE (${SELF_DIR}/hdf5-targets.cmake)
+ENDIF (NOT TARGET "hdf5")
diff --git a/config/cmake/HDF5-config.cmake.install.in b/config/cmake/hdf5-config.cmake.install.in
index 2c33edf..ba5ba9a 100644
--- a/config/cmake/HDF5-config.cmake.install.in
+++ b/config/cmake/hdf5-config.cmake.install.in
@@ -1,35 +1,62 @@
#-----------------------------------------------------------------------------
# HDF5 Config file for compiling against hdf5 install directory
#-----------------------------------------------------------------------------
-
GET_FILENAME_COMPONENT (SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
-GET_FILENAME_COMPONENT (HDF5_INCLUDE_DIRS "${SELF_DIR}/../include" ABSOLUTE)
-SET (HDF5_FORTRAN_DIR ${HDF5_INCLUDE_DIRS}/fortran)
#-----------------------------------------------------------------------------
-# Don't include targets if this file is being picked up by another
-# project which has already build hdf5 as a subproject
+# User Options
#-----------------------------------------------------------------------------
-IF (NOT TARGET "hdf5")
- INCLUDE (${SELF_DIR}/HDF5-targets.cmake)
-ENDIF (NOT TARGET "hdf5")
-
-SET (HDF5_VERSION_STRING @HDF5_VERSION_STRING@)
-SET (HDF5_VERSION_MAJOR @HDF5_VERSION_MAJOR@)
-SET (HDF5_VERSION_MINOR @HDF5_VERSION_MINOR@)
-
SET (HDF5_ENABLE_PARALLEL @HDF5_ENABLE_PARALLEL@)
SET (HDF5_BUILD_FORTRAN @HDF5_BUILD_FORTRAN@)
SET (HDF5_BUILD_CPP_LIB @HDF5_BUILD_CPP_LIB@)
SET (HDF5_BUILD_TOOLS @HDF5_BUILD_TOOLS@)
SET (HDF5_BUILD_HL_LIB @HDF5_BUILD_HL_LIB@)
+#-----------------------------------------------------------------------------
+# Directories
+#-----------------------------------------------------------------------------
+SET (HDF5_INCLUDE_DIR "@CMAKE_INSTALL_PREFIX@/include" )
+
+IF (HDF5_BUILD_FORTRAN)
+ SET (HDF5_INCLUDE_DIR_FORTRAN "@CMAKE_INSTALL_PREFIX@/include/fortran" )
+ENDIF (HDF5_BUILD_FORTRAN)
+
+IF (HDF5_BUILD_CPP_LIB)
+ SET (HDF5_INCLUDE_DIR_CPP "@CMAKE_INSTALL_PREFIX@/include/cpp" )
+ENDIF (HDF5_BUILD_CPP_LIB)
+
+IF (HDF5_BUILD_HL_LIB)
+ SET (HDF5_INCLUDE_DIR_HL "@CMAKE_INSTALL_PREFIX@/include/hl" )
+ENDIF (HDF5_BUILD_HL_LIB)
+
+IF (HDF5_BUILD_TOOLS)
+ SET (HDF5_INCLUDE_DIR_TOOLS "@CMAKE_INSTALL_PREFIX@/include/tools" )
+ENDIF (HDF5_BUILD_TOOLS)
+
+#-----------------------------------------------------------------------------
+# Version Strings
+#-----------------------------------------------------------------------------
+SET (HDF5_VERSION_STRING @HDF5_VERSION_STRING@)
+SET (HDF5_VERSION_MAJOR @HDF5_VERSION_MAJOR@)
+SET (HDF5_VERSION_MINOR @HDF5_VERSION_MINOR@)
+
+#-----------------------------------------------------------------------------
+# Don't include targets if this file is being picked up by another
+# project which has already built hdf5 as a subproject
+#-----------------------------------------------------------------------------
+IF (NOT TARGET "hdf5")
+ INCLUDE (${SELF_DIR}/hdf5-targets.cmake)
+ENDIF (NOT TARGET "hdf5")
+
+#-----------------------------------------------------------------------------
+# Unfinished
+#-----------------------------------------------------------------------------
#
-# To be continued ...
+# To be continued (maybe) ...
#
-# XXX_INCLUDE_DIRS The final set of include directories listed in one variable for use by client code. This should not be a cache entry.
-# XXX_LIBRARIES The libraries to link against to use XXX. These should include full paths. This should not be a cache entry.
-# XXX_DEFINITIONS Definitions to use when compiling code that uses XXX. This really shouldn't include options such as (-DHAS_JPEG)that a client source-code file uses to decide whether to #include <jpeg.h>
+# XXX_INCLUDE_DIRS no, use one per library as in HDF5_FORTRAN_INCLUDE_DIR
+# XXX_LIBRARIES not needed - see hdf5-targets.cmake
+# XXX_DEFINITIONS Definitions to use when compiling code that uses XXX. This really shouldn't include options such as (-DHAS_JPEG) that a client source-code file uses to decide whether to #include <jpeg.h>
# XXX_EXECUTABLE Where to find the XXX tool.
# XXX_YYY_EXECUTABLE Where to find the YYY tool that comes with XXX.
# XXX_LIBRARY_DIRS Optionally, the final set of library directories listed in one variable for use by client code. This should not be a cache entry.
diff --git a/config/cmake/hdf5_zlib.h.in b/config/cmake/hdf5_zlib.h.in
deleted file mode 100644
index 104db27..0000000
--- a/config/cmake/hdf5_zlib.h.in
+++ /dev/null
@@ -1 +0,0 @@
-#include <@H5_ZLIB_HEADER@>
diff --git a/config/cmake/runTest.cmake b/config/cmake/runTest.cmake
index 4218671..227ef9b 100644
--- a/config/cmake/runTest.cmake
+++ b/config/cmake/runTest.cmake
@@ -17,6 +17,9 @@ ENDIF (NOT TEST_OUTPUT)
#IF (NOT TEST_EXPECT)
# MESSAGE (STATUS "Require TEST_EXPECT to be defined")
#ENDIF (NOT TEST_EXPECT)
+#IF (NOT TEST_FILTER)
+# MESSAGE (STATUS "Require TEST_FILTER to be defined")
+#ENDIF (NOT TEST_FILTER)
IF (NOT TEST_REFERENCE)
MESSAGE (FATAL_ERROR "Require TEST_REFERENCE to be defined")
ENDIF (NOT TEST_REFERENCE)
@@ -61,6 +64,12 @@ IF (TEST_MASK)
FILE (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
ENDIF (TEST_MASK)
+IF (TEST_FILTER)
+ FILE (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
+ STRING(REGEX REPLACE "${TEST_FILTER}" "" TEST_STREAM "${TEST_STREAM}")
+ FILE (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
+ENDIF (TEST_FILTER)
+
IF (WIN32 AND NOT MINGW)
FILE (READ ${TEST_FOLDER}/${TEST_REFERENCE} TEST_STREAM)
FILE (WRITE ${TEST_FOLDER}/${TEST_REFERENCE} "${TEST_STREAM}")
diff --git a/config/ibm-aix b/config/ibm-aix
index 8b6a5a3..134ad8e 100644
--- a/config/ibm-aix
+++ b/config/ibm-aix
@@ -35,6 +35,11 @@ if test "X-$enable_parallel" = "X-yes" -o X-$CC_BASENAME = X-mpcc_r; then
RUNPARALLEL=${RUNPARALLEL="env MP_PROCS=\$\${NPROCS:=3} MP_TASKS_PER_NODE=\$\${NPROCS:=3} poe"}
fi
+# Temporary patch for Bug 1678. -q32 binary default to run with smaller memory.
+# Ask for more memory so that "make check" will pass. Not necessary for -q64
+# mode but it does no harm.
+RUNSERIAL=${RUNSERIAL="env LDR_CNTRL=MAXDATA=0x20000000@DSA"}
+
#----------------------------------------------------------------------------
# Compiler flags. The CPPFLAGS values should not include package debug
diff --git a/config/intel-flags b/config/intel-flags
index 30e8f4d..5bf06d4 100644
--- a/config/intel-flags
+++ b/config/intel-flags
@@ -98,7 +98,7 @@ fi
# Please follow the pattern below by adding new versions at the top, copying
# the information from the previous version and adding modifications to that.
case "$cc_vendor-$cc_version" in
- icc-10.0*)
+ icc-10*)
PROD_CFLAGS="-O1 -Wl,-s"
;;
icc-8.0*)
diff --git a/config/pgi-flags b/config/pgi-flags
index 664b37b..3d481bd 100644
--- a/config/pgi-flags
+++ b/config/pgi-flags
@@ -72,6 +72,10 @@ if test "X-pgcc" = "X-$cc_vendor"; then
# Production
case "$cc_vendor-$cc_version" in
+ # Tweak down compiler optimizations for v10.6, it has a bug
+ pgcc-10.6*)
+ PROD_CFLAGS="-O1 -s"
+ ;;
# Tweak down compiler optimizations for v9.x
pgcc-9.*)
PROD_CFLAGS="-O1 -s"
diff --git a/config/powerpc-ibm-aix5.x b/config/powerpc-ibm-aix5.x
index aecbf33..b39fb47 100644
--- a/config/powerpc-ibm-aix5.x
+++ b/config/powerpc-ibm-aix5.x
@@ -35,6 +35,11 @@ if test "X-$enable_parallel" = "X-yes" -o X-$CC_BASENAME = X-mpcc_r; then
RUNPARALLEL=${RUNPARALLEL="env MP_PROCS=\$\${NPROCS:=3} MP_TASKS_PER_NODE=\$\${NPROCS:=3} poe"}
fi
+# Temporary patch for Bug 1678. -q32 binary default to run with smaller memory.
+# Ask for more memory so that "make check" will pass. Not necessary for -q64
+# mode but it does no harm.
+RUNSERIAL=${RUNSERIAL="env LDR_CNTRL=MAXDATA=0x20000000@DSA"}
+
#----------------------------------------------------------------------------
# Compiler flags. The CPPFLAGS values should not include package debug