Commit | Line | Data |
---|---|---|
35428fb6 | 1 | # inet_pton.m4 serial 17 |
5e69ceb7 | 2 | dnl Copyright (C) 2006, 2008-2014 Free Software Foundation, Inc. |
8912421c LC |
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 | ||
a927b6c1 | 7 | AC_DEFUN([gl_FUNC_INET_PTON], |
8912421c | 8 | [ |
35428fb6 LC |
9 | AC_REQUIRE([gl_ARPA_INET_H_DEFAULTS]) |
10 | ||
8912421c LC |
11 | dnl Persuade Solaris <arpa/inet.h> to declare inet_pton. |
12 | AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) | |
13 | ||
35428fb6 LC |
14 | AC_REQUIRE([AC_C_RESTRICT]) |
15 | ||
f29ded4b LC |
16 | dnl Most platforms that provide inet_pton define it in libc. |
17 | dnl Solaris 8..10 provide inet_pton in libnsl instead. | |
35428fb6 LC |
18 | dnl Solaris 2.6..7 provide inet_pton 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). | |
3d458a81 | 22 | HAVE_INET_PTON=1 |
f29ded4b | 23 | INET_PTON_LIB= |
35428fb6 LC |
24 | gl_PREREQ_SYS_H_WINSOCK2 |
25 | if test $HAVE_WINSOCK2_H = 1; then | |
26 | AC_CHECK_DECLS([inet_pton],,, [[#include <ws2tcpip.h>]]) | |
27 | if test $ac_cv_have_decl_inet_pton = yes; then | |
28 | dnl It needs to be overridden, because the stdcall calling convention | |
29 | dnl is not compliant with POSIX. | |
30 | REPLACE_INET_PTON=1 | |
31 | INET_PTON_LIB="-lws2_32" | |
32 | else | |
33 | HAVE_DECL_INET_PTON=0 | |
34 | HAVE_INET_PTON=0 | |
35 | fi | |
36 | else | |
37 | gl_save_LIBS=$LIBS | |
38 | AC_SEARCH_LIBS([inet_pton], [nsl resolv], [], | |
39 | [AC_CHECK_FUNCS([inet_pton]) | |
40 | if test $ac_cv_func_inet_pton = no; then | |
41 | HAVE_INET_PTON=0 | |
42 | fi | |
43 | ]) | |
44 | LIBS=$gl_save_LIBS | |
45 | ||
46 | if test "$ac_cv_search_inet_pton" != "no" \ | |
47 | && test "$ac_cv_search_inet_pton" != "none required"; then | |
48 | INET_PTON_LIB="$ac_cv_search_inet_pton" | |
49 | fi | |
f29ded4b | 50 | |
35428fb6 LC |
51 | AC_CHECK_HEADERS_ONCE([netdb.h]) |
52 | AC_CHECK_DECLS([inet_pton],,, | |
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_pton = no; then | |
59 | HAVE_DECL_INET_PTON=0 | |
60 | fi | |
8912421c | 61 | fi |
35428fb6 | 62 | AC_SUBST([INET_PTON_LIB]) |
3d458a81 AW |
63 | ]) |
64 | ||
65 | # Prerequisites of lib/inet_pton.c. | |
66 | AC_DEFUN([gl_PREREQ_INET_PTON], [ | |
8912421c | 67 | AC_REQUIRE([gl_SOCKET_FAMILIES]) |
8912421c | 68 | ]) |