inet_pton: Fix mistake in last commit.
[gnulib.git] / m4 / inet_pton.m4
1 # inet_pton.m4 serial 15
2 dnl Copyright (C) 2006, 2008-2011 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
6
7 AC_DEFUN([gl_FUNC_INET_PTON],
8 [
9   dnl Persuade Solaris <arpa/inet.h> to declare inet_pton.
10   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
11
12   AC_REQUIRE([AC_C_RESTRICT])
13
14   dnl Most platforms that provide inet_pton define it in libc.
15   dnl Solaris 8..10 provide inet_pton in libnsl instead.
16   dnl Native Windows provides it in -lws2_32 instead, with a declaration in
17   dnl <ws2tcpip.h>, and it uses stdcall calling convention, not cdecl
18   dnl (hence we cannot use AC_CHECK_FUNCS, AC_SEARCH_LIBS to find it).
19   HAVE_INET_PTON=1
20   INET_PTON_LIB=
21   gl_PREREQ_SYS_H_WINSOCK2
22   if test $HAVE_WINSOCK2_H = 1; then
23     AC_CHECK_DECLS([inet_pton],,, [[#include <ws2tcpip.h>]])
24     if test $ac_cv_have_decl_inet_pton = yes; then
25       dnl It needs to be overridden, because the stdcall calling convention
26       dnl is not compliant with POSIX.
27       REPLACE_INET_PTON=1
28       INET_PTON_LIB="-lws2_32"
29     else
30       HAVE_DECL_INET_PTON=0
31       HAVE_INET_PTON=0
32     fi
33   else
34     gl_save_LIBS=$LIBS
35     AC_SEARCH_LIBS([inet_pton], [nsl], [],
36       [AC_CHECK_FUNCS([inet_pton])
37        if test $ac_cv_func_inet_pton = no; then
38          HAVE_INET_PTON=0
39        fi
40       ])
41     LIBS=$gl_save_LIBS
42
43     if test "$ac_cv_search_inet_pton" != "no" \
44        && test "$ac_cv_search_inet_pton" != "none required"; then
45       INET_PTON_LIB="$ac_cv_search_inet_pton"
46     fi
47
48     AC_CHECK_HEADERS_ONCE([netdb.h])
49     AC_CHECK_DECLS([inet_pton],,,
50       [[#include <arpa/inet.h>
51         #if HAVE_NETDB_H
52         # include <netdb.h>
53         #endif
54       ]])
55     if test $ac_cv_have_decl_inet_pton = no; then
56       HAVE_DECL_INET_PTON=0
57     fi
58   fi
59   AC_SUBST([INET_PTON_LIB])
60 ])
61
62 # Prerequisites of lib/inet_pton.c.
63 AC_DEFUN([gl_PREREQ_INET_PTON], [
64   AC_REQUIRE([gl_SOCKET_FAMILIES])
65 ])