diff --git a/acinclude.m4 b/acinclude.m4 index 7b6b2701..124ed88f 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -251,8 +251,9 @@ AC_DEFUN([CURL_CHECK_TYPE_SOCKLEN_T], [ for arg1 in 'int' 'SOCKET'; do for arg2 in "struct sockaddr" void; do for t in int size_t unsigned long "unsigned long"; do - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ + if test "$curl_cv_socklen_t_equiv" = "unknown"; then + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ #undef inline #ifdef HAVE_WINDOWS_H #ifndef WIN32_LEAN_AND_MEAN @@ -276,15 +277,15 @@ AC_DEFUN([CURL_CHECK_TYPE_SOCKLEN_T], [ #endif #define GETPEERNCALLCONV #endif - extern int GETPEERNCALLCONV getpeername ($arg1, $arg2 *, $t *); - ]],[[ - $t len=0; - getpeername(0,0,&len); - ]]) - ],[ - curl_cv_socklen_t_equiv="$t" - break 3 - ]) + extern int GETPEERNCALLCONV getpeername($arg1, $arg2 *, $t *); + ]],[[ + $t len=0; + getpeername(0,0,&len); + ]]) + ],[ + curl_cv_socklen_t_equiv="$t" + ]) + fi done done done @@ -413,8 +414,9 @@ AC_DEFUN([CURL_CHECK_FUNC_GETNAMEINFO], [ for gni_arg2 in 'socklen_t' 'size_t' 'int'; do for gni_arg46 in 'size_t' 'int' 'socklen_t' 'unsigned int' 'DWORD'; do for gni_arg7 in 'int' 'unsigned int'; do - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ + if test "$curl_cv_func_getnameinfo_args" = "unknown"; then + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ #undef inline #ifdef HAVE_WINDOWS_H #ifndef WIN32_LEAN_AND_MEAN @@ -444,21 +446,21 @@ AC_DEFUN([CURL_CHECK_FUNC_GETNAMEINFO], [ #endif #define GNICALLCONV #endif - extern int GNICALLCONV getnameinfo($gni_arg1, $gni_arg2, - char *, $gni_arg46, - char *, $gni_arg46, - $gni_arg7); - ]],[[ - $gni_arg2 salen=0; - $gni_arg46 hostlen=0; - $gni_arg46 servlen=0; - $gni_arg7 flags=0; - int res = getnameinfo(0, salen, 0, hostlen, 0, servlen, flags); - ]]) - ],[ - curl_cv_func_getnameinfo_args="$gni_arg1,$gni_arg2,$gni_arg46,$gni_arg7" - break 4 - ]) + extern int GNICALLCONV getnameinfo($gni_arg1, $gni_arg2, + char *, $gni_arg46, + char *, $gni_arg46, + $gni_arg7); + ]],[[ + $gni_arg2 salen=0; + $gni_arg46 hostlen=0; + $gni_arg46 servlen=0; + $gni_arg7 flags=0; + int res = getnameinfo(0, salen, 0, hostlen, 0, servlen, flags); + ]]) + ],[ + curl_cv_func_getnameinfo_args="$gni_arg1,$gni_arg2,$gni_arg46,$gni_arg7" + ]) + fi done done done @@ -718,8 +720,9 @@ AC_DEFUN([CURL_CHECK_FUNC_RECV], [ for recv_arg2 in 'char *' 'void *'; do for recv_arg3 in 'size_t' 'int' 'socklen_t' 'unsigned int'; do for recv_arg4 in 'int' 'unsigned int'; do - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ + if test "$curl_cv_func_recv_args" = "unknown"; then + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ #undef inline #ifdef HAVE_WINDOWS_H #ifndef WIN32_LEAN_AND_MEAN @@ -743,18 +746,19 @@ AC_DEFUN([CURL_CHECK_FUNC_RECV], [ #endif #define RECVCALLCONV #endif - extern $recv_retv RECVCALLCONV recv($recv_arg1, $recv_arg2, $recv_arg3, $recv_arg4); - ]],[[ - $recv_arg1 s=0; - $recv_arg2 buf=0; - $recv_arg3 len=0; - $recv_arg4 flags=0; - $recv_retv res = recv(s, buf, len, flags); - ]]) - ],[ - curl_cv_func_recv_args="$recv_arg1,$recv_arg2,$recv_arg3,$recv_arg4,$recv_retv" - break 5 - ]) + extern $recv_retv RECVCALLCONV + recv($recv_arg1, $recv_arg2, $recv_arg3, $recv_arg4); + ]],[[ + $recv_arg1 s=0; + $recv_arg2 buf=0; + $recv_arg3 len=0; + $recv_arg4 flags=0; + $recv_retv res = recv(s, buf, len, flags); + ]]) + ],[ + curl_cv_func_recv_args="$recv_arg1,$recv_arg2,$recv_arg3,$recv_arg4,$recv_retv" + ]) + fi done done done @@ -850,8 +854,9 @@ AC_DEFUN([CURL_CHECK_FUNC_SEND], [ for send_arg2 in 'char *' 'void *' 'const char *' 'const void *'; do for send_arg3 in 'size_t' 'int' 'socklen_t' 'unsigned int'; do for send_arg4 in 'int' 'unsigned int'; do - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ + if test "$curl_cv_func_send_args" = "unknown"; then + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ #undef inline #ifdef HAVE_WINDOWS_H #ifndef WIN32_LEAN_AND_MEAN @@ -875,17 +880,18 @@ AC_DEFUN([CURL_CHECK_FUNC_SEND], [ #endif #define SENDCALLCONV #endif - extern $send_retv SENDCALLCONV send($send_arg1, $send_arg2, $send_arg3, $send_arg4); - ]],[[ - $send_arg1 s=0; - $send_arg3 len=0; - $send_arg4 flags=0; - $send_retv res = send(s, 0, len, flags); - ]]) - ],[ - curl_cv_func_send_args="$send_arg1,$send_arg2,$send_arg3,$send_arg4,$send_retv" - break 5 - ]) + extern $send_retv SENDCALLCONV + send($send_arg1, $send_arg2, $send_arg3, $send_arg4); + ]],[[ + $send_arg1 s=0; + $send_arg3 len=0; + $send_arg4 flags=0; + $send_retv res = send(s, 0, len, flags); + ]]) + ],[ + curl_cv_func_send_args="$send_arg1,$send_arg2,$send_arg3,$send_arg4,$send_retv" + ]) + fi done done done @@ -1258,16 +1264,17 @@ dnl TYPE_IN_ADDR_T dnl ------------------------------------------------- dnl Check for in_addr_t: it is used to receive the return code of inet_addr() dnl and a few other things. -AC_DEFUN([TYPE_IN_ADDR_T], -[ - AC_CHECK_TYPE([in_addr_t], ,[ - AC_MSG_CHECKING([for in_addr_t equivalent]) - AC_CACHE_VAL([curl_cv_in_addr_t_equiv], - [ - curl_cv_in_addr_t_equiv= - for t in "unsigned long" int size_t unsigned long; do - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ + +AC_DEFUN([TYPE_IN_ADDR_T], [ + AC_CHECK_TYPE([in_addr_t], ,[ + dnl in_addr_t not available + AC_CACHE_CHECK([for in_addr_t equivalent], + [curl_cv_in_addr_t_equiv], [ + curl_cv_in_addr_t_equiv="unknown" + for t in "unsigned long" int size_t unsigned long; do + if test "$curl_cv_in_addr_t_equiv" = "unknown"; then + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ #undef inline #ifdef HAVE_WINDOWS_H #ifndef WIN32_LEAN_AND_MEAN @@ -1295,23 +1302,25 @@ AC_DEFUN([TYPE_IN_ADDR_T], #include #endif #endif - ]],[[ - $t data = inet_addr ("1.2.3.4"); - ]]) - ],[ - curl_cv_in_addr_t_equiv="$t" - break - ]) - done - - if test "x$curl_cv_in_addr_t_equiv" = x; then - AC_MSG_ERROR([Cannot find a type to use in place of in_addr_t]) - fi - ]) - AC_MSG_RESULT($curl_cv_in_addr_t_equiv) - AC_DEFINE_UNQUOTED(in_addr_t, $curl_cv_in_addr_t_equiv, - [type to use in place of in_addr_t if not defined])], - [ + ]],[[ + $t data = inet_addr ("1.2.3.4"); + ]]) + ],[ + curl_cv_in_addr_t_equiv="$t" + ]) + fi + done + ]) + case "$curl_cv_in_addr_t_equiv" in + unknown) + AC_MSG_ERROR([Cannot find a type to use in place of in_addr_t]) + ;; + *) + AC_DEFINE_UNQUOTED(in_addr_t, $curl_cv_in_addr_t_equiv, + [Type to use in place of in_addr_t when system does not provide it.]) + ;; + esac + ],[ #undef inline #ifdef HAVE_WINDOWS_H #ifndef WIN32_LEAN_AND_MEAN @@ -1342,6 +1351,7 @@ AC_DEFUN([TYPE_IN_ADDR_T], ]) dnl AC_CHECK_TYPE ]) dnl AC_DEFUN + dnl CURL_CHECK_FUNC_CLOCK_GETTIME_MONOTONIC dnl ------------------------------------------------- dnl Check if monotonic clock_gettime is available. @@ -1380,6 +1390,7 @@ AC_DEFUN([CURL_CHECK_FUNC_CLOCK_GETTIME_MONOTONIC], [ dnl postponed until library linking checks for clock_gettime pass. ]) dnl AC_DEFUN + dnl CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC dnl ------------------------------------------------- dnl If monotonic clock_gettime is available then, @@ -1396,13 +1407,14 @@ AC_DEFUN([CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC], [ curl_cv_gclk_LIBS="unknown" # for x_xlibs in '' '-lrt' '-lposix4' ; do - if test -z "$x_xlibs"; then - LIBS="$curl_cv_save_LIBS" - else - LIBS="$x_xlibs $curl_cv_save_LIBS" - fi - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ + if test "$curl_cv_gclk_LIBS" = "unknown"; then + if test -z "$x_xlibs"; then + LIBS="$curl_cv_save_LIBS" + else + LIBS="$x_xlibs $curl_cv_save_LIBS" + fi + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ #ifdef HAVE_SYS_TYPES_H #include #endif @@ -1416,14 +1428,14 @@ AC_DEFUN([CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC], [ #include #endif #endif - ]],[[ - struct timespec ts; - (void)clock_gettime(CLOCK_MONOTONIC, &ts); - ]]) - ],[ - curl_cv_gclk_LIBS="$x_xlibs" - break - ]) + ]],[[ + struct timespec ts; + (void)clock_gettime(CLOCK_MONOTONIC, &ts); + ]]) + ],[ + curl_cv_gclk_LIBS="$x_xlibs" + ]) + fi done # LIBS="$curl_cv_save_LIBS" @@ -1460,6 +1472,7 @@ AC_DEFUN([CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC], [ # ]) dnl AC_DEFUN + dnl ********************************************************************** dnl CURL_DETECT_ICC ([ACTION-IF-YES]) dnl