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