From 0dbd45db7d76fdff9fbaa64d147c2d2278492efc Mon Sep 17 00:00:00 2001 From: Alon Bar-Lev Date: Wed, 29 Feb 2012 22:11:55 +0200 Subject: build: m4/ax_socklen_t.m4: cleanup Signed-off-by: Alon Bar-Lev Acked-by: David Sommerseth Signed-off-by: David Sommerseth --- m4/ax_socklen_t.m4 | 97 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 56 insertions(+), 41 deletions(-) (limited to 'm4') diff --git a/m4/ax_socklen_t.m4 b/m4/ax_socklen_t.m4 index 70ddcc2..cd7cad8 100644 --- a/m4/ax_socklen_t.m4 +++ b/m4/ax_socklen_t.m4 @@ -1,50 +1,65 @@ -dnl -- The following is taken from curl's acinclude.m4 -- +dnl -- The following is base of curl's acinclude.m4 -- dnl Check for socklen_t: historically on BSD it is an int, and in dnl POSIX 1g it is a type of its own, but some platforms use different dnl types for the argument to getsockopt, getpeername, etc. So we dnl have to test to find something that will work. -AC_DEFUN([TYPE_SOCKLEN_T], -[ - AC_CHECK_TYPE([socklen_t], ,[ - AC_MSG_CHECKING([for socklen_t equivalent]) - AC_CACHE_VAL([curl_cv_socklen_t_equiv], - [ - case "$host" in - *-mingw*) curl_cv_socklen_t_equiv=int ;; - *) - # Systems have either "struct sockaddr *" or - # "void *" as the second argument to getpeername - curl_cv_socklen_t_equiv= - for arg2 in "struct sockaddr" void; do - for t in int size_t unsigned long "unsigned long"; do - AC_TRY_COMPILE([ - #include - #include - - int getpeername (int, $arg2 *, $t *); - ],[ - $t len; - getpeername(0,0,&len); - ],[ - curl_cv_socklen_t_equiv="$t" - break - ]) - done - done - ;; - esac - - if test "x$curl_cv_socklen_t_equiv" = x; then - AC_MSG_ERROR([Cannot find a type to use in place of socklen_t]) - fi - ]) - AC_MSG_RESULT($curl_cv_socklen_t_equiv) - AC_DEFINE_UNQUOTED(socklen_t, $curl_cv_socklen_t_equiv, - [type to use in place of socklen_t if not defined])], - [#include +AC_DEFUN([AX_TYPE_SOCKLEN_T], [ + AC_CHECK_TYPE( + [socklen_t], + , + [ + AS_VAR_PUSHDEF([VAR],[ax_cv_socklen_t_equiv])dnl + AC_CACHE_CHECK( + [for socklen_t equivalent], + [VAR], + [ + #AS_CASE is not supported on +#include +int getpeername (int, $arg2 *, $t *); + ]], + [[ +$t len; +getpeername(0,0,&len); + ]] + )], + [VAR="$t"; break] + ) + done + test -n "$VAR" && break + done + ;; + esac + ] + AS_VAR_IF( + [VAR], + [], + [AC_MSG_ERROR([Cannot find a type to use in place of socklen_t])], + [AC_DEFINE_UNQUOTED( + [socklen_t], + [$VAR], + [type to use in place of socklen_t if not defined] + )] + ) + ) + ], + [[ +#include #ifdef WIN32 #include #else #include -#endif]) +#endif + ]] + ) ]) -- cgit v1.1