1
1

Update the CMake files for Fortran 77 bindings, get ready for F90 bindings.

Change several variable names and update the macros.

This commit was SVN r26851.
Этот коммит содержится в:
Shiqing Fan 2012-07-24 08:49:34 +00:00
родитель 99bd5977bd
Коммит 5d81c27282
15 изменённых файлов: 253 добавлений и 262 удалений

Просмотреть файл

@ -104,9 +104,8 @@ INCLUDE (find_flex)
FIND_FLEX()
ADD_SUBDIRECTORY(opal)
INCLUDE_DIRECTORIES(${HWLOC_PATH}/hwloc/include)
# set up the libevent include dirs
INCLUDE_DIRECTORIES (${LIBEVENT_INCLUDE_DIRS})
# set up the libevent and hwloc include dirs
INCLUDE_DIRECTORIES (${LIBEVENT_INCLUDE_DIRS} ${HWLOC_PATH}/hwloc/include)
ADD_SUBDIRECTORY(ompi)
ADD_SUBDIRECTORY(orte)
ADD_SUBDIRECTORY(test)

Просмотреть файл

@ -46,7 +46,7 @@ MACRO(OMPI_FORTRAN_CHECK_REAL16_C_EQUIV)
"\tcall c(foo)\n"
"\tend program bogus\n")
EXECUTE_PROCESS(COMMAND ${CMAKE_C_COMPILER} ${OMPI_C_OPTION_COMPILE} conftest_c.c ${OMPI_C_INCLUDE_DIR}${C_COMPILER_INCLUDE}
EXECUTE_PROCESS(COMMAND ${CC} ${OMPI_C_OPTION_COMPILE} conftest_c.c ${OMPI_C_INCLUDE_DIR}${C_COMPILER_INCLUDE}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
OUTPUT_VARIABLE OUTPUT
RESULT_VARIABLE RESULT

Просмотреть файл

@ -56,7 +56,7 @@ MACRO(OMPI_FORTRAN_GET_FORTRAN_HANDLE_MAX)
"}\n"
)
EXECUTE_PROCESS(COMMAND ${CMAKE_C_COMPILER} fortran_handle_max.c ${OMPI_C_INCLUDE_DIR}${C_COMPILER_INCLUDE}
EXECUTE_PROCESS(COMMAND ${CC} fortran_handle_max.c ${OMPI_C_INCLUDE_DIR}${C_COMPILER_INCLUDE}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
OUTPUT_VARIABLE OUTPUT
RESULT_VARIABLE RESULT

Просмотреть файл

@ -12,7 +12,7 @@
# OMPI_FORTRAN_GET_SIZEOF(type, variable to set)
# ------------------------------------------
INCLUDE(FORTRAN_find_ext_symbol_convention)
INCLUDE(fortran_find_ext_symbol_convention)
MACRO(OMPI_FORTRAN_GET_SIZEOF TYPE OUTPUT_VARIABLE)
MESSAGE(STATUS "Check size of Fortran 77 ${TYPE}...")
@ -53,7 +53,7 @@ MACRO(OMPI_FORTRAN_GET_SIZEOF TYPE OUTPUT_VARIABLE)
"#endif \n")
# generate the C object file
EXECUTE_PROCESS(COMMAND ${CMAKE_C_COMPILER} ${OMPI_C_OPTION_COMPILE} conftest.c ${OMPI_C_OUTPUT_OBJ}conftest_c.obj
EXECUTE_PROCESS(COMMAND ${CC} ${OMPI_C_OPTION_COMPILE} conftest.c ${OMPI_C_OUTPUT_OBJ}conftest_c.obj
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
OUTPUT_VARIABLE OUTPUT
RESULT_VARIABLE RESULT

Просмотреть файл

@ -63,7 +63,7 @@ MACRO(OMPI_FORTRAN_GET_VALUE_TRUE)
SET(EXECUTE_OPT "${OMPI_C_INCLUDE_DIR}${C_COMPILER_INCLUDE}")
ENDIF(NOT "${C_COMPILER_INCLUDE}" STREQUAL "")
EXECUTE_PROCESS(COMMAND ${CMAKE_C_COMPILER} ${OMPI_C_OPTION_COMPILE} conftest_c.c ${EXECUTE_OPT} ${OMPI_C_OUTPUT_OBJ}conftest_c.obj
EXECUTE_PROCESS(COMMAND ${CC} ${OMPI_C_OPTION_COMPILE} conftest_c.c ${EXECUTE_OPT} ${OMPI_C_OUTPUT_OBJ}conftest_c.obj
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
OUTPUT_VARIABLE OUTPUT
RESULT_VARIABLE RESULT

Просмотреть файл

@ -76,12 +76,13 @@ IF(NOT MICROSOFT_CHECK_DONE)
ENDIF(CMAKE_CL_64)
FIND_PROGRAM(CL_EXE cl PATHS ${CHECK_PATHS})
message("${CL_EXE}")
# Set up VS environments.
GET_FILENAME_COMPONENT(VC_BIN_PATH ${CL_EXE} PATH)
GET_FILENAME_COMPONENT(COMPILER_NAME ${CL_EXE} NAME)
SET(CC ${COMPILER_NAME} CACHE INTERNAL "C compiler executable")
SET(CXX ${COMPILER_NAME} CACHE INTERNAL "CXX compiler executable")
SET(CC ${CL_EXE} CACHE INTERNAL "C compiler executable")
SET(CXX ${CL_EXE} CACHE INTERNAL "CXX compiler executable")
GET_FILENAME_COMPONENT(SDK_ROOT_PATH
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows;CurrentInstallFolder]" ABSOLUTE)
IF(CMAKE_CL_64)

Просмотреть файл

@ -1,206 +1,206 @@
# -*- cmake-script -*-
#
# Copyright (c) 2007-2011 High Performance Computing Center Stuttgart,
# University of Stuttgart. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
######################################################################
#
# OMPI_MinGW
#
# Keep all the MinGW checks in one place.
#
######################################################################
# 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})
STRING (REGEX MATCH [.-/\0-9]+ CURRENT_DATE ${CURRENT_DATE})
SET (OPAL_CONFIGURE_DATE "${CURRENT_TIME} ${CURRENT_DATE}" CACHE INTERNAL "OPAL_CONFIGURE_DATE")
SET (OMPI_BUILD_DATE "${CURRENT_TIME} ${CURRENT_DATE}" CACHE INTERNAL "OMPI_BUILD_DATE")
OMPI_DEF(OPAL_CONFIGURE_DATE "${CURRENT_TIME} ${CURRENT_DATE}" "Configuration date." 1 1)
OMPI_DEF(OMPI_BUILD_DATE "${CURRENT_TIME} ${CURRENT_DATE}" "Build date." 1 1)
# Set up compiler information.
EXECUTE_PROCESS(COMMAND gcc --version OUTPUT_VARIABLE GCC_VERSION)
STRING (REGEX MATCH [.0-9]*\n GCC_VERSION ${GCC_VERSION})
STRING (REPLACE "\n" "" GCC_VERSION ${GCC_VERSION})
OMPI_DEF(COMPILER_FAMILYNAME GNU "Compiler family name" 1 1)
OMPI_DEF(COMPILER_VERSION ${GCC_VERSION} "Compiler version" 0 1)
OMPI_DEF(OPAL_BUILD_PLATFORM_COMPILER_FAMILYID 1 "Compiler family ID" 0 1)
OMPI_DEF(OPAL_BUILD_PLATFORM_COMPILER_FAMILYNAME ${COMPILER_FAMILYNAME} "Compiler family name" 0 1)
OMPI_DEF(OPAL_BUILD_PLATFORM_COMPILER_VERSION_STR ${GCC_VERSION} "Compiler version" 0 1)
IF(NOT MINGW_CHECK_DONE)
MESSAGE( STATUS "Start MinGW specific detection....")
GET_FILENAME_COMPONENT(CC ${CMAKE_C_COMPILER} NAME)
GET_FILENAME_COMPONENT(CXX ${CMAKE_CXX_COMPILER} NAME)
# Default compiler settings.
SET(OMPI_C_OPTION_COMPILE "-c" CACHE INTERNAL
"C compiler option for compiling without linking.")
SET(OMPI_C_OUTPUT_OBJ "-o" CACHE INTERNAL
"C compiler option for setting object file name.")
SET(OMPI_C_OUTPUT_EXE "-o" CACHE INTERNAL
"C compiler option for setting executable file name.")
SET(OMPI_C_LAN_FLAG "-Wno-write-strings -x c" CACHE INTERNAL
"C compiler option for compiling source as C.")
SET(OMPI_CXX_LAN_FLAG "-Wno-write-strings -x c++" CACHE INTERNAL
"C compiler option for compiling source as C++.")
SET(OMPI_C_DEF_PRE "-D" CACHE INTERNAL
"C compiler option for preprocessor definition.")
SET(OMPI_C_MD_DEBUG " " CACHE INTERNAL
"C compiler option for Multi-thread Debug DLL.")
SET(OMPI_C_MD " " CACHE INTERNAL
"C compiler option for Multi-thread DLL.")
SET(OMPI_CXX_EXCEPTION " " CACHE INTERNAL
"C compiler option for C++ exceptions.")
SET(OMPI_C_INCLUDE_DIR "-I" CACHE INTERNAL
"C compiler option for including directory.")
SET(OMPI_C_LIB_DIR "-L" CACHE INTERNAL
"C compiler option for including directory.")
SET(OMPI_LIB_CMD "ar -rcs" CACHE INTERNAL
"command line for making static libraries.")
#NOTE: the space in the end of the option is important
SET(OMPI_LIB_CMD_OUTPUT "" CACHE INTERNAL
"Output option for making static libraries.")
SET(DUMP_UTIL "nm" CACHE INTERNAL "the dumpbin application.")
#SET(DUMP_UTIL_OPT "> " CACHE INTERNAL "the dumpbin application options.")
FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/gcc_test.c
"int main() {return 0;}")
TRY_COMPILE(GCC_OK ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/gcc_test.c)
IF(GCC_OK)
# The atomic functions are defined in a very unuasual manner.
# Some of them are intrinsic defined in windows.h others are
# exported by kernel32.dll. If we force the usage of TRY_RUN
# here we will check for both in same time: compilation and run.
SET(FUNCTION_LIST Exchange ExchangeAcquire ExchangeRelease Exchange64)
FOREACH(FUNCTION ${FUNCTION_LIST})
MESSAGE( STATUS "Checking for InterlockedCompare${FUNCTION}...")
IF(FUNCTION STREQUAL "Exchange64")
SET(64BITS_TYPE "LONGLONG" CACHE INTERNAL "64bits type longlong")
ELSE(FUNCTION STREQUAL "Exchange64")
SET(64BITS_TYPE "LONG" CACHE INTERNAL "64bits type long")
ENDIF(FUNCTION STREQUAL "Exchange64")
STRING(TOUPPER ${FUNCTION} FUNCTION_NAME)
FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/InterlockedCompare${FUNCTION}_test.c
"int main() {\n"
" ${64BITS_TYPE} dest = 0, exchange = 1, comperand = 0;\n"
" SetErrorMode(SEM_FAILCRITICALERRORS);\n"
" InterlockedCompare${FUNCTION}( &dest, exchange, comperand );\n"
" return (int)dest;\n"
" }\n")
TRY_RUN (HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME} COMPILE_RESULT
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/"
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/InterlockedCompare${FUNCTION}_test.c")
IF(HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME} STREQUAL "FAILED_TO_RUN" OR COMPILE_RESULT EQUAL FALSE)
SET (HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME} 0 CACHE INTERNAL "HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME}")
MESSAGE( STATUS "Checking for InterlockedCompare${FUNCTION}...failed")
ELSE(HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME} STREQUAL "FAILED_TO_RUN" OR COMPILE_RESULT EQUAL FALSE)
MESSAGE( STATUS "Checking for InterlockedCompare${FUNCTION}...done")
ENDIF(HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME} STREQUAL "FAILED_TO_RUN" OR COMPILE_RESULT EQUAL FALSE)
ENDFOREACH(FUNCTION)
ELSE(GCC_OK)
MESSAGE(FATAL_ERROR "No working GCC compiler found. Please check if Visual Studio VC is correctly installed.")
ENDIF(GCC_OK)
SET(MINGW_CHECK_DONE TRUE CACHE INTERNAL "MinGW check finished.")
ENDIF(NOT MINGW_CHECK_DONE)
OMPI_DEF_VAR(HAVE_INTERLOCKEDCOMPAREEXCHANGE "Whether we support 32 bits atomic operations on Windows" 0 0)
IF(${OMPI_COMPILER_BIT} STREQUAL "64")
OMPI_DEF_VAR(HAVE_INTERLOCKEDCOMPAREEXCHANGE64 "Whether we support 64 bits atomic operations on Windows" 0 0)
ENDIF(${OMPI_COMPILER_BIT} STREQUAL "64")
OMPI_DEF_VAR(HAVE_INTERLOCKEDCOMPAREEXCHANGEACQUIRE "Whether we support 32 bits atomic operations on Windows" 0 0)
OMPI_DEF_VAR(HAVE_INTERLOCKEDCOMPAREEXCHANGERELEASE "Whether we support 32 bits atomic operations on Windows" 0 0)
# a few definitions for shared memory support
OMPI_DEF(MCA_COMMON_SM_WINDOWS 1 "Whether we have shared memory support for Windows or not." 0 1)
OMPI_DEF(MCA_COMMON_SM_SYSV 0 "Whether we have shared memory support for SYSV or not." 0 1)
OMPI_DEF(MCA_COMMON_SM_POSIX 0 "Whether we have shared memory support for POSIX or not." 0 1)
OMPI_DEF(OPAL_HAVE_POSIX_THREADS 1 "Do we have POSIX threads." 0 1)
OMPI_CHECK_INCLUDE_FILE (sys/uio.h HAVE_SYS_UIO_H)
OMPI_CHECK_INCLUDE_FILE (sys/time.h HAVE_SYS_TIME_H)
OMPI_CHECK_INCLUDE_FILE (windows.h HAVE_WINDOWS_H)
OMPI_CHECK_INCLUDE_FILE (winsock2.h HAVE_WINSOCK2_H)
OMPI_CHECK_INCLUDE_FILE (wdm.h HAVE_WDM_H)
OMPI_CHECK_INCLUDE_FILE (malloc.h HAVE_MALLOC_H)
OMPI_CHECK_INCLUDE_FILE (memory.h HAVE_MEMORY_H)
OMPI_CHECK_INCLUDE_FILE (signal.h HAVE_SIGNAL_H)
OMPI_CHECK_INCLUDE_FILE (stdarg.h HAVE_STDARG_H)
OMPI_CHECK_INCLUDE_FILE (stdint.h HAVE_STDINT_H)
OMPI_CHECK_INCLUDE_FILE (stdlib.h HAVE_STDLIB_H)
OMPI_CHECK_INCLUDE_FILE (string.h HAVE_STRING_H)
OMPI_CHECK_INCLUDE_FILE (sys/stat.h HAVE_SYS_STAT_H)
OMPI_CHECK_INCLUDE_FILE (sys/types.h HAVE_SYS_TYPES_H)
OMPI_CHECK_INCLUDE_FILE (time.h HAVE_TIME_H)
OMPI_CHECK_INCLUDE_FILE(stddef.h OPAL_STDC_HEADERS)
OMPI_CHECK_FUNCTION_EXISTS (ceil HAVE_CEIL)
OMPI_CHECK_FUNCTION_EXISTS (execve HAVE_EXECVE)
OMPI_CHECK_FUNCTION_EXISTS (isatty HAVE_ISATTY)
OMPI_CHECK_FUNCTION_EXISTS (vsnprintf HAVE_VSNPRINTF)
CHECK_C_TYPE_EXISTS(socklen_t SOCKLEN_T "winsock2.h;ws2tcpip.h")
CHECK_C_TYPE_EXISTS("struct sockaddr_in" STRUCT_SOCKADDR_IN "winsock2.h")
CHECK_C_TYPE_EXISTS("struct sockaddr_in6" STRUCT_SOCKADDR_IN6 "ws2tcpip.h")
CHECK_C_TYPE_EXISTS("struct sockaddr_storage" STRUCT_SOCKADDR_STORAGE "winsock2.h;ws2tcpip.h")
OMPI_CHECK_SYMBOL_EXISTS (AF_UNSPEC winsock2.h HAVE_DECL_AF_UNSPEC)
OMPI_CHECK_SYMBOL_EXISTS (PF_UNSPEC winsock2.h HAVE_DECL_PF_UNSPEC)
OMPI_CHECK_SYMBOL_EXISTS (AF_INET6 winsock2.h HAVE_DECL_AF_INET6)
OMPI_CHECK_SYMBOL_EXISTS (PF_INET6 winsock2.h HAVE_DECL_PF_INET6)
# -*- cmake-script -*-
#
# Copyright (c) 2007-2011 High Performance Computing Center Stuttgart,
# University of Stuttgart. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
######################################################################
#
# OMPI_MinGW
#
# Keep all the MinGW checks in one place.
#
######################################################################
# 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})
STRING (REGEX MATCH [.-/\0-9]+ CURRENT_DATE ${CURRENT_DATE})
SET (OPAL_CONFIGURE_DATE "${CURRENT_TIME} ${CURRENT_DATE}" CACHE INTERNAL "OPAL_CONFIGURE_DATE")
SET (OMPI_BUILD_DATE "${CURRENT_TIME} ${CURRENT_DATE}" CACHE INTERNAL "OMPI_BUILD_DATE")
OMPI_DEF(OPAL_CONFIGURE_DATE "${CURRENT_TIME} ${CURRENT_DATE}" "Configuration date." 1 1)
OMPI_DEF(OMPI_BUILD_DATE "${CURRENT_TIME} ${CURRENT_DATE}" "Build date." 1 1)
# Set up compiler information.
EXECUTE_PROCESS(COMMAND gcc --version OUTPUT_VARIABLE GCC_VERSION)
STRING (REGEX MATCH [.0-9]*\n GCC_VERSION ${GCC_VERSION})
STRING (REPLACE "\n" "" GCC_VERSION ${GCC_VERSION})
OMPI_DEF(COMPILER_FAMILYNAME GNU "Compiler family name" 1 1)
OMPI_DEF(COMPILER_VERSION ${GCC_VERSION} "Compiler version" 0 1)
OMPI_DEF(OPAL_BUILD_PLATFORM_COMPILER_FAMILYID 1 "Compiler family ID" 0 1)
OMPI_DEF(OPAL_BUILD_PLATFORM_COMPILER_FAMILYNAME ${COMPILER_FAMILYNAME} "Compiler family name" 0 1)
OMPI_DEF(OPAL_BUILD_PLATFORM_COMPILER_VERSION_STR ${GCC_VERSION} "Compiler version" 0 1)
IF(NOT MINGW_CHECK_DONE)
MESSAGE( STATUS "Start MinGW specific detection....")
GET_FILENAME_COMPONENT(CC ${CC} ABSOLUTE)
GET_FILENAME_COMPONENT(CXX ${CXX} ABSOLUTE)
# Default compiler settings.
SET(OMPI_C_OPTION_COMPILE "-c" CACHE INTERNAL
"C compiler option for compiling without linking.")
SET(OMPI_C_OUTPUT_OBJ "-o" CACHE INTERNAL
"C compiler option for setting object file name.")
SET(OMPI_C_OUTPUT_EXE "-o" CACHE INTERNAL
"C compiler option for setting executable file name.")
SET(OMPI_C_LAN_FLAG "-Wno-write-strings -x c" CACHE INTERNAL
"C compiler option for compiling source as C.")
SET(OMPI_CXX_LAN_FLAG "-Wno-write-strings -x c++" CACHE INTERNAL
"C compiler option for compiling source as C++.")
SET(OMPI_C_DEF_PRE "-D" CACHE INTERNAL
"C compiler option for preprocessor definition.")
SET(OMPI_C_MD_DEBUG " " CACHE INTERNAL
"C compiler option for Multi-thread Debug DLL.")
SET(OMPI_C_MD " " CACHE INTERNAL
"C compiler option for Multi-thread DLL.")
SET(OMPI_CXX_EXCEPTION " " CACHE INTERNAL
"C compiler option for C++ exceptions.")
SET(OMPI_C_INCLUDE_DIR "-I" CACHE INTERNAL
"C compiler option for including directory.")
SET(OMPI_C_LIB_DIR "-L" CACHE INTERNAL
"C compiler option for including directory.")
SET(OMPI_LIB_CMD "ar -rcs" CACHE INTERNAL
"command line for making static libraries.")
#NOTE: the space in the end of the option is important
SET(OMPI_LIB_CMD_OUTPUT "" CACHE INTERNAL
"Output option for making static libraries.")
SET(DUMP_UTIL "nm" CACHE INTERNAL "the dumpbin application.")
#SET(DUMP_UTIL_OPT "> " CACHE INTERNAL "the dumpbin application options.")
FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/gcc_test.c
"int main() {return 0;}")
TRY_COMPILE(GCC_OK ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/gcc_test.c)
IF(GCC_OK)
# The atomic functions are defined in a very unuasual manner.
# Some of them are intrinsic defined in windows.h others are
# exported by kernel32.dll. If we force the usage of TRY_RUN
# here we will check for both in same time: compilation and run.
SET(FUNCTION_LIST Exchange ExchangeAcquire ExchangeRelease Exchange64)
FOREACH(FUNCTION ${FUNCTION_LIST})
MESSAGE( STATUS "Checking for InterlockedCompare${FUNCTION}...")
IF(FUNCTION STREQUAL "Exchange64")
SET(64BITS_TYPE "LONGLONG" CACHE INTERNAL "64bits type longlong")
ELSE(FUNCTION STREQUAL "Exchange64")
SET(64BITS_TYPE "LONG" CACHE INTERNAL "64bits type long")
ENDIF(FUNCTION STREQUAL "Exchange64")
STRING(TOUPPER ${FUNCTION} FUNCTION_NAME)
FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/InterlockedCompare${FUNCTION}_test.c
"int main() {\n"
" ${64BITS_TYPE} dest = 0, exchange = 1, comperand = 0;\n"
" SetErrorMode(SEM_FAILCRITICALERRORS);\n"
" InterlockedCompare${FUNCTION}( &dest, exchange, comperand );\n"
" return (int)dest;\n"
" }\n")
TRY_RUN (HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME} COMPILE_RESULT
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/"
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/InterlockedCompare${FUNCTION}_test.c")
IF(HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME} STREQUAL "FAILED_TO_RUN" OR COMPILE_RESULT EQUAL FALSE)
SET (HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME} 0 CACHE INTERNAL "HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME}")
MESSAGE( STATUS "Checking for InterlockedCompare${FUNCTION}...failed")
ELSE(HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME} STREQUAL "FAILED_TO_RUN" OR COMPILE_RESULT EQUAL FALSE)
MESSAGE( STATUS "Checking for InterlockedCompare${FUNCTION}...done")
ENDIF(HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME} STREQUAL "FAILED_TO_RUN" OR COMPILE_RESULT EQUAL FALSE)
ENDFOREACH(FUNCTION)
ELSE(GCC_OK)
MESSAGE(FATAL_ERROR "No working GCC compiler found. Please check if Visual Studio VC is correctly installed.")
ENDIF(GCC_OK)
SET(MINGW_CHECK_DONE TRUE CACHE INTERNAL "MinGW check finished.")
ENDIF(NOT MINGW_CHECK_DONE)
OMPI_DEF_VAR(HAVE_INTERLOCKEDCOMPAREEXCHANGE "Whether we support 32 bits atomic operations on Windows" 0 0)
IF(${OMPI_COMPILER_BIT} STREQUAL "64")
OMPI_DEF_VAR(HAVE_INTERLOCKEDCOMPAREEXCHANGE64 "Whether we support 64 bits atomic operations on Windows" 0 0)
ENDIF(${OMPI_COMPILER_BIT} STREQUAL "64")
OMPI_DEF_VAR(HAVE_INTERLOCKEDCOMPAREEXCHANGEACQUIRE "Whether we support 32 bits atomic operations on Windows" 0 0)
OMPI_DEF_VAR(HAVE_INTERLOCKEDCOMPAREEXCHANGERELEASE "Whether we support 32 bits atomic operations on Windows" 0 0)
# a few definitions for shared memory support
OMPI_DEF(MCA_COMMON_SM_WINDOWS 1 "Whether we have shared memory support for Windows or not." 0 1)
OMPI_DEF(MCA_COMMON_SM_SYSV 0 "Whether we have shared memory support for SYSV or not." 0 1)
OMPI_DEF(MCA_COMMON_SM_POSIX 0 "Whether we have shared memory support for POSIX or not." 0 1)
OMPI_DEF(OPAL_HAVE_POSIX_THREADS 1 "Do we have POSIX threads." 0 1)
OMPI_CHECK_INCLUDE_FILE (sys/uio.h HAVE_SYS_UIO_H)
OMPI_CHECK_INCLUDE_FILE (sys/time.h HAVE_SYS_TIME_H)
OMPI_CHECK_INCLUDE_FILE (windows.h HAVE_WINDOWS_H)
OMPI_CHECK_INCLUDE_FILE (winsock2.h HAVE_WINSOCK2_H)
OMPI_CHECK_INCLUDE_FILE (wdm.h HAVE_WDM_H)
OMPI_CHECK_INCLUDE_FILE (malloc.h HAVE_MALLOC_H)
OMPI_CHECK_INCLUDE_FILE (memory.h HAVE_MEMORY_H)
OMPI_CHECK_INCLUDE_FILE (signal.h HAVE_SIGNAL_H)
OMPI_CHECK_INCLUDE_FILE (stdarg.h HAVE_STDARG_H)
OMPI_CHECK_INCLUDE_FILE (stdint.h HAVE_STDINT_H)
OMPI_CHECK_INCLUDE_FILE (stdlib.h HAVE_STDLIB_H)
OMPI_CHECK_INCLUDE_FILE (string.h HAVE_STRING_H)
OMPI_CHECK_INCLUDE_FILE (sys/stat.h HAVE_SYS_STAT_H)
OMPI_CHECK_INCLUDE_FILE (sys/types.h HAVE_SYS_TYPES_H)
OMPI_CHECK_INCLUDE_FILE (time.h HAVE_TIME_H)
OMPI_CHECK_INCLUDE_FILE(stddef.h OPAL_STDC_HEADERS)
OMPI_CHECK_FUNCTION_EXISTS (ceil HAVE_CEIL)
OMPI_CHECK_FUNCTION_EXISTS (execve HAVE_EXECVE)
OMPI_CHECK_FUNCTION_EXISTS (isatty HAVE_ISATTY)
OMPI_CHECK_FUNCTION_EXISTS (vsnprintf HAVE_VSNPRINTF)
CHECK_C_TYPE_EXISTS(socklen_t SOCKLEN_T "winsock2.h;ws2tcpip.h")
CHECK_C_TYPE_EXISTS("struct sockaddr_in" STRUCT_SOCKADDR_IN "winsock2.h")
CHECK_C_TYPE_EXISTS("struct sockaddr_in6" STRUCT_SOCKADDR_IN6 "ws2tcpip.h")
CHECK_C_TYPE_EXISTS("struct sockaddr_storage" STRUCT_SOCKADDR_STORAGE "winsock2.h;ws2tcpip.h")
OMPI_CHECK_SYMBOL_EXISTS (AF_UNSPEC winsock2.h HAVE_DECL_AF_UNSPEC)
OMPI_CHECK_SYMBOL_EXISTS (PF_UNSPEC winsock2.h HAVE_DECL_PF_UNSPEC)
OMPI_CHECK_SYMBOL_EXISTS (AF_INET6 winsock2.h HAVE_DECL_AF_INET6)
OMPI_CHECK_SYMBOL_EXISTS (PF_INET6 winsock2.h HAVE_DECL_PF_INET6)

