bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

new module 'servent'


From: Bruno Haible
Subject: new module 'servent'
Date: Sun, 16 Nov 2008 05:02:59 +0100
User-agent: KMail/1.5.4

m4/getaddrinfo.m4 has some code for checking the libraries needed for
getservbyname(). Since this function (and related ones: getservent() etc.)
can also be useful independently of getaddrinfo, I'm extracting this test
into a new module.

Compared to the code in m4/getaddrinfo.m4,
  - I'm no longer checking for -linet, since I'm not aware of any system
    having this library, and googlng also does not give a hint,
  - I'm no longer checking for -lxnet, since this appears to be a dummy
    library only, on Solaris,
  - I'm adding checks for -lnetwork (for Haiku) and -lnet (for BeOS).


2008-11-15  Bruno Haible  <address@hidden>

        New module 'servent'.
        * modules/servent: New file.
        * m4/servent.m4: New file, based on code in m4/getaddrinfo.m4.

========================== modules/servent ================================
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:
<netdb.h>

Link:
$(SERVENT_LIB)

License:
LGPLv2+

Maintainer:
Bruno Haible, Simon Josefsson

========================== m4/servent.m4 ==================================
# 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 <winsock2.h>
#endif
#include <stddef.h>
], [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])
])





reply via email to

[Prev in Thread] Current Thread [Next in Thread]