Fix underquoting of AC_LANG_PROGRAM arguments.
[gnulib.git] / m4 / sys_socket_h.m4
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.
6
7 dnl From Simon Josefsson.
8
9 AC_DEFUN([gl_HEADER_SYS_SOCKET],
10 [
11   AC_CACHE_CHECK([whether <sys/socket.h> is self-contained],
12     [gl_cv_header_sys_socket_h_selfcontained],
13     [
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])
17     ])
18   if test $gl_cv_header_sys_socket_h_selfcontained = yes; then
19     SYS_SOCKET_H=''
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],
26         [
27           AC_COMPILE_IFELSE(
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])
32         ])
33       if test $gl_cv_header_sys_socket_h_shut = no; then
34         SYS_SOCKET_H='sys/socket.h'
35       fi
36     fi
37   else
38     SYS_SOCKET_H='sys/socket.h'
39   fi
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
44       HAVE_SYS_SOCKET_H=1
45       HAVE_WINSOCK2_H=0
46       HAVE_WS2TCPIP_H=0
47     else
48       HAVE_SYS_SOCKET_H=0
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
55         HAVE_WINSOCK2_H=1
56       else
57         HAVE_WINSOCK2_H=0
58       fi
59       if test $ac_cv_header_ws2tcpip_h = yes; then
60         HAVE_WS2TCPIP_H=1
61       else
62         HAVE_WS2TCPIP_H=0
63       fi
64     fi
65     AC_SUBST([HAVE_SYS_SOCKET_H])
66     AC_SUBST([HAVE_WINSOCK2_H])
67     AC_SUBST([HAVE_WS2TCPIP_H])
68   fi
69   AC_SUBST([SYS_SOCKET_H])
70 ])