# HG changeset patch # User Bruno Haible # Date 1226808160 -3600 # Node ID a672954bb892bbb265cb8baf7e9d6e201611537e # Parent 737615218fc6b82ea7c79b15ee9cb54e5c5928bd New module 'servent'. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-11-15 Bruno Haible + + New module 'servent'. + * modules/servent: New file. + * m4/servent.m4: New file, based on code in m4/getaddrinfo.m4. + 2008-11-15 Bruno Haible Avoid generating same test program with two different rules. diff --git a/m4/servent.m4 b/m4/servent.m4 new file mode 100644 --- /dev/null +++ b/m4/servent.m4 @@ -0,0 +1,47 @@ +# servent.m4 serial 1 +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, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_SERVENT], +[ + dnl Where are getservent(), setservent(), endservent(), getservbyname(), + dnl getservbyport() defined? + dnl Where are getprotoent(), setprotoent(), endprotoent(), getprotobyname(), + dnl getprotobynumber() defined? + dnl - On Solaris, they are in libsocket. Ignore libxnet. + dnl - On Haiku, they are in libnetwork. + dnl - On BeOS, they are in libnet. + dnl - On native Windows, they are in ws2_32.dll. + dnl - Otherwise they are in libc. + AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H + SERVENT_LIB= + gl_saved_libs="$LIBS" + AC_SEARCH_LIBS([getservbyname], [socket network net], + [if test "$ac_cv_search_getservbyname" != "none required"; then + SERVENT_LIB="$ac_cv_search_getservbyname" + fi]) + LIBS="$gl_saved_libs" + if test -z "$SERVENT_LIB"; then + AC_CHECK_FUNCS([getservbyname], , [ + AC_CACHE_CHECK([for getservbyname in winsock2.h and -lws2_32], + [gl_cv_w32_getservbyname], + [gl_cv_w32_getservbyname=no + gl_save_LIBS="$LIBS" + LIBS="$LIBS -lws2_32" + AC_TRY_LINK([ +#ifdef HAVE_WINSOCK2_H +#include +#endif +#include +], [getservbyname(NULL,NULL);], [gl_cv_w32_getservbyname=yes]) + LIBS="$gl_save_LIBS" + ]) + if test "$gl_cv_w32_getservbyname" = "yes"; then + SERVENT_LIB="-lws2_32" + fi + ]) + fi + AC_SUBST([SERVENT_LIB]) +]) diff --git a/modules/servent b/modules/servent new file mode 100644 --- /dev/null +++ b/modules/servent @@ -0,0 +1,28 @@ +Description: +Library containing getservent(), setservent(), endservent(), getservbyname(), +getservbyport(), getprotoent(), setprotoent(), endprotoent(), getprotobyname(), +getprotobynumber(). + +Files: +m4/servent.m4 + +Depends-on: +sys_socket + +configure.ac: +gl_SERVENT + +Makefile.am: + +Include: + + +Link: +$(SERVENT_LIB) + +License: +LGPLv2+ + +Maintainer: +Bruno Haible, Simon Josefsson +