1
1
openmpi/contrib/platform/win32/CMakeModules/ompi_configure.cmake
Shiqing Fan e6c0133d08 Add a definition for CMake to disable KNEM on Windows.
This commit was SVN r22345.
2009-12-28 16:13:41 +00:00

1974 строки
68 KiB
CMake

#
# Copyright (c) 2007-2009 High Performance Computing Center Stuttgart,
# University of Stuttgart. All rights reserved.
# Copyright (c) 2008 The University of Tennessee and The University
# of Tennessee Research Foundation. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
INCLUDE (get_c_alignment)
INCLUDE (check_c_inline)
INCLUDE (Check_c_type_exists)
INCLUDE (opal_functions)
INCLUDE (CheckIncludeFileCXX)
INCLUDE (CheckIncludeFile)
# usage: CHECK_INCLUDE_FILE (<header> <RESULT_VARIABLE> )
# Example: CHECK_INCLUDE_FILE(strings.h HAVE_STRINGS_H)
# find out how to check data type/size, compiler FLAGS,
INCLUDE (CheckFunctionExists)
# Usage: CHECK_FUNCTION_EXISTS(function variable)
# Example: CHECK_FUNCTION_EXISTS(madvise HAVE_MADVISE)
# Checks whether the given function exists. This is done by linking a small program, which may not result in undefined references.
INCLUDE (CheckSymbolExists)
# Usage: CHECK_SYMBOL_EXISTS(symbol headers variable)
# Example: CHECK_SYMBOL_EXISTS((LC_MESSAGES "locale.h" HAVE_LC_MESSAGES)
# Checks whether the given symbol exists if the specified headers are included.
INCLUDE (CheckLibraryExists)
# Usage: CHECK_LIBRARY_EXISTS(library function location variable)
# Example: CHECK_LIBRARY_EXISTS(volmgt volmgt_running "" HAVE_VOLMGT)
# Checks whether the given library exists and contains the given function. This is done by linking a small program which uses the function and links to the library. In the location parameter an additional link directory (-Ldir) can be given if required.
INCLUDE (CheckTypeSize)
# Usage: SET(CMAKE_EXTRA_INCLUDE_FILES header)
# CHECK_TYPE_SIZE(type variable)
# SET(CMAKE_EXTRA_INCLUDE_FILES)
# Example: SET(CMAKE_EXTRA_INCLUDE_FILES sys/socket.h)
# CHECK_TYPE_SIZE("struct ucred" STRUCT_UCRED)
# SET(CMAKE_EXTRA_INCLUDE_FILES)
# Checks whether the specified type exists and returns the size of the type. In the variable the size of the type will be returned, additionally a variable HAVE_STRUCT_UCRED will be set to true if the type exists. Please not that you have to set CMAKE_EXTRA_INCLUDE_FILES to the required headers for this type, and you should reset it after calling CHECK_TYPE_SIZE. If you are not really interested in the size of the type, but only whether it exists or not, you can also use STRUCT_UCRED directly, if the type doesn't exist, it will be empty and so also evaluate to FALSE (as will HAVE_STRUCT_UCRED).
INCLUDE (CheckStructHasMember)
# Usage: CHECK_STRUCT_HAS_MEMBER (STRUCT MEMBER HEADER VARIABLE)
# Example: CHECK_STRUCT_HAS_MEMBER("struct timeval" tv_sec sys/select.h HAVE_TIMEVAL_TV_SEC)
# Check if the given struct or class has the specified member variable
#INCLUDE (CheckPrototypeExists)
# Usage: CHECK_PROTOTYPE_EXISTS(function headers variable)
# Example: CHECK_PROTOTYPE_EXISTS(mkstemps "stdlib.h;unistd.h" HAVE_MKSTEMPS_PROTO)
# Checks whether the headers provide the declaration for the given function, i.e. it does not check whether using function will lead to undefined references.
INCLUDE (CheckCXXSourceCompiles)
INCLUDE (CheckCSourceCompiles)
# Usage: CHECK_CXX_SOURCE_COMPILES(source variable)
# CHECK_C_SOURCE_COMPILES(source variable)
# Checks whether the code given in source will compile and link. You can set CMAKE_REQUIRED_LIBRARIES, CMAKE_REQUIRED_FLAGS and CMAKE_REQUIRED_INCLUDES accordingly if additional libraries or compiler flags are required.
# First, let's check windows features.
IF(WIN32)
INCLUDE(ompi_check_Microsoft)
OMPI_MICROSOFT_COMPILER ()
ENDIF(WIN32)
# find flex command
INCLUDE (find_flex)
FIND_FLEX()
# Get current time and date.
EXECUTE_PROCESS(COMMAND cmd /C time /t
OUTPUT_VARIABLE CURRENT_TIME)
EXECUTE_PROCESS(COMMAND cmd /C date /t
OUTPUT_VARIABLE CURRENT_DATE)
STRING (REPLACE "\n" "" CURRENT_TIME ${CURRENT_TIME})
STRING (REPLACE "\n" "" CURRENT_DATE ${CURRENT_DATE})
SET (OMPI_CONFIGURE_DATE "${CURRENT_TIME} ${CURRENT_DATE}" CACHE INTERNAL "OMPI_CONFIGURE_DATE")
SET (OMPI_BUILD_DATE "${CURRENT_TIME} ${CURRENT_DATE}" CACHE INTERNAL "OMPI_BUILD_DATE")
SET(OMPI_BUILD_CFLAGS "\"/Od /Gm /EHsc /RTC1 /MDd\"")
if(${OpenMPI_SOURCE_DIR} STREQUAL ${OpenMPI_BINARY_DIR})
SET(OMPI_BUILD_CPPFLAGS "\"-I${OpenMPI_SOURCE_DIR}/
-I${OpenMPI_SOURCE_DIR}/opal
-I${OpenMPI_SOURCE_DIR}/opal/include
-I${OpenMPI_SOURCE_DIR}/ompi
-I${OpenMPI_SOURCE_DIR}/ompi/include
-I${OpenMPI_SOURCE_DIR}/orte
-I${OpenMPI_SOURCE_DIR}/orte/include
-I${OpenMPI_SOURCE_DIR}/contrib/platform/win32\"")
else(${OpenMPI_SOURCE_DIR} STREQUAL ${OpenMPI_BINARY_DIR})
SET(OMPI_BUILD_CPPFLAGS "\"-I${OpenMPI_SOURCE_DIR}/
-I${OpenMPI_SOURCE_DIR}/opal
-I${OpenMPI_SOURCE_DIR}/opal/include
-I${OpenMPI_SOURCE_DIR}/ompi
-I${OpenMPI_SOURCE_DIR}/ompi/include
-I${OpenMPI_SOURCE_DIR}/orte
-I${OpenMPI_SOURCE_DIR}/orte/include
-I${OpenMPI_BINARY_DIR}/
-I${OpenMPI_BINARY_DIR}/opal
-I${OpenMPI_BINARY_DIR}/opal/include
-I${OpenMPI_BINARY_DIR}/ompi
-I${OpenMPI_BINARY_DIR}/ompi/include
-I${OpenMPI_BINARY_DIR}/orte
-I${OpenMPI_BINARY_DIR}/orte/include
-I${OpenMPI_SOURCE_DIR}/contrib/platform/win32\"")
endif(${OpenMPI_SOURCE_DIR} STREQUAL ${OpenMPI_BINARY_DIR})
SET(OMPI_BUILD_CXXFLAGS "\"/Od /Gm /EHsc /RTC1 /MDd\"")
SET(OMPI_BUILD_CXXCPPFLAGS ${OMPI_BUILD_CPPFLAGS})
SET(OMPI_BUILD_FFLAGS "\"\"")
SET(OMPI_BUILD_FCFLAGS "\"\"")
SET(OMPI_BUILD_LDFLAGS "\"\"")
SET(OMPI_BUILD_LIBS "\"\"")
SET(OMPI_F77_ABSOLUTE "\"none\"")
SET(OMPI_F90_ABSOLUTE "\"none\"")
SET(OMPI_F90_BUILD_SIZE "\"small\"")
SET(OMPI_BTL_SM_HAVE_KNEM 0)
# set the im/export decleration here.
# Don't bother with OMPI_IMPORTS
IF(BUILD_SHARED_LIBS)
SET(OMPI_DECLSPEC "__declspec(dllimport)")
ELSE(BUILD_SHARED_LIBS)
SET(OMPI_DECLSPEC "")
ENDIF(BUILD_SHARED_LIBS)
IF(WIN32 AND MSVC)
SET(COMPILER_FAMILYNAME MICROSOFT)
SET(COMPILER_VERSION ${MSVC_VERSION})
SET(OPAL_BUILD_PLATFORM_COMPILER_FAMILYID 14)
SET(OPAL_BUILD_PLATFORM_COMPILER_VERSION ${MSVC_VERSION})
ENDIF(WIN32 AND MSVC)
###################################################################
# Options #
###################################################################
# No lower and upper bound required or enforced
OPAL_WITH_OPTION_MIN_MAX_VALUE(processor_name 256 16 1024)
# Min length according to information passed in ompi/errhandler/errcode.c
OPAL_WITH_OPTION_MIN_MAX_VALUE(error_string 256 64 1024)
# Min length according to MPI-2.1, p. 236 (information passed in ompi/communicator/comm.c: min only 48)
OPAL_WITH_OPTION_MIN_MAX_VALUE(object_name 64 64 256)
# Min and Max length according to MPI-2.1, p. 287 is 32; longest key in ROMIO however 33
OPAL_WITH_OPTION_MIN_MAX_VALUE(info_key 36 34 255)
# No lower and upper bound required or enforced!
OPAL_WITH_OPTION_MIN_MAX_VALUE(info_val 256 32 1024)
# Min length according to _POSIX_HOST_NAME_MAX=255 (4*HOST_NAME_MAX)
OPAL_WITH_OPTION_MIN_MAX_VALUE(port_name 1024 255 2048)
# Min length accroding to MPI-2.1, p. 418
OPAL_WITH_OPTION_MIN_MAX_VALUE(datarep_string 128 64 256)
OPTION(MCA_mtl_DIRECT_CALL "Whether mtl should use direct calls instead of components." OFF)
MARK_AS_ADVANCED(MCA_mtl_DIRECT_CALL)
IF(MCA_mtl_DIRECT_CALL)
SET(MCA_mtl_DIRECT_CALL 1)
ELSE(MCA_mtl_DIRECT_CALL)
SET(MCA_mtl_DIRECT_CALL 0)
ENDIF(MCA_mtl_DIRECT_CALL)
OPTION(MCA_pml_DIRECT_CALL "Whether pml should use direct calls instead of components." OFF)
MARK_AS_ADVANCED(MCA_pml_DIRECT_CALL)
IF(MCA_pml_DIRECT_CALL)
SET(MCA_pml_DIRECT_CALL 1)
ELSE(MCA_pml_DIRECT_CALL)
SET(MCA_pml_DIRECT_CALL 0)
ENDIF(MCA_pml_DIRECT_CALL)
OPTION(MPI_PARAM_CHECK
"Whether we want to check MPI parameters always, never, or decide at run-time." OFF)
MARK_AS_ADVANCED(MPI_PARAM_CHECK)
IF(NOT MPI_PARAM_CHECK)
SET (MPI_PARAM_CHECK "ompi_mpi_param_check")
ENDIF(NOT MPI_PARAM_CHECK)
OPTION(OPAL_ENABLE_DEBUG
"Whether we want developer-level debugging code or not." OFF)
IF(OPAL_ENABLE_DEBUG)
SET(OPAL_ENABLE_DEBUG 1)
ELSE(OPAL_ENABLE_DEBUG)
SET(OPAL_ENABLE_DEBUG 0)
ENDIF(OPAL_ENABLE_DEBUG)
OPTION(OPAL_ENABLE_HETEROGENEOUS_SUPPORT
"Enable features required for heterogeneous support." OFF)
MARK_AS_ADVANCED(OPAL_ENABLE_HETEROGENEOUS_SUPPORT)
IF(OPAL_ENABLE_HETEROGENEOUS_SUPPORT)
SET(OPAL_ENABLE_HETEROGENEOUS_SUPPORT 1)
ELSE(OPAL_ENABLE_HETEROGENEOUS_SUPPORT)
SET(OPAL_ENABLE_HETEROGENEOUS_SUPPORT 0)
ENDIF(OPAL_ENABLE_HETEROGENEOUS_SUPPORT)
OPTION(OPAL_ENABLE_MEM_DEBUG
"Whether we want the memory debug or not." OFF)
MARK_AS_ADVANCED(OPAL_ENABLE_MEM_DEBUG)
IF(OPAL_ENABLE_MEM_DEBUG)
SET(OPAL_ENABLE_MEM_DEBUG 1)
ELSE(OPAL_ENABLE_MEM_DEBUG)
SET(OPAL_ENABLE_MEM_DEBUG 0)
ENDIF(OPAL_ENABLE_MEM_DEBUG)
OPTION(OPAL_ENABLE_MEM_PROFILE
"Whether we want the memory profiling or not." OFF)
MARK_AS_ADVANCED(OPAL_ENABLE_MEM_PROFILE)
IF(OPAL_ENABLE_MEM_PROFILE)
SET(OPAL_ENABLE_MEM_PROFILE 1)
ELSE(OPAL_ENABLE_MEM_PROFILE)
SET(OPAL_ENABLE_MEM_PROFILE 0)
ENDIF(OPAL_ENABLE_MEM_PROFILE)
OPTION(OMPI_ENABLE_MPI_PROFILING
"Whether we want MPI profiling or not." ON)
MARK_AS_ADVANCED(OMPI_ENABLE_MPI_PROFILING)
IF(OMPI_ENABLE_MPI_PROFILING)
SET(OMPI_ENABLE_MPI_PROFILING 1)
SET(MPIF_H_PMPI_W_FUNCS ", PMPI_WTICK, PMPI_WTIME")
ELSE(OMPI_ENABLE_MPI_PROFILING)
SET(OMPI_ENABLE_MPI_PROFILING 0)
SET(MPIF_H_PMPI_W_FUNCS "")
ENDIF(OMPI_ENABLE_MPI_PROFILING)
OPTION(OPAL_ENABLE_MPI_THREADS
"Whether we should enable support for multiple user threads." OFF)
MARK_AS_ADVANCED(OPAL_ENABLE_MPI_THREADS)
IF(OPAL_ENABLE_MPI_THREADS)
SET(OPAL_ENABLE_MPI_THREADS 1)
ELSE(OPAL_ENABLE_MPI_THREADS)
SET(OPAL_ENABLE_MPI_THREADS 0)
ENDIF(OPAL_ENABLE_MPI_THREADS)
OPTION(OPAL_ENABLE_PROGRESS_THREADS
"Whether we should use progress threads rather than polling." OFF)
MARK_AS_ADVANCED(OPAL_ENABLE_PROGRESS_THREADS)
IF(OPAL_ENABLE_PROGRESS_THREADS)
SET(OPAL_ENABLE_PROGRESS_THREADS 1)
ELSE(OPAL_ENABLE_PROGRESS_THREADS)
SET(OPAL_ENABLE_PROGRESS_THREADS 0)
ENDIF(OPAL_ENABLE_PROGRESS_THREADS)
OPTION(OPAL_ENABLE_PTY_SUPPORT
"Whether we should use progress threads rather than polling." OFF)
MARK_AS_ADVANCED(OPAL_ENABLE_PTY_SUPPORT)
IF(OPAL_ENABLE_PTY_SUPPORT)
SET(OPAL_ENABLE_PTY_SUPPORT 1)
ELSE(OPAL_ENABLE_PTY_SUPPORT)
SET(OPAL_ENABLE_PTY_SUPPORT 0)
ENDIF(OPAL_ENABLE_PTY_SUPPORT)
OPTION ( OMPI_GROUP_SPARSE
"Wether we want sparse process groups." OFF)
MARK_AS_ADVANCED(OMPI_GROUP_SPARSE)
IF(NOT OMPI_GROUP_SPARSE)
SET (OMPI_GROUP_SPARSE 0)
ELSE(NOT OMPI_GROUP_SPARSE)
SET (OMPI_GROUP_SPARSE 1)
ENDIF(NOT OMPI_GROUP_SPARSE)
OPTION (OMPI_PROVIDE_MPI_FILE_INTERFACE
"Whether OMPI should provide MPI File interface" ON)
MARK_AS_ADVANCED(OMPI_PROVIDE_MPI_FILE_INTERFACE)
IF(OMPI_PROVIDE_MPI_FILE_INTERFACE)
SET (OMPI_PROVIDE_MPI_FILE_INTERFACE 1)
ELSE(OMPI_PROVIDE_MPI_FILE_INTERFACE)
SET (OMPI_PROVIDE_MPI_FILE_INTERFACE 0)
ENDIF(OMPI_PROVIDE_MPI_FILE_INTERFACE)
OPTION(OMPI_WANT_CXX_BINDINGS
"Whether we want MPI cxx support or not." ON)
MARK_AS_ADVANCED(OMPI_WANT_CXX_BINDINGS)
IF(OMPI_WANT_CXX_BINDINGS)
SET(OMPI_WANT_CXX_BINDINGS 1)
ELSE(OMPI_WANT_CXX_BINDINGS)
SET(OMPI_WANT_CXX_BINDINGS 0)
ENDIF(OMPI_WANT_CXX_BINDINGS)
OPTION(OMPI_WANT_F77_BINDINGS
"Whether we want MPI F77 support or not." OFF)
MARK_AS_ADVANCED(OMPI_WANT_F77_BINDINGS)
IF(OMPI_WANT_F77_BINDINGS)
SET(OMPI_WANT_F77_BINDINGS 1)
ELSE(OMPI_WANT_F77_BINDINGS)
SET(OMPI_WANT_F77_BINDINGS 0)
ENDIF(OMPI_WANT_F77_BINDINGS)
OPTION(OMPI_WANT_F90_BINDINGS
"Whether we want MPI F90 support or not." OFF)
MARK_AS_ADVANCED(OMPI_WANT_F90_BINDINGS)
IF(OMPI_WANT_F90_BINDINGS)
SET(OMPI_WANT_F90_BINDINGS 1)
ELSE(OMPI_WANT_F90_BINDINGS)
SET(OMPI_WANT_F90_BINDINGS 0)
ENDIF(OMPI_WANT_F90_BINDINGS)
OPTION(OMPI_WANT_MPI_CXX_SEEK
"Do we want to try to work around C++ bindings SEEK_* issue?" OFF)
MARK_AS_ADVANCED(OMPI_WANT_MPI_CXX_SEEK)
OPTION(OMPI_WANT_PERUSE
"Whether the peruse interface should be enabled." OFF)
MARK_AS_ADVANCED(OMPI_WANT_PERUSE)
IF(NOT OMPI_WANT_PERUSE)
SET(OMPI_WANT_PERUSE 0)
ELSE(NOT OMPI_WANT_PERUSE)
SET(OMPI_WANT_PERUSE 1)
ENDIF(NOT OMPI_WANT_PERUSE)
OPTION( OPAL_WANT_PRETTY_PRINT_STACKTRACE
"Whether we want pretty-print stack trace feature." ON)
MARK_AS_ADVANCED(OPAL_WANT_PRETTY_PRINT_STACKTRACE)
OPTION( OPAL_WANT_SMP_LOCKS
"Whether we want to have smp locks in atomic ops or not." ON)
MARK_AS_ADVANCED(OPAL_WANT_SMP_LOCKS)
OPTION( OPAL_ENABLE_FT
"Enable fault tolerance general components and logic." ON)
MARK_AS_ADVANCED(OPAL_ENABLE_FT)
IF(NOT OPAL_ENABLE_FT)
SET(OPAL_ENABLE_FT 0)
ELSE(NOT OPAL_ENABLE_FT)
SET(OPAL_ENABLE_FT 1)
ENDIF(NOT OPAL_ENABLE_FT)
OPTION( OPAL_ENABLE_FT_CR
"Enable fault tolerance checkpoint/restart components and logic." OFF)
MARK_AS_ADVANCED(OPAL_ENABLE_FT_CR)
OPTION( OPAL_ENABLE_FT_THREAD
"Enable fault tolerance thread in Open PAL." OFF)
MARK_AS_ADVANCED(OPAL_ENABLE_FT_THREAD)
IF(NOT OPAL_ENABLE_FT_THREAD)
SET(OPAL_ENABLE_FT_THREAD 0)
ELSE(NOT OPAL_ENABLE_FT_THREAD)
SET(OPAL_ENABLE_FT_THREAD 1)
ENDIF(NOT OPAL_ENABLE_FT_THREAD)
OPTION( OPAL_ENABLE_IPV6
"Enable IPv6 support, but only if the underlying system supports it." ON)
MARK_AS_ADVANCED(OPAL_ENABLE_IPV6)
OPTION( OPAL_ENABLE_TRACE
"Enable run-time tracing of internal functions." OFF)
MARK_AS_ADVANCED(OPAL_ENABLE_TRACE)
OPTION(ORTE_DISABLE_FULL_SUPPORT "Enable full RTE support (Default OFF)." OFF)
MARK_AS_ADVANCED(ORTE_DISABLE_FULL_SUPPORT)
IF(NOT ORTE_DISABLE_FULL_SUPPORT)
SET(ORTE_DISABLE_FULL_SUPPORT 0)
ELSE(NOT ORTE_DISABLE_FULL_SUPPORT)
SET (ORTE_DISABLE_FULL_SUPPORT 1)
ENDIF(NOT ORTE_DISABLE_FULL_SUPPORT)
OPTION( ORTE_WANT_ORTERUN_PREFIX_BY_DEFAULT
"Whether we want orterun to effect \"--prefix $prefix\" by default." ON)
MARK_AS_ADVANCED(ORTE_WANT_ORTERUN_PREFIX_BY_DEFAULT)
IF(NOT ORTE_WANT_ORTERUN_PREFIX_BY_DEFAULT)
SET (ORTE_WANT_ORTERUN_PREFIX_BY_DEFAULT 0)
ELSE(NOT ORTE_WANT_ORTERUN_PREFIX_BY_DEFAULT)
SET (ORTE_WANT_ORTERUN_PREFIX_BY_DEFAULT 1)
ENDIF(NOT ORTE_WANT_ORTERUN_PREFIX_BY_DEFAULT)
OPTION( OMPI_WANT_MPI_INTERFACE_WARNING
"enable warnings in wrong (e.g. deprecated) usage in user-level code (default: disabled)." OFF)
MARK_AS_ADVANCED(OMPI_WANT_MPI_INTERFACE_WARNING)
IF(NOT OMPI_WANT_MPI_INTERFACE_WARNING)
SET (OMPI_WANT_MPI_INTERFACE_WARNING 0)
ELSE(NOT OMPI_WANT_MPI_INTERFACE_WARNING)
SET (OMPI_WANT_MPI_INTERFACE_WARNING 1)
ENDIF(NOT OMPI_WANT_MPI_INTERFACE_WARNING)
OPTION(ORTE_WANT_CCP
"Whether we want to have the CCP remote process launch support." ON)
SET (OMPI_EXT_COMPONENTS Example CACHE STRING
"Specify user defined MPI Extended Interface Components." FORCE)
OPTION(OPAL_WANT_LIBLTDL "Whether we want to enable DSO build for Windows." OFF)
IF(NOT OPAL_WANT_LIBLTDL)
SET(OPAL_WANT_LIBLTDL 0)
ELSE(NOT OPAL_WANT_LIBLTDL)
INCLUDE(find_libltdl)
IF(LIBLTDL_FOUND)
SET (OPAL_WANT_LIBLTDL 1)
ELSE(LIBLTDL_FOUND)
SET(OPAL_WANT_LIBLTDL 0)
ENDIF(LIBLTDL_FOUND)
ENDIF(NOT OPAL_WANT_LIBLTDL)
OPTION(OMPI_WANT_NETWORK_DIRECT "Whether we want to enable Network Direct support." ON)
###################################################################
# Check headers #
###################################################################
#/* Define to 1 if you have the <aio.h> header file. */
CHECK_INCLUDE_FILE (aio.h HAVE_AIO_H)
#/* Define to 1 if you have the <alloca.h> header file. */
CHECK_INCLUDE_FILE (alloca.h HAVE_ALLOCA_H)
#/* Define to 1 if you have the <arpa/inet.h> header file. */
CHECK_INCLUDE_FILE (arpa/inet.h HAVE_ARPA_INET_H)
#/* Define to 1 if you have the <crt_externs.h> header file. */
CHECK_INCLUDE_FILE (crt_externs.h HAVE_CRT_EXTERNS_H)
#/* Define to 1 if you have the <dirent.h> header file. */
CHECK_INCLUDE_FILE (dirent.h HAVE_DIRENT_H)
#/* Define to 1 if you have the <dlfcn.h> header file. */
CHECK_INCLUDE_FILE (dlfcn.h HAVE_DLFCN_H)
#/* Define to 1 if you have the <err.h> header file. */
CHECK_INCLUDE_FILE (err.h HAVE_ERR_H)
#/* Define to 1 if you have the <execinfo.h> header file. */
CHECK_INCLUDE_FILE (execinfo.h HAVE_EXECINFO_H)
#/* Define to 1 if you have the <fcntl.h> header file. */
CHECK_INCLUDE_FILE (fcntl.h HAVE_FCNTL_H)
#/* Define to 1 if you have the <grp.h> header file. */
CHECK_INCLUDE_FILE (grp.h HAVE_GRP_H)
#/* Define to 1 if you have the <ifaddrs.h> header file. */
CHECK_INCLUDE_FILE (ifaddrs.h HAVE_IFADDRS_H)
#/* Define to 1 if you have the <inttypes.h> header file. */
CHECK_INCLUDE_FILE (inttypes.h HAVE_INTTYPES_H)
#/* Define to 1 if you have the <libcr.h> header file. */
CHECK_INCLUDE_FILE (libcr.h HAVE_LIBCR_H)
#/* Define to 1 if you have the <libgen.h> header file. */
CHECK_INCLUDE_FILE (libgen.h HAVE_LIBGEN_H)
#/* Define to 1 if you have the <libutil.h> header file. */
CHECK_INCLUDE_FILE (libutil.h HAVE_LIBUTIL_H)
#/* Define to 1 if you have the <libxcpu.h> header file. */
CHECK_INCLUDE_FILE (libxcpu.h HAVE_LIBXCPU_H)
#/* Define to 1 if you have the <mach/mach_time.h> header file. */
CHECK_INCLUDE_FILE (mach/mach_time.h HAVE_MACH_MACH_TIME_H)
#/* Define to 1 if you have the <mach/mach_vm.h> header file. */
CHECK_INCLUDE_FILE (mach/mach_vm.h HAVE_MACH_MACH_VM_H)
#/* Define to 1 if you have the <malloc.h> header file. */
CHECK_INCLUDE_FILE (malloc.h HAVE_MALLOC_H)
#/* Define to 1 if you have the <memory.h> header file. */
CHECK_INCLUDE_FILE (memory.h HAVE_MEMORY_H)
#/* Define to 1 if you have the <netdb.h> header file. */
CHECK_INCLUDE_FILE (netdb.h HAVE_NETDB_H)
#/* Define to 1 if you have the <netinet/in.h> header file. */
CHECK_INCLUDE_FILE (netinet/in.h HAVE_NETINET_IN_H)
#/* Define to 1 if you have the <netinet/tcp.h> header file. */
CHECK_INCLUDE_FILE (netinet/tcp.h HAVE_NETINET_TCP_H)
#/* Define to 1 if you have the <net/if.h> header file. */
CHECK_INCLUDE_FILE (net/if.h HAVE_NET_IF_H)
#/* Define to 1 if you have the <pmapi.h> header file. */
CHECK_INCLUDE_FILE (pmapi.h HAVE_PMAPI_H)
#/* Define to 1 if you have the <poll.h> header file. */
CHECK_INCLUDE_FILE (poll.h HAVE_POLL_H)
#/* Define to 1 if you have the <pthread.h> header file. */
CHECK_INCLUDE_FILE (pthread.h HAVE_PTHREAD_H)
#/* Define to 1 if you have the <pty.h> header file. */
CHECK_INCLUDE_FILE (pty.h HAVE_PTY_H)
#/* Define to 1 if you have the <pwd.h> header file. */
CHECK_INCLUDE_FILE (pwd.h HAVE_PWD_H)
#/* Define to 1 if you have the <regex.h> header file. */
CHECK_INCLUDE_FILE (regex.h HAVE_REGEX_H)
#/* Define to 1 if you have the <sched.h> header file. */
CHECK_INCLUDE_FILE (sched.h HAVE_SCHED_H)
#/* Define to 1 if you have the <signal.h> header file. */
CHECK_INCLUDE_FILE (signal.h HAVE_SIGNAL_H)
#/* Define to 1 if you have the <stdarg.h> header file. */
CHECK_INCLUDE_FILE (stdarg.h HAVE_STDARG_H)
#/* Define to 1 if you have the <stdbool.h> header file. */
CHECK_INCLUDE_FILE (stdbool.h HAVE_STDBOOL_H)
#/* Define to 1 if you have the <stdint.h> header file. */
CHECK_INCLUDE_FILE (stdint.h HAVE_STDINT_H)
#/* Define to 1 if you have the <stdlib.h> header file. */
CHECK_INCLUDE_FILE (stdlib.h HAVE_STDLIB_H)
#/* Define to 1 if you have the <strings.h> header file. */
CHECK_INCLUDE_FILE (strings.h HAVE_STRINGS_H)
#/* Define to 1 if you have the <string.h> header file. */
CHECK_INCLUDE_FILE (string.h HAVE_STRING_H)
#/* Define to 1 if you have the <stropts.h> header file. */
CHECK_INCLUDE_FILE (stropts.h HAVE_STROPTS_H)
#/* Define to 1 if you have the <syslog.h> header file. */
CHECK_INCLUDE_FILE (syslog.h HAVE_SYSLOG_H)
#/* Define to 1 if you have the <sys/bproc_common.h> header file. */
CHECK_INCLUDE_FILE (sys/bproc_common.h HAVE_SYS_BPROC_COMMON_H)
#/* Define to 1 if you have the <sys/bproc.h> header file. */
CHECK_INCLUDE_FILE (sys/bproc.h HAVE_SYS_BPROC_H)
#/* Define to 1 if you have the <sys/devpoll.h> header file. */
CHECK_INCLUDE_FILE (sys/devpoll.h HAVE_SYS_DEVPOLL_H)
#/* Define to 1 if you have the <sys/epoll.h> header file. */
CHECK_INCLUDE_FILE (sys/epoll.h HAVE_SYS_EPOLL_H)
#/* Define to 1 if you have the <sys/event.h> header file. */
CHECK_INCLUDE_FILE (sys/event.h HAVE_SYS_EVENT_H)
#/* Define to 1 if you have the <sys/fcntl.h> header file. */
CHECK_INCLUDE_FILE (sys/fcntl.h HAVE_SYS_FCNTL_H)
#/* Define to 1 if you have the <sys/ioctl.h> header file. */
CHECK_INCLUDE_FILE (sys/ioctl.h HAVE_SYS_IOCTL_H)
#/* Define to 1 if you have the <sys/ipc.h> header file. */
CHECK_INCLUDE_FILE (sys/ipc.h HAVE_SYS_IPC_H)
#/* Define to 1 if you have the <sys/mman.h> header file. */
CHECK_INCLUDE_FILE (sys/mman.h HAVE_SYS_MMAN_H)
#/* Define to 1 if you have the <sys/param.h> header file. */
CHECK_INCLUDE_FILE (sys/param.h HAVE_SYS_PARAM_H)
#/* Define to 1 if you have the <sys/queue.h> header file. */
CHECK_INCLUDE_FILE (sys/queue.h HAVE_SYS_QUEUE_H)
#/* Define to 1 if you have the <sys/resource.h> header file. */
CHECK_INCLUDE_FILE (sys/resource.h HAVE_SYS_RESOURCE_H)
#/* Define to 1 if you have the <sys/select.h> header file. */
CHECK_INCLUDE_FILE (sys/select.h HAVE_SYS_SELECT_H)
#/* Define to 1 if you have the <sys/socket.h> header file. */
CHECK_INCLUDE_FILE (sys/socket.h HAVE_SYS_SOCKET_H)
#/* Define to 1 if you have the <sys/sockio.h> header file. */
CHECK_INCLUDE_FILE (sys/sockio.h HAVE_SYS_SOCKIO_H)
#/* Define to 1 if you have the <sys/statvfs.h> header file. */
CHECK_INCLUDE_FILE (sys/statvfs.h HAVE_SYS_STATVFS_H)
#/* Define to 1 if you have the <sys/stat.h> header file. */
CHECK_INCLUDE_FILE (sys/stat.h HAVE_SYS_STAT_H)
#/* Define to 1 if you have the <sys/sysctl.h> header file. */
CHECK_INCLUDE_FILE (sys/sysctl.h HAVE_SYS_SYSCTL_H)
#/* Define to 1 if you have the <sys/time.h> header file. */
CHECK_INCLUDE_FILE (sys/time.h HAVE_SYS_TIME_H)
#/* Define to 1 if you have the <sys/tree.h> header file. */
CHECK_INCLUDE_FILE (sys/tree.h HAVE_SYS_TREE_H)
#/* Define to 1 if you have the <sys/types.h> header file. */
CHECK_INCLUDE_FILE (sys/types.h HAVE_SYS_TYPES_H)
#/* Define to 1 if you have the <sys/uio.h> header file. */
CHECK_INCLUDE_FILE (sys/uio.h HAVE_SYS_UIO_H)
#/* Define to 1 if you have the <sys/utsname.h> header file. */
CHECK_INCLUDE_FILE (sys/utsname.h HAVE_SYS_UTSNAME_H)
#/* Define to 1 if you have the <sys/wait.h> header file. */
CHECK_INCLUDE_FILE (sys/wait.h HAVE_SYS_WAIT_H)
#/* Define to 1 if you have the <termios.h> header file. */
CHECK_INCLUDE_FILE (termios.h HAVE_TERMIOS_H)
#/* Define if timeradd is defined in <sys/time.h> */
CHECK_INCLUDE_FILE (sys/time.h HAVE_TIMERADD)
#/* Define to 1 if you have the <time.h> header file. */
CHECK_INCLUDE_FILE (time.h HAVE_TIME_H)
#/* Define to 1 if you have the <ucontext.h> header file. */
CHECK_INCLUDE_FILE (ucontext.h HAVE_UCONTEXT_H)
#/* Define to 1 if you have the <ulimit.h> header file. */
CHECK_INCLUDE_FILE (ulimit.h HAVE_ULIMIT_H)
#/* Define to 1 if you have the <unistd.h> header file. */
CHECK_INCLUDE_FILE (unistd.h HAVE_UNISTD_H)
#/* Define to 1 if you have the <util.h> header file. */
CHECK_INCLUDE_FILE (util.h HAVE_UTIL_H)
#/* Define to 1 if you have the <utmp.h> header file. */
CHECK_INCLUDE_FILE (utmp.h HAVE_UTMP_H)
#/* The MX library have support for the mx_extensions.h */
CHECK_INCLUDE_FILE (mx_extension.h MX_HAVE_EXTENSIONS_H)
#/* Define to 1 if you have the ANSI C header files. */
CHECK_INCLUDE_FILE(stddef.h STDC_HEADERS)
IF(STDC_HEADERS)
SET(OPAL_STDC_HEADERS 1)
ENDIF(STDC_HEADERS)
###################################################################
# Check functions #
###################################################################
#/* Define to 1 if you have the `asprintf' function. */
CHECK_FUNCTION_EXISTS (asprintf HAVE_ASPRINTF)
#/* Define to 1 if you have the `backtrace' function. */
CHECK_FUNCTION_EXISTS (backtrace HAVE_BACKTRACE)
#/* Define to 1 if you have the `ceil' function. */
CHECK_FUNCTION_EXISTS (ceil HAVE_CEIL)
#/* Define to 1 if you have the `cnos_pm_barrier' function. */
CHECK_FUNCTION_EXISTS (cnos_pm_barrier HAVE_CNOS_PM_BARRIER)
#/* Define to 1 if you have the `dirname' function. */
CHECK_FUNCTION_EXISTS (dirname HAVE_DIRNAME)
#/* Define to 1 if you have the `dlsym' function. */
CHECK_FUNCTION_EXISTS (dlsym AVE_DLSYM)
#/* Define if your system supports the epoll system calls */
CHECK_FUNCTION_EXISTS (epoll HAVE_EPOLL)
#/* Define to 1 if you have the `epoll_ctl' function. */
CHECK_FUNCTION_EXISTS (epoll_ctl HAVE_EPOLL_CTL)
#/* Define to 1 if you have the `execve' function. */
CHECK_FUNCTION_EXISTS (execve HAVE_EXECVE)
#/* Define to 1 if you have the `fcntl' function. */
CHECK_FUNCTION_EXISTS (fcntl HAVE_FCNTL)
#/* Define to 1 if you have the `fork' function. */
CHECK_FUNCTION_EXISTS (fork HAVE_FORK)
#/* Define to 1 if you have the `getpwuid' function. */
CHECK_FUNCTION_EXISTS (getpwuid HAVE_GETPWUID)
#/* Define to 1 if you have the `gettimeofday' function. */
CHECK_FUNCTION_EXISTS (gettimeofday HAVE_GETTIMEOFDAY)
#/* Define to 1 if you have the `htonl' function. */
CHECK_FUNCTION_EXISTS (htonl HAVE_HTONL)
#/* Define to 1 if you have the `htons' function. */
CHECK_FUNCTION_EXISTS (htons HAVE_HTONS)
#/* Define to 1 if you have the `ibv_fork_init' function. */
CHECK_FUNCTION_EXISTS (ibv_fork_init HAVE_IBV_FORK_INIT)
#/* Define to 1 if you have the `ibv_get_device_list' function. */
CHECK_FUNCTION_EXISTS (ibv_get_device_list HAVE_IBV_GET_DEVICE_LIST)
#/* Define to 1 if you have the `ibv_resize_cq' function. */
CHECK_FUNCTION_EXISTS (ibv_resize_cq HAVE_IBV_RESIZE_CQ)
#/* Define to 1 if you have the `isatty' function. */
CHECK_FUNCTION_EXISTS (isatty HAVE_ISATTY)
#/* Define to 1 if you have the `killrank' function. */
CHECK_FUNCTION_EXISTS (killrank HAVE_KILLRANK)
#/* Define to 1 if you have the `kqueue' function. */
CHECK_FUNCTION_EXISTS (kqueue KQUEUE)
#/* Define to 1 if you have the `mach_vm_read' function. */
CHECK_FUNCTION_EXISTS (mach_vm_read HAVE_MACH_MACH_VM_READ)
#/* Define to 1 if you have the `mach_vm_region' function. */
CHECK_FUNCTION_EXISTS (mach_vm_region HAVE_MACH_VM_REGION)
#/* Define to 1 if you have the `mallopt' function. */
CHECK_FUNCTION_EXISTS (mallopt HAVE_MALLOPT)
#/* Define to 1 if you have the `mmap' function. */
CHECK_FUNCTION_EXISTS (mmap HAVE_MMAP)
#/* Define to 1 if you have the `ntohl' function. */
CHECK_FUNCTION_EXISTS (ntohl HAVE_NTOHL)
#/* Define to 1 if you have the `ntohs' function. */
CHECK_FUNCTION_EXISTS (ntohs HAVE_NTOHS)
#/* Define to 1 if you have the `openpty' function. */
CHECK_FUNCTION_EXISTS (openpty HAVE_OPENPTY)
#/* Define to 1 if you have the `pipe' function. */
CHECK_FUNCTION_EXISTS (pipe HAVE_PIPE)
#/* Define to 1 if you have the `pm_cycles' function. */
CHECK_FUNCTION_EXISTS (pm_cycles HAVE_PM_CYCLES)
#/* Define to 1 if you have the `poll' function. */
CHECK_FUNCTION_EXISTS (poll HAVE_POLL)
#/* Define to 1 if you have the `posix_memalign' function. */
CHECK_FUNCTION_EXISTS (posix_memalign HAVE_POSIX_MEMALIGN)
#/* Define to 1 if you have the `printstack' function. */
CHECK_FUNCTION_EXISTS (printstack HAVE_PRINTSTACK)
#/* Define to 1 if you have the `ptsname' function. */
CHECK_FUNCTION_EXISTS (ptsname HAVE_PTSNAME)
#/* Define to 1 if you have the `regcmp' function. */
CHECK_FUNCTION_EXISTS (regcmp HAVE_REGCMP)
#/* Define to 1 if you have the `regexec' function. */
CHECK_FUNCTION_EXISTS (regexec HAVE_REGEXEC)
#/* Define to 1 if you have the `regfree' function. */
CHECK_FUNCTION_EXISTS (regfree HAVE_REGFREE)
#/* Define to 1 if you have the `sched_yield' function. */
CHECK_FUNCTION_EXISTS (sched_yield HAVE_SCHED_YIELD)
#/* Define to 1 if you have the `select' function. */
CHECK_FUNCTION_EXISTS (select HAVE_SELECT)
#/* Define to 1 if you have the `setsid' function. */
CHECK_FUNCTION_EXISTS (setsid HAVE_SETSID)
#/* Define to 1 if you have the `sigtimedwait' function. */
CHECK_FUNCTION_EXISTS (sigtimedwait HAVE_SIGTIMEDWAIT)
#/* Define to 1 if you have the `snprintf' function. */
CHECK_FUNCTION_EXISTS (snprintf HAVE_SNPRINTF)
#/* Define to 1 if you have the `strsignal' function. */
CHECK_FUNCTION_EXISTS (strsignal HAVE_STRSIGNAL)
#/* Define to 1 if you have the `syscall' function. */
CHECK_FUNCTION_EXISTS (syscall HAVE_SYSCALL)
#/* Define to 1 if you have the `sysconf' function. */
CHECK_FUNCTION_EXISTS (sysconf HAVE_SYSCONF)
#/* Define to 1 if you have the `syslog' function. */
CHECK_FUNCTION_EXISTS (syslog HAVE_SYSLOG)
#/* Define to 1 if you have the `tcgetpgrp' function. */
CHECK_FUNCTION_EXISTS (tcgetpgrp HAVE_TCGETPGRP)
#/* Define to 1 if you have the `vasprintf' function. */
CHECK_FUNCTION_EXISTS (vasprintf HAVE_VASPRINTF)
#/* Define to 1 if you have the `vm_read_overwrite' function. */
CHECK_FUNCTION_EXISTS (vm_read_overwrite HAVE_VM_READ_OVERWRITE)
#/* Define to 1 if you have the `vsnprintf' function. */
CHECK_FUNCTION_EXISTS (vsnprintf HAVE_VSNPRINTF)
#/* Define to 1 if you have the `waitpid' function. */
CHECK_FUNCTION_EXISTS (waitpid HAVE_WAITPIN)
#/* Define to 1 if you have the `_NSGetEnviron' function. */
CHECK_FUNCTION_EXISTS (_NSGetEnviron HAVE__NSGETENVIRON)
#/* Define to 1 if you have the `__mmap' function. */
CHECK_FUNCTION_EXISTS (__mmap HAVE___MMAP)
#/* Define to 1 if you have the `__munmap' function. */
CHECK_FUNCTION_EXISTS (__munmap HAVE___MUNMAP)
###################################################################
# Check libraries #
###################################################################
###################################################################
# Check symbols #
###################################################################
#/* Define if F_SETFD is defined in <fcntl.h> */
CHECK_SYMBOL_EXISTS (F_SETFD fcntl.h HAVE_SETFD)
#/* Define if TAILQ_FOREACH is defined in <sys/queue.h> */
CHECK_SYMBOL_EXISTS (TAILQ_FOREACH "sys/queue.h" HAVE_TAILQFOREACH)
#/* Define to 1 if you have the declaration of `IBV_EVENT_CLIENT_REREGISTER',
# and to 0 if you don't. */
CHECK_SYMBOL_EXISTS (IBV_EVENT_CLIENT_REREGISTER "" HAVE_DECL_IBV_EVENT_CLIENT_REREGISTER)
#/* Define to 1 if you have the declaration of `AF_UNSPEC', and to 0 if you
# don't. */
CHECK_SYMBOL_EXISTS (AF_UNSPEC winsock2.h HAVE_DECL_AF_UNSPEC)
#/* Define to 1 if you have the declaration of `PF_UNSPEC', and to 0 if you
# don't. */
CHECK_SYMBOL_EXISTS (PF_UNSPEC winsock2.h HAVE_DECL_PF_UNSPEC)
#/* Define to 1 if you have the declaration of `AF_INET6', and to 0 if you
# don't. */
CHECK_SYMBOL_EXISTS (AF_INET6 winsock2.h HAVE_DECL_AF_INET6)
#/* Define to 1 if you have the declaration of `PF_INET6', and to 0 if you
# don't. */
CHECK_SYMBOL_EXISTS (PF_INET6 winsock2.h HAVE_DECL_PF_INET6)
#
#/* Define to 1 if you have the declaration of `RLIMIT_NPROC', and to 0 if you
# don't. */
CHECK_SYMBOL_EXISTS (RLIMIT_NPROC "" HAVE_DECL_RLIMIT_NPROC)
#/* Define to 1 if you have the declaration of `sbrk', and to 0 if you don't.
# */
CHECK_SYMBOL_EXISTS (sbrk "" HAVE_DECL_SBRK)
#/* Define to 1 if you have the declaration of `__func__', and to 0 if you
# don't. */
CHECK_SYMBOL_EXISTS (__func__ "" HAVE_DECL___FUNC__)
IF(NOT HAVE_DECL___FUNC__)
SET(HAVE_DECL___FUNC__ 0)
ENDIF(NOT HAVE_DECL___FUNC__)
#/* Define to 1 if `srr0' is member of `ppc_thread_state_t'. */
CHECK_STRUCT_HAS_MEMBER(ppc_thread_state_t srr0 mach/ppc/thread_status.h HAVE_PPC_THREAD_STATE_T_SRR0)
#/* Define to 1 if `si_band' is member of `siginfo_t'. */
CHECK_STRUCT_HAS_MEMBER(siginfo_t si_band sys/siginfo.h HAVE_SIGINFO_T_SI_BAND)
#/* Define to 1 if `si_fd' is member of `siginfo_t'. */
CHECK_STRUCT_HAS_MEMBER(siginfo_t si_fd sys/siginfo.h HAVE_SIGINFO_T_SI_FD)
#/* Define to 1 if `d_type' is member of `struct dirent'. */
CHECK_STRUCT_HAS_MEMBER("struct dirent" d_type dirent.h HAVE_STRUCT_DIRENT_D_TYPE)
###################################################################
# Check data type #
###################################################################
#/* The size of `bool', as computed by sizeof. */
INCLUDE(check_sizeof_bool)
CHECK_SIZEOF_BOOL()
#/* The size of `char', as computed by sizeof. */
CHECK_TYPE_SIZE(char CHAR)
SET(SIZEOF_CHAR ${CHAR} CACHE INTERNAL "sizeof 'char'")
#/* The size of `double', as computed by sizeof. */
CHECK_TYPE_SIZE(double DOUBLE)
SET(SIZEOF_DOUBLE ${DOUBLE} CACHE INTERNAL "sizeof 'double'")
#/* The size of `float', as computed by sizeof. */
CHECK_TYPE_SIZE(float FLOAT)
SET(SIZEOF_FLOAT ${FLOAT} CACHE INTERNAL "sizeof 'float'")
#/* The size of `int', as computed by sizeof. */
CHECK_TYPE_SIZE(int INT)
SET(SIZEOF_INT ${INT} CACHE INTERNAL "sizeof int")
#/* The size of `long', as computed by sizeof. */
CHECK_TYPE_SIZE(long LONG)
SET(SIZEOF_LONG ${LONG} CACHE INTERNAL "sizeof 'long'")
#/* The size of `long double', as computed by sizeof. */
CHECK_TYPE_SIZE("long double" LONG_DOUBLE)
SET(SIZEOF_LONG_DOUBLE ${LONG_DOUBLE} CACHE INTERNAL "sizeof 'long double'")
#/* The size of `long long', as computed by sizeof. */
CHECK_TYPE_SIZE("long long" LONG_LONG)
SET(SIZEOF_LONG_LONG ${LONG_LONG} CACHE INTERNAL "sizeof 'long long'")
#/* The size of `unsigned int', as computed by sizeof. */
CHECK_TYPE_SIZE ("unsigned int" UNSIGNED_INT)
SET(SIZEOF_UNSIGNED_INT ${UNSIGNED_INT} CACHE INTERNAL "sizeof 'unsigned int'")
#/* The size of `unsigned short', as computed by sizeof. */
CHECK_TYPE_SIZE ("unsigned short" UNSIGNED_SHORT)
SET(SIZEOF_UNSIGNED_SHORT ${UNSIGNED_SHORT} CACHE INTERNAL "sizeof 'unsigned short'")
#/* The size of `unsigned long long', as computed by sizeof. */
CHECK_TYPE_SIZE ("unsigned long long" UNSIGNED_LONG_LONG)
SET(SIZEOF_UNSIGNED_LONG_LONG ${UNSIGNED_LONG_LONG} CACHE INTERNAL "sizeof 'unsigned long long'")
#/* The size of `unsigned long double', as computed by sizeof. */
CHECK_TYPE_SIZE("unsigned long double" UNSIGNED_LONG_DOUBLE)
SET(SIZEOF_UNSIGNED_LONG_DOUBLE ${UNSIGNED_LONG_DOUBLE} CACHE INTERNAL "sizeof 'unsigned long double'")
#/* The size of `unsigned char', as computed by sizeof. */
CHECK_TYPE_SIZE ("unsigned char" UNSIGNED_CHAR)
SET(SIZEOF_UNSIGNED_CHAR ${UNSIGNED_CHAR} CACHE INTERNAL "sizeof 'unsigned char'")
#/* The size of `short', as computed by sizeof. */
CHECK_TYPE_SIZE(short SHORT)
SET(SIZEOF_SHORT ${SHORT} CACHE INTERNAL "sizeof 'short'")
#/* The size of `float _Complex', as computed by sizeof. */
CHECK_TYPE_SIZE("float _Complex" FLOAT_COMPLEX)
SET(SIZEOF_FLOAT_COMPLEX ${SHORT} CACHE INTERNAL "sizeof 'float _Complex'")
#/* The size of `double _Complex', as computed by sizeof. */
CHECK_TYPE_SIZE("double _Complex" DOUBLE_COMPLEX)
SET(SIZEOF_DOUBLE_COMPLEX ${SHORT} CACHE INTERNAL "sizeof 'double _Complex'")
#/* The size of `long double _Complex', as computed by sizeof. */
CHECK_TYPE_SIZE("long double _Complex" LONG_DOUBLE_COMPLEX)
SET(SIZEOF_LONG_DOUBLE_COMPLEX ${SHORT} CACHE INTERNAL "sizeof 'long double _Complex'")
#/* The size of `size_t', as computed by sizeof. */
CHECK_TYPE_SIZE(size_t SIZE_T)
IF (NOT SIZEOF_SIZE_T)
# size_t is not defind, define it as unsigned int.
MESSAGE(STATUS "Define it as 'unsigned int'.")
SET (SIZE_T "unsigned int")
SET (SIZEOF_SIZE_T ${SIZEOF_UNSIGNED_INT} CACHE INTERNAL "sizeof 'size_t'")
ELSEIF (SIZE_T)
SET(SIZEOF_SIZE_T ${SIZE_T} CACHE INTERNAL "sizeof 'size_t'")
ENDIF (NOT SIZEOF_SIZE_T)
#/* The size of `ssize_t', as computed by sizeof. */
CHECK_TYPE_SIZE(ssize_t SSIZE_T)
SET(SIZEOF_SSIZE_T ${SSIZE_T} CACHE INTERNAL "sizeof sszie_t")
#/* The size of `void *', as computed by sizeof. */
CHECK_TYPE_SIZE("void *" VOID_P)
SET(SIZEOF_VOID_P ${VOID_P} CACHE INTERNAL "sizeof 'void *'")
#/* The size of `pid_t', as computed by sizeof. */
CHECK_TYPE_SIZE(pid_t PID_T)
IF (NOT SIZEOF_PID_T)
MESSAGE(STATUS "Define it as int.")
SET (PID_T "int" CACHE INTERNAL "define 'pid_t'")
SET (SIZEOF_PID_T ${SIZEOF_INT} CACHE INTERNAL "sizeof 'pid_t'")
ELSEIF (HAVE_PID_T)
SET(SIZEOF_PID_T ${PID_T} CACHE INTERNAL "sizeof 'pid_t'")
ENDIF (NOT SIZEOF_PID_T)
#/* The size of `ptrdiff_t', as computed by sizeof. */
CHECK_TYPE_SIZE(ptrdiff_t PTRDIFF_T)
SET(SIZEOF_PTRDIFF_T ${PTRDIFF_T} CACHE INTERNAL "sizeof 'ptrdiff_t'")
#/* Define to 1 if the system has the type `mode_t'. */
CHECK_TYPE_SIZE (mode_t MODE_T)
#/* Define to 1 if the system has the type `int8_t'. */
CHECK_TYPE_SIZE (int8_t INT8_T)
IF (NOT SIZEOF_INT8_T)
MESSAGE(STATUS "Define it as 'char'.")
C_GET_ALIGNMENT(char c INT8)
#SET (int8_t "char" CACHE INTERNAL "define 'int8_t'")
SET (SIZEOF_INT8_T ${SIZEOF_UNSIGNED_CHAR} CACHE INTERNAL "sizeof 'int8_t'")
ELSEIF (HAVE_INT8_T)
C_GET_ALIGNMENT(int8_t c INT8)
SET (SIZEOF_INT8_T ${INT8_T} CACHE INTERNAL "sizeof 'int8_t'")
ENDIF (NOT SIZEOF_INT8_T)
#/* Define to 1 if the system has the type `int16_t'. */
CHECK_TYPE_SIZE (int16_t INT16_T)
IF (NOT SIZEOF_INT16_T)
# int16_t is not defind, define it as short.
MESSAGE(STATUS "Define it as 'short'.")
C_GET_ALIGNMENT(short c INT16)
#SET (int16_t "short" CACHE INTERNAL "define 'int16_t'")
SET (SIZEOF_INT16_T ${SIZEOF_SHORT} CACHE INTERNAL "sizeof 'int16_t'")
ELSEIF (HAVE_INT16_T)
C_GET_ALIGNMENT(int16_t c INT16)
SET (SIZEOF_INT16_T ${INT16_T} CACHE INTERNAL "sizeof 'int16_t'")
ENDIF (NOT SIZEOF_INT16_T)
#/* Define to 1 if the system has the type `int32_t'. */
CHECK_TYPE_SIZE (int32_t INT32_T)
IF (NOT SIZEOF_INT32_T)
MESSAGE(STATUS "Define it as 'int'.")
C_GET_ALIGNMENT(int c INT32)
#SET (int32_t "int" CACHE INTERNAL "define 'int32_t'")
SET (SIZEOF_INT32_T ${SIZEOF_INT} CACHE INTERNAL "sizeof 'int32_t'")
ELSEIF (HAVE_INT32_T)
C_GET_ALIGNMENT(int32_t c INT32)
SET (SIZEOF_INT32_T ${INT32_T} CACHE INTERNAL "sizeof 'int32_t'")
ENDIF (NOT SIZEOF_INT32_T)
#/* Define to 1 if the system has the type `int64_t'. */
CHECK_TYPE_SIZE (int64_t INT64_T)
IF (NOT SIZEOF_INT64_T)
MESSAGE(STATUS "Define it as 'long long'.")
C_GET_ALIGNMENT("long long" c INT64)
#SET (int64_t "long long" CACHE INTERNAL "define 'int64_t'")
SET (SIZEOF_INT64_T ${SIZEOF_LONG_LONG} CACHE INTERNAL "sizeof 'int64_t'")
ELSEIF (HAVE_INT64_T)
C_GET_ALIGNMENT(int64_t c INT64)
SET (SIZEOF_INT64_T ${INT64_T} CACHE INTERNAL "sizeof 'int64_t'")
ENDIF (NOT SIZEOF_INT64_T)
#/* Define to 1 if the system has the type `int128_t'. */
CHECK_TYPE_SIZE (int128_t INT128_T)
IF (NOT SIZEOF_INT128_T)
MESSAGE(STATUS "Define it as 'long double'.")
C_GET_ALIGNMENT("long double" c INT128)
#SET (u_int8_t "unsigned char" CACHE INTERNAL "define 'uint8_t'")
SET (SIZEOF_INT128_T ${SIZEOF_LONG_DOUBLE} CACHE INTERNAL "sizeof 'int128_t'")
ELSEIF (HAVE_INT8_T)
C_GET_ALIGNMENT(int128_t c INT128)
SET (SIZEOF_INT128_T ${INT128_T} CACHE INTERNAL "sizeof 'int128_t'")
ENDIF (NOT SIZEOF_INT128_T)
#/* Define to 1 if the system has the type `uint8_t'. */
CHECK_TYPE_SIZE (uint8_t UINT8_T)
IF (NOT SIZEOF_UINT8_T)
MESSAGE(STATUS "Define it as 'unsigned char'.")
#SET (u_int8_t "unsigned char" CACHE INTERNAL "define 'uint8_t'")
SET (SIZEOF_UINT8_T ${SIZEOF_UNSIGNED_CHAR} CACHE INTERNAL "sizeof 'uint8_t'")
ELSEIF (HAVE_UINT8_T)
SET (SIZEOF_UINT8_T ${UINT8_T} CACHE INTERNAL "sizeof 'uint8_t'")
ENDIF (NOT SIZEOF_UINT8_T)
#/* Define to 1 if the system has the type `uint16_t'. */
CHECK_TYPE_SIZE (uint16_t UINT16_T)
IF (NOT SIZEOF_UINT16_T)
MESSAGE(STATUS "Define it as 'unsigned short'.")
#SET (u_int16_t "unsigned short" CACHE INTERNAL "define 'uint16_t'")
SET (SIZEOF_UINT16_T ${UNSIGNED_SHORT} CACHE INTERNAL "sizeof 'uint16_t'")
ELSEIF (HAVE_UINT16_T)
SET (SIZEOF_UINT16_T ${UINT16_T} CACHE INTERNAL "sizeof 'uint16_t'")
ENDIF (NOT SIZEOF_UINT16_T)
#/* Define to 1 if the system has the type `uint32_t'. */
CHECK_TYPE_SIZE (uint32_t UINT32_T)
IF (NOT SIZEOF_UINT32_T)
MESSAGE(STATUS "Define it as 'unsigned int'.")
#SET (u_int32_t "unsigned int" CACHE INTERNAL "define 'uint32_t'")
SET (SIZEOF_UINT32_T ${SIZEOF_UNSIGNED_INT} CACHE INTERNAL "sizeof 'uint32_t'")
ELSEIF (HAVE_UINT32_T)
SET (SIZEOF_UINT32_T ${UINT32_T} CACHE INTERNAL "sizeof 'uint32_t'")
ENDIF (NOT SIZEOF_UINT32_T)
#/* Define to 1 if the system has the type `uint64_t'. */
CHECK_TYPE_SIZE (uint64_t UINT64_T)
IF (NOT SIZEOF_UINT64_T)
MESSAGE(STATUS "Define it as 'unsigned long long'.")
#SET (u_int64_t "unsigned long long" CACHE INTERNAL "define 'uint64_t'")
SET (SIZEOF_UINT64_T ${SIZEOF_UNSIGNED_LONG_LONG} CACHE INTERNAL "sizeof 'uint64_t'")
ELSEIF (HAVE_UINT64_T)
SET (SIZEOF_UINT64_T ${UINT64_T} CACHE INTERNAL "sizeof 'uint64_t'")
ENDIF (NOT SIZEOF_UINT64_T)
#/* Define to 1 if the system has the type `uint128_t'. */
CHECK_TYPE_SIZE (uint128_t UINT128_T)
IF (NOT SIZEOF_UINT128_T)
MESSAGE(STATUS "Define it as 'unsigned long double'.")
#SET (u_int8_t "unsigned char" CACHE INTERNAL "define 'uint8_t'")
SET (SIZEOF_UINT128_T ${SIZEOF_UNSIGNED_LONG_DOUBLE} CACHE INTERNAL "sizeof 'uint128_t'")
ELSEIF (HAVE_UINT8_T)
SET (SIZEOF_UINT128_T ${UINT128_T} CACHE INTERNAL "sizeof 'uint128_t'")
ENDIF (NOT SIZEOF_UINT128_T)
#/* Define to 1 if the system has the type `struct sockaddr_in'. */
CHECK_TYPE_SIZE ("struct sockaddr_in" STRUCT_SOCKADDR_IN)
#/* Define to 1 if the system has the type `struct sockaddr_in6'. */
CHECK_TYPE_SIZE ("struct sockaddr_in6" STRUCT_SOCKADDR_IN6)
#/* Define to 1 if the system has the type `struct sockaddr_storage'. */
CHECK_TYPE_SIZE ("struct sockaddr_storage" STRUCT_SOCKADDR_STORAGE)
#/* Define to 1 if the system has the type `uintptr_t'. */
CHECK_TYPE_SIZE (uintptr_t UINTPTR_T)
#/* Alignment of type char */
C_GET_ALIGNMENT (char c CHAR)
#/* Alignment of type bool */
C_GET_ALIGNMENT (bool cxx BOOL)
#/* Alignment of type double */
C_GET_ALIGNMENT (double c DOUBLE)
#/* Alignment of type float */
C_GET_ALIGNMENT (float c FLOAT)
#/* Alignment of type int */
C_GET_ALIGNMENT (int c INT)
#/* Alignment of type long */
C_GET_ALIGNMENT (long c LONG)
#/* Alignment of type long double */
C_GET_ALIGNMENT ("long double" c LONG_DOUBLE)
#/* Alignment of type long long */
C_GET_ALIGNMENT ("long long" c LONG_LONG)
#/* Alignment of type short */
C_GET_ALIGNMENT (short c SHORT)
IF(HAVE_FLOAT_COMPLEX)
C_GET_ALIGNMENT("float _Complex" c FLOAT_COMPLEX)
ENDIF(HAVE_FLOAT_COMPLEX)
IF(HAVE_DOUBLE_COMPLEX)
C_GET_ALIGNMENT("double _Complex" c DOUBLE_COMPLEX)
ENDIF(HAVE_DOUBLE_COMPLEX)
IF(HAVE_LONG_DOUBLE_COMPLEX)
C_GET_ALIGNMENT("long double _Complex" c LONG_DOUBLE_COMPLEX)
ENDIF(HAVE_LONG_DOUBLE_COMPLEX)
#/* Alignment of type void * */
C_GET_ALIGNMENT ("void *" c VOID_P)
#/* Alignment of type wchar_t */
C_GET_ALIGNMENT (wchar_t c WCHAR_T)
#/* Alignment of type _Bool */
C_GET_ALIGNMENT(_Bool, c BOOL)
#/* Whether the C compiler supports "bool" without any other help (such as
# <stdbool.h>) */
INCLUDE(c_check_bool)
IF (COMPILER_SUPPORT_BOOL)
SET (OPAL_NEED_C_BOOL 0)
ELSE (COMPILER_SUPPORT_BOOL)
SET (OPAL_NEED_C_BOOL 1)
ENDIF (COMPILER_SUPPORT_BOOL)
#/* Define to `__inline__' or `__inline' if that's what the C compiler
# calls it, or to nothing if 'inline' is not supported under any name. */
CHECK_C_INLINE()
IF(HAVE_INLINE)
SET(inline 1)
ENDIF(HAVE_INLINE)
###################################################################
# Check C++ types #
###################################################################
#
#/* Whether C++ compiler supports DEC style inline assembly */
#/* #undef OMPI_CXX_DEC_INLINE_ASSEMBLY */
#
#/* Whether C++ compiler supports GCC style inline assembly */
#/* #undef OMPI_CXX_GCC_INLINE_ASSEMBLY */
#
#/* Whether C++ compiler supports __builtin_expect */
#/* #undef OMPI_CXX_HAVE_BUILTIN_EXPECT */
#
#/* Whether C++ compiler supports __builtin_prefetch */
#/* #undef OMPI_CXX_HAVE_BUILTIN_PREFETCH */
#
#/* Whether a const_cast on a 2-d array will work with the C++ compiler */
#/* #undef OMPI_CXX_SUPPORTS_2D_CONST_CAST */
#
#/* Whether C++ compiler supports XLC style inline assembly */
#/* #undef OMPI_CXX_XLC_INLINE_ASSEMBLY */
#
#/* Whether C compiler supports DEC style inline assembly */
#/* #undef OPAL_C_DEC_INLINE_ASSEMBLY */
#
#/* Whether C compiler supports GCC style inline assembly */
#/* #undef OPAL_C_GCC_INLINE_ASSEMBLY */
#
#/* Whether C compiler supports __builtin_expect */
#/* #undef OPAL_C_HAVE_BUILTIN_EXPECT */
#
#/* Whether C compiler supports __builtin_prefetch */
#/* #undef OPAL_C_HAVE_BUILTIN_PREFETCH */
#
#/* Whether C compiler supports -fvisibility */
#/* #undef OPAL_C_HAVE_VISIBILITY */
SET(OPAL_C_HAVE_VISIBILITY 1)
#
#/* Whether C compiler supports XLC style inline assembly */
#/* #undef OPAL_C_XLC_INLINE_ASSEMBLY */
#
SET(OMPI_HAVE_CXX_EXCEPTION_SUPPORT 0)
###################################################################
# Check Fortran 77 types #
###################################################################
INCLUDE(setup_F77)
INCLUDE(f77_check)
# This allows us to mark bogus types, but still have them be a valid
# [sentinel] value
SET(ompi_fortran_bogus_type_t "int")
# We want to set the #define's for all of these, so invoke the macros
# regardless of whether we have F77 support or not.
OMPI_F77_CHECK("LOGICAL" "yes" "char;int;long long;long" "-1")
OMPI_F77_CHECK("LOGICAL*1" "yes" "char;short;int;long long;long" "1")
OMPI_F77_CHECK("LOGICAL*2" "yes" "short;int;long long;long" "2")
OMPI_F77_CHECK("LOGICAL*4" "yes" "int;long long;long" "4")
OMPI_F77_CHECK("LOGICAL*8" "yes" "int;long long;long" "8")
OMPI_F77_CHECK("INTEGER" "yes" "int;long long;long" "-1")
OMPI_F77_CHECK("INTEGER*1" "no" "char;short;int;long long;long" "1")
OMPI_F77_CHECK("INTEGER*2" "no" "short;int;long long;long" "2")
OMPI_F77_CHECK("INTEGER*4" "no" "int;long long;long" "4")
OMPI_F77_CHECK("INTEGER*8" "no" "int;long long;long" "8")
OMPI_F77_CHECK("INTEGER*16" "no" "int;long long;long" "16")
OMPI_F77_CHECK("REAL" "yes" "float;double;long double" "-1")
OMPI_F77_CHECK("REAL*2" "no" "float;double;long double" "2")
OMPI_F77_CHECK("REAL*4" "no" "float;double;long double" "4")
OMPI_F77_CHECK("REAL*8" "no" "float;double;long double" "8")
OMPI_F77_CHECK("REAL*16" "no" "float;double;long double" "16")
OMPI_F77_CHECK("DOUBLE PRECISION" "yes" "float;double;long double" "-1")
OMPI_F77_CHECK("COMPLEX" "yes" "" "-1")
# The complex*N tests are a bit different (note: the complex tests are
# the same as all the rest, because complex is a composite of two
# reals, which we *have* to have. It's only the complex*N tests that
# are different). The fortran complex types are composites of the
# real*(N/2) types. So for us to support complex*N, two conditions
# must be true:
#
# a) we must support real*(N/2) (i.e., compiler supports it and we
# have a back-end C type for it)
# b) compiler supports complex*N
OMPI_F77_CHECK("COMPLEX*8" "no" "" "8")
OMPI_F77_CHECK("COMPLEX*16" "no" "" "16")
OMPI_F77_CHECK("COMPLEX*32" "no" "" "32")
include(f77_check_real16_c_equiv)
OMPI_F77_CHECK_REAL16_C_EQUIV()
# Regardless of whether we have fortran bindings, or even a fortran
# compiler, get the max value for a fortran MPI handle (this macro
# handles the case where we don't have a fortran compiler).
#OMPI_F77_GET_FORTRAN_HANDLE_MAX
#
# Check for Fortran compilers value of TRUE and for the correct assumption
# on LOGICAL for conversion into what C considers to be a true value
#
#OMPI_F77_GET_VALUE_TRUE
#OMPI_F77_CHECK_LOGICAL_ARRAY
#
# There are 2 layers to the MPI f77 layer. The only extra thing that
# determine f77 bindings is that fortran can be disabled by user. In
# such cases, we need to not build the target at all. One layer
# generates MPI_f77* bindings. The other layer generates PMPI_f77*
# bindings. The following conditions determine whether each (or both)
# these layers are built.
#
# Superceeding clause:
# - fortran77 bindings should be enabled, else everything is
# disabled
# 1. MPI_f77* bindings are needed if:
# - Profiling is not required
# - Profiling is required but weak symbols are not
# supported
# 2. PMPI_* bindings are needed if profiling is required. Hence we
# define 2 conditionals which tell us whether each of these layers
# need to be built or NOT
#
IF(NOT WANT_MPI_PROFILING OR OMPI_PROFILING_COMPILE_SEPARATELY AND OMPI_WANT_F77_BINDINGS)
SET(WANT_MPI_F77_BINDINGS_LAYER 1)
ELSE(NOT WANT_MPI_PROFILING OR OMPI_PROFILING_COMPILE_SEPARATELY AND OMPI_WANT_F77_BINDINGS)
SET(WANT_MPI_F77_BINDINGS_LAYER 0)
ENDIF(NOT WANT_MPI_PROFILING OR OMPI_PROFILING_COMPILE_SEPARATELY AND OMPI_WANT_F77_BINDINGS)
IF(WANT_MPI_PROFILINGAND AND OMPI_WANT_F77_BINDINGS)
SET(WANT_MPI_F77_BINDINGS_LAYER 1)
ELSE(WANT_MPI_PROFILINGAND AND OMPI_WANT_F77_BINDINGS)
SET(WANT_MPI_F77_BINDINGS_LAYER 0)
ENDIF(WANT_MPI_PROFILINGAND AND OMPI_WANT_F77_BINDINGS)
#/* Max handle value for fortran MPI handles, effectively min(INT_MAX, max
# fortran INTEGER value) */
#/* #undef OMPI_FORTRAN_HANDLE_MAX */
# Need to be fixed.
IF(WIN32)
SET (OMPI_FORTRAN_HANDLE_MAX "2147483647")
ENDIF(WIN32)
#
#/* Fortran value for LOGICAL .TRUE. value */
#/* #undef OMPI_FORTRAN_VALUE_TRUE */
# Need to be fixed.
IF(WIN32)
SET (OMPI_FORTRAN_VALUE_TRUE 0)
ENDIF(WIN32)
###################################################################
# Check Fortran 90 types #
###################################################################
#/* OMPI underlying F90 compiler */
#/* #undef OMPI_F90 */
#/* Whether we have Fortran 90 $ofc_fortran_type or not */
#/* #undef OMPI_HAVE_F90_COMPLEX */
#
#/* Whether we have Fortran 90 $ofc_fortran_type or not */
#/* #undef OMPI_HAVE_F90_COMPLEX16 */
#
#/* Whether we have Fortran 90 $ofc_fortran_type or not */
#/* #undef OMPI_HAVE_F90_COMPLEX32 */
#
#/* Whether we have Fortran 90 $ofc_fortran_type or not */
#/* #undef OMPI_HAVE_F90_COMPLEX8 */
#
#/* Whether we have Fortran 90 $ofc_fortran_type or not */
#/* #undef OMPI_HAVE_F90_DOUBLE_COMPLEX */
#
#/* Whether we have Fortran 90 $ofc_fortran_type or not */
#/* #undef OMPI_HAVE_F90_DOUBLE_PRECISION */
#
#/* Whether we have Fortran 90 $ofc_fortran_type or not */
#/* #undef OMPI_HAVE_F90_INTEGER */
#
#/* Whether we have Fortran 90 $ofc_fortran_type or not */
#/* #undef OMPI_HAVE_F90_INTEGER1 */
#
#/* Whether we have Fortran 90 $ofc_fortran_type or not */
#/* #undef OMPI_HAVE_F90_INTEGER16 */
#
#/* Whether we have Fortran 90 $ofc_fortran_type or not */
#/* #undef OMPI_HAVE_F90_INTEGER2 */
#
#/* Whether we have Fortran 90 $ofc_fortran_type or not */
#/* #undef OMPI_HAVE_F90_INTEGER4 */
#
#/* Whether we have Fortran 90 $ofc_fortran_type or not */
#/* #undef OMPI_HAVE_F90_INTEGER8 */
#
#/* Whether we have Fortran 90 $ofc_fortran_type or not */
#/* #undef OMPI_HAVE_F90_LOGICAL */
#
#/* Whether we have Fortran 90 $ofc_fortran_type or not */
#/* #undef OMPI_HAVE_F90_REAL */
#
#/* Whether we have Fortran 90 $ofc_fortran_type or not */
#/* #undef OMPI_HAVE_F90_REAL16 */
#
#/* Whether we have Fortran 90 $ofc_fortran_type or not */
#/* #undef OMPI_HAVE_F90_REAL2 */
#
#/* Whether we have Fortran 90 $ofc_fortran_type or not */
#/* #undef OMPI_HAVE_F90_REAL4 */
#
#/* Whether we have Fortran 90 $ofc_fortran_type or not */
#/* #undef OMPI_HAVE_F90_REAL8 */
#
###########################################################################################
# end
###########################################################################################
#/* Define to equivalent of C99 restrict keyword, or to nothing if this is not
# supported. Do not define if restrict is supported directly. */
IF(WIN32)
SET(restrict "")
ENDIF(WIN32)
#/* Define if /dev/poll is available */
IF(EXISTS /dev/poll)
SET (HAVE_DEVPOLL 1)
ENDIF(EXISTS /dev/poll)
#/* Define to 1 if you have the `nsl' library (-lnsl). */
IF(EXISTS /lib/libnsl.so.0 OR /lib/libnsl.so.1)
SET (HAVE_LIBNSL 1)
ENDIF(EXISTS /lib/libnsl.so.0 OR /lib/libnsl.so.1)
#/* Define to 1 if you have the `socket' library (-lsocket). */
IF(EXISTS /lib/libsocket.so.0 OR /lib/libsocket.so.1)
SET (HAVE_LIBSOCKET 1)
ENDIF(EXISTS /lib/libsocket.so.0 OR /lib/libsocket.so.1)
#/* Define to 1 if you have the `util' library (-lutil). */
IF(EXISTS /lib/libutil.so.0 OR /lib/libutil.so.1)
SET (HAVE_LIBUTIL 1)
ENDIF(EXISTS /lib/libutil.so.0 OR /lib/libutil.so.1)
#/* Header to include for memcpy implementation */
SET(MCA_memcpy_IMPLEMENTATION_HEADER "\"opal/mca/memcpy/base/memcpy_base_default.h\"")
#/* name of component to use for direct calls, if MCA_mtl_DIRECT_CALL is 1 */
IF(NOT MCA_mtl_DIRECT_CALL_VALUE)
SET(MCA_mtl_DIRECT_CALL_COMPONENT "")
ENDIF(NOT MCA_mtl_DIRECT_CALL_VALUE)
#/* Header mtl includes to be direct called */
IF(NOT MCA_mtl_DIRECT_CALL_VALUE)
SET(MCA_mtl_DIRECT_CALL_HEADER "\"\"")
ENDIF(NOT MCA_mtl_DIRECT_CALL_VALUE)
#/* name of component to use for direct calls, if MCA_pml_DIRECT_CALL is 1 */
IF(NOT MCA_pml_DIRECT_CALL_VALUE)
SET(MCA_pml_DIRECT_CALL_COMPONENT "")
ENDIF(NOT MCA_pml_DIRECT_CALL_VALUE)
#/* Header pml includes to be direct called */
IF(NOT MCA_pml_DIRECT_CALL_VALUE)
SET(MCA_pml_DIRECT_CALL_HEADER "\"\"")
ENDIF(NOT MCA_pml_DIRECT_CALL_VALUE)
#/* Header to include for timer implementation */
IF(WIN32)
SET(MCA_timer_IMPLEMENTATION_HEADER 1)
SET(MCA_TIMER_HEADER "\"opal/mca/timer/windows/timer_windows.h\"")
ENDIF(WIN32)
#
#/* OMPI architecture string */
#/* #undef OPAL_ARCH */
#
#/* Assembly align directive expects logarithmic value */
#/* #undef OPAL_ASM_ALIGN_LOG */
#
#/* Assembly directive for exporting symbols */
#/* #undef OPAL_ASM_GLOBAL */
#
#/* Assembly prefix for gsym labels */
#/* #undef OPAL_ASM_GSYM */
#
#/* Assembly suffix for labels */
#/* #undef OPAL_ASM_LABEL_SUFFIX */
#
#/* Assembly prefix for lsym labels */
#/* #undef OPAL_ASM_LSYM */
#
#/* Do we need to give a .size directive */
#/* #undef OPAL_ASM_SIZE */
#
#/* Whether we can do 64bit assembly operations or not. Should not be used
# outside of the assembly header files */
#/* #undef OPAL_ASM_SUPPORT_64BIT */
#
#/* Assembly directive for setting text section */
#/* #undef OPAL_ASM_TEXT */
#
#/* How to set function type in .type directive */
#/* #undef OPAL_ASM_TYPE */
#
#/* Architecture type of assembly to use for atomic operations */
#/* #undef OPAL_ASSEMBLY_ARCH */
IF(WIN32)
SET (OPAL_ASSEMBLY_ARCH "OMPI_WINDOWS")
ENDIF(WIN32)
#
#/* Format of assembly file */
#/* #undef OPAL_ASSEMBLY_FORMAT */
#
#/* OMPI underlying C compiler */
#/* #undef OPAL_CC */
IF (CMAKE_C_COMPILER)
SET (OPAL_CC ${CMAKE_C_COMPILER})
ENDIF (CMAKE_C_COMPILER)
#
#/* OMPI underlying C++ compiler */
#/* #undef OMPI_CXX */
IF (CMAKE_CXX_COMPILER)
SET (OMPI_CXX ${CMAKE_CXX_COMPILER})
ENDIF (CMAKE_CXX_COMPILER)
#
#
#
#
#
#/* Greek - alpha, beta, etc - release number of Open MPI */
#/* #undef OMPI_GREEK_VERSION */
#
#/* Whether there is an atomic assembly file available */
#/* #undef OPAL_HAVE_ASM_FILE */
#
#/* Whether your compiler has __attribute__ or not */
#/* #undef OPAL_HAVE_ATTRIBUTE */
#
#/* Whether your compiler has __attribute__ aligned or not */
#/* #undef OPAL_HAVE_ATTRIBUTE_ALIGNED */
#
#/* Whether your compiler has __attribute__ always_inline or not */
#/* #undef OPAL_HAVE_ATTRIBUTE_ALWAYS_INLINE */
#
#/* Whether your compiler has __attribute__ const or not */
#/* #undef OPAL_HAVE_ATTRIBUTE_CONST */
#
#/* Whether your compiler has __attribute__ deprecated or not */
#/* #undef OPAL_HAVE_ATTRIBUTE_DEPRECATED */
#
#/* Whether your compiler has __attribute__ format or not */
#/* #undef OPAL_HAVE_ATTRIBUTE_FORMAT */
#
#/* Whether your compiler has __attribute__ malloc or not */
#/* #undef OPAL_HAVE_ATTRIBUTE_MALLOC */
#
#/* Whether your compiler has __attribute__ may_alias or not */
#/* #undef OPAL_HAVE_ATTRIBUTE_MAY_ALIAS */
#
#/* Whether your compiler has __attribute__ nonnull or not */
#/* #undef OPAL_HAVE_ATTRIBUTE_NONNULL */
#
#/* Whether your compiler has __attribute__ noreturn or not */
#/* #undef OPAL_HAVE_ATTRIBUTE_NORETURN */
#
#/* Whether your compiler has __attribute__ no_instrument_function or not */
#/* #undef OPAL_HAVE_ATTRIBUTE_NO_INSTRUMENT_FUNCTION */
#
#/* Whether your compiler has __attribute__ packed or not */
#/* #undef OPAL_HAVE_ATTRIBUTE_PACKED */
#
#/* Whether your compiler has __attribute__ pure or not */
#/* #undef OPAL_HAVE_ATTRIBUTE_PURE */
#
#/* Whether your compiler has __attribute__ sentinel or not */
#/* #undef OPAL_HAVE_ATTRIBUTE_SENTINEL */
#
#/* Whether your compiler has __attribute__ unused or not */
#/* #undef OPAL_HAVE_ATTRIBUTE_UNUSED */
#
#/* Whether your compiler has __attribute__ visibility or not */
#/* #undef OPAL_HAVE_ATTRIBUTE_VISIBILITY */
#
#/* Whether your compiler has __attribute__ warn unused result or not */
#/* #undef OPAL_HAVE_ATTRIBUTE_WARN_UNUSED_RESULT */
#
#/* Whether your compiler has __attribute__ weak alias or not */
#/* #undef OPAL_HAVE_ATTRIBUTE_WEAK_ALIAS */
#
#/* whether qsort is broken or not */
#/* #undef OPAL_HAVE_BROKEN_QSORT */
#
#/* Do we have POSIX threads */
#/* #undef OPAL_HAVE_POSIX_THREADS */
SET(OPAL_HAVE_POSIX_THREADS 0)
#
#/* Do not use outside of mpi.h. Define to 1 if the system has the type 'long
# long'. */
IF(HAVE_LONG_LONG)
SET(OPAL_HAVE_LONG_LONG 1)
ENDIF(HAVE_LONG_LONG)
#
#/* If PTHREADS implementation supports PTHREAD_MUTEX_ERRORCHECK */
#/* #undef OMPI_HAVE_PTHREAD_MUTEX_ERRORCHECK */
#
#/* If PTHREADS implementation supports PTHREAD_MUTEX_ERRORCHECK_NP */
#/* #undef OMPI_HAVE_PTHREAD_MUTEX_ERRORCHECK_NP */
#
#/* Whether we have the sa_len struct in <sys/socket.h> or not */
#/* #undef OMPI_HAVE_SA_LEN */
#
#/* Whether we have SA_RESTART in <signal.h> or not */
#/* #undef OPAL_HAVE_SA_RESTART */
#
#/* Do we have native Solaris threads */
#/* #undef OPAL_HAVE_SOLARIS_THREADS */
SET(OPAL_HAVE_SOLARIS_THREADS 0)
#
#/* Whether we have __va_copy or not */
#/* #undef OPAL_HAVE_UNDERSCORE_VA_COPY */
#
#/* Whether we have va_copy or not */
#/* #undef OPAL_HAVE_VA_COPY */
#
#/* Wehther we have weak symbols or not */
#/* #undef OPAL_HAVE_WEAK_SYMBOLS */
# We don't support weak symbols on windows
SET(OPAL_HAVE_WEAK_SYMBOLS 0)
#
#/* Number of arguments to ibv_create_cq */
#/* #undef OMPI_IBV_CREATE_CQ_ARGS */
#
#/* Major release number of Open MPI */
#/* #undef OMPI_MAJOR_VERSION */
#
#/* Version of the GM API to use */
#/* #undef OMPI_MCA_BTL_GM_API_VERSION */
#
#/* The GM build has or not a broker gm_get function */
#/* #undef OMPI_MCA_BTL_GM_GET_BROKEN */
#
#/* Whether we have get_get() or not */
#/* #undef OMPI_MCA_BTL_GM_HAVE_RDMA_GET */
#
#/* Whether we have gm_put() or gm_directed_send_with_callback() */
#/* #undef OMPI_MCA_BTL_GM_HAVE_RDMA_PUT */
#
#/* The OS support or not the virtal page registration */
#/* #undef OMPI_MCA_BTL_GM_SUPPORT_REGISTERING */
#
#/* Whether any opal memory mca components were found */
#/* #undef OMPI_MEMORY_HAVE_COMPONENT */
#
#/* Trigger callbacks on sbrk instead of malloc or free */
#/* #undef OMPI_MEMORY_PTMALLOC2_OPT_SBRK */
#
#/* Minor release number of Open MPI */
#/* #undef OMPI_MINOR_VERSION */
#
#/* Type of MPI_Offset -- has to be defined here and typedef'ed later because
# mpi.h does not get AC SUBST's */
#/* #undef OMPI_MPI_OFFSET_TYPE */
SET (OMPI_MPI_OFFSET_TYPE "long long")
#
#/* Version of the MX API to use */
#/* #undef OMPI_MX_API_VERSION */
#
#
#/* MPI datatype corresponding to MPI_Offset */
#/* #undef OMPI_OFFSET_DATATYPE */
#
#/* Use the Cray XT-3 implementation of Portals */
#/* #undef OMPI_PORTALS_CRAYXT3 */
#
#/* Does Portals send a PTL_EVENT_UNLINK event */
#/* #undef OMPI_PORTALS_HAVE_EVENT_UNLINK */
#
#/* Use the UTCP reference implementation of Portals */
#/* #undef OMPI_PORTALS_UTCP */
#
#/* Whether r notation is used for ppc registers */
#/* #undef OPAL_POWERPC_R_REGISTERS */
#
#/* type to use for ptrdiff_t */
#/* #undef OPAL_PTRDIFF_TYPE */
IF(HAVE_PTRDIFF_T)
SET(OPAL_PTRDIFF_TYPE "ptrdiff_t")
ENDIF(HAVE_PTRDIFF_T)
#
#/* Release release number of Open MPI */
#/* #undef OMPI_RELEASE_VERSION */
#
#/* whether to use cnos_barrier or not */
#/* #undef OMPI_RML_CNOS_HAVE_BARRIER */
#
#
#/* Do threads have different pids (pthreads on linux) */
#/* #undef OPAL_THREADS_HAVE_DIFFERENT_PIDS */
#
#/* Whether to use <stdbool.h> or not */
#/* #undef OPAL_USE_STDBOOL_H */
#
#/* Complete release number of Open MPI */
#/* #undef OMPI_VERSION */
##
#/* Greek - alpha, beta, etc - release number of Open Portable Access Layer */
#/* #undef OPAL_GREEK_VERSION */
# Defined in upper level.
#
#/* Whether we have the _SC_NPROCESSORS_ONLN */
#/* #undef OPAL_HAVE__SC_NPROCESSORS_ONLN */
#
#/* Major release number of Open Portable Access Layer */
#/* #undef OPAL_MAJOR_VERSION */
# Defined in upper level.
#
#/* Minor release number of Open Portable Access Layer */
#/* #undef OPAL_MINOR_VERSION */
# Defined in upper level.
#/* package/branding string for Open MPI */
#/* #undef OPAL_PACKAGE_STRING
SET(OPAL_PACKAGE_STRING "\"Open MPI $ENV{USERNAME}@$ENV{COMPUTERNAME} Distribution\"")
#
#/* Release release number of Open Portable Access Layer */
#/* #undef OPAL_RELEASE_VERSION */
# Defined in upper level.
#
#/* Complete release number of Open Portable Access Layer */
#/* #undef OPAL_VERSION */
# Defined in upper level.
#
#/* Specific ps command to use in orte-clean */
#/* #undef ORTE_CLEAN_PS_CMD */
#
#/* Greek - alpha, beta, etc - release number of Open Run-Time Environment */
#/* #undef ORTE_GREEK_VERSION */
# Defined in upper level.
#
#/* Major release number of Open Run-Time Environment */
#/* #undef ORTE_MAJOR_VERSION */
# Defined in upper level.
#
#/* Minor release number of Open Run-Time Environment */
#/* #undef ORTE_MINOR_VERSION */
# Defined in upper level.
#
#/* Release release number of Open Run-Time Environment */
#/* #undef ORTE_RELEASE_VERSION */
# Defined in upper level.
#
#/* Complete release number of Open Run-Time Environment */
#/* #undef ORTE_VERSION */
# Defined in upper level.
#
#/* Define to the address where bug reports for this package should be sent. */
#/* #undef PACKAGE_BUGREPORT */
SET (PACKAGE_BUGREPORT "\"http://www.open-mpi.org/community/help/\"")
#
#/* Define to the full name of this package. */
#/* #undef PACKAGE_NAME */
SET (PACKAGE_NAME "Open MPI")
#
#/* Define to the full name and version of this package. */
#/* #undef PACKAGE_STRING */
SET (PACKAGE_STRING "${PACKAGE_NAME} ${VERSION_STRING}")
#
#/* Define to the one symbol short name of this package. */
#/* #undef PACKAGE_TARNAME */
SET (PACKAGE_TARNAME "openmpi")
#
#/* Define to the version of this package. */
#/* #undef PACKAGE_VERSION */
SET (PACKAGE_VERSION ${VERSION_STRING})
#
#/* The PLPA symbol prefix */
#/* #undef PLPA_SYM_PREFIX */
#
#/* The PLPA symbol prefix in all caps */
#/* #undef PLPA_SYM_PREFIX_CAPS */
#
#
#/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#/* #undef TIME_WITH_SYS_TIME */
#
#/* Define to 1 if your processor stores words with the most significant byte
# first (like Motorola and SPARC, unlike Intel and VAX). */
#/* #undef WORDS_BIGENDIAN */
#
#/* Additional CFLAGS to pass through the wrapper compilers */
#/* #undef WRAPPER_EXTRA_CFLAGS */
#
#/* Additional CXXFLAGS to pass through the wrapper compilers */
#/* #undef WRAPPER_EXTRA_CXXFLAGS */
#
#/* Additional FCFLAGS to pass through the wrapper compilers */
#/* #undef WRAPPER_EXTRA_FCFLAGS */
#
#/* Additional FFLAGS to pass through the wrapper compilers */
#/* #undef WRAPPER_EXTRA_FFLAGS */
#
#/* Additional LDFLAGS to pass through the wrapper compilers */
#/* #undef WRAPPER_EXTRA_LDFLAGS */
#
#/* Additional LIBS to pass through the wrapper compilers */
#/* #undef WRAPPER_EXTRA_LIBS */
#
#/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
# `char[]'. */
#/* #undef YYTEXT_POINTER */
#
#/* Enable GNU extensions on systems that have them. */
##ifndef _GNU_SOURCE
#/* #undef _GNU_SOURCE */
##endif
#
#/* Emulated value */
#/* #undef __NR_sched_getaffinity */
#
#/* Emulated value */
#/* #undef __NR_sched_setaffinity */
#
#
#/* A bogus type that allows us to have sentinel type values that are still
# valid */
#/* #undef ompi_fortran_bogus_type_t */
#IF(WIN32)
# SET(ompi_fortran_bogus_type_t 1)
# SET(ompi_fortran_bogus_type_t_STRING "int")
#ENDIF(WIN32)
#
#/* C type corresponding to Fortran 77 COMPLEX*16 */
#/* #undef ompi_fortran_complex16_t */
#IF(WIN32)
# SET(ompi_fortran_complex16_t 1)
# SET(ompi_fortran_complex16_t_STRING "ompi_fortran_bogus_type_t")
#ENDIF(WIN32)
##
##/* C type corresponding to Fortran 77 COMPLEX*32 */
##/* #undef ompi_fortran_complex32_t */
#IF(WIN32)
# SET(ompi_fortran_complex32_t 1)
# SET(ompi_fortran_complex32_t_STRING "ompi_fortran_bogus_type_t")
#ENDIF(WIN32)
##
##/* C type corresponding to Fortran 77 COMPLEX*8 */
##/* #undef ompi_fortran_complex8_t */
#IF(WIN32)
# SET(ompi_fortran_complex8_t 1)
# SET(ompi_fortran_complex8_t_STRING "ompi_fortran_bogus_type_t")
#ENDIF(WIN32)
##
##/* C type corresponding to Fortran 77 COMPLEX */
##/* #undef ompi_fortran_complex_t */
#IF(WIN32)
# SET(ompi_fortran_complex_t 1)
# SET(ompi_fortran_complex_t_STRING "ompi_fortran_bogus_type_t")
#ENDIF(WIN32)
##
##/* C type corresponding to Fortran 77 DOUBLE PRECISION */
##/* #undef ompi_fortran_double_precision_t */
#IF(WIN32)
# SET(ompi_fortran_double_precision_t 1)
# SET(ompi_fortran_double_precision_t_STRING "ompi_fortran_bogus_type_t")
#ENDIF(WIN32)
##
##/* C type corresponding to Fortran 77 INTEGER*16 */
##/* #undef ompi_fortran_integer16_t */
#IF(WIN32)
# SET(ompi_fortran_integer16_t 1)
# SET(ompi_fortran_integer16_t_STRING "ompi_fortran_bogus_type_t")
#ENDIF(WIN32)
##
##/* C type corresponding to Fortran 77 INTEGER*1 */
##/* #undef ompi_fortran_integer1_t */
#IF(WIN32)
# SET(ompi_fortran_integer1_t 1)
# SET(ompi_fortran_integer1_t_STRING "ompi_fortran_bogus_type_t")
#ENDIF(WIN32)
##
##/* C type corresponding to Fortran 77 INTEGER*2 */
##/* #undef ompi_fortran_integer2_t */
#IF(WIN32)
# SET(ompi_fortran_integer2_t 1)
# SET(ompi_fortran_integer2_t_STRING "ompi_fortran_bogus_type_t")
#ENDIF(WIN32)
##
##/* C type corresponding to Fortran 77 INTEGER*4 */
##/* #undef ompi_fortran_integer4_t */
#IF(WIN32)
# SET(ompi_fortran_integer4_t 1)
# SET(ompi_fortran_integer4_t_STRING "ompi_fortran_bogus_type_t")
#ENDIF(WIN32)
##
##/* C type corresponding to Fortran 77 INTEGER*8 */
##/* #undef ompi_fortran_integer8_t */
#IF(WIN32)
# SET(ompi_fortran_integer8_t 1)
# SET(ompi_fortran_integer8_t_STRING "ompi_fortran_bogus_type_t")
#ENDIF(WIN32)
##
##/* C type corresponding to Fortran 77 INTEGER */
##/* #undef ompi_fortran_integer_t */
#IF(WIN32)
# SET(ompi_fortran_integer_t 1)
# SET(ompi_fortran_integer_t_STRING "ompi_fortran_bogus_type_t")
#ENDIF(WIN32)
##
##/* C type corresponding to Fortran 77 LOGICAL */
##/* #undef ompi_fortran_logical_t */
#IF(WIN32)
# SET(ompi_fortran_logical_t 1)
# SET(ompi_fortran_logical_t_STRING "ompi_fortran_bogus_type_t")
#ENDIF(WIN32)
##
##/* C type corresponding to Fortran 77 REAL*16 */
##/* #undef ompi_fortran_real16_t */
#IF(WIN32)
# SET(ompi_fortran_real16_t 1)
# SET(ompi_fortran_real16_t_STRING "ompi_fortran_bogus_type_t")
#ENDIF(WIN32)
##
##/* C type corresponding to Fortran 77 REAL*2 */
##/* #undef ompi_fortran_real2_t */
#IF(WIN32)
# SET(ompi_fortran_real2_t 1)
# SET(ompi_fortran_real2_t_STRING "ompi_fortran_bogus_type_t")
#ENDIF(WIN32)
##
##/* C type corresponding to Fortran 77 REAL*4 */
##/* #undef ompi_fortran_real4_t */
#IF(WIN32)
# SET(ompi_fortran_real4_t 1)
# SET(ompi_fortran_real4_t_STRING "ompi_fortran_bogus_type_t")
#ENDIF(WIN32)
##
##/* C type corresponding to Fortran 77 REAL*8 */
##/* #undef ompi_fortran_real8_t */
#IF(WIN32)
# SET(ompi_fortran_real8_t 1)
# SET(ompi_fortran_real8_t_STRING "ompi_fortran_bogus_type_t")
#ENDIF(WIN32)
##
##/* C type corresponding to Fortran 77 REAL */
##/* #undef ompi_fortran_real_t */
#IF(WIN32)
# SET(ompi_fortran_real_t 1)
# SET(ompi_fortran_real_t_STRING "ompi_fortran_bogus_type_t")
#ENDIF(WIN32)
#
# User level (mpi.h.in) visible maximum lengths of strings.
# These may be required in lower-level libraries to set up matching
# data-structures (e.g. OPAL_MAX_OBJECT_NAME).
#
# Default values (as of OMPI-1.3), and some sane minimum and maximum values
#