Blame m4/sockpfaf.m4

Packit 8f70b4
# sockpfaf.m4 serial 8
Packit 8f70b4
dnl Copyright (C) 2004, 2006, 2009-2018 Free Software Foundation, Inc.
Packit 8f70b4
dnl This file is free software; the Free Software Foundation
Packit 8f70b4
dnl gives unlimited permission to copy and/or distribute it,
Packit 8f70b4
dnl with or without modifications, as long as this notice is preserved.
Packit 8f70b4
Packit 8f70b4
dnl Test for some common socket protocol families (PF_INET, PF_INET6, ...)
Packit 8f70b4
dnl and some common address families (AF_INET, AF_INET6, ...).
Packit 8f70b4
dnl This test assumes that a system supports an address family if and only if
Packit 8f70b4
dnl it supports the corresponding protocol family.
Packit 8f70b4
Packit 8f70b4
dnl From Bruno Haible.
Packit 8f70b4
Packit 8f70b4
AC_DEFUN([gl_SOCKET_FAMILIES],
Packit 8f70b4
[
Packit 8f70b4
  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
Packit 8f70b4
  AC_CHECK_HEADERS_ONCE([netinet/in.h])
Packit 8f70b4
Packit 8f70b4
  AC_MSG_CHECKING([for IPv4 sockets])
Packit 8f70b4
  AC_CACHE_VAL([gl_cv_socket_ipv4],
Packit 8f70b4
    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
Packit 8f70b4
#ifdef HAVE_SYS_SOCKET_H
Packit 8f70b4
#include <sys/socket.h>
Packit 8f70b4
#endif
Packit 8f70b4
#ifdef HAVE_NETINET_IN_H
Packit 8f70b4
#include <netinet/in.h>
Packit 8f70b4
#endif
Packit 8f70b4
#ifdef HAVE_WINSOCK2_H
Packit 8f70b4
#include <winsock2.h>
Packit 8f70b4
#endif]],
Packit 8f70b4
[[int x = AF_INET; struct in_addr y; struct sockaddr_in z;
Packit 8f70b4
 if (&x && &y && &z) return 0;]])],
Packit 8f70b4
       gl_cv_socket_ipv4=yes, gl_cv_socket_ipv4=no)])
Packit 8f70b4
  AC_MSG_RESULT([$gl_cv_socket_ipv4])
Packit 8f70b4
  if test $gl_cv_socket_ipv4 = yes; then
Packit 8f70b4
    AC_DEFINE([HAVE_IPV4], [1], [Define to 1 if <sys/socket.h> defines AF_INET.])
Packit 8f70b4
  fi
Packit 8f70b4
Packit 8f70b4
  AC_MSG_CHECKING([for IPv6 sockets])
Packit 8f70b4
  AC_CACHE_VAL([gl_cv_socket_ipv6],
Packit 8f70b4
    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
Packit 8f70b4
#ifdef HAVE_SYS_SOCKET_H
Packit 8f70b4
#include <sys/socket.h>
Packit 8f70b4
#endif
Packit 8f70b4
#ifdef HAVE_NETINET_IN_H
Packit 8f70b4
#include <netinet/in.h>
Packit 8f70b4
#endif
Packit 8f70b4
#ifdef HAVE_WINSOCK2_H
Packit 8f70b4
#include <winsock2.h>
Packit 8f70b4
#endif
Packit 8f70b4
#ifdef HAVE_WS2TCPIP_H
Packit 8f70b4
#include <ws2tcpip.h>
Packit 8f70b4
#endif]],
Packit 8f70b4
[[int x = AF_INET6; struct in6_addr y; struct sockaddr_in6 z;
Packit 8f70b4
 if (&x && &y && &z) return 0;]])],
Packit 8f70b4
       gl_cv_socket_ipv6=yes, gl_cv_socket_ipv6=no)])
Packit 8f70b4
  AC_MSG_RESULT([$gl_cv_socket_ipv6])
Packit 8f70b4
  if test $gl_cv_socket_ipv6 = yes; then
Packit 8f70b4
    AC_DEFINE([HAVE_IPV6], [1], [Define to 1 if <sys/socket.h> defines AF_INET6.])
Packit 8f70b4
  fi
Packit 8f70b4
])
Packit 8f70b4
Packit 8f70b4
AC_DEFUN([gl_SOCKET_FAMILY_UNIX],
Packit 8f70b4
[
Packit 8f70b4
  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
Packit 8f70b4
  AC_CHECK_HEADERS_ONCE([sys/un.h])
Packit 8f70b4
Packit 8f70b4
  AC_MSG_CHECKING([for UNIX domain sockets])
Packit 8f70b4
  AC_CACHE_VAL([gl_cv_socket_unix],
Packit 8f70b4
    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
Packit 8f70b4
#ifdef HAVE_SYS_SOCKET_H
Packit 8f70b4
#include <sys/socket.h>
Packit 8f70b4
#endif
Packit 8f70b4
#ifdef HAVE_SYS_UN_H
Packit 8f70b4
#include <sys/un.h>
Packit 8f70b4
#endif
Packit 8f70b4
#ifdef HAVE_WINSOCK2_H
Packit 8f70b4
#include <winsock2.h>
Packit 8f70b4
#endif]],
Packit 8f70b4
[[int x = AF_UNIX; struct sockaddr_un y;
Packit 8f70b4
 if (&x && &y) return 0;]])],
Packit 8f70b4
       gl_cv_socket_unix=yes, gl_cv_socket_unix=no)])
Packit 8f70b4
  AC_MSG_RESULT([$gl_cv_socket_unix])
Packit 8f70b4
  if test $gl_cv_socket_unix = yes; then
Packit 8f70b4
    AC_DEFINE([HAVE_UNIXSOCKET], [1], [Define to 1 if <sys/socket.h> defines AF_UNIX.])
Packit 8f70b4
  fi
Packit 8f70b4
])