fd5199d66b
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43226 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
79 lines
2.7 KiB
Plaintext
79 lines
2.7 KiB
Plaintext
dnl @synopsis AC_raf_FUNC_WHICH_GETSERVBYNAME_R
|
|
dnl
|
|
dnl Provides a test to determine the correct way to call
|
|
dnl getservbyname_r:
|
|
dnl
|
|
dnl - defines HAVE_FUNC_GETSERVBYNAME_R_6 if it needs 6 arguments (e.g linux)
|
|
dnl - defines HAVE_FUNC_GETSERVBYNAME_R_5 if it needs 5 arguments (e.g. solaris)
|
|
dnl - defines HAVE_FUNC_GETSERVBYNAME_R_4 if it needs 4 arguments (e.g. osf/1)
|
|
dnl
|
|
dnl An example use can be found at
|
|
dnl http://raf.org/autoconf/net_getservbyname.c
|
|
dnl
|
|
dnl Based on Caolan McNamara's gethostbyname_r macro. Based on David
|
|
dnl Arnold's autoconf suggestion in the threads faq.
|
|
dnl
|
|
dnl @category Misc
|
|
dnl @author raf <raf@raf.org>
|
|
dnl @version 2001-08-20
|
|
dnl @license GPLWithACException
|
|
|
|
AC_DEFUN([AC_raf_FUNC_WHICH_GETSERVBYNAME_R],
|
|
[
|
|
AC_CACHE_CHECK(how many arguments getservbyname_r() takes,
|
|
ac_cv_func_which_getservbyname_r,
|
|
[
|
|
dnl we need to use C++ to detect missing prototypes
|
|
AC_LANG_PUSH(C++)
|
|
|
|
AC_TRY_COMPILE([#include <netdb.h>],
|
|
[
|
|
char *name;
|
|
char *proto;
|
|
struct servent *se, *res;
|
|
char buffer[2048];
|
|
int buflen = 2048;
|
|
(void) getservbyname_r(name, proto, se, buffer, buflen, &res)
|
|
],
|
|
ac_cv_func_which_getservbyname_r=six,
|
|
[
|
|
AC_TRY_COMPILE([#include <netdb.h>],
|
|
[
|
|
char *name;
|
|
char *proto;
|
|
struct servent *se;
|
|
char buffer[2048];
|
|
int buflen = 2048;
|
|
(void) getservbyname_r(name, proto, se, buffer, buflen)
|
|
],
|
|
ac_cv_func_which_getservbyname_r=five,
|
|
[
|
|
AC_TRY_COMPILE([#include <netdb.h>],
|
|
[
|
|
char *name;
|
|
char *proto;
|
|
struct servent *se;
|
|
struct servent_data data;
|
|
(void) getservbyname_r(name, proto, se, &data);
|
|
],
|
|
ac_cv_func_which_getservbyname_r=four,
|
|
ac_cv_func_which_getservbyname_r=no
|
|
)
|
|
]
|
|
)
|
|
]
|
|
)
|
|
AC_LANG_POP()
|
|
]
|
|
)
|
|
|
|
if test $ac_cv_func_which_getservbyname_r = six; then
|
|
AC_DEFINE(HAVE_FUNC_GETSERVBYNAME_R_6)
|
|
elif test $ac_cv_func_which_getservbyname_r = five; then
|
|
AC_DEFINE(HAVE_FUNC_GETSERVBYNAME_R_5)
|
|
elif test $ac_cv_func_which_getservbyname_r = four; then
|
|
AC_DEFINE(HAVE_FUNC_GETSERVBYNAME_R_4)
|
|
fi
|
|
|
|
])
|