Add the initial support for MinGW and MSYS.
Correctly check the dependencies of MSYS env. Set up configure include and lib path for building the package. update a few more CMake scripts. This commit was SVN r24663.
Этот коммит содержится в:
родитель
3e8878f556
Коммит
4490fdbd34
@ -21,6 +21,16 @@ ENDIF(WIN32)
|
||||
# create top-level target(solution file)
|
||||
PROJECT("OpenMPI" C CXX)
|
||||
|
||||
IF(MSVC)
|
||||
SET(WINDOWS_VS TRUE CACHE INTERNAL "Windows Visual Studio env")
|
||||
IF(CMAKE_CL_64)
|
||||
SET(COMPILER_TYPE "x64")
|
||||
ELSE(CMAKE_CL_64)
|
||||
SET(COMPILER_TYPE "win32")
|
||||
ENDIF(CMAKE_CL_64)
|
||||
ELSEIF(NOT "$ENV{MSYSTEM}" STREQUAL "")
|
||||
SET(WINDOWS_MINGW TRUE CACHE INTERNAL "Windows MinGW env")
|
||||
ENDIF(MSVC)
|
||||
|
||||
SET (OpenMPI_VERSION $(OpenMPI_MAJOR_VERSION).$(OpenMPI_MINOR_VERSION).$(OpenMPI_PATCH_VERSION))
|
||||
SET (CMAKE_MODULE_PATH "${OpenMPI_SOURCE_DIR}/contrib/platform/win32/CMakeModules;${CMAKE_MODULE_PATH}")
|
||||
@ -80,12 +90,6 @@ SET (CMAKE_SUPPRESS_REGENERATION true)
|
||||
# Dynamic/shared build, the default is set to static(OFF)
|
||||
OPTION(BUILD_SHARED_LIBS "Whether we want to build shared libraries." ON)
|
||||
|
||||
IF(CMAKE_CL_64)
|
||||
SET(COMPILER_TYPE "x64")
|
||||
ELSE(CMAKE_CL_64)
|
||||
SET(COMPILER_TYPE "win32")
|
||||
ENDIF(CMAKE_CL_64)
|
||||
|
||||
#store current environment variables
|
||||
SET(PATH_OLD "$ENV{PATH}")
|
||||
SET(LIB_OLD "$ENV{LIB}")
|
||||
|
@ -28,7 +28,7 @@ MACRO(OMPI_F77_FIND_EXT_SYMBOL_CONVENTION)
|
||||
"\t a = 1 \n"
|
||||
"\t return \n"
|
||||
"\t end \n")
|
||||
|
||||
|
||||
EXECUTE_PROCESS(COMMAND ${F77} ${F77_OPTION_COMPILE} conftest.f ${F77_OUTPUT_OBJ}conftest.lib
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
|
||||
OUTPUT_VARIABLE OUTPUT
|
||||
@ -38,24 +38,17 @@ MACRO(OMPI_F77_FIND_EXT_SYMBOL_CONVENTION)
|
||||
SET(OUTPUT_OBJ_FILE "conftest.lib")
|
||||
|
||||
# now run dumpbin to generate an output file
|
||||
EXECUTE_PROCESS(COMMAND ${DUMP_UTIL} ${OUTPUT_OBJ_FILE} /symbols /out:conftest_out
|
||||
EXECUTE_PROCESS(COMMAND ${DUMP_UTIL} ${OUTPUT_OBJ_FILE}
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
|
||||
OUTPUT_VARIABLE OUTPUT
|
||||
OUTPUT_VARIABLE DUMP_OUTPUT
|
||||
RESULT_VARIABLE RESULT
|
||||
ERROR_VARIABLE ERROR)
|
||||
|
||||
|
||||
# find out the external symbol convention
|
||||
FILE(STRINGS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest_out
|
||||
DOUBLE_UNDERSCORE REGEX "foo_bar__$")
|
||||
FILE(STRINGS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest_out
|
||||
SINGLE_UNDERSCORE REGEX "foo_bar_$")
|
||||
FILE(STRINGS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest_out
|
||||
MIXED_CASE REGEX "FOO_bar$")
|
||||
FILE(STRINGS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest_out
|
||||
NO_UNDERSCORE REGEX "foo_bar$")
|
||||
FILE(STRINGS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest_out
|
||||
UPPER_CASE REGEX "FOO_BAR$")
|
||||
STRING(REGEX MATCH foo_bar__\n DOUBLE_UNDERSCORE ${DUMP_OUTPUT})
|
||||
STRING(REGEX MATCH foo_bar_\n SINGLE_UNDERSCORE ${DUMP_OUTPUT})
|
||||
STRING(REGEX MATCH FOO_bar\n MIXED_CASE ${DUMP_OUTPUT})
|
||||
STRING(REGEX MATCH foo_bar\n NO_UNDERSCORE ${DUMP_OUTPUT})
|
||||
STRING(REGEX MATCH FOO_BAR\n UPPER_CASE ${DUMP_OUTPUT})
|
||||
|
||||
# set up the corresponding values
|
||||
IF(NOT DOUBLE_UNDERSCORE STREQUAL "")
|
||||
@ -105,6 +98,7 @@ MACRO(OMPI_F77_FIND_EXT_SYMBOL_CONVENTION)
|
||||
"IF(NOT \"${F77_LIB_PATH}\" STREQUAL \"\")\n"
|
||||
" LINK_DIRECTORIES(\"${F77_LIB_PATH}\")\n"
|
||||
"ENDIF(NOT \"${F77_LIB_PATH}\" STREQUAL \"\")\n"
|
||||
"LINK_DIRECTORIES(${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/)\n"
|
||||
"ADD_EXECUTABLE(conftest_c conftest_c.c)\n"
|
||||
"TARGET_LINK_LIBRARIES(conftest_c ${OUTPUT_OBJ_FILE})\n")
|
||||
|
||||
@ -117,14 +111,14 @@ MACRO(OMPI_F77_FIND_EXT_SYMBOL_CONVENTION)
|
||||
|
||||
#MESSAGE("MY_OUTPUT:${MY_OUTPUT}")
|
||||
|
||||
SET(SYMBOL_CONVENTION_CHECK_DONE TRUE CACHE INTERNAL "Symbol convention check done.")
|
||||
|
||||
IF(NOT TEST_OK)
|
||||
IF(TEST_OK)
|
||||
SET(SYMBOL_CONVENTION_CHECK_DONE TRUE CACHE INTERNAL "Symbol convention check done.")
|
||||
ELSE(TEST_OK)
|
||||
UNSET(SYMBOL_CONVENTION_CHECK_DONE CACHE)
|
||||
MESSAGE(STATUS "${MY_OUTPUT}")
|
||||
MESSAGE(STATUS "*** Probably you have to setup the library path of the Fortran compiler.")
|
||||
MESSAGE(FATAL_ERROR "C and Fortran 77 compilers are not link compatible. Cannot continue.")
|
||||
ENDIF(NOT TEST_OK)
|
||||
ENDIF(TEST_OK)
|
||||
|
||||
ENDIF(NOT SYMBOL_CONVENTION_CHECK_DONE)
|
||||
|
||||
@ -149,7 +143,7 @@ MACRO(OMPI_F77_MAKE_C_FUNCTION OUTPUT_VARIABLE FUNCTION_NAME)
|
||||
ENDIF("${RESULT}" STREQUAL "")
|
||||
ELSEIF("${ompi_cv_f77_external_symbol}" STREQUAL "single underscore")
|
||||
STRING(TOLOWER ${FUNCTION_NAME} ${OUTPUT_VARIABLE})
|
||||
SET(${OUTPUT_VARIABLE} "${OUTPUT_VARIABLE}_")
|
||||
SET(${OUTPUT_VARIABLE} "${${OUTPUT_VARIABLE}}_")
|
||||
ELSEIF("${ompi_cv_f77_external_symbol}" STREQUAL "mixed case")
|
||||
SET(${OUTPUT_VARIABLE} ${FUNCTION_NAME})
|
||||
ELSEIF("${ompi_cv_f77_external_symbol}" STREQUAL "no underscore")
|
||||
|
@ -59,7 +59,11 @@ MACRO(OMPI_F77_GET_VALUE_TRUE)
|
||||
"\tCALL print(value)\n"
|
||||
"\tend\n")
|
||||
|
||||
EXECUTE_PROCESS(COMMAND ${CMAKE_C_COMPILER} ${OMPI_C_OPTION_COMPILE} conftest_c.c ${OMPI_C_INCLUDE_DIR}${C_COMPILER_INCLUDE}
|
||||
IF(NOT "${C_COMPILER_INCLUDE}" STREQUAL "")
|
||||
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
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
|
||||
OUTPUT_VARIABLE OUTPUT
|
||||
RESULT_VARIABLE RESULT
|
||||
@ -70,7 +74,7 @@ MACRO(OMPI_F77_GET_VALUE_TRUE)
|
||||
MESSAGE(FATAL_ERROR "Could not determine value of Fortran .TRUE.. Aborting.")
|
||||
ENDIF(RESULT)
|
||||
|
||||
EXECUTE_PROCESS(COMMAND ${F77} ${F77_OPTION_COMPILE} conftest_f.f
|
||||
EXECUTE_PROCESS(COMMAND ${F77} ${F77_OPTION_COMPILE} conftest_f.f ${F77_OUTPUT_OBJ}conftest_f.obj
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
|
||||
OUTPUT_VARIABLE OUTPUT
|
||||
RESULT_VARIABLE RESULT
|
||||
@ -81,7 +85,7 @@ MACRO(OMPI_F77_GET_VALUE_TRUE)
|
||||
MESSAGE(FATAL_ERROR "Could not determine value of Fortran .TRUE.. Aborting.")
|
||||
ENDIF(RESULT)
|
||||
|
||||
EXECUTE_PROCESS(COMMAND ${F77} conftest_f.obj conftest_c.obj ${F77_OUTPUT_EXE}conftest
|
||||
EXECUTE_PROCESS(COMMAND ${F77} conftest_f.obj conftest_c.obj ${F77_OUTPUT_EXE}conftest.exe
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
|
||||
OUTPUT_VARIABLE OUTPUT
|
||||
RESULT_VARIABLE RESULT
|
||||
|
@ -33,7 +33,7 @@ ELSEIF(NOT CCP_FOUND)
|
||||
ELSE(CCP_LIB_PATH)
|
||||
SET(CCP_FOUND FALSE CACHE INTERNAL "find result of CCP.")
|
||||
SET(RESULT FALSE)
|
||||
MESSAGE(STATUS "looking for ccp...failed.")
|
||||
MESSAGE(STATUS "looking for ccp...not found.")
|
||||
ENDIF(CCP_LIB_PATH)
|
||||
|
||||
ELSE(NOT CCP_FOUND)
|
||||
|
@ -81,7 +81,7 @@ ELSE(NOT OMPI_WANT_OFED)
|
||||
ELSE(OFED_SDK_INCLUDE_PATH AND OFED_SDK_LIBIBVERBS)
|
||||
SET(OFED_SDK_FOUND FALSE CACHE INTERNAL "find result of OFED SDK.")
|
||||
SET(RESULT FALSE)
|
||||
MESSAGE(STATUS "looking for OFED SDK...failed.")
|
||||
MESSAGE(STATUS "looking for OFED SDK...not found.")
|
||||
ENDIF(OFED_SDK_INCLUDE_PATH AND OFED_SDK_LIBIBVERBS)
|
||||
|
||||
ELSE(NOT OFED_SDK_FOUND)
|
||||
|
@ -67,7 +67,7 @@ ELSE(NOT OMPI_WANT_WINVERBS)
|
||||
ELSE(WINVERBS_INCLUDE_PATH AND WINVERBS_LIBIBVERBS)
|
||||
SET(WINVERBS_FOUND FALSE CACHE INTERNAL "find result of Winverbs.")
|
||||
SET(RESULT FALSE)
|
||||
MESSAGE(STATUS "looking for Wiinverbs...failed.")
|
||||
MESSAGE(STATUS "looking for Winverbs...not found.")
|
||||
ENDIF(WINVERBS_INCLUDE_PATH AND WINVERBS_LIB)
|
||||
|
||||
ELSE(NOT WINVERBS_FOUND)
|
||||
|
@ -15,11 +15,30 @@
|
||||
#
|
||||
# Keep all the Windows checks in one place.
|
||||
#
|
||||
# USAGE:
|
||||
# OMPI_MICROSOFT_COMPILER()
|
||||
#
|
||||
######################################################################
|
||||
|
||||
# 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.
|
||||
OMPI_DEF(COMPILER_FAMILYNAME MICROSOFT "Compiler family name" 1 1)
|
||||
OMPI_DEF(COMPILER_VERSION ${MSVC_VERSION} "Compiler version" 0 1)
|
||||
OMPI_DEF(OPAL_BUILD_PLATFORM_COMPILER_FAMILYID 14 "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 ${MSVC_VERSION} "Compiler version" 0 1)
|
||||
|
||||
IF(NOT MICROSOFT_CHECK_DONE)
|
||||
|
||||
MESSAGE( STATUS "Start Microsoft specific detection....")
|
||||
@ -117,6 +136,7 @@ IF(NOT MICROSOFT_CHECK_DONE)
|
||||
"Output option for making static libraries.")
|
||||
|
||||
SET(DUMP_UTIL "${VC_BIN_PATH}/dumpbin.exe" CACHE INTERNAL "the dumpbin application.")
|
||||
SET(DUMP_UTIL_OPT "/symbols /out:" CACHE INTERNAL "the dumpbin application options.")
|
||||
|
||||
FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/cl_test.c
|
||||
"int main() {return 0;}")
|
||||
@ -186,6 +206,7 @@ OMPI_DEF_VAR(HAVE_INTERLOCKEDCOMPAREEXCHANGERELEASE "Whether we support 32 bits
|
||||
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 0 "Do we have POSIX threads." 0 1)
|
||||
|
||||
OMPI_CHECK_INCLUDE_FILE (windows.h HAVE_WINDOWS_H)
|
||||
|
||||
|
@ -86,8 +86,22 @@ OMPI_DEF(OMPI_BUILD_USER $ENV{USERNAME} "User who has built the package." 1 1)
|
||||
|
||||
OMPI_DEF(OMPI_BUILD_HOST $ENV{COMPUTERNAME} "Host on which the package has been built." 1 1)
|
||||
|
||||
OMPI_DEF(OPAL_ARCH "${CMAKE_SYSTEM_PROCESSOR} ${CMAKE_SYSTEM}" "OMPI architecture string" 1 1)
|
||||
#detect the compiler bit
|
||||
OMPI_CHECK_TYPES("void *" VOID_P none c)
|
||||
IF(${SIZEOF_VOID_P} EQUAL 4)
|
||||
SET(OMPI_COMPILER_BIT "86 bit")
|
||||
SET(IS_32_BIT TRUE CACHE INTERNAL "32 bit compiler")
|
||||
ELSE(${SIZEOF_VOID_P} EQUAL 4)
|
||||
SET(OMPI_COMPILER_BIT "64 bit")
|
||||
SET(IS_64_BIT TRUE CACHE INTERNAL "64 bit compiler")
|
||||
ENDIF(${SIZEOF_VOID_P} EQUAL 4)
|
||||
OMPI_DEF(OPAL_ARCH "${CMAKE_SYSTEM} ${OMPI_COMPILER_BIT}" "OMPI architecture string" 1 1)
|
||||
|
||||
IF(WINDOWS_VS)
|
||||
INCLUDE(ompi_check_Microsoft)
|
||||
ELSEIF(WINDOWS_MINGW)
|
||||
INCLUDE(ompi_check_MinGW)
|
||||
ENDIF(WINDOWS_VS)
|
||||
|
||||
INCLUDE(opal_get_version)
|
||||
|
||||
@ -101,25 +115,8 @@ OMPI_DEF(PACKAGE_VERSION ${OPAL_VERSION} "Define to the version of this package.
|
||||
|
||||
OMPI_DEF(PACKAGE_STRING "Open MPI ${PACKAGE_VERSION}" "Define to the full name and version of this package." 1 1)
|
||||
|
||||
|
||||
# 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)
|
||||
|
||||
OMPI_DEF(OMPI_BUILD_CFLAGS "/Od /Gm /EHsc /RTC1 /MDd" "C flags" 1 1)
|
||||
|
||||
#OMPI_DEF(OMPI_BUILD_CFLAGS "/Od /Gm /EHsc /RTC1 /MDd" "C flags" 1 1)
|
||||
OMPI_DEF(OMPI_BUILD_CFLAGS "${CMAKE_C_FLAGS} " "C flags" 1 1)
|
||||
|
||||
SET(OMPI_BUILD_CPPFLAGS "\"-I${OpenMPI_SOURCE_DIR}/
|
||||
-I${OpenMPI_SOURCE_DIR}/opal
|
||||
@ -138,7 +135,8 @@ SET(OMPI_BUILD_CPPFLAGS "\"-I${OpenMPI_SOURCE_DIR}/
|
||||
-I${OpenMPI_SOURCE_DIR}/contrib/platform/win32\"")
|
||||
|
||||
|
||||
OMPI_DEF(OMPI_BUILD_CXXFLAGS "/Od /Gm /EHsc /RTC1 /MDd" "C++ flags" 1 1)
|
||||
#OMPI_DEF(OMPI_BUILD_CXXFLAGS "/Od /Gm /EHsc /RTC1 /MDd" "C++ flags" 1 1)
|
||||
OMPI_DEF(OMPI_BUILD_CXXFLAGS "${CMAKE_CXX_FLAGS} " "C++ flags" 1 1)
|
||||
|
||||
SET(OMPI_BUILD_CXXCPPFLAGS ${OMPI_BUILD_CPPFLAGS})
|
||||
|
||||
@ -154,14 +152,7 @@ OMPI_DEF(OMPI_F90_BUILD_SIZE "small" "F90 build size." 1 1)
|
||||
|
||||
OMPI_DEF(OMPI_BTL_SM_HAVE_KNEM 0 "If btl sm has knem." 0 1)
|
||||
|
||||
IF(WIN32 AND MSVC)
|
||||
INCLUDE(ompi_check_Microsoft)
|
||||
OMPI_DEF(COMPILER_FAMILYNAME MICROSOFT "Compiler family name" 1 1)
|
||||
OMPI_DEF(COMPILER_VERSION ${MSVC_VERSION} "Compiler version" 0 1)
|
||||
OMPI_DEF(OPAL_BUILD_PLATFORM_COMPILER_FAMILYID 14 "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 ${MSVC_VERSION} "Compiler version" 0 1)
|
||||
ENDIF(WIN32 AND MSVC)
|
||||
|
||||
|
||||
|
||||
###################################################################
|
||||
@ -268,7 +259,6 @@ IF (NOT MSVC)
|
||||
# Check headers #
|
||||
###################################################################
|
||||
|
||||
|
||||
OMPI_CHECK_INCLUDE_FILE (alloca.h HAVE_ALLOCA_H)
|
||||
|
||||
OMPI_CHECK_INCLUDE_FILE (arpa/inet.h HAVE_ARPA_INET_H)
|
||||
@ -383,7 +373,6 @@ OMPI_CHECK_INCLUDE_FILE (termios.h HAVE_TERMIOS_H)
|
||||
|
||||
OMPI_CHECK_INCLUDE_FILE (sys/time.h HAVE_TIMERADD)
|
||||
|
||||
|
||||
OMPI_CHECK_INCLUDE_FILE (ucontext.h HAVE_UCONTEXT_H)
|
||||
|
||||
OMPI_CHECK_INCLUDE_FILE (ulimit.h HAVE_ULIMIT_H)
|
||||
@ -396,6 +385,35 @@ OMPI_CHECK_INCLUDE_FILE (utmp.h HAVE_UTMP_H)
|
||||
|
||||
OMPI_CHECK_INCLUDE_FILE (mx_extension.h MX_HAVE_EXTENSIONS_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 functions #
|
||||
@ -716,8 +734,6 @@ IF(WIN32)
|
||||
|
||||
OMPI_DEF(OPAL_ASSEMBLY_ARCH "OMPI_WINDOWS" "Architecture type of assembly to use for atomic operations." 0 1)
|
||||
|
||||
OMPI_DEF(OPAL_HAVE_POSIX_THREADS 0 "Do we have POSIX threads." 0 1)
|
||||
|
||||
OMPI_DEF(OPAL_HAVE_WEAK_SYMBOLS 0 "Whether we have weak symbols or not" 0 1)
|
||||
|
||||
OMPI_DEF(OPAL_HAVE_SOLARIS_THREADS 0 "Do we have native Solaris threads." 0 1)
|
||||
|
@ -17,100 +17,118 @@ IF(IN_USE STREQUAL "0")
|
||||
|
||||
ELSE(IN_USE STREQUAL "0")
|
||||
|
||||
IF(LIBEVENT_CONFIG_DONE)
|
||||
MESSAGE(STATUS "multiple libevent selected, only one is configured.")
|
||||
SET(RESULT FALSE)
|
||||
SET(LIBEVENT_FOUND TRUE CACHE INTERNAL "allow only one event mca.")
|
||||
|
||||
ELSE(LIBEVENT_CONFIG_DONE)
|
||||
SET(LIBEVENT_FOUND TRUE CACHE INTERNAL "allow only one event mca.")
|
||||
MESSAGE(STATUS "configure libevent.")
|
||||
|
||||
MESSAGE(STATUS "configure libevent.")
|
||||
# set up event include directories.
|
||||
INCLUDE_DIRECTORIES ("${CURRENT_PATH}/libevent/compat"
|
||||
"${CURRENT_PATH}/libevent/WIN32-Code/"
|
||||
"${CURRENT_PATH}/libevent/include/"
|
||||
"${CURRENT_PATH}/libevent"
|
||||
"${PROJECT_BINARY_DIR}/mca/event/libevent207/libevent/include/")
|
||||
|
||||
# set up event include directories.
|
||||
INCLUDE_DIRECTORIES ("${CURRENT_PATH}/libevent/compat"
|
||||
"${CURRENT_PATH}/libevent/WIN32-Code/"
|
||||
"${CURRENT_PATH}/libevent/include/"
|
||||
"${CURRENT_PATH}/libevent"
|
||||
"${PROJECT_BINARY_DIR}/mca/event/libevent207/libevent/include/")
|
||||
SET(LIBEVENT_INCLUDE_DIRS ${CURRENT_PATH}/libevent/compat;${CURRENT_PATH}/libevent/WIN32-Code/;${CURRENT_PATH}/libevent/include/;${CURRENT_PATH}/libevent;${PROJECT_BINARY_DIR}/mca/event/libevent207/libevent/include/
|
||||
CACHE INTERNAL "the libevent dirs that have to be included on the top level.")
|
||||
|
||||
SET(LIBEVENT_INCLUDE_DIRS ${CURRENT_PATH}/libevent/compat;${CURRENT_PATH}/libevent/WIN32-Code/;${CURRENT_PATH}/libevent/include/;${CURRENT_PATH}/libevent;${PROJECT_BINARY_DIR}/mca/event/libevent207/libevent/include/
|
||||
CACHE INTERNAL "the libevent dirs that have to be included on the top level.")
|
||||
|
||||
IF(WIN32)
|
||||
IF(WIN32)
|
||||
|
||||
# generating config.h
|
||||
# windows doesn't need this file, just make an empty one
|
||||
FILE(WRITE ${PROJECT_BINARY_DIR}/mca/event/libevent207/libevent/include/config.h
|
||||
" /* config.h. Generated automatically by CMake. */ ")
|
||||
# generating config.h
|
||||
# windows doesn't need this file, just make an empty one
|
||||
FILE(WRITE ${PROJECT_BINARY_DIR}/mca/event/libevent207/libevent/include/config.h
|
||||
" /* config.h. Generated automatically by CMake. */ ")
|
||||
|
||||
SET(RESULT_COMPONENT_FILES
|
||||
${RESULT_COMPONENT_FILES}
|
||||
${CURRENT_PATH}/libevent207_component.c
|
||||
${CURRENT_PATH}/libevent207_module.c
|
||||
#system sources
|
||||
${CURRENT_PATH}/libevent/win32select.c
|
||||
${CURRENT_PATH}/libevent/evthread_win32.c
|
||||
${CURRENT_PATH}/libevent/buffer_iocp.c
|
||||
${CURRENT_PATH}/libevent/event_iocp.c
|
||||
${CURRENT_PATH}/libevent/bufferevent_async.c
|
||||
#core sources
|
||||
${CURRENT_PATH}/libevent/event.c
|
||||
${CURRENT_PATH}/libevent/evthread.c
|
||||
${CURRENT_PATH}/libevent/buffer.c
|
||||
${CURRENT_PATH}/libevent/bufferevent.c
|
||||
${CURRENT_PATH}/libevent/bufferevent_sock.c
|
||||
${CURRENT_PATH}/libevent/bufferevent_filter.c
|
||||
${CURRENT_PATH}/libevent/bufferevent_pair.c
|
||||
${CURRENT_PATH}/libevent/listener.c
|
||||
${CURRENT_PATH}/libevent/bufferevent_ratelim.c
|
||||
${CURRENT_PATH}/libevent/evmap.c
|
||||
${CURRENT_PATH}/libevent/log.c
|
||||
${CURRENT_PATH}/libevent/evutil.c
|
||||
${CURRENT_PATH}/libevent/evutil_rand.c
|
||||
${CURRENT_PATH}/libevent/strlcpy.c
|
||||
${CURRENT_PATH}/libevent/signal.c
|
||||
${CURRENT_PATH}/libevent/event_tagging.c
|
||||
)
|
||||
SET(RESULT_COMPONENT_FILES
|
||||
${RESULT_COMPONENT_FILES}
|
||||
${CURRENT_PATH}/libevent207_component.c
|
||||
${CURRENT_PATH}/libevent207_module.c
|
||||
#system sources
|
||||
${CURRENT_PATH}/libevent/win32select.c
|
||||
${CURRENT_PATH}/libevent/evthread_win32.c
|
||||
${CURRENT_PATH}/libevent/buffer_iocp.c
|
||||
${CURRENT_PATH}/libevent/event_iocp.c
|
||||
${CURRENT_PATH}/libevent/bufferevent_async.c
|
||||
#core sources
|
||||
${CURRENT_PATH}/libevent/event.c
|
||||
${CURRENT_PATH}/libevent/evthread.c
|
||||
${CURRENT_PATH}/libevent/buffer.c
|
||||
${CURRENT_PATH}/libevent/bufferevent.c
|
||||
${CURRENT_PATH}/libevent/bufferevent_sock.c
|
||||
${CURRENT_PATH}/libevent/bufferevent_filter.c
|
||||
${CURRENT_PATH}/libevent/bufferevent_pair.c
|
||||
${CURRENT_PATH}/libevent/listener.c
|
||||
${CURRENT_PATH}/libevent/bufferevent_ratelim.c
|
||||
${CURRENT_PATH}/libevent/evmap.c
|
||||
${CURRENT_PATH}/libevent/log.c
|
||||
${CURRENT_PATH}/libevent/evutil.c
|
||||
${CURRENT_PATH}/libevent/evutil_rand.c
|
||||
${CURRENT_PATH}/libevent/strlcpy.c
|
||||
${CURRENT_PATH}/libevent/signal.c
|
||||
${CURRENT_PATH}/libevent/event_tagging.c
|
||||
)
|
||||
IF(WINDOWS_MINGW)
|
||||
SET_SOURCE_FILES_PROPERTIES(${CURRENT_PATH}/libevent/win32select.c
|
||||
${CURRENT_PATH}/libevent/evthread_win32.c
|
||||
${CURRENT_PATH}/libevent/buffer_iocp.c
|
||||
${CURRENT_PATH}/libevent/bufferevent_async.c
|
||||
${CURRENT_PATH}/libevent/event.c
|
||||
${CURRENT_PATH}/libevent/evthread.c
|
||||
${CURRENT_PATH}/libevent/bufferevent.c
|
||||
${CURRENT_PATH}/libevent/bufferevent_sock.c
|
||||
${CURRENT_PATH}/libevent/bufferevent_filter.c
|
||||
${CURRENT_PATH}/libevent/bufferevent_pair.c
|
||||
${CURRENT_PATH}/libevent/bufferevent_ratelim.c
|
||||
${CURRENT_PATH}/libevent/evmap.c
|
||||
${CURRENT_PATH}/libevent/log.c
|
||||
${CURRENT_PATH}/libevent/evutil_rand.c
|
||||
${CURRENT_PATH}/libevent/strlcpy.c
|
||||
${CURRENT_PATH}/libevent/signal.c
|
||||
${CURRENT_PATH}/libevent/event_tagging.c
|
||||
PROPERTIES COMPILE_FLAGS "-D intptr_t=int -D _INTPTR_T_DEFINED")
|
||||
SET(OBJ_PATH "${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/libopen-pal.dir/mca/event/libevent207/libevent")
|
||||
SET(EVENT_OBJ_FILES "${OBJ_PATH}/*.obj" CACHE INTERNAL "event obj files")
|
||||
ELSEIF(WINDOWS_VS)
|
||||
SET(OBJ_PATH "${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}")
|
||||
# for generating the static library, as opal will not export event API any more.
|
||||
SET(EVENT_OBJ_FILES
|
||||
${OBJ_PATH}/win32select.obj
|
||||
${OBJ_PATH}/evthread_win32.obj
|
||||
${OBJ_PATH}/buffer_iocp.obj
|
||||
${OBJ_PATH}/event_iocp.obj
|
||||
${OBJ_PATH}/bufferevent_async.obj
|
||||
${OBJ_PATH}/event.obj
|
||||
${OBJ_PATH}/evthread.obj
|
||||
${OBJ_PATH}/buffer.obj
|
||||
${OBJ_PATH}/bufferevent.obj
|
||||
${OBJ_PATH}/bufferevent_sock.obj
|
||||
${OBJ_PATH}/bufferevent_filter.obj
|
||||
${OBJ_PATH}/bufferevent_pair.obj
|
||||
${OBJ_PATH}/listener.obj
|
||||
${OBJ_PATH}/bufferevent_ratelim.obj
|
||||
${OBJ_PATH}/evmap.obj
|
||||
${OBJ_PATH}/log.obj
|
||||
${OBJ_PATH}/evutil.obj
|
||||
${OBJ_PATH}/evutil_rand.obj
|
||||
${OBJ_PATH}/strlcpy.obj
|
||||
${OBJ_PATH}/signal.obj
|
||||
${OBJ_PATH}/event_tagging.obj
|
||||
CACHE INTERNAL "event obj files")
|
||||
ENDIF(WINDOWS_MINGW)
|
||||
|
||||
OMPI_DEF(OPAL_HAVE_WORKING_EVENTOPS 1
|
||||
"Whether our event component has working event operations or not if not, then assumedly it only has working timers and signals)." 0 1)
|
||||
OMPI_DEF(OPAL_HAVE_WORKING_EVENTOPS 1
|
||||
"Whether our event component has working event operations or not if not, then assumedly it only has working timers and signals)." 0 1)
|
||||
|
||||
OMPI_DEF(MCA_event_IMPLEMENTATION_HEADER "${CURRENT_PATH}/libevent207.h"
|
||||
"Header to include for event implementation" 1 1)
|
||||
OMPI_DEF(MCA_event_IMPLEMENTATION_HEADER "${CURRENT_PATH}/libevent207.h"
|
||||
"Header to include for event implementation" 1 1)
|
||||
|
||||
# for generating the static library, as opal will not export event API any more.
|
||||
SET(EVENT_OBJ_FILES
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/win32select.obj
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/evthread_win32.obj
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/buffer_iocp.obj
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/event_iocp.obj
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/bufferevent_async.obj
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/event.obj
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/evthread.obj
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/buffer.obj
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/bufferevent.obj
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/bufferevent_sock.obj
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/bufferevent_filter.obj
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/bufferevent_pair.obj
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/listener.obj
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/bufferevent_ratelim.obj
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/evmap.obj
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/log.obj
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/evutil.obj
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/evutil_rand.obj
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/strlcpy.obj
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/signal.obj
|
||||
${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}/event_tagging.obj
|
||||
)
|
||||
SET(LIBEVENT_CONFIG_DONE TRUE CACHE INTERNAL "Libevent config done.")
|
||||
|
||||
ELSE(WIN32)
|
||||
SET(RESULT_COMPONENT_FILES
|
||||
${RESULT_COMPONENT_FILES}
|
||||
)
|
||||
ENDIF(WIN32)
|
||||
ELSE(WIN32)
|
||||
SET(RESULT_COMPONENT_FILES
|
||||
${RESULT_COMPONENT_FILES}
|
||||
)
|
||||
ENDIF(WIN32)
|
||||
|
||||
SET(RESULT TRUE)
|
||||
|
||||
ENDIF(LIBEVENT_CONFIG_DONE)
|
||||
|
||||
ENDIF(IN_USE STREQUAL "0")
|
@ -89,15 +89,29 @@ SET (OPAL_SOURCE_FILES ${OPAL_SOURCE_FILES} ${MCA_FILES})
|
||||
|
||||
ADD_LIBRARY (libopen-pal ${OPAL_SOURCE_FILES})
|
||||
|
||||
|
||||
IF(WINDOWS_MINGW)
|
||||
SET(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIRARIES} -lpthread")
|
||||
SET(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIRARIES} -lpthread")
|
||||
ENDIF(WINDOWS_MINGW)
|
||||
|
||||
# Set compile flags for this target
|
||||
IF (BUILD_SHARED_LIBS)
|
||||
ADD_CUSTOM_COMMAND(TARGET libopen-pal POST_BUILD
|
||||
COMMAND ${OMPI_LIB_CMD} ${EVENT_OBJ_FILES} ${OMPI_LIB_CMD_OUTPUT}${OpenMPI_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event${CMAKE_DEBUG_POSTFIX}.lib
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||||
COMMENT "Generating static event library."
|
||||
)
|
||||
IF(WINDOWS_MINGW)
|
||||
ADD_CUSTOM_COMMAND(TARGET libopen-pal POST_BUILD
|
||||
COMMAND ar -rcs ${OpenMPI_BINARY_DIR}/event${CMAKE_DEBUG_POSTFIX}.lib ${EVENT_OBJ_FILES}
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||||
COMMENT "Generating static event library."
|
||||
)
|
||||
ELSEIF(WINDOWS_VS)
|
||||
ADD_CUSTOM_COMMAND(TARGET libopen-pal POST_BUILD
|
||||
COMMAND ${OMPI_LIB_CMD} ${OMPI_LIB_CMD_OUTPUT}${OpenMPI_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event${CMAKE_DEBUG_POSTFIX}.lib ${EVENT_OBJ_FILES}
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||||
COMMENT "Generating static event library."
|
||||
)
|
||||
ENDIF(WINDOWS_MINGW)
|
||||
|
||||
SET_TARGET_PROPERTIES(libopen-pal PROPERTIES COMPILE_FLAGS "${OMPI_C_DEF_PRE}_USRDLL ${OMPI_C_DEF_PRE}OPAL_EXPORTS")
|
||||
SET_TARGET_PROPERTIES(libopen-pal PROPERTIES COMPILE_FLAGS "${OMPI_C_DEF_PRE}_USRDLL ${OMPI_C_DEF_PRE}OPAL_EXPORTS" PREFIX "" IMPORT_PREFIX "")
|
||||
IF(OPAL_WANT_LIBLTDL AND LIBLTDL_FOUND)
|
||||
INCLUDE_DIRECTORIES(${LIBLTDL_INCLUDE_PATH})
|
||||
TARGET_LINK_LIBRARIES (libopen-pal Ws2_32.lib shlwapi.lib ${LIBLTDL_LIB})
|
||||
|
@ -33,7 +33,7 @@
|
||||
#define opal_socket_errno opal_get_socket_errno()
|
||||
|
||||
/* some of these have been defined in newer version of errno.h*/
|
||||
#if defined(_MSC_VER) && _MSC_VER < 1600
|
||||
#if (defined(__WINDOWS__) && !defined(_MSC_VER)) || _MSC_VER < 1600
|
||||
|
||||
#define EWOULDBLOCK WSAEWOULDBLOCK
|
||||
#define EINPROGRESS WSAEINPROGRESS
|
||||
|
@ -14,9 +14,7 @@ ADD_EXECUTABLE (opal-checkpoint ${OPAL_CHECKPOINT_SOURCE_FILES})
|
||||
ADD_DEPENDENCIES(opal-checkpoint libopen-pal)
|
||||
IF(BUILD_SHARED_LIBS)
|
||||
SET_TARGET_PROPERTIES(opal-checkpoint PROPERTIES
|
||||
COMPILE_FLAGS "${OMPI_C_DEF_PRE}_USRDLL ${OMPI_C_DEF_PRE}OPAL_IMPORTS
|
||||
${OMPI_C_DEF_PRE}OMPI_IMPORTS ${OMPI_C_DEF_PRE}ORTE_IMPORTS
|
||||
${OMPI_CXX_LAN_FLAG}")
|
||||
COMPILE_FLAGS "${OMPI_C_DEF_PRE}_USRDLL ${OMPI_C_DEF_PRE}OPAL_IMPORTS ${OMPI_C_DEF_PRE}OMPI_IMPORTS ${OMPI_C_DEF_PRE}ORTE_IMPORTS ${OMPI_CXX_LAN_FLAG}")
|
||||
ENDIF(BUILD_SHARED_LIBS)
|
||||
|
||||
SET_TARGET_PROPERTIES(opal-checkpoint PROPERTIES
|
||||
|
@ -14,9 +14,7 @@ ADD_EXECUTABLE (opal-restart ${OPAL_RESTART_SOURCE_FILES})
|
||||
ADD_DEPENDENCIES(opal-restart libopen-pal)
|
||||
IF(BUILD_SHARED_LIBS)
|
||||
SET_TARGET_PROPERTIES(opal-restart PROPERTIES
|
||||
COMPILE_FLAGS "${OMPI_C_DEF_PRE}_USRDLL ${OMPI_C_DEF_PRE}OPAL_IMPORTS
|
||||
${OMPI_C_DEF_PRE}OMPI_IMPORTS ${OMPI_C_DEF_PRE}ORTE_IMPORTS
|
||||
${OMPI_CXX_LAN_FLAG}")
|
||||
COMPILE_FLAGS "${OMPI_C_DEF_PRE}_USRDLL ${OMPI_C_DEF_PRE}OPAL_IMPORTS ${OMPI_C_DEF_PRE}OMPI_IMPORTS ${OMPI_C_DEF_PRE}ORTE_IMPORTS ${OMPI_CXX_LAN_FLAG}")
|
||||
ENDIF(BUILD_SHARED_LIBS)
|
||||
|
||||
SET_TARGET_PROPERTIES(opal-restart PROPERTIES
|
||||
|
@ -14,9 +14,7 @@ ADD_EXECUTABLE (opal-wrapper ${OPAL_WRAPPER_SOURCE_FILES})
|
||||
ADD_DEPENDENCIES(opal-wrapper libopen-pal)
|
||||
IF(BUILD_SHARED_LIBS)
|
||||
SET_TARGET_PROPERTIES(opal-wrapper PROPERTIES
|
||||
COMPILE_FLAGS "${OMPI_C_DEF_PRE}_USRDLL ${OMPI_C_DEF_PRE}OPAL_IMPORTS
|
||||
${OMPI_C_DEF_PRE}OMPI_IMPORTS ${OMPI_C_DEF_PRE}ORTE_IMPORTS
|
||||
${OMPI_CXX_LAN_FLAG}")
|
||||
COMPILE_FLAGS "${OMPI_C_DEF_PRE}_USRDLL ${OMPI_C_DEF_PRE}OPAL_IMPORTS ${OMPI_C_DEF_PRE}OMPI_IMPORTS ${OMPI_C_DEF_PRE}ORTE_IMPORTS ${OMPI_CXX_LAN_FLAG}")
|
||||
ENDIF(BUILD_SHARED_LIBS)
|
||||
|
||||
SET_TARGET_PROPERTIES(opal-wrapper PROPERTIES
|
||||
|
@ -416,7 +416,11 @@ int opal_os_dirpath_access(const char *path, const mode_t in_mode ) {
|
||||
#ifndef __WINDOWS__
|
||||
struct stat buf;
|
||||
#else
|
||||
# ifndef _MSC_VER
|
||||
struct stat buf;
|
||||
# else
|
||||
struct __stat64 buf;
|
||||
# endif
|
||||
#endif
|
||||
mode_t loc_mode = S_IRWXU; /* looking for full rights */
|
||||
|
||||
|
@ -145,6 +145,8 @@ struct opal_output_stream_t {
|
||||
*/
|
||||
#if !defined(__WINDOWS__)
|
||||
char *lds_syslog_ident;
|
||||
#elif !defined(_MSC_VER)
|
||||
char *lds_syslog_ident;
|
||||
#else
|
||||
HANDLE lds_syslog_ident;
|
||||
#endif /* !defined(__WINDOWS__) */
|
||||
|
@ -155,12 +155,14 @@ struct clockinfo {
|
||||
#define TIMER_RELTIME 0x0 /* relative timer */
|
||||
#define TIMER_ABSTIME 0x1 /* absolute timer */
|
||||
|
||||
|
||||
#ifndef OMPI_TIMESPEC
|
||||
#define OMPI_TIMESPEC
|
||||
struct timespec
|
||||
{
|
||||
long tv_sec;
|
||||
long tv_nsec;
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
|
@ -85,6 +85,7 @@
|
||||
/* for alloca */
|
||||
#include <malloc.h>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#if defined(OMPI_BUILDING) && OMPI_BUILDING
|
||||
#include "opal/win32/ompi_uio.h"
|
||||
#include "opal/win32/ompi_time.h"
|
||||
@ -95,9 +96,6 @@
|
||||
#include "opal/win32/ompi_socket.h"
|
||||
#endif
|
||||
|
||||
#define MAXPATHLEN _MAX_PATH
|
||||
#define MAXHOSTNAMELEN _MAX_PATH
|
||||
#define PATH_MAX _MAX_PATH
|
||||
#define STDIN_FILENO 0
|
||||
#define STDOUT_FILENO 1
|
||||
#define STDERR_FILENO 2
|
||||
@ -114,12 +112,6 @@ typedef unsigned int uint;
|
||||
#define X_OK R_OK /* no execution right on Windows */
|
||||
#define S_IRWXU (_S_IREAD | _S_IWRITE | _S_IEXEC)
|
||||
|
||||
#define WTERMSIG(EXIT_CODE) (1)
|
||||
#define WIFEXITED(EXIT_CODE) (1)
|
||||
#define WEXITSTATUS(EXIT_CODE) (EXIT_CODE)
|
||||
#define WIFSIGNALED(EXIT_CODE) (0)
|
||||
#define WIFSTOPPED(EXIT_CODE) (0)
|
||||
#define WSTOPSIG(EXIT_CODE) (11)
|
||||
|
||||
/**
|
||||
* Microsoft compiler complain about non conformance of the default UNIX function.
|
||||
@ -131,7 +123,6 @@ typedef unsigned int uint;
|
||||
#define strdup _strdup
|
||||
#define putenv _putenv
|
||||
#define getcwd _getcwd
|
||||
#define mkdir(PATH, MODE) _mkdir((PATH))
|
||||
#define rmdir _rmdir
|
||||
#define chdir _chdir
|
||||
#define chmod _chmod
|
||||
@ -146,7 +137,6 @@ typedef unsigned int uint;
|
||||
#define fileno _fileno
|
||||
#define isatty _isatty
|
||||
#define execvp _execvp
|
||||
#define pipe(array_fd) _pipe(array_fd, 1024, O_BINARY )
|
||||
#define S_ISDIR(STAT_MODE) ((STAT_MODE) & _S_IFDIR)
|
||||
#define S_ISREG(STAT_MODE) ((STAT_MODE) & _S_IFREG)
|
||||
#define strncasecmp _strnicmp
|
||||
@ -157,39 +147,87 @@ typedef unsigned int uint;
|
||||
#define strtok_r strtok_s
|
||||
#define srand48 srand
|
||||
#define lrand48 rand
|
||||
#define nanosleep(tp, rem) Sleep(*tp.tv_sec*1000+*tp.tv_nsec/1000000)
|
||||
#define usleep(t) Sleep(t/1000)
|
||||
#define posix_memalign(p, a, s) *p=_aligned_malloc(s,a)
|
||||
|
||||
#else
|
||||
|
||||
#undef WSABASEERR
|
||||
#include <winsock.h>
|
||||
#if defined(OMPI_BUILDING) && OMPI_BUILDING
|
||||
#include "opal/win32/ompi_uio.h"
|
||||
#include "opal/win32/ompi_utsname.h"
|
||||
#include "opal/win32/ompi_util.h"
|
||||
#include "opal/win32/ompi_inet.h"
|
||||
#include "opal/win32/ompi_misc.h"
|
||||
#include "opal/win32/ompi_socket.h"
|
||||
#endif
|
||||
|
||||
#define strtok_r(s,d,p) *p = strtok(s,d)
|
||||
|
||||
#endif
|
||||
|
||||
#define MAXPATHLEN _MAX_PATH
|
||||
#define MAXHOSTNAMELEN _MAX_PATH
|
||||
#define PATH_MAX _MAX_PATH
|
||||
#define WTERMSIG(EXIT_CODE) (1)
|
||||
#define WIFEXITED(EXIT_CODE) (1)
|
||||
#define WEXITSTATUS(EXIT_CODE) (EXIT_CODE)
|
||||
#define WIFSIGNALED(EXIT_CODE) (0)
|
||||
#define WIFSTOPPED(EXIT_CODE) (0)
|
||||
#define WSTOPSIG(EXIT_CODE) (11)
|
||||
|
||||
#define mkdir(PATH, MODE) _mkdir((PATH))
|
||||
#define nanosleep(tp, rem) Sleep(*tp.tv_sec*1000+*tp.tv_nsec/1000000)
|
||||
#define pipe(array_fd) _pipe(array_fd, 1024, O_BINARY )
|
||||
|
||||
#ifndef UINT64_MAX
|
||||
#define UINT64_MAX 0xffffffffffffffffULL /* 18446744073709551615ULL */
|
||||
#endif
|
||||
#ifndef UINT64_MIN
|
||||
#define UINT64_MIN 0
|
||||
#endif
|
||||
#ifndef INT64_MAX
|
||||
#define INT64_MAX 0x7fffffffffffffffLL /*9223372036854775807LL*/
|
||||
#endif
|
||||
#ifndef INT64_MIN
|
||||
#define INT64_MIN (-0x7fffffffffffffffLL - 1) /* (-9223372036854775807 - 1) */
|
||||
#endif
|
||||
#ifndef UINT32_MAX
|
||||
#define UINT32_MAX _UI32_MAX
|
||||
#define UINT32_MAX 0xffffffff /* 4294967295U */
|
||||
#endif
|
||||
#ifndef UINT32_MIN
|
||||
#define UINT32_MIN _UI32_MIN
|
||||
#define UINT32_MIN 0
|
||||
#endif
|
||||
#ifndef INT32_MAX
|
||||
#define INT32_MAX _I32_MAX
|
||||
#define INT32_MAX 0x7fffffff /* 2147483647 */
|
||||
#endif
|
||||
#ifndef INT32_MIN
|
||||
#define INT32_MIN _I32_MIN
|
||||
#endif
|
||||
#ifndef UINT16_MIN
|
||||
#define UINT16_MIN _UI16_MIN
|
||||
#define INT32_MIN (-0x7fffffff - 1) /* (-2147483647 - 1) */
|
||||
#endif
|
||||
#ifndef UINT16_MAX
|
||||
#define UINT16_MAX _UI16_MAX
|
||||
#define UINT16_MAX 0xffff /* 65535U */
|
||||
#endif
|
||||
#ifndef INT16_MIN
|
||||
#define INT16_MIN _I16_MIN
|
||||
#ifndef UINT16_MIN
|
||||
#define UINT16_MIN 0
|
||||
#endif
|
||||
#ifndef INT16_MAX
|
||||
#define INT16_MAX _I16_MAX
|
||||
#define INT16_MAX 0x7fff /* 32767 */
|
||||
#endif
|
||||
#ifndef INT16_MIN
|
||||
#define INT16_MIN (-0x7fff - 1) /* (-32768) */
|
||||
#endif
|
||||
#ifndef UINT8_MAX
|
||||
#define UINT8_MAX _UI8_MAX
|
||||
#define UINT8_MAX 0xff /* 255U */
|
||||
#endif
|
||||
#ifndef UINT8_MIN
|
||||
#define UINT8_MIN _UI8_MIN
|
||||
#define UINT8_MIN 0
|
||||
#endif
|
||||
#ifndef INT8_MAX
|
||||
#define INT8_MAX 0x7f /* 127 */
|
||||
#endif
|
||||
#ifndef INT8_MIN
|
||||
#define INT8_MIN (-0x7f - 1) /* (-128) */
|
||||
#endif
|
||||
|
||||
/* Make sure we let the compiler know that we support __func__ */
|
||||
|
@ -53,12 +53,23 @@ ADD_LIBRARY (libopen-rte ${ORTE_SOURCE_FILES})
|
||||
|
||||
ADD_DEPENDENCIES(libopen-rte libopen-pal)
|
||||
|
||||
IF(WINDOWS_MINGW)
|
||||
SET(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIRARIES} -lpthread")
|
||||
SET(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIRARIES} -lpthread")
|
||||
ENDIF(WINDOWS_MINGW)
|
||||
|
||||
# Set compile flags for this target
|
||||
IF (BUILD_SHARED_LIBS)
|
||||
SET_TARGET_PROPERTIES(libopen-rte PROPERTIES
|
||||
COMPILE_FLAGS "${OMPI_C_DEF_PRE}_USRDLL ${OMPI_C_DEF_PRE}ORTE_EXPORTS ${OMPI_C_DEF_PRE}OPAL_IMPORTS ${OMPI_CXX_LAN_FLAG}")
|
||||
TARGET_LINK_LIBRARIES(libopen-rte ${OpenMPI_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event${CMAKE_DEBUG_POSTFIX}.lib
|
||||
libopen-pal Ws2_32.lib shlwapi.lib)
|
||||
COMPILE_FLAGS "${OMPI_C_DEF_PRE}_USRDLL ${OMPI_C_DEF_PRE}ORTE_EXPORTS ${OMPI_C_DEF_PRE}OPAL_IMPORTS ${OMPI_CXX_LAN_FLAG}" PREFIX "" IMPORT_PREFIX "")
|
||||
|
||||
IF(WINDOWS_MINGW)
|
||||
TARGET_LINK_LIBRARIES(libopen-rte ${OpenMPI_BINARY_DIR}/event${CMAKE_DEBUG_POSTFIX}.lib
|
||||
libopen-pal Ws2_32.lib shlwapi.lib)
|
||||
ELSEIF(WINDOWS_VS)
|
||||
TARGET_LINK_LIBRARIES(libopen-rte ${OpenMPI_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event${CMAKE_DEBUG_POSTFIX}.lib
|
||||
libopen-pal Ws2_32.lib shlwapi.lib)
|
||||
ENDIF(WINDOWS_MINGW)
|
||||
ELSE (BUILD_SHARED_LIBS)
|
||||
SET_TARGET_PROPERTIES(libopen-rte PROPERTIES COMPILE_FLAGS "${OMPI_C_DEF_PRE}_LIB ${OMPI_CXX_LAN_FLAG}")
|
||||
ENDIF(BUILD_SHARED_LIBS)
|
||||
|
@ -57,6 +57,7 @@
|
||||
#include <pwd.h>
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#include <winsock2.h>
|
||||
#include <comutil.h>
|
||||
#include <Wbemidl.h>
|
||||
@ -65,6 +66,7 @@
|
||||
#pragma comment(lib, "wbemuuid.lib")
|
||||
#pragma comment(lib, "comsuppw.lib")
|
||||
#pragma comment(lib, "Credui.lib")
|
||||
#endif
|
||||
|
||||
#include "opal/mca/installdirs/installdirs.h"
|
||||
#include "opal/mca/base/mca_base_param.h"
|
||||
@ -141,6 +143,13 @@ static const char * orte_plm_process_shell_name[] = {
|
||||
"unknown"
|
||||
};
|
||||
|
||||
/* local global storage of timing variables */
|
||||
static struct timeval joblaunchstart, joblaunchstop;
|
||||
|
||||
/* global storage of active jobid being launched */
|
||||
static orte_jobid_t active_job = ORTE_JOBID_INVALID;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
/*
|
||||
* local functions
|
||||
*/
|
||||
@ -150,9 +159,6 @@ static int get_credential(char *node_name);
|
||||
static char *read_remote_registry(uint32_t root, char *sub_key, char *key, char *remote_node, char *ntlm_auth);
|
||||
|
||||
|
||||
/* local global storage of timing variables */
|
||||
static struct timeval joblaunchstart, joblaunchstop;
|
||||
|
||||
/* local global storage of user credential */
|
||||
static char user_name[CREDUI_MAX_USERNAME_LENGTH+1];
|
||||
static char user_password[CREDUI_MAX_PASSWORD_LENGTH+1];
|
||||
@ -164,8 +170,6 @@ IWbemServices *pSvc_registry = NULL;
|
||||
/* namespace for \hostname\root\cimv2 */
|
||||
IWbemServices *pSvc_cimv2 = NULL;
|
||||
|
||||
/* global storage of active jobid being launched */
|
||||
static orte_jobid_t active_job = ORTE_JOBID_INVALID;
|
||||
|
||||
/**
|
||||
* Init the module
|
||||
@ -664,7 +668,7 @@ cleanup:
|
||||
return pid;
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Check the Shell variable on the specified node
|
||||
@ -1287,8 +1291,12 @@ int orte_plm_process_launch(orte_job_t *jdata)
|
||||
if (NULL != param) free(param);
|
||||
}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
/* launch remote process */
|
||||
pid = wmi_launch_child(prefix_dir, nodes[nnode]->name, argc, exec_argv);
|
||||
#else
|
||||
pid = _spawnve( _P_NOWAIT, exec_path, exec_argv, env);
|
||||
#endif
|
||||
|
||||
if (pid < 0) {
|
||||
failed_launch = true;
|
||||
@ -1396,6 +1404,7 @@ int orte_plm_process_finalize(void)
|
||||
{
|
||||
int rc;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
/* release the locator and service objects*/
|
||||
if(NULL!=pLoc) {
|
||||
pLoc->Release();
|
||||
@ -1410,6 +1419,7 @@ int orte_plm_process_finalize(void)
|
||||
}
|
||||
|
||||
CoUninitialize();
|
||||
#endif
|
||||
|
||||
/* cleanup any pending recvs */
|
||||
if (ORTE_SUCCESS != (rc = orte_plm_base_comm_stop())) {
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user