Просмотреть файл

@ -33,15 +33,8 @@ INCLUDE (check_c_type_exists)
INCLUDE (check_c_inline)
INCLUDE (check_bool)
OPTION(OPAL_CONFIG_REGEN "Whether we want to regenerate the configure template file." OFF)
IF(${OPAL_CONFIG_REGEN} STREQUAL "ON")
SET(WRITE_CONFIG_DONE FALSE CACHE INTERNAL "Whether to regenerate configure template.")
ENDIF(${OPAL_CONFIG_REGEN} STREQUAL "ON")
IF(NOT WRITE_CONFIG_DONE)
FILE(REMOVE ${OpenMPI_BINARY_DIR}/opal/include/opal_config.h.cmake)
FILE(APPEND ${OpenMPI_BINARY_DIR}/opal/include/opal_config.h.cmake
FILE(REMOVE ${OpenMPI_BINARY_DIR}/opal/include/opal_config.h.cmake)
FILE(APPEND ${OpenMPI_BINARY_DIR}/opal/include/opal_config.h.cmake
"/* opal/include/opal_config.h.cmake. Generated by CMake. */
/* -*- c -*-
@ -67,8 +60,6 @@ IF(NOT WRITE_CONFIG_DONE)
#define OPAL_CONFIG_H
\n\n
")
ENDIF(NOT WRITE_CONFIG_DONE)
OMPI_DEF(PACKAGE_NAME "Open MPI" "Define to the full name of this package." 1 1)
@ -791,11 +782,11 @@ IF(WIN32)
ENDIF(WIN32)
GET_FILENAME_COMPONENT(C_COMPILER_NAME ${CMAKE_C_COMPILER} NAME_WE)
GET_FILENAME_COMPONENT(C_COMPILER_NAME ${CC} NAME_WE)
OMPI_DEF(OPAL_CC ${C_COMPILER_NAME} "OMPI underlying C compiler name." 1 1)
OMPI_DEF(OPAL_CC_ABSOLUTE ${CMAKE_C_COMPILER} "OMPI underlying C compiler absolute path." 1 1)
OMPI_DEF(OPAL_CC_ABSOLUTE ${CC} "OMPI underlying C compiler absolute path." 1 1)
OMPI_DEF(WRAPPER_EXTRA_CFLAGS " " "Additional CFLAGS to pass through the wrapper compilers." 1 1)
@ -810,10 +801,10 @@ OMPI_DEF(WRAPPER_EXTRA_LDFLAGS " " "Additional LDFLAGS to pass through the wrapp
OMPI_DEF(WRAPPER_EXTRA_LIBS " " "Additional LIBS to pass through the wrapper compilers." 1 1)
GET_FILENAME_COMPONENT(CXX_COMPILER_NAME ${CMAKE_CXX_COMPILER} NAME_WE)
GET_FILENAME_COMPONENT(CXX_COMPILER_NAME ${CXX} NAME_WE)
OMPI_DEF(OMPI_CXX ${CXX_COMPILER_NAME} "OMPI underlying C++ compiler name." 1 1)
OMPI_DEF(OMPI_CXX_ABSOLUTE ${CMAKE_CXX_COMPILER} "OMPI underlying C++ compiler absolute path." 1 1)
OMPI_DEF(OMPI_CXX_ABSOLUTE ${CXX} "OMPI underlying C++ compiler absolute path." 1 1)
IF(OMPI_WANT_FORTRAN_BINDINGS)
GET_FILENAME_COMPONENT(FORTRAN_COMPILER_NAME ${CMAKE_Fortran_COMPILER} NAME_WE)
@ -1010,13 +1001,11 @@ ENDMACRO(BEGIN_CONFIGURE)
MACRO(END_CONFIGURE)
IF(NOT WRITE_CONFIG_DONE)
FILE(APPEND ${OpenMPI_BINARY_DIR}/opal/include/opal_config.h.cmake
"#include \"opal_config_bottom.h\"\n#endif /* OPAL_CONFIG_H */\n")
SET(WRITE_CONFIG_DONE TRUE CACHE INTERNAL "Whether to regenerate configure template.")
ENDIF(NOT WRITE_CONFIG_DONE)
FILE(APPEND ${OpenMPI_BINARY_DIR}/opal/include/opal_config.h.cmake
"#include \"opal_config_bottom.h\"\n#endif /* OPAL_CONFIG_H */\n")
CONFIGURE_FILE(${OpenMPI_BINARY_DIR}/opal/include/opal_config.h.cmake ${OpenMPI_BINARY_DIR}/opal/include/opal_config.h)

Просмотреть файл

@ -20,9 +20,6 @@
MACRO(APPEND_CONFIG_FILE NAME VAR_NAME VALUE DESC IS_STR FORCE_DEF VAR_FORMAT)
#We don't want to always generate the template file, but only when required.
IF(NOT WRITE_CONFIG_DONE)
UNSET(APPEND_STRING)
IF(${VAR_FORMAT})
@ -57,7 +54,6 @@ MACRO(APPEND_CONFIG_FILE NAME VAR_NAME VALUE DESC IS_STR FORCE_DEF VAR_FORMAT)
FILE(APPEND ${OpenMPI_BINARY_DIR}/opal/include/opal_config.h.cmake
${APPEND_STRING})
ENDIF(NOT WRITE_CONFIG_DONE)
ENDMACRO(APPEND_CONFIG_FILE NAME VAR_NAME VALUE DESC IS_STR FORCE_DEF VAR_FORMAT)
@ -112,12 +108,13 @@ MACRO(OMPI_DEF_OPT OPT_NAME DEF_NAME DESC DEFAULT_VAL)
OPTION(${OPT_NAME} "${DESC}" ${DEFAULT_VAL})
IF(${DEFAULT_VAL} STREQUAL "OFF")
IF(${${OPT_NAME}} STREQUAL "OFF")
SET(${DEF_NAME}_VAL 0)
ELSE(${DEFAULT_VAL} STREQUAL "OFF")
ELSE(${${OPT_NAME}} STREQUAL "OFF")
SET(${DEF_NAME}_VAL 1)
ENDIF(${DEFAULT_VAL} STREQUAL "OFF")
ENDIF(${${OPT_NAME}} STREQUAL "OFF")
SET(${DEF_NAME} ${${DEF_NAME}_VAL} CACHE INTERNAL "${DEF_NAME}")
APPEND_CONFIG_FILE(${DEF_NAME} ${DEF_NAME}_VAL "" ${DESC} 0 1 1)
ENDMACRO(OMPI_DEF_OPT OPT_NAME DEF_NAME DESC DEFAULT_VAL)

Просмотреть файл

@ -159,7 +159,8 @@ ENDIF (OMPI_DEBUG_BUILD AND WINDOWS_VS)
IF(OMPI_WANT_FORTRAN_BINDINGS)
INSTALL(FILES ${PROJECT_BINARY_DIR}/include/mpif.h
${PROJECT_BINARY_DIR}/include/mpif-config.h
${PROJECT_SOURCE_DIR}/include/mpif-common.h
${PROJECT_BINARY_DIR}/include/mpif-common.h
${PROJECT_SOURCE_DIR}/include/mpif-all-common.h
${PROJECT_SOURCE_DIR}/include/mpif-mpi-io.h
DESTINATION include)
ENDIF(OMPI_WANT_FORTRAN_BINDINGS)

Просмотреть файл

@ -7,14 +7,16 @@
# $HEADER$
#
IF(OMPI_WANT_CXX_BINDINGS)
IF(OMPI_BUILD_CXX_BINDINGS)
ADD_SUBDIRECTORY(cxx)
ELSE(OMPI_WANT_CXX_BINDINGS)
ELSE(OMPI_BUILD_CXX_BINDINGS)
MESSAGE(STATUS "Skipping MPI C++ interface")
ENDIF(OMPI_WANT_CXX_BINDINGS)
ENDIF(OMPI_BUILD_CXX_BINDINGS)
IF(OMPI_WANT_FORTRAN_BINDINGS)
ADD_SUBDIRECTORY(fortran)
ELSE(OMPI_WANT_FORTRAN_BINDINGS)
IF(OMPI_BUILD_FORTRAN_USEMPI_BINDINGS)
SET(OMPI_WANT_FORTRAN_BINDINGS 1 CACHE INTERNAL "Whether we want MPI FORTRAN support or not.")
ADD_SUBDIRECTORY(fortran/mpif-h)
ELSE(OMPI_BUILD_FORTRAN_USEMPI_BINDINGS)
SET(OMPI_WANT_FORTRAN_BINDINGS 0 CACHE INTERNAL "Whether we want MPI FORTRAN support or not.")
MESSAGE(STATUS "Skipping MPI FORTRAN interface")
ENDIF(OMPI_WANT_FORTRAN_BINDINGS)
ENDIF(OMPI_BUILD_FORTRAN_USEMPI_BINDINGS)

Просмотреть файл

@ -21,7 +21,8 @@ IF (NOT OMPI_PROVIDE_MPI_FILE_INTERFACE)
IF (NOT ${relname} STREQUAL "register_datarep.c")
LIST(APPEND TMP_SRC ${FILENAME})
ENDIF (NOT ${relname} STREQUAL "register_datarep.c")
ENDIF(NOT ${relname} MATCHES "file.*[ch]$") ENDFOREACH(FILENAME ${OMPI_FORTRAN_FILES})
ENDIF(NOT ${relname} MATCHES "file.*[ch]$")
ENDFOREACH(FILENAME ${OMPI_FORTRAN_FILES})
SET( OMPI_FORTRAN_FILES ${TMP_SRC})
ENDIF(NOT OMPI_PROVIDE_MPI_FILE_INTERFACE)
@ -54,7 +55,7 @@ ENDIF(OMPI_ENABLE_MPI_PROFILING)
ADD_LIBRARY(libmpi_fortran ${OMPI_FORTRAN_FILES} ${OMPI_FORTRAN_HEADER_FILES})
TARGET_LINK_LIBRARIES(libmpi_mpifh libmpi)
TARGET_LINK_LIBRARIES(libmpi_fortran libmpi)
IF(BUILD_SHARED_LIBS)
ADD_DEFINITIONS(${OMPI_C_DEF_PRE}_USRDLL ${OMPI_C_DEF_PRE}OPAL_IMPORTS
@ -63,7 +64,7 @@ ELSE(BUILD_SHARED_LIBS)
ADD_DEFINITIONS(${OMPI_C_DEF_PRE}_LIB)
ENDIF(BUILD_SHARED_LIBS)
INSTALL(TARGETS libmpi_mpifh
INSTALL(TARGETS libmpi_fortran
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)

Просмотреть файл

@ -73,7 +73,7 @@ SET(OMPI_WRAPPER_EXTRA_LIBS ${OMPI_WRAPPER_BASE_LIBS})
CONFIGURE_WRAPPER_DATA_FILE(mpicc)
UNSET(OMPI_WRAPPER_EXTRA_LIBS)
IF(OMPI_WANT_CXX_BINDINGS)
IF(OMPI_BUILD_CXX_BINDINGS)
# select debug or release libraries at configure time
IF(WINDOWS_VS)
@ -103,7 +103,7 @@ IF(OMPI_WANT_CXX_BINDINGS)
CONFIGURE_WRAPPER_DATA_FILE(mpic++)
CONFIGURE_WRAPPER_DATA_FILE(mpicxx)
ENDIF(OMPI_WANT_CXX_BINDINGS)
ENDIF(OMPI_BUILD_CXX_BINDINGS)
IF(OMPI_WANT_FORTRAN_BINDINGS)
# select debug or release libraries at configure time
@ -132,7 +132,7 @@ IF(OMPI_WANT_FORTRAN_BINDINGS)
ENDIF(OMPI_DEBUG_BUILD)
ENDIF(BUILD_SHARED_LIBS)
CONFIGURE_WRAPPER_DATA_FILE(mpifortran)
CONFIGURE_WRAPPER_DATA_FILE(mpifort)
UNSET(OMPI_WRAPPER_EXTRA_LIBS)
ENDIF(OMPI_WANT_FORTRAN_BINDINGS)

Просмотреть файл

@ -19,7 +19,7 @@ STRING(REGEX REPLACE "#undef ([-_a-zA-Z0-9]+)[ ]*\n" "#cmakedefine \\1 \${\\1}\n
STRING(REPLACE "#cmakedefine OMPI_HAVE_FORTRAN_" "#define OMPI_HAVE_FORTRAN_" MPI_H_OUT "${MPI_H_OUT}")
STRING(REPLACE "{OMPI_PROVIDE_MPI_FILE_INTERFACE}"
"{OMPI_PROVIDE_MPI_FILE_INTERFACE}" MPI_H_OUT "${MPI_H_OUT}")
STRING(REPLACE "\${OMPI_WANT_CXX_BINDINGS}" "1" MPI_H_OUT "${MPI_H_OUT}")
STRING(REPLACE "\${OMPI_BUILD_CXX_BINDINGS}" "1" MPI_H_OUT "${MPI_H_OUT}")
STRING(REPLACE "\${OMPI_WANT_FORTRAN_BINDINGS}" "1" MPI_H_OUT "${MPI_H_OUT}")
STRING(REPLACE "\${OMPI_WANT_F90_BINDINGS}" "1" MPI_H_OUT "${MPI_H_OUT}")
STRING(REPLACE "\${OMPI_WANT_MPI_CXX_SEEK}" "1" MPI_H_OUT "${MPI_H_OUT}")
@ -32,5 +32,6 @@ CONFIGURE_FILE(${OpenMPI_BINARY_DIR}/ompi/include/mpi.h.in ${OpenMPI_BINARY_DIR}
IF(OMPI_WANT_FORTRAN_BINDINGS)
CONFIGURE_FILE(${OpenMPI_SOURCE_DIR}/ompi/include/mpif.h.in ${OpenMPI_BINARY_DIR}/ompi/include/mpif.h)
CONFIGURE_FILE(${OpenMPI_SOURCE_DIR}/ompi/include/mpif-common.h.fin ${OpenMPI_BINARY_DIR}/ompi/include/mpif-common.h)
CONFIGURE_FILE(${OpenMPI_SOURCE_DIR}/ompi/include/mpif-config.h.in ${OpenMPI_BINARY_DIR}/ompi/include/mpif-config.h)
ENDIF(OMPI_WANT_FORTRAN_BINDINGS)

Просмотреть файл

@ -29,7 +29,7 @@ ADD_CUSTOM_COMMAND (TARGET opal-wrapper
${PROJECT_BINARY_DIR}/mpicc${OMPI_EXE_DEBUG_POSTFIX}.exe
COMMENT "Copying C compiler wrappers...")
IF(OMPI_WANT_CXX_BINDINGS)
IF(OMPI_BUILD_CXX_BINDINGS)
ADD_CUSTOM_COMMAND (TARGET opal-wrapper
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
@ -43,7 +43,7 @@ IF(OMPI_WANT_CXX_BINDINGS)
INSTALL(FILES ${PROJECT_BINARY_DIR}/mpic++${OMPI_EXE_DEBUG_POSTFIX}.exe
${PROJECT_BINARY_DIR}/mpicxx${OMPI_EXE_DEBUG_POSTFIX}.exe
DESTINATION bin)
ENDIF(OMPI_WANT_CXX_BINDINGS)
ENDIF(OMPI_BUILD_CXX_BINDINGS)
IF(OMPI_WANT_FORTRAN_BINDINGS)
ADD_CUSTOM_COMMAND(TARGET opal-wrapper
@ -81,7 +81,7 @@ IF(WANT_INSTALL_HEADERS)
${PROJECT_BINARY_DIR}/opalcc${OMPI_EXE_DEBUG_POSTFIX}.exe
COMMENT "Copying renamed executables...")
IF(OMPI_WANT_CXX_BINDINGS)
IF(OMPI_BUILD_CXX_BINDINGS)
ADD_CUSTOM_COMMAND (TARGET opal-wrapper
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
@ -93,7 +93,7 @@ IF(WANT_INSTALL_HEADERS)
${OPAL_BINARY_DIR}/tools/wrappers/opalc++-wrapper-data.txt @ONLY)
INSTALL(FILES ${OPAL_BINARY_DIR}/tools/wrappers/opalc++-wrapper-data.txt
DESTINATION share/openmpi)
ENDIF(OMPI_WANT_CXX_BINDINGS)
ENDIF(OMPI_BUILD_CXX_BINDINGS)
CONFIGURE_FILE(${OPAL_SOURCE_DIR}/tools/wrappers/opalcc-wrapper-data.txt.in
${OPAL_BINARY_DIR}/tools/wrappers/opalcc-wrapper-data.txt @ONLY)