X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fsockets.m4;h=aefb936079648fb775b698b0666eec1012a9b4a7;hb=6a0e461a8a5d9352c2fde6f8f5b16b47b8c53bf3;hp=c7bd6646a6ea4a7059ced424215b5fd6be0d3075;hpb=39ec168251884f121bbd9387279d0ad8a8192968;p=gnulib.git diff --git a/m4/sockets.m4 b/m4/sockets.m4 index c7bd6646a..aefb93607 100644 --- a/m4/sockets.m4 +++ b/m4/sockets.m4 @@ -1,11 +1,13 @@ -# sockets.m4 serial 2 -dnl Copyright (C) 2008 Free Software Foundation, Inc. +# sockets.m4 serial 6 +dnl Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_SOCKETS], [ + AC_REQUIRE([AC_C_INLINE]) + gl_PREREQ_SYS_H_WINSOCK2 dnl for HAVE_WINSOCK2_H LIBSOCKET= if test $HAVE_WINSOCK2_H = 1; then @@ -14,45 +16,68 @@ AC_DEFUN([gl_SOCKETS], [gl_cv_func_wsastartup], [ gl_save_LIBS="$LIBS" LIBS="$LIBS -lws2_32" - AC_TRY_LINK([ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #ifdef HAVE_WINSOCK2_H # include -#endif], [ - WORD wVersionRequested = MAKEWORD(1, 1); - WSADATA wsaData; - int err = WSAStartup(wVersionRequested, &wsaData); - WSACleanup ();], +#endif]], [[ + WORD wVersionRequested = MAKEWORD(1, 1); + WSADATA wsaData; + int err = WSAStartup(wVersionRequested, &wsaData); + WSACleanup ();]])], gl_cv_func_wsastartup=yes, gl_cv_func_wsastartup=no) LIBS="$gl_save_LIBS" ]) if test "$gl_cv_func_wsastartup" = "yes"; then - AC_DEFINE([WINDOWS_SOCKETS], 1, [Define if WSAStartup is needed.]) + AC_DEFINE([WINDOWS_SOCKETS], [1], [Define if WSAStartup is needed.]) LIBSOCKET='-lws2_32' fi else dnl Unix API. dnl Solaris has most socket functions in libsocket. - AC_CACHE_CHECK([whether setsockopt requires -lsocket], [gl_cv_lib_socket], [ - gl_cv_lib_socket=no - AC_TRY_LINK([extern + dnl Haiku has most socket functions in libnetwork. + dnl BeOS has most socket functions in libnet. + AC_CACHE_CHECK([for library containing setsockopt], [gl_cv_lib_socket], [ + gl_cv_lib_socket= + AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern #ifdef __cplusplus "C" #endif -char setsockopt();], [setsockopt();], +char setsockopt();]], [[setsockopt();]])], [], [gl_save_LIBS="$LIBS" - LIBS="$LIBS -lsocket" - AC_TRY_LINK([extern + LIBS="$gl_save_LIBS -lsocket" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern +#ifdef __cplusplus +"C" +#endif +char setsockopt();]], [[setsockopt();]])], + [gl_cv_lib_socket="-lsocket"]) + if test -z "$gl_cv_lib_socket"; then + LIBS="$gl_save_LIBS -lnetwork" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern +#ifdef __cplusplus +"C" +#endif +char setsockopt();]], [[setsockopt();]])], + [gl_cv_lib_socket="-lnetwork"]) + if test -z "$gl_cv_lib_socket"; then + LIBS="$gl_save_LIBS -lnet" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern #ifdef __cplusplus "C" #endif -char setsockopt();], [setsockopt();], - [gl_cv_lib_socket=yes]) +char setsockopt();]], [[setsockopt();]])], + [gl_cv_lib_socket="-lnet"]) + fi + fi LIBS="$gl_save_LIBS" ]) + if test -z "$gl_cv_lib_socket"; then + gl_cv_lib_socket="none needed" + fi ]) - if test $gl_cv_lib_socket = yes; then - LIBSOCKET='-lsocket' + if test "$gl_cv_lib_socket" != "none needed"; then + LIBSOCKET="$gl_cv_lib_socket" fi fi AC_SUBST([LIBSOCKET])