1 # sys_socket_h.m4 serial 6
2 dnl Copyright (C) 2005-2008 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
7 dnl From Simon Josefsson.
9 AC_DEFUN([gl_HEADER_SYS_SOCKET],
11 AC_CACHE_CHECK([whether <sys/socket.h> is self-contained],
12 [gl_cv_header_sys_socket_h_selfcontained],
14 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]], [[]])],
15 [gl_cv_header_sys_socket_h_selfcontained=yes],
16 [gl_cv_header_sys_socket_h_selfcontained=no])
18 if test $gl_cv_header_sys_socket_h_selfcontained = yes; then
20 dnl If the shutdown function exists, <sys/socket.h> should define
21 dnl SHUT_RD, SHUT_WR, SHUT_RDWR.
22 AC_CHECK_FUNCS([shutdown])
23 if test $ac_cv_func_shutdown = yes; then
24 AC_CACHE_CHECK([whether <sys/socket.h> defines the SHUT_* macros],
25 [gl_cv_header_sys_socket_h_shut],
28 [AC_LANG_PROGRAM([[#include <sys/socket.h>]],
29 [[int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };]])],
30 [gl_cv_header_sys_socket_h_shut=yes],
31 [gl_cv_header_sys_socket_h_shut=no])
33 if test $gl_cv_header_sys_socket_h_shut = no; then
34 SYS_SOCKET_H='sys/socket.h'
38 SYS_SOCKET_H='sys/socket.h'
40 if test -n "$SYS_SOCKET_H"; then
41 dnl Check prerequisites of the <sys/socket.h> replacement.
42 gl_CHECK_NEXT_HEADERS([sys/socket.h])
43 if test $ac_cv_header_sys_socket_h = yes; then
49 dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make
50 dnl the check for those headers unconditional; yet cygwin reports
51 dnl that the headers are present but cannot be compiled (since on
52 dnl cygwin, all socket information should come from sys/socket.h).
53 AC_CHECK_HEADERS([winsock2.h ws2tcpip.h])
54 if test $ac_cv_header_winsock2_h = yes; then
59 if test $ac_cv_header_ws2tcpip_h = yes; then
65 AC_SUBST([HAVE_SYS_SOCKET_H])
66 AC_SUBST([HAVE_WINSOCK2_H])
67 AC_SUBST([HAVE_WS2TCPIP_H])
69 AC_SUBST([SYS_SOCKET_H])