Commit | Line | Data |
---|---|---|
725e2999 JB |
1 | # inet_ntop.m4 serial 19 |
2 | dnl Copyright (C) 2005-2006, 2008-2016 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_NTOP], | |
8 | [ | |
9 | AC_REQUIRE([gl_ARPA_INET_H_DEFAULTS]) | |
10 | ||
11 | dnl Persuade Solaris <arpa/inet.h> to declare inet_ntop. | |
12 | AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) | |
13 | ||
14 | AC_REQUIRE([AC_C_RESTRICT]) | |
15 | ||
16 | dnl Most platforms that provide inet_ntop define it in libc. | |
17 | dnl Solaris 8..10 provide inet_ntop in libnsl instead. | |
18 | dnl Solaris 2.6..7 provide inet_ntop in libresolv instead. | |
19 | dnl Native Windows provides it in -lws2_32 instead, with a declaration in | |
20 | dnl <ws2tcpip.h>, and it uses stdcall calling convention, not cdecl | |
21 | dnl (hence we cannot use AC_CHECK_FUNCS, AC_SEARCH_LIBS to find it). | |
22 | HAVE_INET_NTOP=1 | |
23 | INET_NTOP_LIB= | |
24 | gl_PREREQ_SYS_H_WINSOCK2 | |
25 | if test $HAVE_WINSOCK2_H = 1; then | |
26 | AC_CHECK_DECLS([inet_ntop],,, [[#include <ws2tcpip.h>]]) | |
27 | if test $ac_cv_have_decl_inet_ntop = yes; then | |
28 | dnl It needs to be overridden, because the stdcall calling convention | |
29 | dnl is not compliant with POSIX. | |
30 | REPLACE_INET_NTOP=1 | |
31 | INET_NTOP_LIB="-lws2_32" | |
32 | else | |
33 | HAVE_DECL_INET_NTOP=0 | |
34 | HAVE_INET_NTOP=0 | |
35 | fi | |
36 | else | |
37 | gl_save_LIBS=$LIBS | |
38 | AC_SEARCH_LIBS([inet_ntop], [nsl resolv], [], | |
39 | [AC_CHECK_FUNCS([inet_ntop]) | |
40 | if test $ac_cv_func_inet_ntop = no; then | |
41 | HAVE_INET_NTOP=0 | |
42 | fi | |
43 | ]) | |
44 | LIBS=$gl_save_LIBS | |
45 | ||
46 | if test "$ac_cv_search_inet_ntop" != "no" \ | |
47 | && test "$ac_cv_search_inet_ntop" != "none required"; then | |
48 | INET_NTOP_LIB="$ac_cv_search_inet_ntop" | |
49 | fi | |
50 | ||
51 | AC_CHECK_HEADERS_ONCE([netdb.h]) | |
52 | AC_CHECK_DECLS([inet_ntop],,, | |
53 | [[#include <arpa/inet.h> | |
54 | #if HAVE_NETDB_H | |
55 | # include <netdb.h> | |
56 | #endif | |
57 | ]]) | |
58 | if test $ac_cv_have_decl_inet_ntop = no; then | |
59 | HAVE_DECL_INET_NTOP=0 | |
60 | fi | |
61 | fi | |
62 | AC_SUBST([INET_NTOP_LIB]) | |
63 | ]) | |
64 | ||
65 | # Prerequisites of lib/inet_ntop.c. | |
66 | AC_DEFUN([gl_PREREQ_INET_NTOP], [ | |
67 | AC_REQUIRE([gl_SOCKET_FAMILIES]) | |
68 | ]) |