1*6236dae4SAndroid Build Coastguard Worker#*************************************************************************** 2*6236dae4SAndroid Build Coastguard Worker# _ _ ____ _ 3*6236dae4SAndroid Build Coastguard Worker# Project ___| | | | _ \| | 4*6236dae4SAndroid Build Coastguard Worker# / __| | | | |_) | | 5*6236dae4SAndroid Build Coastguard Worker# | (__| |_| | _ <| |___ 6*6236dae4SAndroid Build Coastguard Worker# \___|\___/|_| \_\_____| 7*6236dae4SAndroid Build Coastguard Worker# 8*6236dae4SAndroid Build Coastguard Worker# Copyright (C) Daniel Stenberg, <[email protected]>, et al. 9*6236dae4SAndroid Build Coastguard Worker# 10*6236dae4SAndroid Build Coastguard Worker# This software is licensed as described in the file COPYING, which 11*6236dae4SAndroid Build Coastguard Worker# you should have received as part of this distribution. The terms 12*6236dae4SAndroid Build Coastguard Worker# are also available at https://curl.se/docs/copyright.html. 13*6236dae4SAndroid Build Coastguard Worker# 14*6236dae4SAndroid Build Coastguard Worker# You may opt to use, copy, modify, merge, publish, distribute and/or sell 15*6236dae4SAndroid Build Coastguard Worker# copies of the Software, and permit persons to whom the Software is 16*6236dae4SAndroid Build Coastguard Worker# furnished to do so, under the terms of the COPYING file. 17*6236dae4SAndroid Build Coastguard Worker# 18*6236dae4SAndroid Build Coastguard Worker# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 19*6236dae4SAndroid Build Coastguard Worker# KIND, either express or implied. 20*6236dae4SAndroid Build Coastguard Worker# 21*6236dae4SAndroid Build Coastguard Worker# SPDX-License-Identifier: curl 22*6236dae4SAndroid Build Coastguard Worker# 23*6236dae4SAndroid Build Coastguard Worker#*************************************************************************** 24*6236dae4SAndroid Build Coastguard Worker 25*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_DEF (SYMBOL, [INCLUDES], [SILENT]) 26*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 27*6236dae4SAndroid Build Coastguard Workerdnl Use the C preprocessor to find out if the given object-style symbol 28*6236dae4SAndroid Build Coastguard Workerdnl is defined and get its expansion. This macro will not use default 29*6236dae4SAndroid Build Coastguard Workerdnl includes even if no INCLUDES argument is given. This macro will run 30*6236dae4SAndroid Build Coastguard Workerdnl silently when invoked with three arguments. If the expansion would 31*6236dae4SAndroid Build Coastguard Workerdnl result in a set of double-quoted strings the returned expansion will 32*6236dae4SAndroid Build Coastguard Workerdnl actually be a single double-quoted string concatenating all them. 33*6236dae4SAndroid Build Coastguard Worker 34*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_DEF], [ 35*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_CPP_P])dnl 36*6236dae4SAndroid Build Coastguard Worker OLDCPPFLAGS=$CPPFLAGS 37*6236dae4SAndroid Build Coastguard Worker # CPPPFLAG comes from CURL_CPP_P 38*6236dae4SAndroid Build Coastguard Worker CPPFLAGS="$CPPFLAGS $CPPPFLAG" 39*6236dae4SAndroid Build Coastguard Worker AS_VAR_PUSHDEF([ac_HaveDef], [curl_cv_have_def_$1])dnl 40*6236dae4SAndroid Build Coastguard Worker AS_VAR_PUSHDEF([ac_Def], [curl_cv_def_$1])dnl 41*6236dae4SAndroid Build Coastguard Worker if test -z "$SED"; then 42*6236dae4SAndroid Build Coastguard Worker AC_MSG_ERROR([SED not set. Cannot continue without SED being set.]) 43*6236dae4SAndroid Build Coastguard Worker fi 44*6236dae4SAndroid Build Coastguard Worker if test -z "$GREP"; then 45*6236dae4SAndroid Build Coastguard Worker AC_MSG_ERROR([GREP not set. Cannot continue without GREP being set.]) 46*6236dae4SAndroid Build Coastguard Worker fi 47*6236dae4SAndroid Build Coastguard Worker ifelse($3,,[AC_MSG_CHECKING([for preprocessor definition of $1])]) 48*6236dae4SAndroid Build Coastguard Worker tmp_exp="" 49*6236dae4SAndroid Build Coastguard Worker AC_PREPROC_IFELSE([ 50*6236dae4SAndroid Build Coastguard Worker AC_LANG_SOURCE( 51*6236dae4SAndroid Build Coastguard Workerifelse($2,,,[$2])[[ 52*6236dae4SAndroid Build Coastguard Worker #ifdef $1 53*6236dae4SAndroid Build Coastguard Worker CURL_DEF_TOKEN $1 54*6236dae4SAndroid Build Coastguard Worker #endif 55*6236dae4SAndroid Build Coastguard Worker ]]) 56*6236dae4SAndroid Build Coastguard Worker ],[ 57*6236dae4SAndroid Build Coastguard Worker tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ 58*6236dae4SAndroid Build Coastguard Worker "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ 59*6236dae4SAndroid Build Coastguard Worker "$SED" 's/.*CURL_DEF_TOKEN[[ ]][[ ]]*//' 2>/dev/null | \ 60*6236dae4SAndroid Build Coastguard Worker "$SED" 's/[["]][[ ]]*[["]]//g' 2>/dev/null` 61*6236dae4SAndroid Build Coastguard Worker if test -z "$tmp_exp" || test "$tmp_exp" = "$1"; then 62*6236dae4SAndroid Build Coastguard Worker tmp_exp="" 63*6236dae4SAndroid Build Coastguard Worker fi 64*6236dae4SAndroid Build Coastguard Worker ]) 65*6236dae4SAndroid Build Coastguard Worker if test -z "$tmp_exp"; then 66*6236dae4SAndroid Build Coastguard Worker AS_VAR_SET(ac_HaveDef, no) 67*6236dae4SAndroid Build Coastguard Worker ifelse($3,,[AC_MSG_RESULT([no])]) 68*6236dae4SAndroid Build Coastguard Worker else 69*6236dae4SAndroid Build Coastguard Worker AS_VAR_SET(ac_HaveDef, yes) 70*6236dae4SAndroid Build Coastguard Worker AS_VAR_SET(ac_Def, $tmp_exp) 71*6236dae4SAndroid Build Coastguard Worker ifelse($3,,[AC_MSG_RESULT([$tmp_exp])]) 72*6236dae4SAndroid Build Coastguard Worker fi 73*6236dae4SAndroid Build Coastguard Worker AS_VAR_POPDEF([ac_Def])dnl 74*6236dae4SAndroid Build Coastguard Worker AS_VAR_POPDEF([ac_HaveDef])dnl 75*6236dae4SAndroid Build Coastguard Worker CPPFLAGS=$OLDCPPFLAGS 76*6236dae4SAndroid Build Coastguard Worker]) 77*6236dae4SAndroid Build Coastguard Worker 78*6236dae4SAndroid Build Coastguard Worker 79*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_DEF_CC (SYMBOL, [INCLUDES], [SILENT]) 80*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 81*6236dae4SAndroid Build Coastguard Workerdnl Use the C compiler to find out only if the given symbol is defined 82*6236dae4SAndroid Build Coastguard Workerdnl or not, this can not find out its expansion. This macro will not use 83*6236dae4SAndroid Build Coastguard Workerdnl default includes even if no INCLUDES argument is given. This macro 84*6236dae4SAndroid Build Coastguard Workerdnl will run silently when invoked with three arguments. 85*6236dae4SAndroid Build Coastguard Worker 86*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_DEF_CC], [ 87*6236dae4SAndroid Build Coastguard Worker AS_VAR_PUSHDEF([ac_HaveDef], [curl_cv_have_def_$1])dnl 88*6236dae4SAndroid Build Coastguard Worker ifelse($3,,[AC_MSG_CHECKING([for compiler definition of $1])]) 89*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 90*6236dae4SAndroid Build Coastguard Worker AC_LANG_SOURCE( 91*6236dae4SAndroid Build Coastguard Workerifelse($2,,,[$2])[[ 92*6236dae4SAndroid Build Coastguard Worker int main(void) 93*6236dae4SAndroid Build Coastguard Worker { 94*6236dae4SAndroid Build Coastguard Worker #ifdef $1 95*6236dae4SAndroid Build Coastguard Worker return 0; 96*6236dae4SAndroid Build Coastguard Worker #else 97*6236dae4SAndroid Build Coastguard Worker #error force compilation error 98*6236dae4SAndroid Build Coastguard Worker #endif 99*6236dae4SAndroid Build Coastguard Worker } 100*6236dae4SAndroid Build Coastguard Worker ]]) 101*6236dae4SAndroid Build Coastguard Worker ],[ 102*6236dae4SAndroid Build Coastguard Worker tst_symbol_defined="yes" 103*6236dae4SAndroid Build Coastguard Worker ],[ 104*6236dae4SAndroid Build Coastguard Worker tst_symbol_defined="no" 105*6236dae4SAndroid Build Coastguard Worker ]) 106*6236dae4SAndroid Build Coastguard Worker if test "$tst_symbol_defined" = "yes"; then 107*6236dae4SAndroid Build Coastguard Worker AS_VAR_SET(ac_HaveDef, yes) 108*6236dae4SAndroid Build Coastguard Worker ifelse($3,,[AC_MSG_RESULT([yes])]) 109*6236dae4SAndroid Build Coastguard Worker else 110*6236dae4SAndroid Build Coastguard Worker AS_VAR_SET(ac_HaveDef, no) 111*6236dae4SAndroid Build Coastguard Worker ifelse($3,,[AC_MSG_RESULT([no])]) 112*6236dae4SAndroid Build Coastguard Worker fi 113*6236dae4SAndroid Build Coastguard Worker AS_VAR_POPDEF([ac_HaveDef])dnl 114*6236dae4SAndroid Build Coastguard Worker]) 115*6236dae4SAndroid Build Coastguard Worker 116*6236dae4SAndroid Build Coastguard Worker 117*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_LIB_XNET 118*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 119*6236dae4SAndroid Build Coastguard Workerdnl Verify if X/Open network library is required. 120*6236dae4SAndroid Build Coastguard Worker 121*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_LIB_XNET], [ 122*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if X/Open network library is required]) 123*6236dae4SAndroid Build Coastguard Worker tst_lib_xnet_required="no" 124*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 125*6236dae4SAndroid Build Coastguard Worker AC_LANG_SOURCE([[ 126*6236dae4SAndroid Build Coastguard Worker int main(void) 127*6236dae4SAndroid Build Coastguard Worker { 128*6236dae4SAndroid Build Coastguard Worker #if defined(__hpux) && defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 600) 129*6236dae4SAndroid Build Coastguard Worker return 0; 130*6236dae4SAndroid Build Coastguard Worker #elif defined(__hpux) && defined(_XOPEN_SOURCE_EXTENDED) 131*6236dae4SAndroid Build Coastguard Worker return 0; 132*6236dae4SAndroid Build Coastguard Worker #else 133*6236dae4SAndroid Build Coastguard Worker #error force compilation error 134*6236dae4SAndroid Build Coastguard Worker #endif 135*6236dae4SAndroid Build Coastguard Worker } 136*6236dae4SAndroid Build Coastguard Worker ]]) 137*6236dae4SAndroid Build Coastguard Worker ],[ 138*6236dae4SAndroid Build Coastguard Worker tst_lib_xnet_required="yes" 139*6236dae4SAndroid Build Coastguard Worker LIBS="-lxnet $LIBS" 140*6236dae4SAndroid Build Coastguard Worker ]) 141*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([$tst_lib_xnet_required]) 142*6236dae4SAndroid Build Coastguard Worker]) 143*6236dae4SAndroid Build Coastguard Worker 144*6236dae4SAndroid Build Coastguard Worker 145*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_AIX_ALL_SOURCE 146*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 147*6236dae4SAndroid Build Coastguard Workerdnl Provides a replacement of traditional AC_AIX with 148*6236dae4SAndroid Build Coastguard Workerdnl an uniform behavior across all autoconf versions, 149*6236dae4SAndroid Build Coastguard Workerdnl and with our own placement rules. 150*6236dae4SAndroid Build Coastguard Worker 151*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_AIX_ALL_SOURCE], [ 152*6236dae4SAndroid Build Coastguard Worker AH_VERBATIM([_ALL_SOURCE], 153*6236dae4SAndroid Build Coastguard Worker [/* Define to 1 if OS is AIX. */ 154*6236dae4SAndroid Build Coastguard Worker#ifndef _ALL_SOURCE 155*6236dae4SAndroid Build Coastguard Worker# undef _ALL_SOURCE 156*6236dae4SAndroid Build Coastguard Worker#endif]) 157*6236dae4SAndroid Build Coastguard Worker AC_BEFORE([$0], [AC_SYS_LARGEFILE])dnl 158*6236dae4SAndroid Build Coastguard Worker AC_BEFORE([$0], [CURL_CONFIGURE_REENTRANT])dnl 159*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if OS is AIX (to define _ALL_SOURCE)]) 160*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([yes_this_is_aix],[ 161*6236dae4SAndroid Build Coastguard Worker#ifdef _AIX 162*6236dae4SAndroid Build Coastguard Worker yes_this_is_aix 163*6236dae4SAndroid Build Coastguard Worker#endif 164*6236dae4SAndroid Build Coastguard Worker ],[ 165*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 166*6236dae4SAndroid Build Coastguard Worker AC_DEFINE(_ALL_SOURCE) 167*6236dae4SAndroid Build Coastguard Worker ],[ 168*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 169*6236dae4SAndroid Build Coastguard Worker ]) 170*6236dae4SAndroid Build Coastguard Worker]) 171*6236dae4SAndroid Build Coastguard Worker 172*6236dae4SAndroid Build Coastguard Worker 173*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_NATIVE_WINDOWS 174*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 175*6236dae4SAndroid Build Coastguard Workerdnl Check if building a native Windows target 176*6236dae4SAndroid Build Coastguard Worker 177*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_NATIVE_WINDOWS], [ 178*6236dae4SAndroid Build Coastguard Worker AC_CACHE_CHECK([whether build target is a native Windows one], [curl_cv_native_windows], [ 179*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 180*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 181*6236dae4SAndroid Build Coastguard Worker ]],[[ 182*6236dae4SAndroid Build Coastguard Worker #ifdef _WIN32 183*6236dae4SAndroid Build Coastguard Worker int dummy=1; 184*6236dae4SAndroid Build Coastguard Worker #else 185*6236dae4SAndroid Build Coastguard Worker #error Not a native Windows build target. 186*6236dae4SAndroid Build Coastguard Worker #endif 187*6236dae4SAndroid Build Coastguard Worker ]]) 188*6236dae4SAndroid Build Coastguard Worker ],[ 189*6236dae4SAndroid Build Coastguard Worker curl_cv_native_windows="yes" 190*6236dae4SAndroid Build Coastguard Worker ],[ 191*6236dae4SAndroid Build Coastguard Worker curl_cv_native_windows="no" 192*6236dae4SAndroid Build Coastguard Worker ]) 193*6236dae4SAndroid Build Coastguard Worker ]) 194*6236dae4SAndroid Build Coastguard Worker AM_CONDITIONAL(DOING_NATIVE_WINDOWS, test "x$curl_cv_native_windows" = xyes) 195*6236dae4SAndroid Build Coastguard Worker]) 196*6236dae4SAndroid Build Coastguard Worker 197*6236dae4SAndroid Build Coastguard Worker 198*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_HEADER_LBER 199*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 200*6236dae4SAndroid Build Coastguard Workerdnl Check for compilable and valid lber.h header, 201*6236dae4SAndroid Build Coastguard Workerdnl and check if it is needed even with ldap.h 202*6236dae4SAndroid Build Coastguard Worker 203*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_HEADER_LBER], [ 204*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_CHECK_NATIVE_WINDOWS])dnl 205*6236dae4SAndroid Build Coastguard Worker AC_CACHE_CHECK([for lber.h], [curl_cv_header_lber_h], [ 206*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 207*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 208*6236dae4SAndroid Build Coastguard Worker #undef inline 209*6236dae4SAndroid Build Coastguard Worker #ifdef _WIN32 210*6236dae4SAndroid Build Coastguard Worker #ifndef WIN32_LEAN_AND_MEAN 211*6236dae4SAndroid Build Coastguard Worker #define WIN32_LEAN_AND_MEAN 212*6236dae4SAndroid Build Coastguard Worker #endif 213*6236dae4SAndroid Build Coastguard Worker #include <windows.h> 214*6236dae4SAndroid Build Coastguard Worker #else 215*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TYPES_H 216*6236dae4SAndroid Build Coastguard Worker #include <sys/types.h> 217*6236dae4SAndroid Build Coastguard Worker #endif 218*6236dae4SAndroid Build Coastguard Worker #endif 219*6236dae4SAndroid Build Coastguard Worker #ifndef NULL 220*6236dae4SAndroid Build Coastguard Worker #define NULL (void *)0 221*6236dae4SAndroid Build Coastguard Worker #endif 222*6236dae4SAndroid Build Coastguard Worker #include <lber.h> 223*6236dae4SAndroid Build Coastguard Worker ]],[[ 224*6236dae4SAndroid Build Coastguard Worker BerValue *bvp = NULL; 225*6236dae4SAndroid Build Coastguard Worker BerElement *bep = ber_init(bvp); 226*6236dae4SAndroid Build Coastguard Worker ber_free(bep, 1); 227*6236dae4SAndroid Build Coastguard Worker ]]) 228*6236dae4SAndroid Build Coastguard Worker ],[ 229*6236dae4SAndroid Build Coastguard Worker curl_cv_header_lber_h="yes" 230*6236dae4SAndroid Build Coastguard Worker ],[ 231*6236dae4SAndroid Build Coastguard Worker curl_cv_header_lber_h="no" 232*6236dae4SAndroid Build Coastguard Worker ]) 233*6236dae4SAndroid Build Coastguard Worker ]) 234*6236dae4SAndroid Build Coastguard Worker if test "$curl_cv_header_lber_h" = "yes"; then 235*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_LBER_H, 1, 236*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the lber.h header file.]) 237*6236dae4SAndroid Build Coastguard Worker # 238*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 239*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 240*6236dae4SAndroid Build Coastguard Worker #undef inline 241*6236dae4SAndroid Build Coastguard Worker #ifdef _WIN32 242*6236dae4SAndroid Build Coastguard Worker #ifndef WIN32_LEAN_AND_MEAN 243*6236dae4SAndroid Build Coastguard Worker #define WIN32_LEAN_AND_MEAN 244*6236dae4SAndroid Build Coastguard Worker #endif 245*6236dae4SAndroid Build Coastguard Worker #include <windows.h> 246*6236dae4SAndroid Build Coastguard Worker #else 247*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TYPES_H 248*6236dae4SAndroid Build Coastguard Worker #include <sys/types.h> 249*6236dae4SAndroid Build Coastguard Worker #endif 250*6236dae4SAndroid Build Coastguard Worker #endif 251*6236dae4SAndroid Build Coastguard Worker #ifndef NULL 252*6236dae4SAndroid Build Coastguard Worker #define NULL (void *)0 253*6236dae4SAndroid Build Coastguard Worker #endif 254*6236dae4SAndroid Build Coastguard Worker #ifndef LDAP_DEPRECATED 255*6236dae4SAndroid Build Coastguard Worker #define LDAP_DEPRECATED 1 256*6236dae4SAndroid Build Coastguard Worker #endif 257*6236dae4SAndroid Build Coastguard Worker #include <ldap.h> 258*6236dae4SAndroid Build Coastguard Worker ]],[[ 259*6236dae4SAndroid Build Coastguard Worker BerValue *bvp = NULL; 260*6236dae4SAndroid Build Coastguard Worker BerElement *bep = ber_init(bvp); 261*6236dae4SAndroid Build Coastguard Worker ber_free(bep, 1); 262*6236dae4SAndroid Build Coastguard Worker ]]) 263*6236dae4SAndroid Build Coastguard Worker ],[ 264*6236dae4SAndroid Build Coastguard Worker curl_cv_need_header_lber_h="no" 265*6236dae4SAndroid Build Coastguard Worker ],[ 266*6236dae4SAndroid Build Coastguard Worker curl_cv_need_header_lber_h="yes" 267*6236dae4SAndroid Build Coastguard Worker ]) 268*6236dae4SAndroid Build Coastguard Worker # 269*6236dae4SAndroid Build Coastguard Worker case "$curl_cv_need_header_lber_h" in 270*6236dae4SAndroid Build Coastguard Worker yes) 271*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(NEED_LBER_H, 1, 272*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you need the lber.h header file even with ldap.h]) 273*6236dae4SAndroid Build Coastguard Worker ;; 274*6236dae4SAndroid Build Coastguard Worker esac 275*6236dae4SAndroid Build Coastguard Worker fi 276*6236dae4SAndroid Build Coastguard Worker]) 277*6236dae4SAndroid Build Coastguard Worker 278*6236dae4SAndroid Build Coastguard Worker 279*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_HEADER_LDAP 280*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 281*6236dae4SAndroid Build Coastguard Workerdnl Check for compilable and valid ldap.h header 282*6236dae4SAndroid Build Coastguard Worker 283*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_HEADER_LDAP], [ 284*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_CHECK_HEADER_LBER])dnl 285*6236dae4SAndroid Build Coastguard Worker AC_CACHE_CHECK([for ldap.h], [curl_cv_header_ldap_h], [ 286*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 287*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 288*6236dae4SAndroid Build Coastguard Worker #undef inline 289*6236dae4SAndroid Build Coastguard Worker #ifdef _WIN32 290*6236dae4SAndroid Build Coastguard Worker #ifndef WIN32_LEAN_AND_MEAN 291*6236dae4SAndroid Build Coastguard Worker #define WIN32_LEAN_AND_MEAN 292*6236dae4SAndroid Build Coastguard Worker #endif 293*6236dae4SAndroid Build Coastguard Worker #include <windows.h> 294*6236dae4SAndroid Build Coastguard Worker #else 295*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TYPES_H 296*6236dae4SAndroid Build Coastguard Worker #include <sys/types.h> 297*6236dae4SAndroid Build Coastguard Worker #endif 298*6236dae4SAndroid Build Coastguard Worker #endif 299*6236dae4SAndroid Build Coastguard Worker #ifndef LDAP_DEPRECATED 300*6236dae4SAndroid Build Coastguard Worker #define LDAP_DEPRECATED 1 301*6236dae4SAndroid Build Coastguard Worker #endif 302*6236dae4SAndroid Build Coastguard Worker #ifdef NEED_LBER_H 303*6236dae4SAndroid Build Coastguard Worker #include <lber.h> 304*6236dae4SAndroid Build Coastguard Worker #endif 305*6236dae4SAndroid Build Coastguard Worker #include <ldap.h> 306*6236dae4SAndroid Build Coastguard Worker ]],[[ 307*6236dae4SAndroid Build Coastguard Worker LDAP *ldp = ldap_init("0.0.0.0", LDAP_PORT); 308*6236dae4SAndroid Build Coastguard Worker int res = ldap_unbind(ldp); 309*6236dae4SAndroid Build Coastguard Worker ]]) 310*6236dae4SAndroid Build Coastguard Worker ],[ 311*6236dae4SAndroid Build Coastguard Worker curl_cv_header_ldap_h="yes" 312*6236dae4SAndroid Build Coastguard Worker ],[ 313*6236dae4SAndroid Build Coastguard Worker curl_cv_header_ldap_h="no" 314*6236dae4SAndroid Build Coastguard Worker ]) 315*6236dae4SAndroid Build Coastguard Worker ]) 316*6236dae4SAndroid Build Coastguard Worker case "$curl_cv_header_ldap_h" in 317*6236dae4SAndroid Build Coastguard Worker yes) 318*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_LDAP_H, 1, 319*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the ldap.h header file.]) 320*6236dae4SAndroid Build Coastguard Worker ;; 321*6236dae4SAndroid Build Coastguard Worker esac 322*6236dae4SAndroid Build Coastguard Worker]) 323*6236dae4SAndroid Build Coastguard Worker 324*6236dae4SAndroid Build Coastguard Worker 325*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_HEADER_LDAP_SSL 326*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 327*6236dae4SAndroid Build Coastguard Workerdnl Check for compilable and valid ldap_ssl.h header 328*6236dae4SAndroid Build Coastguard Worker 329*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_HEADER_LDAP_SSL], [ 330*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_CHECK_HEADER_LDAP])dnl 331*6236dae4SAndroid Build Coastguard Worker AC_CACHE_CHECK([for ldap_ssl.h], [curl_cv_header_ldap_ssl_h], [ 332*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 333*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 334*6236dae4SAndroid Build Coastguard Worker #undef inline 335*6236dae4SAndroid Build Coastguard Worker #ifdef _WIN32 336*6236dae4SAndroid Build Coastguard Worker #ifndef WIN32_LEAN_AND_MEAN 337*6236dae4SAndroid Build Coastguard Worker #define WIN32_LEAN_AND_MEAN 338*6236dae4SAndroid Build Coastguard Worker #endif 339*6236dae4SAndroid Build Coastguard Worker #include <windows.h> 340*6236dae4SAndroid Build Coastguard Worker #else 341*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TYPES_H 342*6236dae4SAndroid Build Coastguard Worker #include <sys/types.h> 343*6236dae4SAndroid Build Coastguard Worker #endif 344*6236dae4SAndroid Build Coastguard Worker #endif 345*6236dae4SAndroid Build Coastguard Worker #ifndef LDAP_DEPRECATED 346*6236dae4SAndroid Build Coastguard Worker #define LDAP_DEPRECATED 1 347*6236dae4SAndroid Build Coastguard Worker #endif 348*6236dae4SAndroid Build Coastguard Worker #ifdef NEED_LBER_H 349*6236dae4SAndroid Build Coastguard Worker #include <lber.h> 350*6236dae4SAndroid Build Coastguard Worker #endif 351*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_LDAP_H 352*6236dae4SAndroid Build Coastguard Worker #include <ldap.h> 353*6236dae4SAndroid Build Coastguard Worker #endif 354*6236dae4SAndroid Build Coastguard Worker #include <ldap_ssl.h> 355*6236dae4SAndroid Build Coastguard Worker ]],[[ 356*6236dae4SAndroid Build Coastguard Worker LDAP *ldp = ldapssl_init("0.0.0.0", LDAPS_PORT, 1); 357*6236dae4SAndroid Build Coastguard Worker ]]) 358*6236dae4SAndroid Build Coastguard Worker ],[ 359*6236dae4SAndroid Build Coastguard Worker curl_cv_header_ldap_ssl_h="yes" 360*6236dae4SAndroid Build Coastguard Worker ],[ 361*6236dae4SAndroid Build Coastguard Worker curl_cv_header_ldap_ssl_h="no" 362*6236dae4SAndroid Build Coastguard Worker ]) 363*6236dae4SAndroid Build Coastguard Worker ]) 364*6236dae4SAndroid Build Coastguard Worker case "$curl_cv_header_ldap_ssl_h" in 365*6236dae4SAndroid Build Coastguard Worker yes) 366*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_LDAP_SSL_H, 1, 367*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the ldap_ssl.h header file.]) 368*6236dae4SAndroid Build Coastguard Worker ;; 369*6236dae4SAndroid Build Coastguard Worker esac 370*6236dae4SAndroid Build Coastguard Worker]) 371*6236dae4SAndroid Build Coastguard Worker 372*6236dae4SAndroid Build Coastguard Worker 373*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_LIBS_WINLDAP 374*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 375*6236dae4SAndroid Build Coastguard Workerdnl Check for libraries needed for WINLDAP support, 376*6236dae4SAndroid Build Coastguard Workerdnl and prepended to LIBS any needed libraries. 377*6236dae4SAndroid Build Coastguard Workerdnl This macro can take an optional parameter with a 378*6236dae4SAndroid Build Coastguard Workerdnl whitespace separated list of libraries to check 379*6236dae4SAndroid Build Coastguard Workerdnl before the WINLDAP default ones. 380*6236dae4SAndroid Build Coastguard Worker 381*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_LIBS_WINLDAP], [ 382*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_CHECK_HEADER_WINBER])dnl 383*6236dae4SAndroid Build Coastguard Worker # 384*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([for WINLDAP libraries]) 385*6236dae4SAndroid Build Coastguard Worker # 386*6236dae4SAndroid Build Coastguard Worker u_libs="" 387*6236dae4SAndroid Build Coastguard Worker # 388*6236dae4SAndroid Build Coastguard Worker ifelse($1,,,[ 389*6236dae4SAndroid Build Coastguard Worker for x_lib in $1; do 390*6236dae4SAndroid Build Coastguard Worker case "$x_lib" in 391*6236dae4SAndroid Build Coastguard Worker -l*) 392*6236dae4SAndroid Build Coastguard Worker l_lib="$x_lib" 393*6236dae4SAndroid Build Coastguard Worker ;; 394*6236dae4SAndroid Build Coastguard Worker *) 395*6236dae4SAndroid Build Coastguard Worker l_lib="-l$x_lib" 396*6236dae4SAndroid Build Coastguard Worker ;; 397*6236dae4SAndroid Build Coastguard Worker esac 398*6236dae4SAndroid Build Coastguard Worker if test -z "$u_libs"; then 399*6236dae4SAndroid Build Coastguard Worker u_libs="$l_lib" 400*6236dae4SAndroid Build Coastguard Worker else 401*6236dae4SAndroid Build Coastguard Worker u_libs="$u_libs $l_lib" 402*6236dae4SAndroid Build Coastguard Worker fi 403*6236dae4SAndroid Build Coastguard Worker done 404*6236dae4SAndroid Build Coastguard Worker ]) 405*6236dae4SAndroid Build Coastguard Worker # 406*6236dae4SAndroid Build Coastguard Worker curl_cv_save_LIBS="$LIBS" 407*6236dae4SAndroid Build Coastguard Worker curl_cv_ldap_LIBS="unknown" 408*6236dae4SAndroid Build Coastguard Worker # 409*6236dae4SAndroid Build Coastguard Worker for x_nlibs in '' "$u_libs" \ 410*6236dae4SAndroid Build Coastguard Worker '-lwldap32' ; do 411*6236dae4SAndroid Build Coastguard Worker if test "$curl_cv_ldap_LIBS" = "unknown"; then 412*6236dae4SAndroid Build Coastguard Worker if test -z "$x_nlibs"; then 413*6236dae4SAndroid Build Coastguard Worker LIBS="$curl_cv_save_LIBS" 414*6236dae4SAndroid Build Coastguard Worker else 415*6236dae4SAndroid Build Coastguard Worker LIBS="$x_nlibs $curl_cv_save_LIBS" 416*6236dae4SAndroid Build Coastguard Worker fi 417*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 418*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 419*6236dae4SAndroid Build Coastguard Worker #undef inline 420*6236dae4SAndroid Build Coastguard Worker #ifdef _WIN32 421*6236dae4SAndroid Build Coastguard Worker #ifndef WIN32_LEAN_AND_MEAN 422*6236dae4SAndroid Build Coastguard Worker #define WIN32_LEAN_AND_MEAN 423*6236dae4SAndroid Build Coastguard Worker #endif 424*6236dae4SAndroid Build Coastguard Worker #include <windows.h> 425*6236dae4SAndroid Build Coastguard Worker #include <winldap.h> 426*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_WINBER_H 427*6236dae4SAndroid Build Coastguard Worker #include <winber.h> 428*6236dae4SAndroid Build Coastguard Worker #endif 429*6236dae4SAndroid Build Coastguard Worker #endif 430*6236dae4SAndroid Build Coastguard Worker ]],[[ 431*6236dae4SAndroid Build Coastguard Worker BERVAL *bvp = NULL; 432*6236dae4SAndroid Build Coastguard Worker BerElement *bep = ber_init(bvp); 433*6236dae4SAndroid Build Coastguard Worker LDAP *ldp = ldap_init("0.0.0.0", LDAP_PORT); 434*6236dae4SAndroid Build Coastguard Worker ULONG res = ldap_unbind(ldp); 435*6236dae4SAndroid Build Coastguard Worker ber_free(bep, 1); 436*6236dae4SAndroid Build Coastguard Worker ]]) 437*6236dae4SAndroid Build Coastguard Worker ],[ 438*6236dae4SAndroid Build Coastguard Worker curl_cv_ldap_LIBS="$x_nlibs" 439*6236dae4SAndroid Build Coastguard Worker ]) 440*6236dae4SAndroid Build Coastguard Worker fi 441*6236dae4SAndroid Build Coastguard Worker done 442*6236dae4SAndroid Build Coastguard Worker # 443*6236dae4SAndroid Build Coastguard Worker LIBS="$curl_cv_save_LIBS" 444*6236dae4SAndroid Build Coastguard Worker # 445*6236dae4SAndroid Build Coastguard Worker case X-"$curl_cv_ldap_LIBS" in 446*6236dae4SAndroid Build Coastguard Worker X-unknown) 447*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([cannot find WINLDAP libraries]) 448*6236dae4SAndroid Build Coastguard Worker ;; 449*6236dae4SAndroid Build Coastguard Worker X-) 450*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no additional lib required]) 451*6236dae4SAndroid Build Coastguard Worker ;; 452*6236dae4SAndroid Build Coastguard Worker *) 453*6236dae4SAndroid Build Coastguard Worker if test -z "$curl_cv_save_LIBS"; then 454*6236dae4SAndroid Build Coastguard Worker LIBS="$curl_cv_ldap_LIBS" 455*6236dae4SAndroid Build Coastguard Worker else 456*6236dae4SAndroid Build Coastguard Worker LIBS="$curl_cv_ldap_LIBS $curl_cv_save_LIBS" 457*6236dae4SAndroid Build Coastguard Worker fi 458*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([$curl_cv_ldap_LIBS]) 459*6236dae4SAndroid Build Coastguard Worker ;; 460*6236dae4SAndroid Build Coastguard Worker esac 461*6236dae4SAndroid Build Coastguard Worker # 462*6236dae4SAndroid Build Coastguard Worker]) 463*6236dae4SAndroid Build Coastguard Worker 464*6236dae4SAndroid Build Coastguard Worker 465*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_LIBS_LDAP 466*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 467*6236dae4SAndroid Build Coastguard Workerdnl Check for libraries needed for LDAP support, 468*6236dae4SAndroid Build Coastguard Workerdnl and prepended to LIBS any needed libraries. 469*6236dae4SAndroid Build Coastguard Workerdnl This macro can take an optional parameter with a 470*6236dae4SAndroid Build Coastguard Workerdnl whitespace separated list of libraries to check 471*6236dae4SAndroid Build Coastguard Workerdnl before the default ones. 472*6236dae4SAndroid Build Coastguard Worker 473*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_LIBS_LDAP], [ 474*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_CHECK_HEADER_LDAP])dnl 475*6236dae4SAndroid Build Coastguard Worker # 476*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([for LDAP libraries]) 477*6236dae4SAndroid Build Coastguard Worker # 478*6236dae4SAndroid Build Coastguard Worker u_libs="" 479*6236dae4SAndroid Build Coastguard Worker # 480*6236dae4SAndroid Build Coastguard Worker ifelse($1,,,[ 481*6236dae4SAndroid Build Coastguard Worker for x_lib in $1; do 482*6236dae4SAndroid Build Coastguard Worker case "$x_lib" in 483*6236dae4SAndroid Build Coastguard Worker -l*) 484*6236dae4SAndroid Build Coastguard Worker l_lib="$x_lib" 485*6236dae4SAndroid Build Coastguard Worker ;; 486*6236dae4SAndroid Build Coastguard Worker *) 487*6236dae4SAndroid Build Coastguard Worker l_lib="-l$x_lib" 488*6236dae4SAndroid Build Coastguard Worker ;; 489*6236dae4SAndroid Build Coastguard Worker esac 490*6236dae4SAndroid Build Coastguard Worker if test -z "$u_libs"; then 491*6236dae4SAndroid Build Coastguard Worker u_libs="$l_lib" 492*6236dae4SAndroid Build Coastguard Worker else 493*6236dae4SAndroid Build Coastguard Worker u_libs="$u_libs $l_lib" 494*6236dae4SAndroid Build Coastguard Worker fi 495*6236dae4SAndroid Build Coastguard Worker done 496*6236dae4SAndroid Build Coastguard Worker ]) 497*6236dae4SAndroid Build Coastguard Worker # 498*6236dae4SAndroid Build Coastguard Worker curl_cv_save_LIBS="$LIBS" 499*6236dae4SAndroid Build Coastguard Worker curl_cv_ldap_LIBS="unknown" 500*6236dae4SAndroid Build Coastguard Worker # 501*6236dae4SAndroid Build Coastguard Worker for x_nlibs in '' "$u_libs" \ 502*6236dae4SAndroid Build Coastguard Worker '-lldap' \ 503*6236dae4SAndroid Build Coastguard Worker '-lldap -llber' \ 504*6236dae4SAndroid Build Coastguard Worker '-llber -lldap' \ 505*6236dae4SAndroid Build Coastguard Worker '-lldapssl -lldapx -lldapsdk' \ 506*6236dae4SAndroid Build Coastguard Worker '-lldapsdk -lldapx -lldapssl' \ 507*6236dae4SAndroid Build Coastguard Worker '-lldap -llber -lssl -lcrypto'; do 508*6236dae4SAndroid Build Coastguard Worker 509*6236dae4SAndroid Build Coastguard Worker if test "$curl_cv_ldap_LIBS" = "unknown"; then 510*6236dae4SAndroid Build Coastguard Worker if test -z "$x_nlibs"; then 511*6236dae4SAndroid Build Coastguard Worker LIBS="$curl_cv_save_LIBS" 512*6236dae4SAndroid Build Coastguard Worker else 513*6236dae4SAndroid Build Coastguard Worker LIBS="$x_nlibs $curl_cv_save_LIBS" 514*6236dae4SAndroid Build Coastguard Worker fi 515*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 516*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 517*6236dae4SAndroid Build Coastguard Worker #undef inline 518*6236dae4SAndroid Build Coastguard Worker #ifdef _WIN32 519*6236dae4SAndroid Build Coastguard Worker #ifndef WIN32_LEAN_AND_MEAN 520*6236dae4SAndroid Build Coastguard Worker #define WIN32_LEAN_AND_MEAN 521*6236dae4SAndroid Build Coastguard Worker #endif 522*6236dae4SAndroid Build Coastguard Worker #include <windows.h> 523*6236dae4SAndroid Build Coastguard Worker #else 524*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TYPES_H 525*6236dae4SAndroid Build Coastguard Worker #include <sys/types.h> 526*6236dae4SAndroid Build Coastguard Worker #endif 527*6236dae4SAndroid Build Coastguard Worker #endif 528*6236dae4SAndroid Build Coastguard Worker #ifndef NULL 529*6236dae4SAndroid Build Coastguard Worker #define NULL (void *)0 530*6236dae4SAndroid Build Coastguard Worker #endif 531*6236dae4SAndroid Build Coastguard Worker #ifndef LDAP_DEPRECATED 532*6236dae4SAndroid Build Coastguard Worker #define LDAP_DEPRECATED 1 533*6236dae4SAndroid Build Coastguard Worker #endif 534*6236dae4SAndroid Build Coastguard Worker #ifdef NEED_LBER_H 535*6236dae4SAndroid Build Coastguard Worker #include <lber.h> 536*6236dae4SAndroid Build Coastguard Worker #endif 537*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_LDAP_H 538*6236dae4SAndroid Build Coastguard Worker #include <ldap.h> 539*6236dae4SAndroid Build Coastguard Worker #endif 540*6236dae4SAndroid Build Coastguard Worker ]],[[ 541*6236dae4SAndroid Build Coastguard Worker BerValue *bvp = NULL; 542*6236dae4SAndroid Build Coastguard Worker BerElement *bep = ber_init(bvp); 543*6236dae4SAndroid Build Coastguard Worker LDAP *ldp = ldap_init("0.0.0.0", LDAP_PORT); 544*6236dae4SAndroid Build Coastguard Worker int res = ldap_unbind(ldp); 545*6236dae4SAndroid Build Coastguard Worker ber_free(bep, 1); 546*6236dae4SAndroid Build Coastguard Worker ]]) 547*6236dae4SAndroid Build Coastguard Worker ],[ 548*6236dae4SAndroid Build Coastguard Worker curl_cv_ldap_LIBS="$x_nlibs" 549*6236dae4SAndroid Build Coastguard Worker ]) 550*6236dae4SAndroid Build Coastguard Worker fi 551*6236dae4SAndroid Build Coastguard Worker done 552*6236dae4SAndroid Build Coastguard Worker # 553*6236dae4SAndroid Build Coastguard Worker LIBS="$curl_cv_save_LIBS" 554*6236dae4SAndroid Build Coastguard Worker # 555*6236dae4SAndroid Build Coastguard Worker case X-"$curl_cv_ldap_LIBS" in 556*6236dae4SAndroid Build Coastguard Worker X-unknown) 557*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([cannot find LDAP libraries]) 558*6236dae4SAndroid Build Coastguard Worker ;; 559*6236dae4SAndroid Build Coastguard Worker X-) 560*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no additional lib required]) 561*6236dae4SAndroid Build Coastguard Worker ;; 562*6236dae4SAndroid Build Coastguard Worker *) 563*6236dae4SAndroid Build Coastguard Worker if test -z "$curl_cv_save_LIBS"; then 564*6236dae4SAndroid Build Coastguard Worker LIBS="$curl_cv_ldap_LIBS" 565*6236dae4SAndroid Build Coastguard Worker else 566*6236dae4SAndroid Build Coastguard Worker LIBS="$curl_cv_ldap_LIBS $curl_cv_save_LIBS" 567*6236dae4SAndroid Build Coastguard Worker fi 568*6236dae4SAndroid Build Coastguard Worker LIBCURL_PC_REQUIRES_PRIVATE="ldap $LIBCURL_PC_REQUIRES_PRIVATE" 569*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([$curl_cv_ldap_LIBS]) 570*6236dae4SAndroid Build Coastguard Worker ;; 571*6236dae4SAndroid Build Coastguard Worker esac 572*6236dae4SAndroid Build Coastguard Worker # 573*6236dae4SAndroid Build Coastguard Worker]) 574*6236dae4SAndroid Build Coastguard Worker 575*6236dae4SAndroid Build Coastguard Worker 576*6236dae4SAndroid Build Coastguard Workerdnl TYPE_SOCKADDR_STORAGE 577*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 578*6236dae4SAndroid Build Coastguard Workerdnl Check for struct sockaddr_storage. Most IPv6-enabled 579*6236dae4SAndroid Build Coastguard Workerdnl hosts have it, but AIX 4.3 is one known exception. 580*6236dae4SAndroid Build Coastguard Worker 581*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([TYPE_SOCKADDR_STORAGE], 582*6236dae4SAndroid Build Coastguard Worker[ 583*6236dae4SAndroid Build Coastguard Worker AC_CHECK_TYPE([struct sockaddr_storage], 584*6236dae4SAndroid Build Coastguard Worker AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE, 1, 585*6236dae4SAndroid Build Coastguard Worker [if struct sockaddr_storage is defined]), , 586*6236dae4SAndroid Build Coastguard Worker [ 587*6236dae4SAndroid Build Coastguard Worker #undef inline 588*6236dae4SAndroid Build Coastguard Worker #ifdef _WIN32 589*6236dae4SAndroid Build Coastguard Worker #ifndef WIN32_LEAN_AND_MEAN 590*6236dae4SAndroid Build Coastguard Worker #define WIN32_LEAN_AND_MEAN 591*6236dae4SAndroid Build Coastguard Worker #endif 592*6236dae4SAndroid Build Coastguard Worker #include <winsock2.h> 593*6236dae4SAndroid Build Coastguard Worker #else 594*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TYPES_H 595*6236dae4SAndroid Build Coastguard Worker #include <sys/types.h> 596*6236dae4SAndroid Build Coastguard Worker #endif 597*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_SOCKET_H 598*6236dae4SAndroid Build Coastguard Worker #include <sys/socket.h> 599*6236dae4SAndroid Build Coastguard Worker #endif 600*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_NETINET_IN_H 601*6236dae4SAndroid Build Coastguard Worker #include <netinet/in.h> 602*6236dae4SAndroid Build Coastguard Worker #endif 603*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_ARPA_INET_H 604*6236dae4SAndroid Build Coastguard Worker #include <arpa/inet.h> 605*6236dae4SAndroid Build Coastguard Worker #endif 606*6236dae4SAndroid Build Coastguard Worker #endif 607*6236dae4SAndroid Build Coastguard Worker ]) 608*6236dae4SAndroid Build Coastguard Worker]) 609*6236dae4SAndroid Build Coastguard Worker 610*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_RECV 611*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 612*6236dae4SAndroid Build Coastguard Workerdnl Test if the socket recv() function is available, 613*6236dae4SAndroid Build Coastguard Worker 614*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_RECV], [ 615*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_CHECK_NATIVE_WINDOWS])dnl 616*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_BSDSOCKET])dnl 617*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS(sys/types.h sys/socket.h) 618*6236dae4SAndroid Build Coastguard Worker # 619*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([for recv]) 620*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 621*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 622*6236dae4SAndroid Build Coastguard Worker #undef inline 623*6236dae4SAndroid Build Coastguard Worker #ifdef _WIN32 624*6236dae4SAndroid Build Coastguard Worker #ifndef WIN32_LEAN_AND_MEAN 625*6236dae4SAndroid Build Coastguard Worker #define WIN32_LEAN_AND_MEAN 626*6236dae4SAndroid Build Coastguard Worker #endif 627*6236dae4SAndroid Build Coastguard Worker #include <winsock2.h> 628*6236dae4SAndroid Build Coastguard Worker #else 629*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 630*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TYPES_H 631*6236dae4SAndroid Build Coastguard Worker #include <sys/types.h> 632*6236dae4SAndroid Build Coastguard Worker #endif 633*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_SOCKET_H 634*6236dae4SAndroid Build Coastguard Worker #include <sys/socket.h> 635*6236dae4SAndroid Build Coastguard Worker #endif 636*6236dae4SAndroid Build Coastguard Worker #endif 637*6236dae4SAndroid Build Coastguard Worker ]],[[ 638*6236dae4SAndroid Build Coastguard Worker recv(0, 0, 0, 0); 639*6236dae4SAndroid Build Coastguard Worker ]]) 640*6236dae4SAndroid Build Coastguard Worker ],[ 641*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 642*6236dae4SAndroid Build Coastguard Worker curl_cv_recv="yes" 643*6236dae4SAndroid Build Coastguard Worker ],[ 644*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 645*6236dae4SAndroid Build Coastguard Worker curl_cv_recv="no" 646*6236dae4SAndroid Build Coastguard Worker ]) 647*6236dae4SAndroid Build Coastguard Worker # 648*6236dae4SAndroid Build Coastguard Worker if test "$curl_cv_recv" = "yes"; then 649*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_RECV, 1, 650*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the recv function.]) 651*6236dae4SAndroid Build Coastguard Worker curl_cv_func_recv="yes" 652*6236dae4SAndroid Build Coastguard Worker else 653*6236dae4SAndroid Build Coastguard Worker AC_MSG_ERROR([Unable to link function recv]) 654*6236dae4SAndroid Build Coastguard Worker fi 655*6236dae4SAndroid Build Coastguard Worker]) 656*6236dae4SAndroid Build Coastguard Worker 657*6236dae4SAndroid Build Coastguard Worker 658*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_SEND 659*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 660*6236dae4SAndroid Build Coastguard Workerdnl Test if the socket send() function is available, 661*6236dae4SAndroid Build Coastguard Worker 662*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_SEND], [ 663*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_CHECK_NATIVE_WINDOWS])dnl 664*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_BSDSOCKET])dnl 665*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS(sys/types.h sys/socket.h) 666*6236dae4SAndroid Build Coastguard Worker # 667*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([for send]) 668*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 669*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 670*6236dae4SAndroid Build Coastguard Worker #undef inline 671*6236dae4SAndroid Build Coastguard Worker #ifdef _WIN32 672*6236dae4SAndroid Build Coastguard Worker #ifndef WIN32_LEAN_AND_MEAN 673*6236dae4SAndroid Build Coastguard Worker #define WIN32_LEAN_AND_MEAN 674*6236dae4SAndroid Build Coastguard Worker #endif 675*6236dae4SAndroid Build Coastguard Worker #include <winsock2.h> 676*6236dae4SAndroid Build Coastguard Worker #else 677*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 678*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TYPES_H 679*6236dae4SAndroid Build Coastguard Worker #include <sys/types.h> 680*6236dae4SAndroid Build Coastguard Worker #endif 681*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_SOCKET_H 682*6236dae4SAndroid Build Coastguard Worker #include <sys/socket.h> 683*6236dae4SAndroid Build Coastguard Worker #endif 684*6236dae4SAndroid Build Coastguard Worker #endif 685*6236dae4SAndroid Build Coastguard Worker ]],[[ 686*6236dae4SAndroid Build Coastguard Worker send(0, 0, 0, 0); 687*6236dae4SAndroid Build Coastguard Worker ]]) 688*6236dae4SAndroid Build Coastguard Worker ],[ 689*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 690*6236dae4SAndroid Build Coastguard Worker curl_cv_send="yes" 691*6236dae4SAndroid Build Coastguard Worker ],[ 692*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 693*6236dae4SAndroid Build Coastguard Worker curl_cv_send="no" 694*6236dae4SAndroid Build Coastguard Worker ]) 695*6236dae4SAndroid Build Coastguard Worker # 696*6236dae4SAndroid Build Coastguard Worker if test "$curl_cv_send" = "yes"; then 697*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_SEND, 1, 698*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the send function.]) 699*6236dae4SAndroid Build Coastguard Worker curl_cv_func_send="yes" 700*6236dae4SAndroid Build Coastguard Worker else 701*6236dae4SAndroid Build Coastguard Worker AC_MSG_ERROR([Unable to link function send]) 702*6236dae4SAndroid Build Coastguard Worker fi 703*6236dae4SAndroid Build Coastguard Worker]) 704*6236dae4SAndroid Build Coastguard Worker 705*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_MSG_NOSIGNAL 706*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 707*6236dae4SAndroid Build Coastguard Workerdnl Check for MSG_NOSIGNAL 708*6236dae4SAndroid Build Coastguard Worker 709*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_MSG_NOSIGNAL], [ 710*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS(sys/types.h sys/socket.h) 711*6236dae4SAndroid Build Coastguard Worker AC_CACHE_CHECK([for MSG_NOSIGNAL], [curl_cv_msg_nosignal], [ 712*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 713*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 714*6236dae4SAndroid Build Coastguard Worker #undef inline 715*6236dae4SAndroid Build Coastguard Worker #ifdef _WIN32 716*6236dae4SAndroid Build Coastguard Worker #ifndef WIN32_LEAN_AND_MEAN 717*6236dae4SAndroid Build Coastguard Worker #define WIN32_LEAN_AND_MEAN 718*6236dae4SAndroid Build Coastguard Worker #endif 719*6236dae4SAndroid Build Coastguard Worker #include <winsock2.h> 720*6236dae4SAndroid Build Coastguard Worker #else 721*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TYPES_H 722*6236dae4SAndroid Build Coastguard Worker #include <sys/types.h> 723*6236dae4SAndroid Build Coastguard Worker #endif 724*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_SOCKET_H 725*6236dae4SAndroid Build Coastguard Worker #include <sys/socket.h> 726*6236dae4SAndroid Build Coastguard Worker #endif 727*6236dae4SAndroid Build Coastguard Worker #endif 728*6236dae4SAndroid Build Coastguard Worker ]],[[ 729*6236dae4SAndroid Build Coastguard Worker int flag=MSG_NOSIGNAL; 730*6236dae4SAndroid Build Coastguard Worker ]]) 731*6236dae4SAndroid Build Coastguard Worker ],[ 732*6236dae4SAndroid Build Coastguard Worker curl_cv_msg_nosignal="yes" 733*6236dae4SAndroid Build Coastguard Worker ],[ 734*6236dae4SAndroid Build Coastguard Worker curl_cv_msg_nosignal="no" 735*6236dae4SAndroid Build Coastguard Worker ]) 736*6236dae4SAndroid Build Coastguard Worker ]) 737*6236dae4SAndroid Build Coastguard Worker case "$curl_cv_msg_nosignal" in 738*6236dae4SAndroid Build Coastguard Worker yes) 739*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_MSG_NOSIGNAL, 1, 740*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the MSG_NOSIGNAL flag.]) 741*6236dae4SAndroid Build Coastguard Worker ;; 742*6236dae4SAndroid Build Coastguard Worker esac 743*6236dae4SAndroid Build Coastguard Worker]) 744*6236dae4SAndroid Build Coastguard Worker 745*6236dae4SAndroid Build Coastguard Worker 746*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_STRUCT_TIMEVAL 747*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 748*6236dae4SAndroid Build Coastguard Workerdnl Check for timeval struct 749*6236dae4SAndroid Build Coastguard Worker 750*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_STRUCT_TIMEVAL], [ 751*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_CHECK_NATIVE_WINDOWS])dnl 752*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS(sys/types.h sys/time.h sys/socket.h) 753*6236dae4SAndroid Build Coastguard Worker AC_CACHE_CHECK([for struct timeval], [curl_cv_struct_timeval], [ 754*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 755*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 756*6236dae4SAndroid Build Coastguard Worker #undef inline 757*6236dae4SAndroid Build Coastguard Worker #ifdef _WIN32 758*6236dae4SAndroid Build Coastguard Worker #ifndef WIN32_LEAN_AND_MEAN 759*6236dae4SAndroid Build Coastguard Worker #define WIN32_LEAN_AND_MEAN 760*6236dae4SAndroid Build Coastguard Worker #endif 761*6236dae4SAndroid Build Coastguard Worker #include <winsock2.h> 762*6236dae4SAndroid Build Coastguard Worker #endif 763*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TYPES_H 764*6236dae4SAndroid Build Coastguard Worker #include <sys/types.h> 765*6236dae4SAndroid Build Coastguard Worker #endif 766*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TIME_H 767*6236dae4SAndroid Build Coastguard Worker #include <sys/time.h> 768*6236dae4SAndroid Build Coastguard Worker #endif 769*6236dae4SAndroid Build Coastguard Worker #include <time.h> 770*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_SOCKET_H 771*6236dae4SAndroid Build Coastguard Worker #include <sys/socket.h> 772*6236dae4SAndroid Build Coastguard Worker #endif 773*6236dae4SAndroid Build Coastguard Worker ]],[[ 774*6236dae4SAndroid Build Coastguard Worker struct timeval ts; 775*6236dae4SAndroid Build Coastguard Worker ts.tv_sec = 0; 776*6236dae4SAndroid Build Coastguard Worker ts.tv_usec = 0; 777*6236dae4SAndroid Build Coastguard Worker ]]) 778*6236dae4SAndroid Build Coastguard Worker ],[ 779*6236dae4SAndroid Build Coastguard Worker curl_cv_struct_timeval="yes" 780*6236dae4SAndroid Build Coastguard Worker ],[ 781*6236dae4SAndroid Build Coastguard Worker curl_cv_struct_timeval="no" 782*6236dae4SAndroid Build Coastguard Worker ]) 783*6236dae4SAndroid Build Coastguard Worker ]) 784*6236dae4SAndroid Build Coastguard Worker case "$curl_cv_struct_timeval" in 785*6236dae4SAndroid Build Coastguard Worker yes) 786*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_STRUCT_TIMEVAL, 1, 787*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the timeval struct.]) 788*6236dae4SAndroid Build Coastguard Worker ;; 789*6236dae4SAndroid Build Coastguard Worker esac 790*6236dae4SAndroid Build Coastguard Worker]) 791*6236dae4SAndroid Build Coastguard Worker 792*6236dae4SAndroid Build Coastguard Worker 793*6236dae4SAndroid Build Coastguard Workerdnl TYPE_IN_ADDR_T 794*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 795*6236dae4SAndroid Build Coastguard Workerdnl Check for in_addr_t: it is used to receive the return code of inet_addr() 796*6236dae4SAndroid Build Coastguard Workerdnl and a few other things. 797*6236dae4SAndroid Build Coastguard Worker 798*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([TYPE_IN_ADDR_T], [ 799*6236dae4SAndroid Build Coastguard Worker AC_CHECK_TYPE([in_addr_t], ,[ 800*6236dae4SAndroid Build Coastguard Worker dnl in_addr_t not available 801*6236dae4SAndroid Build Coastguard Worker AC_CACHE_CHECK([for in_addr_t equivalent], 802*6236dae4SAndroid Build Coastguard Worker [curl_cv_in_addr_t_equiv], [ 803*6236dae4SAndroid Build Coastguard Worker curl_cv_in_addr_t_equiv="unknown" 804*6236dae4SAndroid Build Coastguard Worker for t in "unsigned long" int size_t unsigned long; do 805*6236dae4SAndroid Build Coastguard Worker if test "$curl_cv_in_addr_t_equiv" = "unknown"; then 806*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 807*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 808*6236dae4SAndroid Build Coastguard Worker #undef inline 809*6236dae4SAndroid Build Coastguard Worker #ifdef _WIN32 810*6236dae4SAndroid Build Coastguard Worker #ifndef WIN32_LEAN_AND_MEAN 811*6236dae4SAndroid Build Coastguard Worker #define WIN32_LEAN_AND_MEAN 812*6236dae4SAndroid Build Coastguard Worker #endif 813*6236dae4SAndroid Build Coastguard Worker #include <winsock2.h> 814*6236dae4SAndroid Build Coastguard Worker #else 815*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TYPES_H 816*6236dae4SAndroid Build Coastguard Worker #include <sys/types.h> 817*6236dae4SAndroid Build Coastguard Worker #endif 818*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_SOCKET_H 819*6236dae4SAndroid Build Coastguard Worker #include <sys/socket.h> 820*6236dae4SAndroid Build Coastguard Worker #endif 821*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_NETINET_IN_H 822*6236dae4SAndroid Build Coastguard Worker #include <netinet/in.h> 823*6236dae4SAndroid Build Coastguard Worker #endif 824*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_ARPA_INET_H 825*6236dae4SAndroid Build Coastguard Worker #include <arpa/inet.h> 826*6236dae4SAndroid Build Coastguard Worker #endif 827*6236dae4SAndroid Build Coastguard Worker #endif 828*6236dae4SAndroid Build Coastguard Worker ]],[[ 829*6236dae4SAndroid Build Coastguard Worker $t data = inet_addr ("1.2.3.4"); 830*6236dae4SAndroid Build Coastguard Worker ]]) 831*6236dae4SAndroid Build Coastguard Worker ],[ 832*6236dae4SAndroid Build Coastguard Worker curl_cv_in_addr_t_equiv="$t" 833*6236dae4SAndroid Build Coastguard Worker ]) 834*6236dae4SAndroid Build Coastguard Worker fi 835*6236dae4SAndroid Build Coastguard Worker done 836*6236dae4SAndroid Build Coastguard Worker ]) 837*6236dae4SAndroid Build Coastguard Worker case "$curl_cv_in_addr_t_equiv" in 838*6236dae4SAndroid Build Coastguard Worker unknown) 839*6236dae4SAndroid Build Coastguard Worker AC_MSG_ERROR([Cannot find a type to use in place of in_addr_t]) 840*6236dae4SAndroid Build Coastguard Worker ;; 841*6236dae4SAndroid Build Coastguard Worker *) 842*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(in_addr_t, $curl_cv_in_addr_t_equiv, 843*6236dae4SAndroid Build Coastguard Worker [Type to use in place of in_addr_t when system does not provide it.]) 844*6236dae4SAndroid Build Coastguard Worker ;; 845*6236dae4SAndroid Build Coastguard Worker esac 846*6236dae4SAndroid Build Coastguard Worker ],[ 847*6236dae4SAndroid Build Coastguard Worker #undef inline 848*6236dae4SAndroid Build Coastguard Worker #ifdef _WIN32 849*6236dae4SAndroid Build Coastguard Worker #ifndef WIN32_LEAN_AND_MEAN 850*6236dae4SAndroid Build Coastguard Worker #define WIN32_LEAN_AND_MEAN 851*6236dae4SAndroid Build Coastguard Worker #endif 852*6236dae4SAndroid Build Coastguard Worker #include <winsock2.h> 853*6236dae4SAndroid Build Coastguard Worker #else 854*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TYPES_H 855*6236dae4SAndroid Build Coastguard Worker #include <sys/types.h> 856*6236dae4SAndroid Build Coastguard Worker #endif 857*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_SOCKET_H 858*6236dae4SAndroid Build Coastguard Worker #include <sys/socket.h> 859*6236dae4SAndroid Build Coastguard Worker #endif 860*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_NETINET_IN_H 861*6236dae4SAndroid Build Coastguard Worker #include <netinet/in.h> 862*6236dae4SAndroid Build Coastguard Worker #endif 863*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_ARPA_INET_H 864*6236dae4SAndroid Build Coastguard Worker #include <arpa/inet.h> 865*6236dae4SAndroid Build Coastguard Worker #endif 866*6236dae4SAndroid Build Coastguard Worker #endif 867*6236dae4SAndroid Build Coastguard Worker ]) 868*6236dae4SAndroid Build Coastguard Worker]) 869*6236dae4SAndroid Build Coastguard Worker 870*6236dae4SAndroid Build Coastguard Worker 871*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_CLOCK_GETTIME_MONOTONIC 872*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 873*6236dae4SAndroid Build Coastguard Workerdnl Check if monotonic clock_gettime is available. 874*6236dae4SAndroid Build Coastguard Worker 875*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_CLOCK_GETTIME_MONOTONIC], [ 876*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS(sys/types.h sys/time.h) 877*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([for monotonic clock_gettime]) 878*6236dae4SAndroid Build Coastguard Worker # 879*6236dae4SAndroid Build Coastguard Worker if test "x$dontwant_rt" = "xno" ; then 880*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 881*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 882*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TYPES_H 883*6236dae4SAndroid Build Coastguard Worker #include <sys/types.h> 884*6236dae4SAndroid Build Coastguard Worker #endif 885*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TIME_H 886*6236dae4SAndroid Build Coastguard Worker #include <sys/time.h> 887*6236dae4SAndroid Build Coastguard Worker #endif 888*6236dae4SAndroid Build Coastguard Worker #include <time.h> 889*6236dae4SAndroid Build Coastguard Worker ]],[[ 890*6236dae4SAndroid Build Coastguard Worker struct timespec ts; 891*6236dae4SAndroid Build Coastguard Worker (void)clock_gettime(CLOCK_MONOTONIC, &ts); 892*6236dae4SAndroid Build Coastguard Worker ]]) 893*6236dae4SAndroid Build Coastguard Worker ],[ 894*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 895*6236dae4SAndroid Build Coastguard Worker curl_func_clock_gettime="yes" 896*6236dae4SAndroid Build Coastguard Worker ],[ 897*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 898*6236dae4SAndroid Build Coastguard Worker curl_func_clock_gettime="no" 899*6236dae4SAndroid Build Coastguard Worker ]) 900*6236dae4SAndroid Build Coastguard Worker fi 901*6236dae4SAndroid Build Coastguard Worker dnl Definition of HAVE_CLOCK_GETTIME_MONOTONIC is intentionally postponed 902*6236dae4SAndroid Build Coastguard Worker dnl until library linking and run-time checks for clock_gettime succeed. 903*6236dae4SAndroid Build Coastguard Worker]) 904*6236dae4SAndroid Build Coastguard Worker 905*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_CLOCK_GETTIME_MONOTONIC_RAW 906*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 907*6236dae4SAndroid Build Coastguard Workerdnl Check if monotonic clock_gettime is available. 908*6236dae4SAndroid Build Coastguard Worker 909*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_CLOCK_GETTIME_MONOTONIC_RAW], [ 910*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS(sys/types.h sys/time.h) 911*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([for raw monotonic clock_gettime]) 912*6236dae4SAndroid Build Coastguard Worker # 913*6236dae4SAndroid Build Coastguard Worker if test "x$dontwant_rt" = "xno" ; then 914*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 915*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 916*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TYPES_H 917*6236dae4SAndroid Build Coastguard Worker #include <sys/types.h> 918*6236dae4SAndroid Build Coastguard Worker #endif 919*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TIME_H 920*6236dae4SAndroid Build Coastguard Worker #include <sys/time.h> 921*6236dae4SAndroid Build Coastguard Worker #endif 922*6236dae4SAndroid Build Coastguard Worker #include <time.h> 923*6236dae4SAndroid Build Coastguard Worker ]],[[ 924*6236dae4SAndroid Build Coastguard Worker struct timespec ts; 925*6236dae4SAndroid Build Coastguard Worker (void)clock_gettime(CLOCK_MONOTONIC_RAW, &ts); 926*6236dae4SAndroid Build Coastguard Worker ]]) 927*6236dae4SAndroid Build Coastguard Worker ],[ 928*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 929*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_CLOCK_GETTIME_MONOTONIC_RAW, 1, 930*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the clock_gettime function and raw monotonic timer.]) 931*6236dae4SAndroid Build Coastguard Worker ],[ 932*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 933*6236dae4SAndroid Build Coastguard Worker ]) 934*6236dae4SAndroid Build Coastguard Worker fi 935*6236dae4SAndroid Build Coastguard Worker]) 936*6236dae4SAndroid Build Coastguard Worker 937*6236dae4SAndroid Build Coastguard Worker 938*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC 939*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 940*6236dae4SAndroid Build Coastguard Workerdnl If monotonic clock_gettime is available then, 941*6236dae4SAndroid Build Coastguard Workerdnl check and prepended to LIBS any needed libraries. 942*6236dae4SAndroid Build Coastguard Worker 943*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC], [ 944*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_CHECK_FUNC_CLOCK_GETTIME_MONOTONIC])dnl 945*6236dae4SAndroid Build Coastguard Worker # 946*6236dae4SAndroid Build Coastguard Worker if test "$curl_func_clock_gettime" = "yes"; then 947*6236dae4SAndroid Build Coastguard Worker # 948*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([for clock_gettime in libraries]) 949*6236dae4SAndroid Build Coastguard Worker # 950*6236dae4SAndroid Build Coastguard Worker curl_cv_save_LIBS="$LIBS" 951*6236dae4SAndroid Build Coastguard Worker curl_cv_gclk_LIBS="unknown" 952*6236dae4SAndroid Build Coastguard Worker # 953*6236dae4SAndroid Build Coastguard Worker for x_xlibs in '' '-lrt' '-lposix4' ; do 954*6236dae4SAndroid Build Coastguard Worker if test "$curl_cv_gclk_LIBS" = "unknown"; then 955*6236dae4SAndroid Build Coastguard Worker if test -z "$x_xlibs"; then 956*6236dae4SAndroid Build Coastguard Worker LIBS="$curl_cv_save_LIBS" 957*6236dae4SAndroid Build Coastguard Worker else 958*6236dae4SAndroid Build Coastguard Worker LIBS="$x_xlibs $curl_cv_save_LIBS" 959*6236dae4SAndroid Build Coastguard Worker fi 960*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 961*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 962*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TYPES_H 963*6236dae4SAndroid Build Coastguard Worker #include <sys/types.h> 964*6236dae4SAndroid Build Coastguard Worker #endif 965*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TIME_H 966*6236dae4SAndroid Build Coastguard Worker #include <sys/time.h> 967*6236dae4SAndroid Build Coastguard Worker #endif 968*6236dae4SAndroid Build Coastguard Worker #include <time.h> 969*6236dae4SAndroid Build Coastguard Worker ]],[[ 970*6236dae4SAndroid Build Coastguard Worker struct timespec ts; 971*6236dae4SAndroid Build Coastguard Worker (void)clock_gettime(CLOCK_MONOTONIC, &ts); 972*6236dae4SAndroid Build Coastguard Worker ]]) 973*6236dae4SAndroid Build Coastguard Worker ],[ 974*6236dae4SAndroid Build Coastguard Worker curl_cv_gclk_LIBS="$x_xlibs" 975*6236dae4SAndroid Build Coastguard Worker ]) 976*6236dae4SAndroid Build Coastguard Worker fi 977*6236dae4SAndroid Build Coastguard Worker done 978*6236dae4SAndroid Build Coastguard Worker # 979*6236dae4SAndroid Build Coastguard Worker LIBS="$curl_cv_save_LIBS" 980*6236dae4SAndroid Build Coastguard Worker # 981*6236dae4SAndroid Build Coastguard Worker case X-"$curl_cv_gclk_LIBS" in 982*6236dae4SAndroid Build Coastguard Worker X-unknown) 983*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([cannot find clock_gettime]) 984*6236dae4SAndroid Build Coastguard Worker AC_MSG_WARN([HAVE_CLOCK_GETTIME_MONOTONIC will not be defined]) 985*6236dae4SAndroid Build Coastguard Worker curl_func_clock_gettime="no" 986*6236dae4SAndroid Build Coastguard Worker ;; 987*6236dae4SAndroid Build Coastguard Worker X-) 988*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no additional lib required]) 989*6236dae4SAndroid Build Coastguard Worker curl_func_clock_gettime="yes" 990*6236dae4SAndroid Build Coastguard Worker ;; 991*6236dae4SAndroid Build Coastguard Worker *) 992*6236dae4SAndroid Build Coastguard Worker if test -z "$curl_cv_save_LIBS"; then 993*6236dae4SAndroid Build Coastguard Worker LIBS="$curl_cv_gclk_LIBS" 994*6236dae4SAndroid Build Coastguard Worker else 995*6236dae4SAndroid Build Coastguard Worker LIBS="$curl_cv_gclk_LIBS $curl_cv_save_LIBS" 996*6236dae4SAndroid Build Coastguard Worker fi 997*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([$curl_cv_gclk_LIBS]) 998*6236dae4SAndroid Build Coastguard Worker curl_func_clock_gettime="yes" 999*6236dae4SAndroid Build Coastguard Worker ;; 1000*6236dae4SAndroid Build Coastguard Worker esac 1001*6236dae4SAndroid Build Coastguard Worker # 1002*6236dae4SAndroid Build Coastguard Worker dnl only do runtime verification when not cross-compiling 1003*6236dae4SAndroid Build Coastguard Worker if test "x$cross_compiling" != "xyes" && 1004*6236dae4SAndroid Build Coastguard Worker test "$curl_func_clock_gettime" = "yes"; then 1005*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if monotonic clock_gettime works]) 1006*6236dae4SAndroid Build Coastguard Worker CURL_RUN_IFELSE([ 1007*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1008*6236dae4SAndroid Build Coastguard Worker #include <stdlib.h> 1009*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TYPES_H 1010*6236dae4SAndroid Build Coastguard Worker #include <sys/types.h> 1011*6236dae4SAndroid Build Coastguard Worker #endif 1012*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TIME_H 1013*6236dae4SAndroid Build Coastguard Worker #include <sys/time.h> 1014*6236dae4SAndroid Build Coastguard Worker #endif 1015*6236dae4SAndroid Build Coastguard Worker #include <time.h> 1016*6236dae4SAndroid Build Coastguard Worker ]],[[ 1017*6236dae4SAndroid Build Coastguard Worker struct timespec ts; 1018*6236dae4SAndroid Build Coastguard Worker if (0 == clock_gettime(CLOCK_MONOTONIC, &ts)) 1019*6236dae4SAndroid Build Coastguard Worker exit(0); 1020*6236dae4SAndroid Build Coastguard Worker else 1021*6236dae4SAndroid Build Coastguard Worker exit(1); 1022*6236dae4SAndroid Build Coastguard Worker ]]) 1023*6236dae4SAndroid Build Coastguard Worker ],[ 1024*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1025*6236dae4SAndroid Build Coastguard Worker ],[ 1026*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1027*6236dae4SAndroid Build Coastguard Worker AC_MSG_WARN([HAVE_CLOCK_GETTIME_MONOTONIC will not be defined]) 1028*6236dae4SAndroid Build Coastguard Worker curl_func_clock_gettime="no" 1029*6236dae4SAndroid Build Coastguard Worker LIBS="$curl_cv_save_LIBS" 1030*6236dae4SAndroid Build Coastguard Worker ]) 1031*6236dae4SAndroid Build Coastguard Worker fi 1032*6236dae4SAndroid Build Coastguard Worker # 1033*6236dae4SAndroid Build Coastguard Worker case "$curl_func_clock_gettime" in 1034*6236dae4SAndroid Build Coastguard Worker yes) 1035*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_CLOCK_GETTIME_MONOTONIC, 1, 1036*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the clock_gettime function and monotonic timer.]) 1037*6236dae4SAndroid Build Coastguard Worker ;; 1038*6236dae4SAndroid Build Coastguard Worker esac 1039*6236dae4SAndroid Build Coastguard Worker # 1040*6236dae4SAndroid Build Coastguard Worker fi 1041*6236dae4SAndroid Build Coastguard Worker # 1042*6236dae4SAndroid Build Coastguard Worker]) 1043*6236dae4SAndroid Build Coastguard Worker 1044*6236dae4SAndroid Build Coastguard Worker 1045*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_LIBS_CONNECT 1046*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 1047*6236dae4SAndroid Build Coastguard Workerdnl Verify if network connect function is already available 1048*6236dae4SAndroid Build Coastguard Workerdnl using current libraries or if another one is required. 1049*6236dae4SAndroid Build Coastguard Worker 1050*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_LIBS_CONNECT], [ 1051*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_WINSOCK2])dnl 1052*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_BSDSOCKET])dnl 1053*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([for connect in libraries]) 1054*6236dae4SAndroid Build Coastguard Worker tst_connect_save_LIBS="$LIBS" 1055*6236dae4SAndroid Build Coastguard Worker tst_connect_need_LIBS="unknown" 1056*6236dae4SAndroid Build Coastguard Worker for tst_lib in '' '-lsocket' ; do 1057*6236dae4SAndroid Build Coastguard Worker if test "$tst_connect_need_LIBS" = "unknown"; then 1058*6236dae4SAndroid Build Coastguard Worker LIBS="$tst_lib $tst_connect_save_LIBS" 1059*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 1060*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1061*6236dae4SAndroid Build Coastguard Worker $curl_includes_winsock2 1062*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 1063*6236dae4SAndroid Build Coastguard Worker #if !defined(_WIN32) && !defined(HAVE_PROTO_BSDSOCKET_H) 1064*6236dae4SAndroid Build Coastguard Worker int connect(int, void*, int); 1065*6236dae4SAndroid Build Coastguard Worker #endif 1066*6236dae4SAndroid Build Coastguard Worker ]],[[ 1067*6236dae4SAndroid Build Coastguard Worker if(0 != connect(0, 0, 0)) 1068*6236dae4SAndroid Build Coastguard Worker return 1; 1069*6236dae4SAndroid Build Coastguard Worker ]]) 1070*6236dae4SAndroid Build Coastguard Worker ],[ 1071*6236dae4SAndroid Build Coastguard Worker tst_connect_need_LIBS="$tst_lib" 1072*6236dae4SAndroid Build Coastguard Worker ]) 1073*6236dae4SAndroid Build Coastguard Worker fi 1074*6236dae4SAndroid Build Coastguard Worker done 1075*6236dae4SAndroid Build Coastguard Worker LIBS="$tst_connect_save_LIBS" 1076*6236dae4SAndroid Build Coastguard Worker # 1077*6236dae4SAndroid Build Coastguard Worker case X-"$tst_connect_need_LIBS" in 1078*6236dae4SAndroid Build Coastguard Worker X-unknown) 1079*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([cannot find connect]) 1080*6236dae4SAndroid Build Coastguard Worker AC_MSG_ERROR([cannot find connect function in libraries.]) 1081*6236dae4SAndroid Build Coastguard Worker ;; 1082*6236dae4SAndroid Build Coastguard Worker X-) 1083*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1084*6236dae4SAndroid Build Coastguard Worker ;; 1085*6236dae4SAndroid Build Coastguard Worker *) 1086*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([$tst_connect_need_LIBS]) 1087*6236dae4SAndroid Build Coastguard Worker LIBS="$tst_connect_need_LIBS $tst_connect_save_LIBS" 1088*6236dae4SAndroid Build Coastguard Worker ;; 1089*6236dae4SAndroid Build Coastguard Worker esac 1090*6236dae4SAndroid Build Coastguard Worker]) 1091*6236dae4SAndroid Build Coastguard Worker 1092*6236dae4SAndroid Build Coastguard Worker 1093*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_FUNC_SELECT 1094*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 1095*6236dae4SAndroid Build Coastguard Workerdnl Test if the socket select() function is available. 1096*6236dae4SAndroid Build Coastguard Worker 1097*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_FUNC_SELECT], [ 1098*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_CHECK_STRUCT_TIMEVAL])dnl 1099*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_INCLUDES_BSDSOCKET])dnl 1100*6236dae4SAndroid Build Coastguard Worker AC_CHECK_HEADERS(sys/select.h sys/socket.h) 1101*6236dae4SAndroid Build Coastguard Worker # 1102*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([for select]) 1103*6236dae4SAndroid Build Coastguard Worker AC_LINK_IFELSE([ 1104*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1105*6236dae4SAndroid Build Coastguard Worker #undef inline 1106*6236dae4SAndroid Build Coastguard Worker #ifdef _WIN32 1107*6236dae4SAndroid Build Coastguard Worker #ifndef WIN32_LEAN_AND_MEAN 1108*6236dae4SAndroid Build Coastguard Worker #define WIN32_LEAN_AND_MEAN 1109*6236dae4SAndroid Build Coastguard Worker #endif 1110*6236dae4SAndroid Build Coastguard Worker #include <winsock2.h> 1111*6236dae4SAndroid Build Coastguard Worker #endif 1112*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TYPES_H 1113*6236dae4SAndroid Build Coastguard Worker #include <sys/types.h> 1114*6236dae4SAndroid Build Coastguard Worker #endif 1115*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_TIME_H 1116*6236dae4SAndroid Build Coastguard Worker #include <sys/time.h> 1117*6236dae4SAndroid Build Coastguard Worker #endif 1118*6236dae4SAndroid Build Coastguard Worker #include <time.h> 1119*6236dae4SAndroid Build Coastguard Worker #ifndef _WIN32 1120*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_SELECT_H 1121*6236dae4SAndroid Build Coastguard Worker #include <sys/select.h> 1122*6236dae4SAndroid Build Coastguard Worker #elif defined(HAVE_UNISTD_H) 1123*6236dae4SAndroid Build Coastguard Worker #include <unistd.h> 1124*6236dae4SAndroid Build Coastguard Worker #endif 1125*6236dae4SAndroid Build Coastguard Worker #ifdef HAVE_SYS_SOCKET_H 1126*6236dae4SAndroid Build Coastguard Worker #include <sys/socket.h> 1127*6236dae4SAndroid Build Coastguard Worker #endif 1128*6236dae4SAndroid Build Coastguard Worker $curl_includes_bsdsocket 1129*6236dae4SAndroid Build Coastguard Worker #endif 1130*6236dae4SAndroid Build Coastguard Worker ]],[[ 1131*6236dae4SAndroid Build Coastguard Worker select(0, 0, 0, 0, 0); 1132*6236dae4SAndroid Build Coastguard Worker ]]) 1133*6236dae4SAndroid Build Coastguard Worker ],[ 1134*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1135*6236dae4SAndroid Build Coastguard Worker curl_cv_select="yes" 1136*6236dae4SAndroid Build Coastguard Worker ],[ 1137*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1138*6236dae4SAndroid Build Coastguard Worker curl_cv_select="no" 1139*6236dae4SAndroid Build Coastguard Worker ]) 1140*6236dae4SAndroid Build Coastguard Worker # 1141*6236dae4SAndroid Build Coastguard Worker if test "$curl_cv_select" = "yes"; then 1142*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_SELECT, 1, 1143*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the select function.]) 1144*6236dae4SAndroid Build Coastguard Worker curl_cv_func_select="yes" 1145*6236dae4SAndroid Build Coastguard Worker fi 1146*6236dae4SAndroid Build Coastguard Worker]) 1147*6236dae4SAndroid Build Coastguard Worker 1148*6236dae4SAndroid Build Coastguard Worker 1149*6236dae4SAndroid Build Coastguard Workerdnl CURL_VERIFY_RUNTIMELIBS 1150*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 1151*6236dae4SAndroid Build Coastguard Workerdnl Verify that the shared libs found so far can be used when running 1152*6236dae4SAndroid Build Coastguard Workerdnl programs, since otherwise the situation will create odd configure errors 1153*6236dae4SAndroid Build Coastguard Workerdnl that are misleading people. 1154*6236dae4SAndroid Build Coastguard Workerdnl 1155*6236dae4SAndroid Build Coastguard Workerdnl Make sure this test is run BEFORE the first test in the script that 1156*6236dae4SAndroid Build Coastguard Workerdnl runs anything, which at the time of this writing is the AC_CHECK_SIZEOF 1157*6236dae4SAndroid Build Coastguard Workerdnl macro. It must also run AFTER all lib-checking macros are complete. 1158*6236dae4SAndroid Build Coastguard Worker 1159*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_VERIFY_RUNTIMELIBS], [ 1160*6236dae4SAndroid Build Coastguard Worker 1161*6236dae4SAndroid Build Coastguard Worker dnl this test is of course not sensible if we are cross-compiling! 1162*6236dae4SAndroid Build Coastguard Worker if test "x$cross_compiling" != xyes; then 1163*6236dae4SAndroid Build Coastguard Worker 1164*6236dae4SAndroid Build Coastguard Worker dnl just run a program to verify that the libs checked for previous to this 1165*6236dae4SAndroid Build Coastguard Worker dnl point also is available run-time! 1166*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([run-time libs availability]) 1167*6236dae4SAndroid Build Coastguard Worker CURL_RUN_IFELSE([ 1168*6236dae4SAndroid Build Coastguard Worker int main() 1169*6236dae4SAndroid Build Coastguard Worker { 1170*6236dae4SAndroid Build Coastguard Worker return 0; 1171*6236dae4SAndroid Build Coastguard Worker } 1172*6236dae4SAndroid Build Coastguard Worker ], 1173*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([fine]), 1174*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([failed]) 1175*6236dae4SAndroid Build Coastguard Worker AC_MSG_ERROR([one or more libs available at link-time are not available run-time. Libs used at link-time: $LIBS]) 1176*6236dae4SAndroid Build Coastguard Worker ) 1177*6236dae4SAndroid Build Coastguard Worker 1178*6236dae4SAndroid Build Coastguard Worker dnl if this test fails, configure has already stopped 1179*6236dae4SAndroid Build Coastguard Worker fi 1180*6236dae4SAndroid Build Coastguard Worker]) 1181*6236dae4SAndroid Build Coastguard Worker 1182*6236dae4SAndroid Build Coastguard Worker 1183*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_CA_BUNDLE 1184*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 1185*6236dae4SAndroid Build Coastguard Workerdnl Check if a default ca-bundle should be used 1186*6236dae4SAndroid Build Coastguard Workerdnl 1187*6236dae4SAndroid Build Coastguard Workerdnl regarding the paths this will scan: 1188*6236dae4SAndroid Build Coastguard Workerdnl /etc/ssl/certs/ca-certificates.crt Debian systems 1189*6236dae4SAndroid Build Coastguard Workerdnl /etc/pki/tls/certs/ca-bundle.crt Redhat and Mandriva 1190*6236dae4SAndroid Build Coastguard Workerdnl /usr/share/ssl/certs/ca-bundle.crt old(er) Redhat 1191*6236dae4SAndroid Build Coastguard Workerdnl /usr/local/share/certs/ca-root-nss.crt MidnightBSD 1192*6236dae4SAndroid Build Coastguard Workerdnl /etc/ssl/cert.pem OpenBSD, MidnightBSD (symlink) 1193*6236dae4SAndroid Build Coastguard Workerdnl /etc/ssl/certs (CA path) SUSE, FreeBSD 1194*6236dae4SAndroid Build Coastguard Worker 1195*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_CA_BUNDLE], [ 1196*6236dae4SAndroid Build Coastguard Worker 1197*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([default CA cert bundle/path]) 1198*6236dae4SAndroid Build Coastguard Worker 1199*6236dae4SAndroid Build Coastguard Worker AC_ARG_WITH(ca-bundle, 1200*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--with-ca-bundle=FILE], 1201*6236dae4SAndroid Build Coastguard Worker [Absolute path to a file containing CA certificates (example: /etc/ca-bundle.crt)]) 1202*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--without-ca-bundle], [Don't use a default CA bundle]), 1203*6236dae4SAndroid Build Coastguard Worker [ 1204*6236dae4SAndroid Build Coastguard Worker want_ca="$withval" 1205*6236dae4SAndroid Build Coastguard Worker if test "x$want_ca" = "xyes"; then 1206*6236dae4SAndroid Build Coastguard Worker AC_MSG_ERROR([--with-ca-bundle=FILE requires a path to the CA bundle]) 1207*6236dae4SAndroid Build Coastguard Worker fi 1208*6236dae4SAndroid Build Coastguard Worker ], 1209*6236dae4SAndroid Build Coastguard Worker [ want_ca="unset" ]) 1210*6236dae4SAndroid Build Coastguard Worker AC_ARG_WITH(ca-path, 1211*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--with-ca-path=DIRECTORY], 1212*6236dae4SAndroid Build Coastguard Worker [Absolute path to a directory containing CA certificates stored individually, with \ 1213*6236dae4SAndroid Build Coastguard Workertheir filenames in a hash format. This option can be used with the OpenSSL, \ 1214*6236dae4SAndroid Build Coastguard WorkerGnuTLS, mbedTLS and wolfSSL backends. Refer to OpenSSL c_rehash for details. \ 1215*6236dae4SAndroid Build Coastguard Worker(example: /etc/certificates)]) 1216*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--without-ca-path], [Don't use a default CA path]), 1217*6236dae4SAndroid Build Coastguard Worker [ 1218*6236dae4SAndroid Build Coastguard Worker want_capath="$withval" 1219*6236dae4SAndroid Build Coastguard Worker if test "x$want_capath" = "xyes"; then 1220*6236dae4SAndroid Build Coastguard Worker AC_MSG_ERROR([--with-ca-path=DIRECTORY requires a path to the CA path directory]) 1221*6236dae4SAndroid Build Coastguard Worker fi 1222*6236dae4SAndroid Build Coastguard Worker ], 1223*6236dae4SAndroid Build Coastguard Worker [ want_capath="unset"]) 1224*6236dae4SAndroid Build Coastguard Worker 1225*6236dae4SAndroid Build Coastguard Worker ca_warning=" (warning: certs not found)" 1226*6236dae4SAndroid Build Coastguard Worker capath_warning=" (warning: certs not found)" 1227*6236dae4SAndroid Build Coastguard Worker check_capath="" 1228*6236dae4SAndroid Build Coastguard Worker 1229*6236dae4SAndroid Build Coastguard Worker if test "x$want_ca" != "xno" -a "x$want_ca" != "xunset" -a \ 1230*6236dae4SAndroid Build Coastguard Worker "x$want_capath" != "xno" -a "x$want_capath" != "xunset"; then 1231*6236dae4SAndroid Build Coastguard Worker dnl both given 1232*6236dae4SAndroid Build Coastguard Worker ca="$want_ca" 1233*6236dae4SAndroid Build Coastguard Worker capath="$want_capath" 1234*6236dae4SAndroid Build Coastguard Worker elif test "x$want_ca" != "xno" -a "x$want_ca" != "xunset"; then 1235*6236dae4SAndroid Build Coastguard Worker dnl --with-ca-bundle given 1236*6236dae4SAndroid Build Coastguard Worker ca="$want_ca" 1237*6236dae4SAndroid Build Coastguard Worker capath="no" 1238*6236dae4SAndroid Build Coastguard Worker elif test "x$want_capath" != "xno" -a "x$want_capath" != "xunset"; then 1239*6236dae4SAndroid Build Coastguard Worker dnl --with-ca-path given 1240*6236dae4SAndroid Build Coastguard Worker capath="$want_capath" 1241*6236dae4SAndroid Build Coastguard Worker ca="no" 1242*6236dae4SAndroid Build Coastguard Worker else 1243*6236dae4SAndroid Build Coastguard Worker dnl First try auto-detecting a CA bundle, then a CA path. 1244*6236dae4SAndroid Build Coastguard Worker dnl Both auto-detections can be skipped by --without-ca-* 1245*6236dae4SAndroid Build Coastguard Worker ca="no" 1246*6236dae4SAndroid Build Coastguard Worker capath="no" 1247*6236dae4SAndroid Build Coastguard Worker if test "x$cross_compiling" != "xyes" -a \ 1248*6236dae4SAndroid Build Coastguard Worker "x$curl_cv_native_windows" != "xyes"; then 1249*6236dae4SAndroid Build Coastguard Worker dnl NOT cross-compiling and... 1250*6236dae4SAndroid Build Coastguard Worker dnl neither of the --with-ca-* options are provided 1251*6236dae4SAndroid Build Coastguard Worker if test "x$want_ca" = "xunset"; then 1252*6236dae4SAndroid Build Coastguard Worker dnl the path we previously would have installed the curl CA bundle 1253*6236dae4SAndroid Build Coastguard Worker dnl to, and thus we now check for an already existing cert in that 1254*6236dae4SAndroid Build Coastguard Worker dnl place in case we find no other 1255*6236dae4SAndroid Build Coastguard Worker if test "x$prefix" != xNONE; then 1256*6236dae4SAndroid Build Coastguard Worker cac="${prefix}/share/curl/curl-ca-bundle.crt" 1257*6236dae4SAndroid Build Coastguard Worker else 1258*6236dae4SAndroid Build Coastguard Worker cac="$ac_default_prefix/share/curl/curl-ca-bundle.crt" 1259*6236dae4SAndroid Build Coastguard Worker fi 1260*6236dae4SAndroid Build Coastguard Worker 1261*6236dae4SAndroid Build Coastguard Worker for a in /etc/ssl/certs/ca-certificates.crt \ 1262*6236dae4SAndroid Build Coastguard Worker /etc/pki/tls/certs/ca-bundle.crt \ 1263*6236dae4SAndroid Build Coastguard Worker /usr/share/ssl/certs/ca-bundle.crt \ 1264*6236dae4SAndroid Build Coastguard Worker /usr/local/share/certs/ca-root-nss.crt \ 1265*6236dae4SAndroid Build Coastguard Worker /etc/ssl/cert.pem \ 1266*6236dae4SAndroid Build Coastguard Worker "$cac"; do 1267*6236dae4SAndroid Build Coastguard Worker if test -f "$a"; then 1268*6236dae4SAndroid Build Coastguard Worker ca="$a" 1269*6236dae4SAndroid Build Coastguard Worker break 1270*6236dae4SAndroid Build Coastguard Worker fi 1271*6236dae4SAndroid Build Coastguard Worker done 1272*6236dae4SAndroid Build Coastguard Worker fi 1273*6236dae4SAndroid Build Coastguard Worker AC_MSG_NOTICE([want $want_capath ca $ca]) 1274*6236dae4SAndroid Build Coastguard Worker if test "x$want_capath" = "xunset"; then 1275*6236dae4SAndroid Build Coastguard Worker check_capath="/etc/ssl/certs" 1276*6236dae4SAndroid Build Coastguard Worker fi 1277*6236dae4SAndroid Build Coastguard Worker else 1278*6236dae4SAndroid Build Coastguard Worker dnl no option given and cross-compiling 1279*6236dae4SAndroid Build Coastguard Worker AC_MSG_WARN([skipped the ca-cert path detection when cross-compiling]) 1280*6236dae4SAndroid Build Coastguard Worker fi 1281*6236dae4SAndroid Build Coastguard Worker fi 1282*6236dae4SAndroid Build Coastguard Worker 1283*6236dae4SAndroid Build Coastguard Worker if test "x$ca" = "xno" || test -f "$ca"; then 1284*6236dae4SAndroid Build Coastguard Worker ca_warning="" 1285*6236dae4SAndroid Build Coastguard Worker fi 1286*6236dae4SAndroid Build Coastguard Worker 1287*6236dae4SAndroid Build Coastguard Worker if test "x$capath" != "xno"; then 1288*6236dae4SAndroid Build Coastguard Worker check_capath="$capath" 1289*6236dae4SAndroid Build Coastguard Worker fi 1290*6236dae4SAndroid Build Coastguard Worker 1291*6236dae4SAndroid Build Coastguard Worker if test ! -z "$check_capath"; then 1292*6236dae4SAndroid Build Coastguard Worker for a in "$check_capath"; do 1293*6236dae4SAndroid Build Coastguard Worker if test -d "$a" && ls "$a"/[[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]].0 >/dev/null 2>/dev/null; then 1294*6236dae4SAndroid Build Coastguard Worker if test "x$capath" = "xno"; then 1295*6236dae4SAndroid Build Coastguard Worker capath="$a" 1296*6236dae4SAndroid Build Coastguard Worker fi 1297*6236dae4SAndroid Build Coastguard Worker capath_warning="" 1298*6236dae4SAndroid Build Coastguard Worker break 1299*6236dae4SAndroid Build Coastguard Worker fi 1300*6236dae4SAndroid Build Coastguard Worker done 1301*6236dae4SAndroid Build Coastguard Worker fi 1302*6236dae4SAndroid Build Coastguard Worker 1303*6236dae4SAndroid Build Coastguard Worker if test "x$capath" = "xno"; then 1304*6236dae4SAndroid Build Coastguard Worker capath_warning="" 1305*6236dae4SAndroid Build Coastguard Worker fi 1306*6236dae4SAndroid Build Coastguard Worker 1307*6236dae4SAndroid Build Coastguard Worker if test "x$ca" != "xno"; then 1308*6236dae4SAndroid Build Coastguard Worker CURL_CA_BUNDLE="$ca" 1309*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(CURL_CA_BUNDLE, "$ca", [Location of default ca bundle]) 1310*6236dae4SAndroid Build Coastguard Worker AC_SUBST(CURL_CA_BUNDLE) 1311*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([$ca]) 1312*6236dae4SAndroid Build Coastguard Worker fi 1313*6236dae4SAndroid Build Coastguard Worker if test "x$capath" != "xno"; then 1314*6236dae4SAndroid Build Coastguard Worker CURL_CA_PATH="\"$capath\"" 1315*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(CURL_CA_PATH, "$capath", [Location of default ca path]) 1316*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([$capath (capath)]) 1317*6236dae4SAndroid Build Coastguard Worker fi 1318*6236dae4SAndroid Build Coastguard Worker if test "x$ca" = "xno" && test "x$capath" = "xno"; then 1319*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1320*6236dae4SAndroid Build Coastguard Worker fi 1321*6236dae4SAndroid Build Coastguard Worker 1322*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([whether to use built-in CA store of SSL library]) 1323*6236dae4SAndroid Build Coastguard Worker AC_ARG_WITH(ca-fallback, 1324*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--with-ca-fallback], [Use the built-in CA store of the SSL library]) 1325*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--without-ca-fallback], [Don't use the built-in CA store of the SSL library]), 1326*6236dae4SAndroid Build Coastguard Worker [ 1327*6236dae4SAndroid Build Coastguard Worker if test "x$with_ca_fallback" != "xyes" -a "x$with_ca_fallback" != "xno"; then 1328*6236dae4SAndroid Build Coastguard Worker AC_MSG_ERROR([--with-ca-fallback only allows yes or no as parameter]) 1329*6236dae4SAndroid Build Coastguard Worker fi 1330*6236dae4SAndroid Build Coastguard Worker ], 1331*6236dae4SAndroid Build Coastguard Worker [ with_ca_fallback="no"]) 1332*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([$with_ca_fallback]) 1333*6236dae4SAndroid Build Coastguard Worker if test "x$with_ca_fallback" = "xyes"; then 1334*6236dae4SAndroid Build Coastguard Worker if test "x$OPENSSL_ENABLED" != "x1" -a "x$GNUTLS_ENABLED" != "x1"; then 1335*6236dae4SAndroid Build Coastguard Worker AC_MSG_ERROR([--with-ca-fallback only works with OpenSSL or GnuTLS]) 1336*6236dae4SAndroid Build Coastguard Worker fi 1337*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(CURL_CA_FALLBACK, 1, [define "1" to use built-in CA store of SSL library]) 1338*6236dae4SAndroid Build Coastguard Worker fi 1339*6236dae4SAndroid Build Coastguard Worker]) 1340*6236dae4SAndroid Build Coastguard Worker 1341*6236dae4SAndroid Build Coastguard Worker 1342*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_CA_EMBED 1343*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 1344*6236dae4SAndroid Build Coastguard Workerdnl Check if a ca-bundle should be embedded 1345*6236dae4SAndroid Build Coastguard Worker 1346*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_CA_EMBED], [ 1347*6236dae4SAndroid Build Coastguard Worker 1348*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([CA cert bundle path to embed in the curl tool]) 1349*6236dae4SAndroid Build Coastguard Worker 1350*6236dae4SAndroid Build Coastguard Worker AC_ARG_WITH(ca-embed, 1351*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--with-ca-embed=FILE], 1352*6236dae4SAndroid Build Coastguard Worker [Absolute path to a file containing CA certificates to embed in the curl tool (example: /etc/ca-bundle.crt)]) 1353*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--without-ca-embed], [Don't embed a default CA bundle in the curl tool]), 1354*6236dae4SAndroid Build Coastguard Worker [ 1355*6236dae4SAndroid Build Coastguard Worker want_ca_embed="$withval" 1356*6236dae4SAndroid Build Coastguard Worker if test "x$want_ca_embed" = "xyes"; then 1357*6236dae4SAndroid Build Coastguard Worker AC_MSG_ERROR([--with-ca-embed=FILE requires a path to the CA bundle]) 1358*6236dae4SAndroid Build Coastguard Worker fi 1359*6236dae4SAndroid Build Coastguard Worker ], 1360*6236dae4SAndroid Build Coastguard Worker [ want_ca_embed="unset" ]) 1361*6236dae4SAndroid Build Coastguard Worker 1362*6236dae4SAndroid Build Coastguard Worker CURL_CA_EMBED='' 1363*6236dae4SAndroid Build Coastguard Worker if test "x$want_ca_embed" != "xno" -a "x$want_ca_embed" != "xunset" -a -f "$want_ca_embed"; then 1364*6236dae4SAndroid Build Coastguard Worker CURL_CA_EMBED="$want_ca_embed" 1365*6236dae4SAndroid Build Coastguard Worker AC_SUBST(CURL_CA_EMBED) 1366*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([$want_ca_embed]) 1367*6236dae4SAndroid Build Coastguard Worker else 1368*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1369*6236dae4SAndroid Build Coastguard Worker fi 1370*6236dae4SAndroid Build Coastguard Worker]) 1371*6236dae4SAndroid Build Coastguard Worker 1372*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_WIN32_LARGEFILE 1373*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 1374*6236dae4SAndroid Build Coastguard Workerdnl Check if curl's Win32 large file will be used 1375*6236dae4SAndroid Build Coastguard Worker 1376*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_WIN32_LARGEFILE], [ 1377*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_CHECK_NATIVE_WINDOWS])dnl 1378*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([whether build target supports Win32 file API]) 1379*6236dae4SAndroid Build Coastguard Worker curl_win32_file_api="no" 1380*6236dae4SAndroid Build Coastguard Worker if test "$curl_cv_native_windows" = "yes"; then 1381*6236dae4SAndroid Build Coastguard Worker if test x"$enable_largefile" != "xno"; then 1382*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 1383*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1384*6236dae4SAndroid Build Coastguard Worker ]],[[ 1385*6236dae4SAndroid Build Coastguard Worker #if !defined(_WIN32_WCE) && (defined(__MINGW32__) || defined(_MSC_VER)) 1386*6236dae4SAndroid Build Coastguard Worker int dummy=1; 1387*6236dae4SAndroid Build Coastguard Worker #else 1388*6236dae4SAndroid Build Coastguard Worker #error Win32 large file API not supported. 1389*6236dae4SAndroid Build Coastguard Worker #endif 1390*6236dae4SAndroid Build Coastguard Worker ]]) 1391*6236dae4SAndroid Build Coastguard Worker ],[ 1392*6236dae4SAndroid Build Coastguard Worker curl_win32_file_api="win32_large_files" 1393*6236dae4SAndroid Build Coastguard Worker ]) 1394*6236dae4SAndroid Build Coastguard Worker fi 1395*6236dae4SAndroid Build Coastguard Worker if test "$curl_win32_file_api" = "no"; then 1396*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 1397*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1398*6236dae4SAndroid Build Coastguard Worker ]],[[ 1399*6236dae4SAndroid Build Coastguard Worker #if defined(_WIN32_WCE) || defined(__MINGW32__) || defined(_MSC_VER) 1400*6236dae4SAndroid Build Coastguard Worker int dummy=1; 1401*6236dae4SAndroid Build Coastguard Worker #else 1402*6236dae4SAndroid Build Coastguard Worker #error Win32 small file API not supported. 1403*6236dae4SAndroid Build Coastguard Worker #endif 1404*6236dae4SAndroid Build Coastguard Worker ]]) 1405*6236dae4SAndroid Build Coastguard Worker ],[ 1406*6236dae4SAndroid Build Coastguard Worker curl_win32_file_api="win32_small_files" 1407*6236dae4SAndroid Build Coastguard Worker ]) 1408*6236dae4SAndroid Build Coastguard Worker fi 1409*6236dae4SAndroid Build Coastguard Worker fi 1410*6236dae4SAndroid Build Coastguard Worker case "$curl_win32_file_api" in 1411*6236dae4SAndroid Build Coastguard Worker win32_large_files) 1412*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes (large file enabled)]) 1413*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(USE_WIN32_LARGE_FILES, 1, 1414*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you are building a Windows target with large file support.]) 1415*6236dae4SAndroid Build Coastguard Worker AC_SUBST(USE_WIN32_LARGE_FILES, [1]) 1416*6236dae4SAndroid Build Coastguard Worker ;; 1417*6236dae4SAndroid Build Coastguard Worker win32_small_files) 1418*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes (large file disabled)]) 1419*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(USE_WIN32_SMALL_FILES, 1, 1420*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you are building a Windows target without large file support.]) 1421*6236dae4SAndroid Build Coastguard Worker AC_SUBST(USE_WIN32_SMALL_FILES, [1]) 1422*6236dae4SAndroid Build Coastguard Worker ;; 1423*6236dae4SAndroid Build Coastguard Worker *) 1424*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1425*6236dae4SAndroid Build Coastguard Worker ;; 1426*6236dae4SAndroid Build Coastguard Worker esac 1427*6236dae4SAndroid Build Coastguard Worker]) 1428*6236dae4SAndroid Build Coastguard Worker 1429*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_WIN32_CRYPTO 1430*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 1431*6236dae4SAndroid Build Coastguard Workerdnl Check if curl's Win32 crypto lib can be used 1432*6236dae4SAndroid Build Coastguard Worker 1433*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_WIN32_CRYPTO], [ 1434*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([CURL_CHECK_NATIVE_WINDOWS])dnl 1435*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([whether build target supports Win32 crypto API]) 1436*6236dae4SAndroid Build Coastguard Worker curl_win32_crypto_api="no" 1437*6236dae4SAndroid Build Coastguard Worker if test "$curl_cv_native_windows" = "yes"; then 1438*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 1439*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1440*6236dae4SAndroid Build Coastguard Worker #undef inline 1441*6236dae4SAndroid Build Coastguard Worker #ifndef WIN32_LEAN_AND_MEAN 1442*6236dae4SAndroid Build Coastguard Worker #define WIN32_LEAN_AND_MEAN 1443*6236dae4SAndroid Build Coastguard Worker #endif 1444*6236dae4SAndroid Build Coastguard Worker #include <windows.h> 1445*6236dae4SAndroid Build Coastguard Worker #include <wincrypt.h> 1446*6236dae4SAndroid Build Coastguard Worker ]],[[ 1447*6236dae4SAndroid Build Coastguard Worker HCRYPTPROV hCryptProv; 1448*6236dae4SAndroid Build Coastguard Worker if(CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, 1449*6236dae4SAndroid Build Coastguard Worker CRYPT_VERIFYCONTEXT | CRYPT_SILENT)) { 1450*6236dae4SAndroid Build Coastguard Worker CryptReleaseContext(hCryptProv, 0); 1451*6236dae4SAndroid Build Coastguard Worker } 1452*6236dae4SAndroid Build Coastguard Worker ]]) 1453*6236dae4SAndroid Build Coastguard Worker ],[ 1454*6236dae4SAndroid Build Coastguard Worker curl_win32_crypto_api="yes" 1455*6236dae4SAndroid Build Coastguard Worker ]) 1456*6236dae4SAndroid Build Coastguard Worker fi 1457*6236dae4SAndroid Build Coastguard Worker case "$curl_win32_crypto_api" in 1458*6236dae4SAndroid Build Coastguard Worker yes) 1459*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1460*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(USE_WIN32_CRYPTO, 1, 1461*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you are building a Windows target with crypto API support.]) 1462*6236dae4SAndroid Build Coastguard Worker AC_SUBST(USE_WIN32_CRYPTO, [1]) 1463*6236dae4SAndroid Build Coastguard Worker ;; 1464*6236dae4SAndroid Build Coastguard Worker *) 1465*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1466*6236dae4SAndroid Build Coastguard Worker ;; 1467*6236dae4SAndroid Build Coastguard Worker esac 1468*6236dae4SAndroid Build Coastguard Worker]) 1469*6236dae4SAndroid Build Coastguard Worker 1470*6236dae4SAndroid Build Coastguard Workerdnl CURL_EXPORT_PCDIR ($pcdir) 1471*6236dae4SAndroid Build Coastguard Workerdnl ------------------------ 1472*6236dae4SAndroid Build Coastguard Workerdnl if $pcdir is not empty, set PKG_CONFIG_LIBDIR to $pcdir and export 1473*6236dae4SAndroid Build Coastguard Workerdnl 1474*6236dae4SAndroid Build Coastguard Workerdnl we need this macro since pkg-config distinguishes among empty and unset 1475*6236dae4SAndroid Build Coastguard Workerdnl variable while checking PKG_CONFIG_LIBDIR 1476*6236dae4SAndroid Build Coastguard Workerdnl 1477*6236dae4SAndroid Build Coastguard Worker 1478*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_EXPORT_PCDIR], [ 1479*6236dae4SAndroid Build Coastguard Worker if test -n "$1"; then 1480*6236dae4SAndroid Build Coastguard Worker PKG_CONFIG_LIBDIR="$1" 1481*6236dae4SAndroid Build Coastguard Worker export PKG_CONFIG_LIBDIR 1482*6236dae4SAndroid Build Coastguard Worker fi 1483*6236dae4SAndroid Build Coastguard Worker]) 1484*6236dae4SAndroid Build Coastguard Worker 1485*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_PKGCONFIG ($module, [$pcdir]) 1486*6236dae4SAndroid Build Coastguard Workerdnl ------------------------ 1487*6236dae4SAndroid Build Coastguard Workerdnl search for the pkg-config tool. Set the PKGCONFIG variable to hold the 1488*6236dae4SAndroid Build Coastguard Workerdnl path to it, or 'no' if not found/present. 1489*6236dae4SAndroid Build Coastguard Workerdnl 1490*6236dae4SAndroid Build Coastguard Workerdnl If pkg-config is present, check that it has info about the $module or 1491*6236dae4SAndroid Build Coastguard Workerdnl return "no" anyway! 1492*6236dae4SAndroid Build Coastguard Workerdnl 1493*6236dae4SAndroid Build Coastguard Workerdnl Optionally PKG_CONFIG_LIBDIR may be given as $pcdir. 1494*6236dae4SAndroid Build Coastguard Workerdnl 1495*6236dae4SAndroid Build Coastguard Worker 1496*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_PKGCONFIG], [ 1497*6236dae4SAndroid Build Coastguard Worker if test -n "$PKG_CONFIG"; then 1498*6236dae4SAndroid Build Coastguard Worker PKGCONFIG="$PKG_CONFIG" 1499*6236dae4SAndroid Build Coastguard Worker else 1500*6236dae4SAndroid Build Coastguard Worker AC_PATH_TOOL([PKGCONFIG], [pkg-config], [no], 1501*6236dae4SAndroid Build Coastguard Worker [$PATH:/usr/bin:/usr/local/bin]) 1502*6236dae4SAndroid Build Coastguard Worker fi 1503*6236dae4SAndroid Build Coastguard Worker 1504*6236dae4SAndroid Build Coastguard Worker if test "x$PKGCONFIG" != "xno"; then 1505*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([for $1 options with pkg-config]) 1506*6236dae4SAndroid Build Coastguard Worker dnl ask pkg-config about $1 1507*6236dae4SAndroid Build Coastguard Worker itexists=`CURL_EXPORT_PCDIR([$2]) dnl 1508*6236dae4SAndroid Build Coastguard Worker $PKGCONFIG --exists $1 >/dev/null 2>&1 && echo 1` 1509*6236dae4SAndroid Build Coastguard Worker 1510*6236dae4SAndroid Build Coastguard Worker if test -z "$itexists"; then 1511*6236dae4SAndroid Build Coastguard Worker dnl pkg-config does not have info about the given module! set the 1512*6236dae4SAndroid Build Coastguard Worker dnl variable to 'no' 1513*6236dae4SAndroid Build Coastguard Worker PKGCONFIG="no" 1514*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1515*6236dae4SAndroid Build Coastguard Worker else 1516*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([found]) 1517*6236dae4SAndroid Build Coastguard Worker fi 1518*6236dae4SAndroid Build Coastguard Worker fi 1519*6236dae4SAndroid Build Coastguard Worker]) 1520*6236dae4SAndroid Build Coastguard Worker 1521*6236dae4SAndroid Build Coastguard Worker 1522*6236dae4SAndroid Build Coastguard Workerdnl CURL_PREPARE_CONFIGUREHELP_PM 1523*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 1524*6236dae4SAndroid Build Coastguard Workerdnl Prepare test harness configurehelp.pm module, defining and 1525*6236dae4SAndroid Build Coastguard Workerdnl initializing some perl variables with values which are known 1526*6236dae4SAndroid Build Coastguard Workerdnl when the configure script runs. For portability reasons, test 1527*6236dae4SAndroid Build Coastguard Workerdnl harness needs information on how to run the C preprocessor. 1528*6236dae4SAndroid Build Coastguard Worker 1529*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_PREPARE_CONFIGUREHELP_PM], [ 1530*6236dae4SAndroid Build Coastguard Worker AC_REQUIRE([AC_PROG_CPP])dnl 1531*6236dae4SAndroid Build Coastguard Worker tmp_cpp=`eval echo "$ac_cpp" 2>/dev/null` 1532*6236dae4SAndroid Build Coastguard Worker if test -z "$tmp_cpp"; then 1533*6236dae4SAndroid Build Coastguard Worker tmp_cpp='cpp' 1534*6236dae4SAndroid Build Coastguard Worker fi 1535*6236dae4SAndroid Build Coastguard Worker AC_SUBST(CURL_CPP, $tmp_cpp) 1536*6236dae4SAndroid Build Coastguard Worker]) 1537*6236dae4SAndroid Build Coastguard Worker 1538*6236dae4SAndroid Build Coastguard Worker 1539*6236dae4SAndroid Build Coastguard Workerdnl CURL_PREPARE_BUILDINFO 1540*6236dae4SAndroid Build Coastguard Workerdnl ------------------------------------------------- 1541*6236dae4SAndroid Build Coastguard Workerdnl Save build info for test runner to pick up and log 1542*6236dae4SAndroid Build Coastguard Worker 1543*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_PREPARE_BUILDINFO], [ 1544*6236dae4SAndroid Build Coastguard Worker curl_pflags="" 1545*6236dae4SAndroid Build Coastguard Worker case $host in 1546*6236dae4SAndroid Build Coastguard Worker *-apple-*) curl_pflags="${curl_pflags} APPLE";; 1547*6236dae4SAndroid Build Coastguard Worker esac 1548*6236dae4SAndroid Build Coastguard Worker if test "$curl_cv_native_windows" = 'yes'; then 1549*6236dae4SAndroid Build Coastguard Worker curl_pflags="${curl_pflags} WIN32" 1550*6236dae4SAndroid Build Coastguard Worker else 1551*6236dae4SAndroid Build Coastguard Worker case $host in 1552*6236dae4SAndroid Build Coastguard Worker *-*-*bsd*|*-*-aix*|*-*-hpux*|*-*-interix*|*-*-irix*|*-*-linux*|*-*-solaris*|*-*-sunos*|*-apple-*|*-*-cygwin*|*-*-msys*) 1553*6236dae4SAndroid Build Coastguard Worker curl_pflags="${curl_pflags} UNIX";; 1554*6236dae4SAndroid Build Coastguard Worker esac 1555*6236dae4SAndroid Build Coastguard Worker case $host in 1556*6236dae4SAndroid Build Coastguard Worker *-*-*bsd*) 1557*6236dae4SAndroid Build Coastguard Worker curl_pflags="${curl_pflags} BSD";; 1558*6236dae4SAndroid Build Coastguard Worker esac 1559*6236dae4SAndroid Build Coastguard Worker fi 1560*6236dae4SAndroid Build Coastguard Worker if test "$curl_cv_cygwin" = 'yes'; then 1561*6236dae4SAndroid Build Coastguard Worker curl_pflags="${curl_pflags} CYGWIN" 1562*6236dae4SAndroid Build Coastguard Worker fi 1563*6236dae4SAndroid Build Coastguard Worker case $host_os in 1564*6236dae4SAndroid Build Coastguard Worker msys*) curl_pflags="${curl_pflags} MSYS";; 1565*6236dae4SAndroid Build Coastguard Worker esac 1566*6236dae4SAndroid Build Coastguard Worker if test "x$compiler_id" = 'xGNU_C'; then 1567*6236dae4SAndroid Build Coastguard Worker curl_pflags="${curl_pflags} GCC" 1568*6236dae4SAndroid Build Coastguard Worker fi 1569*6236dae4SAndroid Build Coastguard Worker case $host_os in 1570*6236dae4SAndroid Build Coastguard Worker mingw*) curl_pflags="${curl_pflags} MINGW";; 1571*6236dae4SAndroid Build Coastguard Worker esac 1572*6236dae4SAndroid Build Coastguard Worker if test "x$cross_compiling" = 'xyes'; then 1573*6236dae4SAndroid Build Coastguard Worker curl_pflags="${curl_pflags} CROSS" 1574*6236dae4SAndroid Build Coastguard Worker fi 1575*6236dae4SAndroid Build Coastguard Worker squeeze curl_pflags 1576*6236dae4SAndroid Build Coastguard Worker curl_buildinfo=" 1577*6236dae4SAndroid Build Coastguard Workerbuildinfo.configure.tool: configure 1578*6236dae4SAndroid Build Coastguard Workerbuildinfo.configure.args: $ac_configure_args 1579*6236dae4SAndroid Build Coastguard Workerbuildinfo.host: $build 1580*6236dae4SAndroid Build Coastguard Workerbuildinfo.host.cpu: $build_cpu 1581*6236dae4SAndroid Build Coastguard Workerbuildinfo.host.os: $build_os 1582*6236dae4SAndroid Build Coastguard Workerbuildinfo.target: $host 1583*6236dae4SAndroid Build Coastguard Workerbuildinfo.target.cpu: $host_cpu 1584*6236dae4SAndroid Build Coastguard Workerbuildinfo.target.os: $host_os 1585*6236dae4SAndroid Build Coastguard Workerbuildinfo.target.flags: $curl_pflags 1586*6236dae4SAndroid Build Coastguard Workerbuildinfo.compiler: $compiler_id 1587*6236dae4SAndroid Build Coastguard Workerbuildinfo.compiler.version: $compiler_ver 1588*6236dae4SAndroid Build Coastguard Workerbuildinfo.sysroot: $lt_sysroot" 1589*6236dae4SAndroid Build Coastguard Worker]) 1590*6236dae4SAndroid Build Coastguard Worker 1591*6236dae4SAndroid Build Coastguard Worker 1592*6236dae4SAndroid Build Coastguard Workerdnl CURL_CPP_P 1593*6236dae4SAndroid Build Coastguard Workerdnl 1594*6236dae4SAndroid Build Coastguard Workerdnl Check if $cpp -P should be used for extract define values due to gcc 5 1595*6236dae4SAndroid Build Coastguard Workerdnl splitting up strings and defines between line outputs. gcc by default 1596*6236dae4SAndroid Build Coastguard Workerdnl (without -P) will show TEST EINVAL TEST as 1597*6236dae4SAndroid Build Coastguard Workerdnl 1598*6236dae4SAndroid Build Coastguard Workerdnl # 13 "conftest.c" 1599*6236dae4SAndroid Build Coastguard Workerdnl TEST 1600*6236dae4SAndroid Build Coastguard Workerdnl # 13 "conftest.c" 3 4 1601*6236dae4SAndroid Build Coastguard Workerdnl 22 1602*6236dae4SAndroid Build Coastguard Workerdnl # 13 "conftest.c" 1603*6236dae4SAndroid Build Coastguard Workerdnl TEST 1604*6236dae4SAndroid Build Coastguard Worker 1605*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CPP_P], [ 1606*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if cpp -P is needed]) 1607*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([TEST.*TEST], [ 1608*6236dae4SAndroid Build Coastguard Worker #include <errno.h> 1609*6236dae4SAndroid Build Coastguard WorkerTEST EINVAL TEST 1610*6236dae4SAndroid Build Coastguard Worker ], [cpp=no], [cpp=yes]) 1611*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([$cpp]) 1612*6236dae4SAndroid Build Coastguard Worker 1613*6236dae4SAndroid Build Coastguard Worker dnl we need cpp -P so check if it works then 1614*6236dae4SAndroid Build Coastguard Worker if test "x$cpp" = "xyes"; then 1615*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([if cpp -P works]) 1616*6236dae4SAndroid Build Coastguard Worker OLDCPPFLAGS=$CPPFLAGS 1617*6236dae4SAndroid Build Coastguard Worker CPPFLAGS="$CPPFLAGS -P" 1618*6236dae4SAndroid Build Coastguard Worker AC_EGREP_CPP([TEST.*TEST], [ 1619*6236dae4SAndroid Build Coastguard Worker #include <errno.h> 1620*6236dae4SAndroid Build Coastguard WorkerTEST EINVAL TEST 1621*6236dae4SAndroid Build Coastguard Worker ], [cpp_p=yes], [cpp_p=no]) 1622*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([$cpp_p]) 1623*6236dae4SAndroid Build Coastguard Worker 1624*6236dae4SAndroid Build Coastguard Worker if test "x$cpp_p" = "xno"; then 1625*6236dae4SAndroid Build Coastguard Worker AC_MSG_WARN([failed to figure out cpp -P alternative]) 1626*6236dae4SAndroid Build Coastguard Worker # without -P 1627*6236dae4SAndroid Build Coastguard Worker CPPPFLAG="" 1628*6236dae4SAndroid Build Coastguard Worker else 1629*6236dae4SAndroid Build Coastguard Worker # with -P 1630*6236dae4SAndroid Build Coastguard Worker CPPPFLAG="-P" 1631*6236dae4SAndroid Build Coastguard Worker fi 1632*6236dae4SAndroid Build Coastguard Worker dnl restore CPPFLAGS 1633*6236dae4SAndroid Build Coastguard Worker CPPFLAGS=$OLDCPPFLAGS 1634*6236dae4SAndroid Build Coastguard Worker else 1635*6236dae4SAndroid Build Coastguard Worker # without -P 1636*6236dae4SAndroid Build Coastguard Worker CPPPFLAG="" 1637*6236dae4SAndroid Build Coastguard Worker fi 1638*6236dae4SAndroid Build Coastguard Worker]) 1639*6236dae4SAndroid Build Coastguard Worker 1640*6236dae4SAndroid Build Coastguard Worker 1641*6236dae4SAndroid Build Coastguard Workerdnl CURL_DARWIN_CFLAGS 1642*6236dae4SAndroid Build Coastguard Workerdnl 1643*6236dae4SAndroid Build Coastguard Workerdnl Set -Werror=partial-availability to detect possible breaking code 1644*6236dae4SAndroid Build Coastguard Workerdnl with very low deployment targets. 1645*6236dae4SAndroid Build Coastguard Workerdnl 1646*6236dae4SAndroid Build Coastguard Worker 1647*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_DARWIN_CFLAGS], [ 1648*6236dae4SAndroid Build Coastguard Worker 1649*6236dae4SAndroid Build Coastguard Worker tst_cflags="no" 1650*6236dae4SAndroid Build Coastguard Worker case $host in 1651*6236dae4SAndroid Build Coastguard Worker *-apple-*) 1652*6236dae4SAndroid Build Coastguard Worker tst_cflags="yes" 1653*6236dae4SAndroid Build Coastguard Worker ;; 1654*6236dae4SAndroid Build Coastguard Worker esac 1655*6236dae4SAndroid Build Coastguard Worker 1656*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([for good-to-use Darwin CFLAGS]) 1657*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([$tst_cflags]); 1658*6236dae4SAndroid Build Coastguard Worker 1659*6236dae4SAndroid Build Coastguard Worker if test "$tst_cflags" = "yes"; then 1660*6236dae4SAndroid Build Coastguard Worker old_CFLAGS=$CFLAGS 1661*6236dae4SAndroid Build Coastguard Worker CFLAGS="$CFLAGS -Werror=partial-availability" 1662*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([whether $CC accepts -Werror=partial-availability]) 1663*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], 1664*6236dae4SAndroid Build Coastguard Worker [AC_MSG_RESULT([yes])], 1665*6236dae4SAndroid Build Coastguard Worker [AC_MSG_RESULT([no]) 1666*6236dae4SAndroid Build Coastguard Worker CFLAGS=$old_CFLAGS]) 1667*6236dae4SAndroid Build Coastguard Worker fi 1668*6236dae4SAndroid Build Coastguard Worker 1669*6236dae4SAndroid Build Coastguard Worker]) 1670*6236dae4SAndroid Build Coastguard Worker 1671*6236dae4SAndroid Build Coastguard Worker 1672*6236dae4SAndroid Build Coastguard Workerdnl CURL_SUPPORTS_BUILTIN_AVAILABLE 1673*6236dae4SAndroid Build Coastguard Workerdnl 1674*6236dae4SAndroid Build Coastguard Workerdnl Check to see if the compiler supports __builtin_available. This built-in 1675*6236dae4SAndroid Build Coastguard Workerdnl compiler function first appeared in Apple LLVM 9.0.0. It's so new that, at 1676*6236dae4SAndroid Build Coastguard Workerdnl the time this macro was written, the function was not yet documented. Its 1677*6236dae4SAndroid Build Coastguard Workerdnl purpose is to return true if the code is running under a certain OS version 1678*6236dae4SAndroid Build Coastguard Workerdnl or later. 1679*6236dae4SAndroid Build Coastguard Worker 1680*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_SUPPORTS_BUILTIN_AVAILABLE], [ 1681*6236dae4SAndroid Build Coastguard Worker AC_MSG_CHECKING([to see if the compiler supports __builtin_available()]) 1682*6236dae4SAndroid Build Coastguard Worker AC_COMPILE_IFELSE([ 1683*6236dae4SAndroid Build Coastguard Worker AC_LANG_PROGRAM([[ 1684*6236dae4SAndroid Build Coastguard Worker ]],[[ 1685*6236dae4SAndroid Build Coastguard Worker if(__builtin_available(macOS 10.12, iOS 5.0, *)) {} 1686*6236dae4SAndroid Build Coastguard Worker ]]) 1687*6236dae4SAndroid Build Coastguard Worker ],[ 1688*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([yes]) 1689*6236dae4SAndroid Build Coastguard Worker AC_DEFINE_UNQUOTED(HAVE_BUILTIN_AVAILABLE, 1, 1690*6236dae4SAndroid Build Coastguard Worker [Define to 1 if you have the __builtin_available function.]) 1691*6236dae4SAndroid Build Coastguard Worker ],[ 1692*6236dae4SAndroid Build Coastguard Worker AC_MSG_RESULT([no]) 1693*6236dae4SAndroid Build Coastguard Worker ]) 1694*6236dae4SAndroid Build Coastguard Worker]) 1695