]> git.saurik.com Git - wxWidgets.git/blobdiff - build/aclocal/ac_raf_func_which_getservbyname_r.m4
using button impl
[wxWidgets.git] / build / aclocal / ac_raf_func_which_getservbyname_r.m4
index b70088196b9ceca649727d8a7bcf74363f04491c..ed90549812c3a93ef541efe968bafa2789865cf8 100644 (file)
@@ -3,7 +3,7 @@ dnl
 dnl Provides a test to determine the correct way to call
 dnl 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_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  - 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
@@ -19,41 +19,53 @@ dnl @version 2001-08-20
 dnl @license GPLWithACException
 
 AC_DEFUN([AC_raf_FUNC_WHICH_GETSERVBYNAME_R],
 dnl @license GPLWithACException
 
 AC_DEFUN([AC_raf_FUNC_WHICH_GETSERVBYNAME_R],
-[AC_CHECK_FUNC(getservbyname_r,
-    [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_TRY_COMPILE([#include <netdb.h>],
+[
+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;
             [
                 char *name;
                 char *proto;
                 struct servent *se, *res;
                 char buffer[2048];
                 int buflen = 2048;
-                (void) getservbyname_r(name, proto, se, buffer, buflen, &res);
+                (void) getservbyname_r(name, proto, se, buffer, buflen, &res)
             ],
             ac_cv_func_which_getservbyname_r=six,
             ],
             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_cv_func_which_getservbyname_r=no
-            )]
-        )]
-    )],
-    ac_cv_func_which_getservbyname_r=no)
+            [
+                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)
 
 if test $ac_cv_func_which_getservbyname_r = six; then
   AC_DEFINE(HAVE_FUNC_GETSERVBYNAME_R_6)