# Check headers include(CheckIncludeFile) include(CheckIncludeFiles) check_include_files(dlfcn.h HAVE_DLFCN_H) check_include_files(inttypes.h HAVE_INTTYPES_H) check_include_files(limits.h HAVE_LIMITS_H) check_include_files(memory.h HAVE_MEMORY_H) check_include_files(net/errno.h HAVE_NET_ERRNO_H) check_include_files(stdint.h HAVE_STDINT_H) check_include_files(stdlib.h HAVE_STDLIB_H) check_include_files(strings.h HAVE_STRINGS_H) check_include_files(string.h HAVE_STRING_H) check_include_files(sys/param.h HAVE_SYS_PARAM_H) check_include_files(sys/stat.h HAVE_SYS_STAT_H ) check_include_files(sys/types.h HAVE_SYS_TYPES_H ) check_include_files(unistd.h HAVE_UNISTD_H ) check_include_files(dirent.h HAVE_DIRENT_H) check_include_files(limits.h HAVE_LIMITS_H) check_include_files(alloca.h HAVE_ALLOCA_H ) check_include_files(stdint.h HAVE_STDINT_H ) check_include_files(sys/mman.h HAVE_SYS_MMAN_H) check_include_files(errno.h HAVE_ERRNO_H) check_include_files(float.h HAVE_FLOAT_H) check_include_files(sys/wait.h HAVE_SYS_WAIT_H) check_include_files(values.h HAVE_VALUES_H) check_include_files(stdarg.h HAVE_STDARG_H) # Check functions include(CheckFunctionExists) check_function_exists(fseek64 HAVE_FSEEK64) check_function_exists(open64 HAVE_OPEN64) check_function_exists(memcpy HAVE_MEMCPY) check_function_exists(mmap HAVE_MMAP) check_function_exists(lseek64 HAVE_LSEEK64) set(CMAKE_EXTRA_INCLUDE_FILES math.h) if(NOT WIN32) set(CMAKE_REQUIRED_LIBRARIES m) endif() check_function_exists(round HAVE_ROUND) set(CMAKE_EXTRA_INCLUDE_FILES) set(CMAKE_REQUIRED_LIBRARIES) # Check types include ( CheckTypeSize ) check_type_size ( "long double" HAVE_LONG_DOUBLE ) check_type_size ( "double" SIZEOF_DOUBLE ) check_type_size ( "long double" SIZEOF_LONG_DOUBLE ) check_type_size ( "void*" SIZEOF_VOID_P ) # set(CMAKE_EXTRA_INCLUDE_FILES sys/stat.h) # check_type_size("struct stat64" _LARGEFILE64_SOURCE) # set(CMAKE_EXTRA_INCLUDE_FILES) # Check symbols include(CheckSymbolExists) # Custom checks... include (CheckCSourceCompiles) check_c_source_compiles("#include int main () { off64_t offset; return 0;}" HAVE_TYPE_OFF64_T) check_c_source_compiles("#include int main () { struct stat64 p; return 0;}" HAVE_STRUCT_STAT64) check_c_source_compiles("#include #include int main () { struct dirent64 p; return 0;}" HAVE_STRUCT_DIRENT64) check_c_source_compiles("#include int main () {struct stat64 buf; int i = stat64(\"/\", &buf); return 0;}" NO_LARGEFILE64_SOURCE) if(NOT NO_LARGEFILE64_SOURCE) check_c_source_compiles("#define _LARGEFILE64_SOURCE 1 #include int main () {struct stat64 buf; int i = stat64(\"/\", &buf); return 0;}" _LARGEFILE64_SOURCE) endif(NOT NO_LARGEFILE64_SOURCE) check_c_source_compiles("#include int main () {char *p = (char *)strtoll; char *q = (char *)strtoull; return 0;}" NO_ISOC99_SOURCE) if(NOT NO_ISOC99_SOURCE) check_c_source_compiles("#define _ISOC99_SOURCE 1 #include int main () {char *p = (char *)strtoll; char *q = (char *)strtoull; return 0;}" _ISOC99_SOURCE) endif(NOT NO_ISOC99_SOURCE) check_c_source_compiles("#include int main () {char *p = (char *)open64; return 0;}" NO_LARGEFILE_SOURCE64) if(NOT NO_LARGEFILE_SOURCE64) check_c_source_compiles("#define _LARGEFILE_SOURCE64 1 #include int main () {char *p = (char *)open64; return 0;}" _LARGEFILE_SOURCE64) endif(NOT NO_LARGEFILE_SOURCE64) # See if the compiler knows natively about __int64 set(tcl_cv_type_64bit "none") check_c_source_compiles("int main () {__int64 value = (__int64) 0; return 0;}" HAS___int64) if(HAS___int64) set(tcl_type_64bit "__int64") else(HAS___int64) set(tcl_type_64bit "long long") endif(HAS___int64) check_c_source_compiles("int main () {switch (0) {case 1: case (sizeof(${tcl_type_64bit})==sizeof(long)): ; }; return 0;}" HAS_WIDE_INT_NE_LONG) if(HAS_WIDE_INT_NE_LONG) set(tcl_cv_type_64bit ${tcl_type_64bit}) endif(HAS_WIDE_INT_NE_LONG) if(${tcl_cv_type_64bit} STREQUAL "none") set(TCL_WIDE_INT_IS_LONG 1) elseif((${tcl_cv_type_64bit} STREQUAL "__int64") AND WIN32) else(${tcl_cv_type_64bit} STREQUAL "none") set(TCL_WIDE_INT_TYPE ${tcl_cv_type_64bit}) endif(${tcl_cv_type_64bit} STREQUAL "none") # Check for ANSI C header files... # ========================================================================== message(STATUS "Cheking for ANSI C header files...") if(HAVE_STDLIB_H AND HAVE_STDARG_H AND HAVE_STRING_H AND HAVE_FLOAT_H) set(ac_cv_header_stdc ON) endif(HAVE_STDLIB_H AND HAVE_STDARG_H AND HAVE_STRING_H AND HAVE_FLOAT_H) if(ac_cv_header_stdc) # SunOS 4.x string.h does not declare mem*, contrary to ANSI. SET(CMAKE_EXTRA_INCLUDE_FILES string.h) check_function_exists(memchr ac_cv_header_stdc) SET(CMAKE_EXTRA_INCLUDE_FILES) endif(ac_cv_header_stdc) if(ac_cv_header_stdc) # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. SET(CMAKE_EXTRA_INCLUDE_FILES stdlib.h) check_function_exists(free ac_cv_header_stdc) SET(CMAKE_EXTRA_INCLUDE_FILES) endif(ac_cv_header_stdc) if(ac_cv_header_stdc) set(STDC_HEADERS 1) endif(ac_cv_header_stdc) if(NOT HAVE_DIRENT_H) set(NO_DIRENT_H 1) endif() if(NOT HAVE_DLFCN_H) set(NO_DLFCN_H 1) endif() if(NOT HAVE_ERRNO_H) set(NO_ERRNO_H 1) endif() if(NOT HAVE_FLOAT_H) set(NO_FLOAT_H 1) endif() if(NOT HAVE_LIMITS_H) set(NO_LIMITS_H 1) endif() if(NOT HAVE_SYS_WAIT_H) set(NO_SYS_WAIT_H 1) endif() if(NOT HAVE_VALUES_H) set(NO_VALUES_H 1) endif() if(NOT HAVE_STDLIB_H) set(NO_STDLIB_H 1) endif() if(NOT HAVE_STRING_H) set(NO_STRING_H 1) endif() if(NOT HAVE_ROUND) set(NO_HAVE_ROUND 1) endif() if(BUILD_STATIC_LIBS) set(STATIC_BUILD 1) endif(BUILD_STATIC_LIBS)