Blame m4/socketlib.m4

Packit Service fdd496
# socketlib.m4 serial 1
Packit Service fdd496
dnl Copyright (C) 2008-2017 Free Software Foundation, Inc.
Packit Service fdd496
dnl This file is free software; the Free Software Foundation
Packit Service fdd496
dnl gives unlimited permission to copy and/or distribute it,
Packit Service fdd496
dnl with or without modifications, as long as this notice is preserved.
Packit Service fdd496
Packit Service fdd496
dnl gl_SOCKETLIB
Packit Service fdd496
dnl Determines the library to use for socket functions.
Packit Service fdd496
dnl Sets and AC_SUBSTs LIBSOCKET.
Packit Service fdd496
Packit Service fdd496
AC_DEFUN([gl_SOCKETLIB],
Packit Service fdd496
[
Packit Service fdd496
  gl_PREREQ_SYS_H_WINSOCK2 dnl for HAVE_WINSOCK2_H
Packit Service fdd496
  LIBSOCKET=
Packit Service fdd496
  if test $HAVE_WINSOCK2_H = 1; then
Packit Service fdd496
    dnl Native Windows API (not Cygwin).
Packit Service fdd496
    AC_CACHE_CHECK([if we need to call WSAStartup in winsock2.h and -lws2_32],
Packit Service fdd496
                   [gl_cv_func_wsastartup], [
Packit Service fdd496
      gl_save_LIBS="$LIBS"
Packit Service fdd496
      LIBS="$LIBS -lws2_32"
Packit Service fdd496
      AC_LINK_IFELSE([AC_LANG_PROGRAM([[
Packit Service fdd496
#ifdef HAVE_WINSOCK2_H
Packit Service fdd496
# include <winsock2.h>
Packit Service fdd496
#endif]], [[
Packit Service fdd496
          WORD wVersionRequested = MAKEWORD(1, 1);
Packit Service fdd496
          WSADATA wsaData;
Packit Service fdd496
          int err = WSAStartup(wVersionRequested, &wsaData);
Packit Service fdd496
          WSACleanup ();]])],
Packit Service fdd496
        gl_cv_func_wsastartup=yes, gl_cv_func_wsastartup=no)
Packit Service fdd496
      LIBS="$gl_save_LIBS"
Packit Service fdd496
    ])
Packit Service fdd496
    if test "$gl_cv_func_wsastartup" = "yes"; then
Packit Service fdd496
      AC_DEFINE([WINDOWS_SOCKETS], [1], [Define if WSAStartup is needed.])
Packit Service fdd496
      LIBSOCKET='-lws2_32'
Packit Service fdd496
    fi
Packit Service fdd496
  else
Packit Service fdd496
    dnl Unix API.
Packit Service fdd496
    dnl Solaris has most socket functions in libsocket.
Packit Service fdd496
    dnl Haiku has most socket functions in libnetwork.
Packit Service fdd496
    dnl BeOS has most socket functions in libnet.
Packit Service fdd496
    AC_CACHE_CHECK([for library containing setsockopt], [gl_cv_lib_socket], [
Packit Service fdd496
      gl_cv_lib_socket=
Packit Service fdd496
      AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern
Packit Service fdd496
#ifdef __cplusplus
Packit Service fdd496
"C"
Packit Service fdd496
#endif
Packit Service fdd496
char setsockopt();]], [[setsockopt();]])],
Packit Service fdd496
        [],
Packit Service fdd496
        [gl_save_LIBS="$LIBS"
Packit Service fdd496
         LIBS="$gl_save_LIBS -lsocket"
Packit Service fdd496
         AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern
Packit Service fdd496
#ifdef __cplusplus
Packit Service fdd496
"C"
Packit Service fdd496
#endif
Packit Service fdd496
char setsockopt();]], [[setsockopt();]])],
Packit Service fdd496
           [gl_cv_lib_socket="-lsocket"])
Packit Service fdd496
         if test -z "$gl_cv_lib_socket"; then
Packit Service fdd496
           LIBS="$gl_save_LIBS -lnetwork"
Packit Service fdd496
           AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern
Packit Service fdd496
#ifdef __cplusplus
Packit Service fdd496
"C"
Packit Service fdd496
#endif
Packit Service fdd496
char setsockopt();]], [[setsockopt();]])],
Packit Service fdd496
             [gl_cv_lib_socket="-lnetwork"])
Packit Service fdd496
           if test -z "$gl_cv_lib_socket"; then
Packit Service fdd496
             LIBS="$gl_save_LIBS -lnet"
Packit Service fdd496
             AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern
Packit Service fdd496
#ifdef __cplusplus
Packit Service fdd496
"C"
Packit Service fdd496
#endif
Packit Service fdd496
char setsockopt();]], [[setsockopt();]])],
Packit Service fdd496
               [gl_cv_lib_socket="-lnet"])
Packit Service fdd496
           fi
Packit Service fdd496
         fi
Packit Service fdd496
         LIBS="$gl_save_LIBS"
Packit Service fdd496
        ])
Packit Service fdd496
      if test -z "$gl_cv_lib_socket"; then
Packit Service fdd496
        gl_cv_lib_socket="none needed"
Packit Service fdd496
      fi
Packit Service fdd496
    ])
Packit Service fdd496
    if test "$gl_cv_lib_socket" != "none needed"; then
Packit Service fdd496
      LIBSOCKET="$gl_cv_lib_socket"
Packit Service fdd496
    fi
Packit Service fdd496
  fi
Packit Service fdd496
  AC_SUBST([LIBSOCKET])
Packit Service fdd496
])