# HG changeset patch # User Bruno Haible # Date 1222680871 -7200 # Node ID b7e56ec1bd65082622bd419f29cd0f651ec65055 # Parent 397ef6c67ada260f279d818d2660156f6b3c77dc Set LIBSOCKET instead of augmenting LIBS. Also handle Solaris -lsocket. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2008-09-29 Bruno Haible + + * 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 * m4/arpa_inet_h.m4 (gl_REPLACE_ARPA_INET_H): New macro. diff --git a/m4/sockets.m4 b/m4/sockets.m4 --- a/m4/sockets.m4 +++ b/m4/sockets.m4 @@ -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 #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 ]) diff --git a/modules/poll-tests b/modules/poll-tests --- a/modules/poll-tests +++ b/modules/poll-tests @@ -18,3 +18,4 @@ Makefile.am: TESTS += test-poll check_PROGRAMS += test-poll +test_poll_LDADD = $(LDADD) @LIBSOCKET@ diff --git a/modules/sockets b/modules/sockets --- a/modules/sockets +++ b/modules/sockets @@ -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 diff --git a/modules/sockets-tests b/modules/sockets-tests --- a/modules/sockets-tests +++ b/modules/sockets-tests @@ -8,3 +8,4 @@ Makefile.am: TESTS += test-sockets check_PROGRAMS += test-sockets +test_sockets_LDADD = $(LDADD) @LIBSOCKET@ diff --git a/modules/sys_select-tests b/modules/sys_select-tests --- a/modules/sys_select-tests +++ b/modules/sys_select-tests @@ -16,6 +16,7 @@ Makefile.am: TESTS += test-sys_select check_PROGRAMS += test-sys_select +test_sys_select_LDADD = $(LDADD) @LIBSOCKET@ License: LGPL