Mercurial > gnulib
changeset 30228:50a53b084871
Set LIBSOCKET instead of augmenting LIBS. Also handle Solaris -lsocket.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Mon, 29 Sep 2008 11:34:31 +0200 |
parents | b636c4338efc |
children | 7e9bec4f5cc2 |
files | ChangeLog m4/sockets.m4 modules/poll-tests modules/sockets modules/sockets-tests modules/sys_select-tests |
diffstat | 6 files changed, 64 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Mon Sep 29 11:16:25 2008 +0200 +++ b/ChangeLog Mon Sep 29 11:34:31 2008 +0200 @@ -1,3 +1,13 @@ +2008-09-29 Bruno Haible <bruno@clisp.org> + + * m4/sockets.m4 (gl_SOCKETS): Check also for the need to use -lsocket. + Set LIBSOCKET instead of augmenting LIBS. + * modules/sockets (Link): New section. + * modules/sockets-tests (test_sockets_LDADD): New variable. + * modules/sys_select-tests (test_sys_select_LDADD): New variable. + * modules/poll-tests (test_poll_LDADD): New variable. + * NEWS: Document the change. + 2008-09-29 Bruno Haible <bruno@clisp.org> * m4/arpa_inet_h.m4 (gl_REPLACE_ARPA_INET_H): New macro.
--- a/m4/sockets.m4 Mon Sep 29 11:16:25 2008 +0200 +++ b/m4/sockets.m4 Mon Sep 29 11:34:31 2008 +0200 @@ -1,4 +1,4 @@ -# sockets.m4 serial 1 +# sockets.m4 serial 2 dnl Copyright (C) 2008 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -6,26 +6,56 @@ AC_DEFUN([gl_SOCKETS], [ - AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H - - AC_CACHE_CHECK([if we need to call WSAStartup in winsock2.h and -lws2_32], - [gl_cv_func_wsastartup], [ - am_save_LIBS="$LIBS" - LIBS="$LIBS -lws2_32" - AC_TRY_LINK([ + gl_PREREQ_SYS_H_WINSOCK2 dnl for HAVE_WINSOCK2_H + LIBSOCKET= + if test $HAVE_WINSOCK2_H = 1; then + dnl Native Windows API (not Cygwin). + AC_CACHE_CHECK([if we need to call WSAStartup in winsock2.h and -lws2_32], + [gl_cv_func_wsastartup], [ + gl_save_LIBS="$LIBS" + LIBS="$LIBS -lws2_32" + AC_TRY_LINK([ #ifdef HAVE_WINSOCK2_H # include <winsock2.h> #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="$am_save_LIBS"]) - if test "$gl_cv_func_wsastartup" = "yes"; then - AC_DEFINE([WINDOWS_SOCKETS], 1, [Define if WSAStartup is needed.]) - LIBS="$LIBS -lws2_32" + 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.]) + 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 +#ifdef __cplusplus +"C" +#endif +char setsockopt();], [setsockopt();], + [], + [gl_save_LIBS="$LIBS" + LIBS="$LIBS -lsocket" + AC_TRY_LINK([extern +#ifdef __cplusplus +"C" +#endif +char setsockopt();], [setsockopt();], + [gl_cv_lib_socket=yes]) + LIBS="$gl_save_LIBS" + ]) + ]) + if test $gl_cv_lib_socket = yes; then + LIBSOCKET='-lsocket' + fi fi + AC_SUBST([LIBSOCKET]) gl_PREREQ_SOCKETS ])
--- a/modules/poll-tests Mon Sep 29 11:16:25 2008 +0200 +++ b/modules/poll-tests Mon Sep 29 11:34:31 2008 +0200 @@ -18,3 +18,4 @@ Makefile.am: TESTS += test-poll check_PROGRAMS += test-poll +test_poll_LDADD = $(LDADD) @LIBSOCKET@
--- a/modules/sockets Mon Sep 29 11:16:25 2008 +0200 +++ b/modules/sockets Mon Sep 29 11:34:31 2008 +0200 @@ -1,5 +1,5 @@ Description: -Wrappers for Windows socket functions +General facilities for using sockets Files: lib/sockets.c @@ -18,6 +18,9 @@ Include: "sockets.h" +Link: +$(LIBSOCKET) + License: LGPL