1dnl @synopsis ACX_WHICH_GETHOSTBYNAME_R
2dnl
3dnl Provides a test to determine the correct way to call gethostbyname_r
4dnl
5dnl defines HAVE_GETHOSTBYNAME_R to the number of arguments required
6dnl
7dnl e.g. 6 arguments (linux)
8dnl e.g. 5 arguments (solaris)
9dnl e.g. 3 arguments (osf/1)
10dnl
11dnl @author Brian Stafford <brian@stafford.uklinux.net>
12dnl
13dnl based on version by Caolan McNamara <caolan@skynet.ie>
14dnl based on David Arnold's autoconf suggestion in the threads faq
15dnl
16AC_DEFUN([ACX_WHICH_GETHOSTBYNAME_R],
17[AC_CACHE_CHECK(number of arguments to gethostbyname_r,
18                acx_which_gethostbyname_r, [
19        AC_TRY_COMPILE([
20#               include <netdb.h>
21        ],      [
22
23        char *name;
24        struct hostent *he;
25        struct hostent_data data;
26        (void) gethostbyname_r(name, he, &data);
27
28                ],acx_which_gethostbyname_r=3,
29                        [
30dnl                     acx_which_gethostbyname_r=0
31  AC_TRY_COMPILE([
32#   include <netdb.h>
33  ], [
34        char *name;
35        struct hostent *he, *res;
36        char *buffer = NULL;
37        int buflen = 2048;
38        int h_errnop;
39        (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop)
40  ],acx_which_gethostbyname_r=6,
41
42  [
43dnl  acx_which_gethostbyname_r=0
44  AC_TRY_COMPILE([
45#   include <netdb.h>
46  ], [
47                        char *name;
48                        struct hostent *he;
49                        char *buffer = NULL;
50                        int buflen = 2048;
51                        int h_errnop;
52                        (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop)
53  ],acx_which_gethostbyname_r=5,acx_which_gethostbyname_r=0)
54
55  ]
56
57  )
58                        ]
59                )
60        ])
61
62if test $acx_which_gethostbyname_r -gt 0 ; then
63    AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME_R], $acx_which_gethostbyname_r,
64                       [Number of parameters to gethostbyname_r or 0 if not available])
65fi
66
67])
68
69dnl @synopsis ACX_HELP_STRING(OPTION,DESCRIPTION)
70AC_DEFUN([ACX_HELP_STRING],
71         [  $1 builtin([substr],[                       ],len($1))[$2]])
72
73
74dnl @synopsis ACX_FEATURE(ENABLE_OR_WITH,NAME[,VALUE])
75AC_DEFUN([ACX_FEATURE],
76         [echo "builtin([substr],[                                  ],len(--$1-$2))--$1-$2: ifelse($3,,[$]translit($1-$2,-,_),$3)"])
77
78