summaryrefslogtreecommitdiff
path: root/configure.cmake
diff options
context:
space:
mode:
authorDaniel Fischer <df@sun.com>2010-06-18 17:04:15 +0200
committerDaniel Fischer <df@sun.com>2010-06-18 17:04:15 +0200
commit073943cd7dc1b1c897543ffb704b821de942b07b (patch)
tree129482b631bc451c9ff9b99ac55692b6bec2563d /configure.cmake
parentb79631bc7a2cdcb46f34d6e37e1597a6e71f09b1 (diff)
parentd6fe8c47b88faf5074f55d698a9b9af97d17fdd4 (diff)
downloadmariadb-git-073943cd7dc1b1c897543ffb704b821de942b07b.tar.gz
merge
Diffstat (limited to 'configure.cmake')
-rw-r--r--configure.cmake90
1 files changed, 46 insertions, 44 deletions
diff --git a/configure.cmake b/configure.cmake
index 1727e2b2c10..1a44d0e85f4 100644
--- a/configure.cmake
+++ b/configure.cmake
@@ -90,6 +90,13 @@ ENDIF(WITHOUT_DYNAMIC_PLUGINS)
# Large files, common flag
SET(_LARGEFILE_SOURCE 1)
+# If finds the size of a type, set SIZEOF_<type> and HAVE_<type>
+FUNCTION(MY_CHECK_TYPE_SIZE type defbase)
+ CHECK_TYPE_SIZE("${type}" SIZEOF_${defbase})
+ IF(SIZEOF_${defbase})
+ SET(HAVE_${defbase} 1 PARENT_SCOPE)
+ ENDIF()
+ENDFUNCTION()
# Searches function in libraries
# if function is found, sets output parameter result to the name of the library
@@ -108,6 +115,7 @@ FUNCTION(MY_SEARCH_LIBS func libs result)
CHECK_LIBRARY_EXISTS(${lib} ${func} "" HAVE_${func}_IN_${lib})
IF(HAVE_${func}_IN_${lib})
SET(${result} ${lib} PARENT_SCOPE)
+ SET(HAVE_${result} 1 PARENT_SCOPE)
RETURN()
ENDIF()
ENDFOREACH()
@@ -169,6 +177,7 @@ CHECK_INCLUDE_FILES (alloca.h HAVE_ALLOCA_H)
CHECK_INCLUDE_FILES (aio.h HAVE_AIO_H)
CHECK_INCLUDE_FILES (arpa/inet.h HAVE_ARPA_INET_H)
CHECK_INCLUDE_FILES (crypt.h HAVE_CRYPT_H)
+CHECK_INCLUDE_FILES (cxxabi.h HAVE_CXXABI_H)
CHECK_INCLUDE_FILES (dirent.h HAVE_DIRENT_H)
CHECK_INCLUDE_FILES (dlfcn.h HAVE_DLFCN_H)
CHECK_INCLUDE_FILES (execinfo.h HAVE_EXECINFO_H)
@@ -195,7 +204,6 @@ CHECK_INCLUDE_FILES (select.h HAVE_SELECT_H)
CHECK_INCLUDE_FILES (semaphore.h HAVE_SEMAPHORE_H)
CHECK_INCLUDE_FILES (sys/dir.h HAVE_SYS_DIR_H)
CHECK_INCLUDE_FILES (sys/pte.h HAVE_SYS_PTE_H)
-CHECK_INCLUDE_FILES (sys/ptem.h HAVE_SYS_PTEM_H)
CHECK_INCLUDE_FILES (stddef.h HAVE_STDDEF_H)
CHECK_INCLUDE_FILES (stdint.h HAVE_STDINT_H)
CHECK_INCLUDE_FILES (stdlib.h HAVE_STDLIB_H)
@@ -235,6 +243,13 @@ CHECK_INCLUDE_FILES (fnmatch.h HAVE_FNMATCH_H)
CHECK_INCLUDE_FILES (stdarg.h HAVE_STDARG_H)
CHECK_INCLUDE_FILES("stdlib.h;sys/un.h" HAVE_SYS_UN_H)
+IF(HAVE_SYS_STREAM_H)
+ # Needs sys/stream.h on Solaris
+ CHECK_INCLUDE_FILES (sys/stream.h sys/ptem.h HAVE_SYS_PTEM_H)
+ELSE()
+ CHECK_INCLUDE_FILES (sys/ptem.h HAVE_SYS_PTEM_H)
+ENDIF()
+
# Figure out threading library
#
FIND_PACKAGE (Threads)
@@ -458,14 +473,11 @@ set(CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
-D_LARGEFILE_SOURCE -D_LARGE_FILES -D_FILE_OFFSET_BITS=64
-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS)
SET(CMAKE_EXTRA_INCLUDE_FILES signal.h)
-CHECK_TYPE_SIZE(sigset_t SIZEOF_SIGSET_T)
-IF(SIZEOF_SIGSET_T)
- SET(HAVE_SIGSET_T 1)
-ENDIF()
+MY_CHECK_TYPE_SIZE(sigset_t SIGSET_T)
IF(NOT SIZEOF_SIGSET_T)
SET(sigset_t int)
ENDIF()
-CHECK_TYPE_SIZE(mode_t SIZEOF_MODE_T)
+MY_CHECK_TYPE_SIZE(mode_t MODE_T)
IF(NOT SIZEOF_MODE_T)
SET(mode_t int)
ENDIF()
@@ -478,43 +490,41 @@ ENDIF(HAVE_STDINT_H)
IF(NOT APPLE)
# Prevent some checks on OSX, they return ambigious results
# on universal 32/64 bit binariess
- CHECK_TYPE_SIZE("char *" SIZEOF_CHARP)
- CHECK_TYPE_SIZE(long SIZEOF_LONG)
- CHECK_TYPE_SIZE(size_t SIZEOF_SIZE_T)
+ MY_CHECK_TYPE_SIZE("void *" VOIDP)
+ MY_CHECK_TYPE_SIZE("char *" CHARP)
+ MY_CHECK_TYPE_SIZE(long LONG)
+ MY_CHECK_TYPE_SIZE(size_t SIZE_T)
ENDIF()
-CHECK_TYPE_SIZE(char SIZEOF_CHAR)
-CHECK_TYPE_SIZE(short SIZEOF_SHORT)
-CHECK_TYPE_SIZE(int SIZEOF_INT)
-CHECK_TYPE_SIZE("long long" SIZEOF_LONG_LONG)
+MY_CHECK_TYPE_SIZE(char CHAR)
+MY_CHECK_TYPE_SIZE(short SHORT)
+MY_CHECK_TYPE_SIZE(int INT)
+MY_CHECK_TYPE_SIZE("long long" LONG_LONG)
SET(CMAKE_EXTRA_INCLUDE_FILES stdio.h sys/types.h)
-CHECK_TYPE_SIZE(off_t SIZEOF_OFF_T)
-CHECK_TYPE_SIZE(uchar SIZEOF_UCHAR)
-CHECK_TYPE_SIZE(uint SIZEOF_UINT)
-CHECK_TYPE_SIZE(ulong SIZEOF_ULONG)
-CHECK_TYPE_SIZE(int8 SIZEOF_INT8)
-CHECK_TYPE_SIZE(uint8 SIZEOF_UINT8)
-CHECK_TYPE_SIZE(int16 SIZEOF_INT16)
-CHECK_TYPE_SIZE(uint16 SIZEOF_UINT16)
-CHECK_TYPE_SIZE(int32 SIZEOF_INT32)
-CHECK_TYPE_SIZE(uint32 SIZEOF_UINT32)
-CHECK_TYPE_SIZE(u_int32_t SIZEOF_U_INT32_T)
-CHECK_TYPE_SIZE(int64 SIZEOF_INT64)
-CHECK_TYPE_SIZE(uint64 SIZEOF_UINT64)
+MY_CHECK_TYPE_SIZE(off_t OFF_T)
+MY_CHECK_TYPE_SIZE(uchar UCHAR)
+MY_CHECK_TYPE_SIZE(uint UINT)
+MY_CHECK_TYPE_SIZE(ulong ULONG)
+MY_CHECK_TYPE_SIZE(int8 INT8)
+MY_CHECK_TYPE_SIZE(uint8 UINT8)
+MY_CHECK_TYPE_SIZE(int16 INT16)
+MY_CHECK_TYPE_SIZE(uint16 UINT16)
+MY_CHECK_TYPE_SIZE(int32 INT32)
+MY_CHECK_TYPE_SIZE(uint32 UINT32)
+MY_CHECK_TYPE_SIZE(u_int32_t U_INT32_T)
+MY_CHECK_TYPE_SIZE(int64 INT64)
+MY_CHECK_TYPE_SIZE(uint64 UINT64)
SET (CMAKE_EXTRA_INCLUDE_FILES sys/types.h)
-CHECK_TYPE_SIZE(bool SIZEOF_BOOL)
+MY_CHECK_TYPE_SIZE(bool BOOL)
SET(CMAKE_EXTRA_INCLUDE_FILES)
IF(HAVE_SYS_SOCKET_H)
SET(CMAKE_EXTRA_INCLUDE_FILES sys/socket.h)
ENDIF(HAVE_SYS_SOCKET_H)
-CHECK_TYPE_SIZE(socklen_t SIZEOF_SOCKLEN_T)
+MY_CHECK_TYPE_SIZE(socklen_t SOCKLEN_T)
SET(CMAKE_EXTRA_INCLUDE_FILES)
IF(HAVE_IEEEFP_H)
SET(CMAKE_EXTRA_INCLUDE_FILES ieeefp.h)
- CHECK_TYPE_SIZE(fp_except SIZEOF_FP_EXCEPT)
- IF(SIZEOF_FP_EXCEPT)
- SET(HAVE_FP_EXCEPT TRUE)
- ENDIF()
+ MY_CHECK_TYPE_SIZE(fp_except FP_EXCEPT)
ENDIF()
@@ -678,6 +688,7 @@ int main(int ac, char **av) {}
" SIGNAL_RETURN_TYPE_IS_VOID)
IF(SIGNAL_RETURN_TYPE_IS_VOID)
SET(RETSIGTYPE void)
+ SET(VOID_SIGHANDLER 1)
ELSE(SIGNAL_RETURN_TYPE_IS_VOID)
SET(RETSIGTYPE int)
ENDIF(SIGNAL_RETURN_TYPE_IS_VOID)
@@ -777,7 +788,7 @@ ENDIF(NOT HAVE_POSIX_SIGNALS)
# Assume regular sprintf
SET(SPRINTFS_RETURNS_INT 1)
-IF(CMAKE_COMPILER_IS_GNUXX)
+IF(CMAKE_COMPILER_IS_GNUXX AND HAVE_CXXABI_H)
CHECK_CXX_SOURCE_COMPILES("
#include <cxxabi.h>
int main(int argc, char **argv)
@@ -787,9 +798,6 @@ CHECK_CXX_SOURCE_COMPILES("
return 0;
}"
HAVE_ABI_CXA_DEMANGLE)
-IF(HAVE_ABI_CXA_DEMANGLE)
- SET(HAVE_CXXABI_H 1)
-ENDIF()
ENDIF()
CHECK_C_SOURCE_COMPILES("
@@ -983,14 +991,8 @@ ELSEIF(WIN32)
SET(CMAKE_EXTRA_INCLUDE_FILES ${CMAKE_EXTRA_INCLUDE_FILES} winsock2.h ws2ipdef.h)
ENDIF()
-CHECK_TYPE_SIZE("struct sockaddr_in6" SIZEOF_SOCKADDR_IN6)
-CHECK_TYPE_SIZE("struct in6_addr" SIZEOF_IN6_ADDR)
-IF(SIZEOF_SOCKADDR_IN6)
- SET(HAVE_STRUCT_SOCKADDR_IN6 1)
-ENDIF()
-IF(SIZEOF_IN6_ADDR)
- SET(HAVE_STRUCT_IN6_ADDR 1)
-ENDIF()
+MY_CHECK_TYPE_SIZE("struct sockaddr_in6" SOCKADDR_IN6)
+MY_CHECK_TYPE_SIZE("struct in6_addr" IN6_ADDR)
IF(HAVE_STRUCT_SOCKADDR_IN6 OR HAVE_STRUCT_IN6_ADDR)
SET(HAVE_IPV6 TRUE CACHE INTERNAL "")