From 88e8b66cd398b4cc166d2b50069d9ef9dd5f195e Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 25 Apr 2012 14:15:56 +0000 Subject: -LRN: special W32 function checks; It forgoes AC_CHECK_FUNCS for some functions in favour of manual AC_LINK_IFELSE, which is necessary to check for API with stdcall interface (i.e. winsock). --- configure.ac | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 94 insertions(+), 1 deletion(-) (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac index e42c6bcaf..0af7f5935 100644 --- a/configure.ac +++ b/configure.ac @@ -68,6 +68,8 @@ fi # Use Linux interface name unless the OS has a different preference DEFAULT_INTERFACE="\"eth0\"" +funcstocheck="socket select inet_ntoa getnameinfo gethostname gethostbyname gethostbyaddr getaddrinfo" + # Check system type case "$host_os" in *darwin* | *rhapsody* | *macosx*) @@ -158,6 +160,7 @@ netbsd*) LIBPREFIX=lib DLLDIR=bin UNIXONLY="" + funcstocheck="" ;; *) AC_MSG_RESULT(Unrecognised OS $host_os) @@ -686,7 +689,7 @@ AC_FUNC_VPRINTF AC_HEADER_SYS_WAIT AC_TYPE_OFF_T AC_TYPE_UID_T -AC_CHECK_FUNCS([floor gethostname memmove rmdir strncasecmp strrchr strtol atoll dup2 fdatasync ftruncate gettimeofday memset mkdir mkfifo select socket strcasecmp strchr strdup strerror strstr clock_gettime getrusage rand uname setlocale getcwd mktime gmtime_r gmtime strlcpy strlcat ftruncate stat64 sbrk mmap mremap setrlimit sysconf gethostbyaddr initgroups getifaddrs freeifaddrs getnameinfo getaddrinfo inet_ntoa localtime_r nl_langinfo putenv realpath strndup gethostbyname2 gethostbyname getpeerucred getpeereid setresuid]) +AC_CHECK_FUNCS([floor memmove rmdir strncasecmp strrchr strtol atoll dup2 fdatasync ftruncate gettimeofday memset mkdir mkfifo strcasecmp strchr strdup strerror strstr clock_gettime getrusage rand uname setlocale getcwd mktime gmtime_r gmtime strlcpy strlcat ftruncate stat64 sbrk mmap mremap setrlimit sysconf initgroups getifaddrs freeifaddrs localtime_r nl_langinfo putenv realpath strndup gethostbyname2 gethostbyname getpeerucred getpeereid setresuid $funcstocheck]) # restore LIBS LIBS=$SAVE_LIBS @@ -861,6 +864,96 @@ AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"]) if test $build_target = "mingw" then workarounds=1 + +AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#include + ],[ + int s = socket (0, 0, 0);]) + ],[ + AC_DEFINE_UNQUOTED([HAVE_SOCKET],1,[Define this if socket() is available]) + ],[ + AC_DEFINE_UNQUOTED([HAVE_SOCKET],0,[Define this if socket() is available]) + ]) + +AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#include + ],[ + int s = select (0, NULL, NULL, NULL, NULL);]) + ],[ + AC_DEFINE_UNQUOTED([HAVE_SELECT],1,[Define this if select() is available]) + ],[ + AC_DEFINE_UNQUOTED([HAVE_SELECT],0,[Define this if select() is available]) + ]) + +AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#include + ],[ + struct in_addr i; + char *s = inet_ntoa (i);]) + ],[ + AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],1,[Define this if inet_ntoa() is available]) + ],[ + AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],0,[Define this if inet_ntoa() is available]) + ]) + +AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#include + ],[ + int s = getnameinfo (NULL, 0, NULL, 0, NULL, 0, 0);]) + ],[ + AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],1,[Define this if getnameinfo() is available]) + ],[ + AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],0,[Define this if getnameinfo() is available]) + ]) + +AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#include + ],[ + int s = gethostname (NULL, 0);]) + ],[ + AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],1,[Define this if gethostname() is available]) + ],[ + AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],0,[Define this if gethostname() is available]) + ]) + +AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#include + ],[ + void *s = gethostbyname (NULL);]) + ],[ + AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],1,[Define this if gethostbyname() is available]) + ],[ + AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],0,[Define this if gethostbyname() is available]) + ]) + +AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#include + ],[ + void *s = gethostbyaddr (NULL, 0, 0);]) + ],[ + AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],1,[Define this if gethostbyaddr() is available]) + ],[ + AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],0,[Define this if gethostbyaddr() is available]) + ]) + +AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#include + ],[ + int s = getaddrinfo (NULL, NULL, NULL, NULL);]) + ],[ + AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available]) + ],[ + AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available]) + ]) + else AC_MSG_CHECKING(whether to enable windows workarounds) AC_ARG_ENABLE([windows_workarounds], -- cgit v1.2.3