xref: /aosp_15_r20/external/curl/m4/curl-confopts.m4 (revision 6236dae45794135f37c4eb022389c904c8b0090d)
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 Worker# File version for 'aclocal' use. Keep it a single number.
26*6236dae4SAndroid Build Coastguard Worker# serial 19
27*6236dae4SAndroid Build Coastguard Worker
28*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_OPTION_THREADED_RESOLVER
29*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
30*6236dae4SAndroid Build Coastguard Workerdnl Verify if configure has been invoked with option
31*6236dae4SAndroid Build Coastguard Workerdnl --enable-threaded-resolver or --disable-threaded-resolver, and
32*6236dae4SAndroid Build Coastguard Workerdnl set shell variable want_thres as appropriate.
33*6236dae4SAndroid Build Coastguard Worker
34*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_OPTION_THREADED_RESOLVER], [
35*6236dae4SAndroid Build Coastguard Worker  AC_MSG_CHECKING([whether to enable the threaded resolver])
36*6236dae4SAndroid Build Coastguard Worker  OPT_THRES="default"
37*6236dae4SAndroid Build Coastguard Worker  AC_ARG_ENABLE(threaded_resolver,
38*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--enable-threaded-resolver],[Enable threaded resolver])
39*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--disable-threaded-resolver],[Disable threaded resolver]),
40*6236dae4SAndroid Build Coastguard Worker  OPT_THRES=$enableval)
41*6236dae4SAndroid Build Coastguard Worker  case "$OPT_THRES" in
42*6236dae4SAndroid Build Coastguard Worker    no)
43*6236dae4SAndroid Build Coastguard Worker      dnl --disable-threaded-resolver option used
44*6236dae4SAndroid Build Coastguard Worker      want_thres="no"
45*6236dae4SAndroid Build Coastguard Worker      ;;
46*6236dae4SAndroid Build Coastguard Worker    *)
47*6236dae4SAndroid Build Coastguard Worker      dnl configure option not specified
48*6236dae4SAndroid Build Coastguard Worker      want_thres="yes"
49*6236dae4SAndroid Build Coastguard Worker      ;;
50*6236dae4SAndroid Build Coastguard Worker  esac
51*6236dae4SAndroid Build Coastguard Worker  AC_MSG_RESULT([$want_thres])
52*6236dae4SAndroid Build Coastguard Worker])
53*6236dae4SAndroid Build Coastguard Worker
54*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_OPTION_ARES
55*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
56*6236dae4SAndroid Build Coastguard Workerdnl Verify if configure has been invoked with option
57*6236dae4SAndroid Build Coastguard Workerdnl --enable-ares or --disable-ares, and
58*6236dae4SAndroid Build Coastguard Workerdnl set shell variable want_ares as appropriate.
59*6236dae4SAndroid Build Coastguard Worker
60*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_OPTION_ARES], [
61*6236dae4SAndroid Build Coastguard Workerdnl   AC_BEFORE([$0],[CURL_CHECK_OPTION_THREADS])dnl
62*6236dae4SAndroid Build Coastguard Worker  AC_BEFORE([$0],[CURL_CHECK_LIB_ARES])dnl
63*6236dae4SAndroid Build Coastguard Worker  AC_MSG_CHECKING([whether to enable c-ares for DNS lookups])
64*6236dae4SAndroid Build Coastguard Worker  OPT_ARES="default"
65*6236dae4SAndroid Build Coastguard Worker  AC_ARG_ENABLE(ares,
66*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--enable-ares@<:@=PATH@:>@],[Enable c-ares for DNS lookups])
67*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--disable-ares],[Disable c-ares for DNS lookups]),
68*6236dae4SAndroid Build Coastguard Worker  OPT_ARES=$enableval)
69*6236dae4SAndroid Build Coastguard Worker  case "$OPT_ARES" in
70*6236dae4SAndroid Build Coastguard Worker    no)
71*6236dae4SAndroid Build Coastguard Worker      dnl --disable-ares option used
72*6236dae4SAndroid Build Coastguard Worker      want_ares="no"
73*6236dae4SAndroid Build Coastguard Worker      ;;
74*6236dae4SAndroid Build Coastguard Worker    default)
75*6236dae4SAndroid Build Coastguard Worker      dnl configure option not specified
76*6236dae4SAndroid Build Coastguard Worker      want_ares="no"
77*6236dae4SAndroid Build Coastguard Worker      ;;
78*6236dae4SAndroid Build Coastguard Worker    *)
79*6236dae4SAndroid Build Coastguard Worker      dnl --enable-ares option used
80*6236dae4SAndroid Build Coastguard Worker      want_ares="yes"
81*6236dae4SAndroid Build Coastguard Worker      if test -n "$enableval" && test "$enableval" != "yes"; then
82*6236dae4SAndroid Build Coastguard Worker        want_ares_path="$enableval"
83*6236dae4SAndroid Build Coastguard Worker      fi
84*6236dae4SAndroid Build Coastguard Worker      ;;
85*6236dae4SAndroid Build Coastguard Worker  esac
86*6236dae4SAndroid Build Coastguard Worker  AC_MSG_RESULT([$want_ares])
87*6236dae4SAndroid Build Coastguard Worker])
88*6236dae4SAndroid Build Coastguard Worker
89*6236dae4SAndroid Build Coastguard Worker
90*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_OPTION_CURLDEBUG
91*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
92*6236dae4SAndroid Build Coastguard Workerdnl Verify if configure has been invoked with option
93*6236dae4SAndroid Build Coastguard Workerdnl --enable-curldebug or --disable-curldebug, and set
94*6236dae4SAndroid Build Coastguard Workerdnl shell variable want_curldebug value as appropriate.
95*6236dae4SAndroid Build Coastguard Worker
96*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_OPTION_CURLDEBUG], [
97*6236dae4SAndroid Build Coastguard Worker  AC_BEFORE([$0],[CURL_CHECK_CURLDEBUG])dnl
98*6236dae4SAndroid Build Coastguard Worker  AC_MSG_CHECKING([whether to enable curl debug memory tracking])
99*6236dae4SAndroid Build Coastguard Worker  OPT_CURLDEBUG_BUILD="default"
100*6236dae4SAndroid Build Coastguard Worker  AC_ARG_ENABLE(curldebug,
101*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--enable-curldebug],[Enable curl debug memory tracking])
102*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--disable-curldebug],[Disable curl debug memory tracking]),
103*6236dae4SAndroid Build Coastguard Worker  OPT_CURLDEBUG_BUILD=$enableval)
104*6236dae4SAndroid Build Coastguard Worker  case "$OPT_CURLDEBUG_BUILD" in
105*6236dae4SAndroid Build Coastguard Worker    no)
106*6236dae4SAndroid Build Coastguard Worker      dnl --disable-curldebug option used
107*6236dae4SAndroid Build Coastguard Worker      want_curldebug="no"
108*6236dae4SAndroid Build Coastguard Worker      AC_MSG_RESULT([no])
109*6236dae4SAndroid Build Coastguard Worker      ;;
110*6236dae4SAndroid Build Coastguard Worker    default)
111*6236dae4SAndroid Build Coastguard Worker      dnl configure's curldebug option not specified. Initially we will
112*6236dae4SAndroid Build Coastguard Worker      dnl handle this as a request to use the same setting as option
113*6236dae4SAndroid Build Coastguard Worker      dnl --enable-debug. IOW, initially, for debug-enabled builds
114*6236dae4SAndroid Build Coastguard Worker      dnl this will be handled as a request to enable curldebug if
115*6236dae4SAndroid Build Coastguard Worker      dnl possible, and for debug-disabled builds this will be handled
116*6236dae4SAndroid Build Coastguard Worker      dnl as a request to disable curldebug.
117*6236dae4SAndroid Build Coastguard Worker      if test "$want_debug" = "yes"; then
118*6236dae4SAndroid Build Coastguard Worker        AC_MSG_RESULT([(assumed) yes])
119*6236dae4SAndroid Build Coastguard Worker        AC_DEFINE(CURLDEBUG, 1, [to enable curl debug memory tracking])
120*6236dae4SAndroid Build Coastguard Worker      else
121*6236dae4SAndroid Build Coastguard Worker        AC_MSG_RESULT([no])
122*6236dae4SAndroid Build Coastguard Worker      fi
123*6236dae4SAndroid Build Coastguard Worker      want_curldebug_assumed="yes"
124*6236dae4SAndroid Build Coastguard Worker      want_curldebug="$want_debug"
125*6236dae4SAndroid Build Coastguard Worker      ;;
126*6236dae4SAndroid Build Coastguard Worker    *)
127*6236dae4SAndroid Build Coastguard Worker      dnl --enable-curldebug option used.
128*6236dae4SAndroid Build Coastguard Worker      dnl The use of this option value is a request to enable curl's
129*6236dae4SAndroid Build Coastguard Worker      dnl debug memory tracking for the libcurl library. This can only
130*6236dae4SAndroid Build Coastguard Worker      dnl be done when some requisites are simultaneously satisfied.
131*6236dae4SAndroid Build Coastguard Worker      dnl Later on, these requisites are verified and if they are not
132*6236dae4SAndroid Build Coastguard Worker      dnl fully satisfied the option will be ignored and act as if
133*6236dae4SAndroid Build Coastguard Worker      dnl --disable-curldebug had been given setting shell variable
134*6236dae4SAndroid Build Coastguard Worker      dnl want_curldebug to 'no'.
135*6236dae4SAndroid Build Coastguard Worker      want_curldebug="yes"
136*6236dae4SAndroid Build Coastguard Worker      AC_DEFINE(CURLDEBUG, 1, [to enable curl debug memory tracking])
137*6236dae4SAndroid Build Coastguard Worker      AC_MSG_RESULT([yes])
138*6236dae4SAndroid Build Coastguard Worker      ;;
139*6236dae4SAndroid Build Coastguard Worker  esac
140*6236dae4SAndroid Build Coastguard Worker])
141*6236dae4SAndroid Build Coastguard Worker
142*6236dae4SAndroid Build Coastguard Worker
143*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_OPTION_DEBUG
144*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
145*6236dae4SAndroid Build Coastguard Workerdnl Verify if configure has been invoked with option
146*6236dae4SAndroid Build Coastguard Workerdnl --enable-debug or --disable-debug, and set shell
147*6236dae4SAndroid Build Coastguard Workerdnl variable want_debug value as appropriate.
148*6236dae4SAndroid Build Coastguard Worker
149*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_OPTION_DEBUG], [
150*6236dae4SAndroid Build Coastguard Worker  AC_BEFORE([$0],[CURL_CHECK_OPTION_WARNINGS])dnl
151*6236dae4SAndroid Build Coastguard Worker  AC_BEFORE([$0],[CURL_CHECK_OPTION_CURLDEBUG])dnl
152*6236dae4SAndroid Build Coastguard Worker  AC_BEFORE([$0],[XC_CHECK_PROG_CC])dnl
153*6236dae4SAndroid Build Coastguard Worker  AC_MSG_CHECKING([whether to enable debug build options])
154*6236dae4SAndroid Build Coastguard Worker  OPT_DEBUG_BUILD="default"
155*6236dae4SAndroid Build Coastguard Worker  AC_ARG_ENABLE(debug,
156*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--enable-debug],[Enable debug build options])
157*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--disable-debug],[Disable debug build options]),
158*6236dae4SAndroid Build Coastguard Worker  OPT_DEBUG_BUILD=$enableval)
159*6236dae4SAndroid Build Coastguard Worker  case "$OPT_DEBUG_BUILD" in
160*6236dae4SAndroid Build Coastguard Worker    no)
161*6236dae4SAndroid Build Coastguard Worker      dnl --disable-debug option used
162*6236dae4SAndroid Build Coastguard Worker      want_debug="no"
163*6236dae4SAndroid Build Coastguard Worker      ;;
164*6236dae4SAndroid Build Coastguard Worker    default)
165*6236dae4SAndroid Build Coastguard Worker      dnl configure option not specified
166*6236dae4SAndroid Build Coastguard Worker      want_debug="no"
167*6236dae4SAndroid Build Coastguard Worker      ;;
168*6236dae4SAndroid Build Coastguard Worker    *)
169*6236dae4SAndroid Build Coastguard Worker      dnl --enable-debug option used
170*6236dae4SAndroid Build Coastguard Worker      want_debug="yes"
171*6236dae4SAndroid Build Coastguard Worker      AC_DEFINE(DEBUGBUILD, 1, [enable debug build options])
172*6236dae4SAndroid Build Coastguard Worker      ;;
173*6236dae4SAndroid Build Coastguard Worker  esac
174*6236dae4SAndroid Build Coastguard Worker  AC_MSG_RESULT([$want_debug])
175*6236dae4SAndroid Build Coastguard Worker])
176*6236dae4SAndroid Build Coastguard Worker
177*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_OPTION_OPTIMIZE
178*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
179*6236dae4SAndroid Build Coastguard Workerdnl Verify if configure has been invoked with option
180*6236dae4SAndroid Build Coastguard Workerdnl --enable-optimize or --disable-optimize, and set
181*6236dae4SAndroid Build Coastguard Workerdnl shell variable want_optimize value as appropriate.
182*6236dae4SAndroid Build Coastguard Worker
183*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_OPTION_OPTIMIZE], [
184*6236dae4SAndroid Build Coastguard Worker  AC_REQUIRE([CURL_CHECK_OPTION_DEBUG])dnl
185*6236dae4SAndroid Build Coastguard Worker  AC_BEFORE([$0],[XC_CHECK_PROG_CC])dnl
186*6236dae4SAndroid Build Coastguard Worker  AC_MSG_CHECKING([whether to enable compiler optimizer])
187*6236dae4SAndroid Build Coastguard Worker  OPT_COMPILER_OPTIMIZE="default"
188*6236dae4SAndroid Build Coastguard Worker  AC_ARG_ENABLE(optimize,
189*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--enable-optimize],[Enable compiler optimizations])
190*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--disable-optimize],[Disable compiler optimizations]),
191*6236dae4SAndroid Build Coastguard Worker  OPT_COMPILER_OPTIMIZE=$enableval)
192*6236dae4SAndroid Build Coastguard Worker  case "$OPT_COMPILER_OPTIMIZE" in
193*6236dae4SAndroid Build Coastguard Worker    no)
194*6236dae4SAndroid Build Coastguard Worker      dnl --disable-optimize option used. We will handle this as
195*6236dae4SAndroid Build Coastguard Worker      dnl a request to disable compiler optimizations if possible.
196*6236dae4SAndroid Build Coastguard Worker      dnl If the compiler is known CFLAGS and CPPFLAGS will be
197*6236dae4SAndroid Build Coastguard Worker      dnl overridden, otherwise this can not be honored.
198*6236dae4SAndroid Build Coastguard Worker      want_optimize="no"
199*6236dae4SAndroid Build Coastguard Worker      AC_MSG_RESULT([no])
200*6236dae4SAndroid Build Coastguard Worker      ;;
201*6236dae4SAndroid Build Coastguard Worker    default)
202*6236dae4SAndroid Build Coastguard Worker      dnl configure's optimize option not specified. Initially we will
203*6236dae4SAndroid Build Coastguard Worker      dnl handle this as a request contrary to configure's setting
204*6236dae4SAndroid Build Coastguard Worker      dnl for --enable-debug. IOW, initially, for debug-enabled builds
205*6236dae4SAndroid Build Coastguard Worker      dnl this will be handled as a request to disable optimizations if
206*6236dae4SAndroid Build Coastguard Worker      dnl possible, and for debug-disabled builds this will be handled
207*6236dae4SAndroid Build Coastguard Worker      dnl initially as a request to enable optimizations if possible.
208*6236dae4SAndroid Build Coastguard Worker      dnl Finally, if the compiler is known and CFLAGS and CPPFLAGS do
209*6236dae4SAndroid Build Coastguard Worker      dnl not have any optimizer flag the request will be honored, in
210*6236dae4SAndroid Build Coastguard Worker      dnl any other case the request can not be honored.
211*6236dae4SAndroid Build Coastguard Worker      dnl IOW, existing optimizer flags defined in CFLAGS or CPPFLAGS
212*6236dae4SAndroid Build Coastguard Worker      dnl will always take precedence over any initial assumption.
213*6236dae4SAndroid Build Coastguard Worker      if test "$want_debug" = "yes"; then
214*6236dae4SAndroid Build Coastguard Worker        want_optimize="assume_no"
215*6236dae4SAndroid Build Coastguard Worker        AC_MSG_RESULT([(assumed) no])
216*6236dae4SAndroid Build Coastguard Worker      else
217*6236dae4SAndroid Build Coastguard Worker        want_optimize="assume_yes"
218*6236dae4SAndroid Build Coastguard Worker        AC_MSG_RESULT([(assumed) yes])
219*6236dae4SAndroid Build Coastguard Worker      fi
220*6236dae4SAndroid Build Coastguard Worker      ;;
221*6236dae4SAndroid Build Coastguard Worker    *)
222*6236dae4SAndroid Build Coastguard Worker      dnl --enable-optimize option used. We will handle this as
223*6236dae4SAndroid Build Coastguard Worker      dnl a request to enable compiler optimizations if possible.
224*6236dae4SAndroid Build Coastguard Worker      dnl If the compiler is known CFLAGS and CPPFLAGS will be
225*6236dae4SAndroid Build Coastguard Worker      dnl overridden, otherwise this can not be honored.
226*6236dae4SAndroid Build Coastguard Worker      want_optimize="yes"
227*6236dae4SAndroid Build Coastguard Worker      AC_MSG_RESULT([yes])
228*6236dae4SAndroid Build Coastguard Worker      ;;
229*6236dae4SAndroid Build Coastguard Worker  esac
230*6236dae4SAndroid Build Coastguard Worker])
231*6236dae4SAndroid Build Coastguard Worker
232*6236dae4SAndroid Build Coastguard Worker
233*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_OPTION_SYMBOL_HIDING
234*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
235*6236dae4SAndroid Build Coastguard Workerdnl Verify if configure has been invoked with option
236*6236dae4SAndroid Build Coastguard Workerdnl --enable-symbol-hiding or --disable-symbol-hiding,
237*6236dae4SAndroid Build Coastguard Workerdnl setting shell variable want_symbol_hiding value.
238*6236dae4SAndroid Build Coastguard Worker
239*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_OPTION_SYMBOL_HIDING], [
240*6236dae4SAndroid Build Coastguard Worker  AC_BEFORE([$0],[CURL_CHECK_COMPILER_SYMBOL_HIDING])dnl
241*6236dae4SAndroid Build Coastguard Worker  AC_MSG_CHECKING([whether to enable hiding of library internal symbols])
242*6236dae4SAndroid Build Coastguard Worker  OPT_SYMBOL_HIDING="default"
243*6236dae4SAndroid Build Coastguard Worker  AC_ARG_ENABLE(symbol-hiding,
244*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--enable-symbol-hiding],[Enable hiding of library internal symbols])
245*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--disable-symbol-hiding],[Disable hiding of library internal symbols]),
246*6236dae4SAndroid Build Coastguard Worker  OPT_SYMBOL_HIDING=$enableval)
247*6236dae4SAndroid Build Coastguard Worker  case "$OPT_SYMBOL_HIDING" in
248*6236dae4SAndroid Build Coastguard Worker    no)
249*6236dae4SAndroid Build Coastguard Worker      dnl --disable-symbol-hiding option used.
250*6236dae4SAndroid Build Coastguard Worker      dnl This is an indication to not attempt hiding of library internal
251*6236dae4SAndroid Build Coastguard Worker      dnl symbols. Default symbol visibility will be used, which normally
252*6236dae4SAndroid Build Coastguard Worker      dnl exposes all library internal symbols.
253*6236dae4SAndroid Build Coastguard Worker      want_symbol_hiding="no"
254*6236dae4SAndroid Build Coastguard Worker      AC_MSG_RESULT([no])
255*6236dae4SAndroid Build Coastguard Worker      ;;
256*6236dae4SAndroid Build Coastguard Worker    default)
257*6236dae4SAndroid Build Coastguard Worker      dnl configure's symbol-hiding option not specified.
258*6236dae4SAndroid Build Coastguard Worker      dnl Handle this as if --enable-symbol-hiding option was given.
259*6236dae4SAndroid Build Coastguard Worker      want_symbol_hiding="yes"
260*6236dae4SAndroid Build Coastguard Worker      AC_MSG_RESULT([yes])
261*6236dae4SAndroid Build Coastguard Worker      ;;
262*6236dae4SAndroid Build Coastguard Worker    *)
263*6236dae4SAndroid Build Coastguard Worker      dnl --enable-symbol-hiding option used.
264*6236dae4SAndroid Build Coastguard Worker      dnl This is an indication to attempt hiding of library internal
265*6236dae4SAndroid Build Coastguard Worker      dnl symbols. This is only supported on some compilers/linkers.
266*6236dae4SAndroid Build Coastguard Worker      want_symbol_hiding="yes"
267*6236dae4SAndroid Build Coastguard Worker      AC_MSG_RESULT([yes])
268*6236dae4SAndroid Build Coastguard Worker      ;;
269*6236dae4SAndroid Build Coastguard Worker  esac
270*6236dae4SAndroid Build Coastguard Worker])
271*6236dae4SAndroid Build Coastguard Worker
272*6236dae4SAndroid Build Coastguard Worker
273*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_OPTION_THREADS
274*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
275*6236dae4SAndroid Build Coastguard Workerdnl Verify if configure has been invoked with option
276*6236dae4SAndroid Build Coastguard Workerdnl --enable-threads or --disable-threads, and
277*6236dae4SAndroid Build Coastguard Workerdnl set shell variable want_threads as appropriate.
278*6236dae4SAndroid Build Coastguard Worker
279*6236dae4SAndroid Build Coastguard Workerdnl AC_DEFUN([CURL_CHECK_OPTION_THREADS], [
280*6236dae4SAndroid Build Coastguard Workerdnl   AC_BEFORE([$0],[CURL_CHECK_LIB_THREADS])dnl
281*6236dae4SAndroid Build Coastguard Workerdnl   AC_MSG_CHECKING([whether to enable threads for DNS lookups])
282*6236dae4SAndroid Build Coastguard Workerdnl   OPT_THREADS="default"
283*6236dae4SAndroid Build Coastguard Workerdnl   AC_ARG_ENABLE(threads,
284*6236dae4SAndroid Build Coastguard Workerdnl AS_HELP_STRING([--enable-threads@<:@=PATH@:>@],[Enable threads for DNS lookups])
285*6236dae4SAndroid Build Coastguard Workerdnl AS_HELP_STRING([--disable-threads],[Disable threads for DNS lookups]),
286*6236dae4SAndroid Build Coastguard Workerdnl   OPT_THREADS=$enableval)
287*6236dae4SAndroid Build Coastguard Workerdnl   case "$OPT_THREADS" in
288*6236dae4SAndroid Build Coastguard Workerdnl     no)
289*6236dae4SAndroid Build Coastguard Workerdnl       dnl --disable-threads option used
290*6236dae4SAndroid Build Coastguard Workerdnl       want_threads="no"
291*6236dae4SAndroid Build Coastguard Workerdnl       AC_MSG_RESULT([no])
292*6236dae4SAndroid Build Coastguard Workerdnl       ;;
293*6236dae4SAndroid Build Coastguard Workerdnl     default)
294*6236dae4SAndroid Build Coastguard Workerdnl       dnl configure option not specified
295*6236dae4SAndroid Build Coastguard Workerdnl       want_threads="no"
296*6236dae4SAndroid Build Coastguard Workerdnl       AC_MSG_RESULT([(assumed) no])
297*6236dae4SAndroid Build Coastguard Workerdnl       ;;
298*6236dae4SAndroid Build Coastguard Workerdnl     *)
299*6236dae4SAndroid Build Coastguard Workerdnl       dnl --enable-threads option used
300*6236dae4SAndroid Build Coastguard Workerdnl       want_threads="yes"
301*6236dae4SAndroid Build Coastguard Workerdnl       want_threads_path="$enableval"
302*6236dae4SAndroid Build Coastguard Workerdnl       AC_MSG_RESULT([yes])
303*6236dae4SAndroid Build Coastguard Workerdnl       ;;
304*6236dae4SAndroid Build Coastguard Workerdnl   esac
305*6236dae4SAndroid Build Coastguard Workerdnl   #
306*6236dae4SAndroid Build Coastguard Workerdnl   if test "$want_ares" = "assume_yes"; then
307*6236dae4SAndroid Build Coastguard Workerdnl     if test "$want_threads" = "yes"; then
308*6236dae4SAndroid Build Coastguard Workerdnl       AC_MSG_CHECKING([whether to ignore c-ares enabling assumed setting])
309*6236dae4SAndroid Build Coastguard Workerdnl       AC_MSG_RESULT([yes])
310*6236dae4SAndroid Build Coastguard Workerdnl       want_ares="no"
311*6236dae4SAndroid Build Coastguard Workerdnl     else
312*6236dae4SAndroid Build Coastguard Workerdnl       want_ares="yes"
313*6236dae4SAndroid Build Coastguard Workerdnl     fi
314*6236dae4SAndroid Build Coastguard Workerdnl   fi
315*6236dae4SAndroid Build Coastguard Workerdnl   if test "$want_threads" = "yes" && test "$want_ares" = "yes"; then
316*6236dae4SAndroid Build Coastguard Workerdnl     AC_MSG_ERROR([options --enable-ares and --enable-threads are mutually exclusive, at most one may be enabled.])
317*6236dae4SAndroid Build Coastguard Workerdnl   fi
318*6236dae4SAndroid Build Coastguard Workerdnl ])
319*6236dae4SAndroid Build Coastguard Worker
320*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_OPTION_RT
321*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
322*6236dae4SAndroid Build Coastguard Workerdnl Verify if configure has been invoked with option
323*6236dae4SAndroid Build Coastguard Workerdnl --disable-rt and set shell variable dontwant_rt
324*6236dae4SAndroid Build Coastguard Workerdnl as appropriate.
325*6236dae4SAndroid Build Coastguard Worker
326*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_OPTION_RT], [
327*6236dae4SAndroid Build Coastguard Worker  AC_BEFORE([$0], [CURL_CHECK_LIB_THREADS])dnl
328*6236dae4SAndroid Build Coastguard Worker  AC_MSG_CHECKING([whether to disable dependency on -lrt])
329*6236dae4SAndroid Build Coastguard Worker  OPT_RT="default"
330*6236dae4SAndroid Build Coastguard Worker  AC_ARG_ENABLE(rt,
331*6236dae4SAndroid Build Coastguard Worker AS_HELP_STRING([--disable-rt],[disable dependency on -lrt]),
332*6236dae4SAndroid Build Coastguard Worker  OPT_RT=$enableval)
333*6236dae4SAndroid Build Coastguard Worker  case "$OPT_RT" in
334*6236dae4SAndroid Build Coastguard Worker    no)
335*6236dae4SAndroid Build Coastguard Worker      dnl --disable-rt used (reverse logic)
336*6236dae4SAndroid Build Coastguard Worker      dontwant_rt="yes"
337*6236dae4SAndroid Build Coastguard Worker      AC_MSG_RESULT([yes])
338*6236dae4SAndroid Build Coastguard Worker      ;;
339*6236dae4SAndroid Build Coastguard Worker    default)
340*6236dae4SAndroid Build Coastguard Worker      dnl configure option not specified (so not disabled)
341*6236dae4SAndroid Build Coastguard Worker      dontwant_rt="no"
342*6236dae4SAndroid Build Coastguard Worker      AC_MSG_RESULT([(assumed no)])
343*6236dae4SAndroid Build Coastguard Worker      ;;
344*6236dae4SAndroid Build Coastguard Worker    *)
345*6236dae4SAndroid Build Coastguard Worker      dnl --enable-rt option used (reverse logic)
346*6236dae4SAndroid Build Coastguard Worker      dontwant_rt="no"
347*6236dae4SAndroid Build Coastguard Worker      AC_MSG_RESULT([no])
348*6236dae4SAndroid Build Coastguard Worker      ;;
349*6236dae4SAndroid Build Coastguard Worker  esac
350*6236dae4SAndroid Build Coastguard Worker])
351*6236dae4SAndroid Build Coastguard Worker
352*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_OPTION_WARNINGS
353*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
354*6236dae4SAndroid Build Coastguard Workerdnl Verify if configure has been invoked with option
355*6236dae4SAndroid Build Coastguard Workerdnl --enable-warnings or --disable-warnings, and set
356*6236dae4SAndroid Build Coastguard Workerdnl shell variable want_warnings as appropriate.
357*6236dae4SAndroid Build Coastguard Worker
358*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_OPTION_WARNINGS], [
359*6236dae4SAndroid Build Coastguard Worker  AC_REQUIRE([CURL_CHECK_OPTION_DEBUG])dnl
360*6236dae4SAndroid Build Coastguard Worker  AC_BEFORE([$0],[CURL_CHECK_OPTION_WERROR])dnl
361*6236dae4SAndroid Build Coastguard Worker  AC_BEFORE([$0],[XC_CHECK_PROG_CC])dnl
362*6236dae4SAndroid Build Coastguard Worker  AC_MSG_CHECKING([whether to enable strict compiler warnings])
363*6236dae4SAndroid Build Coastguard Worker  OPT_COMPILER_WARNINGS="default"
364*6236dae4SAndroid Build Coastguard Worker  AC_ARG_ENABLE(warnings,
365*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--enable-warnings],[Enable strict compiler warnings])
366*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--disable-warnings],[Disable strict compiler warnings]),
367*6236dae4SAndroid Build Coastguard Worker  OPT_COMPILER_WARNINGS=$enableval)
368*6236dae4SAndroid Build Coastguard Worker  case "$OPT_COMPILER_WARNINGS" in
369*6236dae4SAndroid Build Coastguard Worker    no)
370*6236dae4SAndroid Build Coastguard Worker      dnl --disable-warnings option used
371*6236dae4SAndroid Build Coastguard Worker      want_warnings="no"
372*6236dae4SAndroid Build Coastguard Worker      ;;
373*6236dae4SAndroid Build Coastguard Worker    default)
374*6236dae4SAndroid Build Coastguard Worker      dnl configure option not specified, so
375*6236dae4SAndroid Build Coastguard Worker      dnl use same setting as --enable-debug
376*6236dae4SAndroid Build Coastguard Worker      want_warnings="$want_debug"
377*6236dae4SAndroid Build Coastguard Worker      ;;
378*6236dae4SAndroid Build Coastguard Worker    *)
379*6236dae4SAndroid Build Coastguard Worker      dnl --enable-warnings option used
380*6236dae4SAndroid Build Coastguard Worker      want_warnings="yes"
381*6236dae4SAndroid Build Coastguard Worker      ;;
382*6236dae4SAndroid Build Coastguard Worker  esac
383*6236dae4SAndroid Build Coastguard Worker  AC_MSG_RESULT([$want_warnings])
384*6236dae4SAndroid Build Coastguard Worker])
385*6236dae4SAndroid Build Coastguard Worker
386*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_OPTION_WERROR
387*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
388*6236dae4SAndroid Build Coastguard Workerdnl Verify if configure has been invoked with option
389*6236dae4SAndroid Build Coastguard Workerdnl --enable-werror or --disable-werror, and set
390*6236dae4SAndroid Build Coastguard Workerdnl shell variable want_werror as appropriate.
391*6236dae4SAndroid Build Coastguard Worker
392*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_OPTION_WERROR], [
393*6236dae4SAndroid Build Coastguard Worker  AC_BEFORE([$0],[CURL_CHECK_COMPILER])dnl
394*6236dae4SAndroid Build Coastguard Worker  AC_MSG_CHECKING([whether to enable compiler warnings as errors])
395*6236dae4SAndroid Build Coastguard Worker  OPT_COMPILER_WERROR="default"
396*6236dae4SAndroid Build Coastguard Worker  AC_ARG_ENABLE(werror,
397*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--enable-werror],[Enable compiler warnings as errors])
398*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--disable-werror],[Disable compiler warnings as errors]),
399*6236dae4SAndroid Build Coastguard Worker  OPT_COMPILER_WERROR=$enableval)
400*6236dae4SAndroid Build Coastguard Worker  case "$OPT_COMPILER_WERROR" in
401*6236dae4SAndroid Build Coastguard Worker    no)
402*6236dae4SAndroid Build Coastguard Worker      dnl --disable-werror option used
403*6236dae4SAndroid Build Coastguard Worker      want_werror="no"
404*6236dae4SAndroid Build Coastguard Worker      ;;
405*6236dae4SAndroid Build Coastguard Worker    default)
406*6236dae4SAndroid Build Coastguard Worker      dnl configure option not specified
407*6236dae4SAndroid Build Coastguard Worker      want_werror="no"
408*6236dae4SAndroid Build Coastguard Worker      ;;
409*6236dae4SAndroid Build Coastguard Worker    *)
410*6236dae4SAndroid Build Coastguard Worker      dnl --enable-werror option used
411*6236dae4SAndroid Build Coastguard Worker      want_werror="yes"
412*6236dae4SAndroid Build Coastguard Worker      ;;
413*6236dae4SAndroid Build Coastguard Worker  esac
414*6236dae4SAndroid Build Coastguard Worker  AC_MSG_RESULT([$want_werror])
415*6236dae4SAndroid Build Coastguard Worker])
416*6236dae4SAndroid Build Coastguard Worker
417*6236dae4SAndroid Build Coastguard Worker
418*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_NONBLOCKING_SOCKET
419*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
420*6236dae4SAndroid Build Coastguard Workerdnl Check for how to set a socket into non-blocking state.
421*6236dae4SAndroid Build Coastguard Worker
422*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_NONBLOCKING_SOCKET], [
423*6236dae4SAndroid Build Coastguard Worker  AC_REQUIRE([CURL_CHECK_FUNC_FCNTL])dnl
424*6236dae4SAndroid Build Coastguard Worker  AC_REQUIRE([CURL_CHECK_FUNC_IOCTLSOCKET])dnl
425*6236dae4SAndroid Build Coastguard Worker  AC_REQUIRE([CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL])dnl
426*6236dae4SAndroid Build Coastguard Worker  #
427*6236dae4SAndroid Build Coastguard Worker  tst_method="unknown"
428*6236dae4SAndroid Build Coastguard Worker
429*6236dae4SAndroid Build Coastguard Worker  AC_MSG_CHECKING([how to set a socket into non-blocking mode])
430*6236dae4SAndroid Build Coastguard Worker  if test "x$curl_cv_func_fcntl_o_nonblock" = "xyes"; then
431*6236dae4SAndroid Build Coastguard Worker    tst_method="fcntl O_NONBLOCK"
432*6236dae4SAndroid Build Coastguard Worker  elif test "x$curl_cv_func_ioctl_fionbio" = "xyes"; then
433*6236dae4SAndroid Build Coastguard Worker    tst_method="ioctl FIONBIO"
434*6236dae4SAndroid Build Coastguard Worker  elif test "x$curl_cv_func_ioctlsocket_fionbio" = "xyes"; then
435*6236dae4SAndroid Build Coastguard Worker    tst_method="ioctlsocket FIONBIO"
436*6236dae4SAndroid Build Coastguard Worker  elif test "x$curl_cv_func_ioctlsocket_camel_fionbio" = "xyes"; then
437*6236dae4SAndroid Build Coastguard Worker    tst_method="IoctlSocket FIONBIO"
438*6236dae4SAndroid Build Coastguard Worker  elif test "x$curl_cv_func_setsockopt_so_nonblock" = "xyes"; then
439*6236dae4SAndroid Build Coastguard Worker    tst_method="setsockopt SO_NONBLOCK"
440*6236dae4SAndroid Build Coastguard Worker  fi
441*6236dae4SAndroid Build Coastguard Worker  AC_MSG_RESULT([$tst_method])
442*6236dae4SAndroid Build Coastguard Worker  if test "$tst_method" = "unknown"; then
443*6236dae4SAndroid Build Coastguard Worker    AC_MSG_WARN([cannot determine non-blocking socket method.])
444*6236dae4SAndroid Build Coastguard Worker  fi
445*6236dae4SAndroid Build Coastguard Worker])
446*6236dae4SAndroid Build Coastguard Worker
447*6236dae4SAndroid Build Coastguard Worker
448*6236dae4SAndroid Build Coastguard Workerdnl CURL_CONFIGURE_SYMBOL_HIDING
449*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
450*6236dae4SAndroid Build Coastguard Workerdnl Depending on --enable-symbol-hiding or --disable-symbol-hiding
451*6236dae4SAndroid Build Coastguard Workerdnl configure option, and compiler capability to actually honor such
452*6236dae4SAndroid Build Coastguard Workerdnl option, this will modify compiler flags as appropriate and also
453*6236dae4SAndroid Build Coastguard Workerdnl provide needed definitions for configuration and Makefile.am files.
454*6236dae4SAndroid Build Coastguard Workerdnl This macro should not be used until all compilation tests have
455*6236dae4SAndroid Build Coastguard Workerdnl been done to prevent interferences on other tests.
456*6236dae4SAndroid Build Coastguard Worker
457*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CONFIGURE_SYMBOL_HIDING], [
458*6236dae4SAndroid Build Coastguard Worker  AC_MSG_CHECKING([whether hiding of library internal symbols will actually happen])
459*6236dae4SAndroid Build Coastguard Worker  CFLAG_CURL_SYMBOL_HIDING=""
460*6236dae4SAndroid Build Coastguard Worker  doing_symbol_hiding="no"
461*6236dae4SAndroid Build Coastguard Worker  if test "$want_symbol_hiding" = "yes" &&
462*6236dae4SAndroid Build Coastguard Worker    test "$supports_symbol_hiding" = "yes"; then
463*6236dae4SAndroid Build Coastguard Worker    doing_symbol_hiding="yes"
464*6236dae4SAndroid Build Coastguard Worker    CFLAG_CURL_SYMBOL_HIDING="$symbol_hiding_CFLAGS"
465*6236dae4SAndroid Build Coastguard Worker    AC_DEFINE_UNQUOTED(CURL_EXTERN_SYMBOL, $symbol_hiding_EXTERN,
466*6236dae4SAndroid Build Coastguard Worker      [Definition to make a library symbol externally visible.])
467*6236dae4SAndroid Build Coastguard Worker    AC_MSG_RESULT([yes])
468*6236dae4SAndroid Build Coastguard Worker  else
469*6236dae4SAndroid Build Coastguard Worker    AC_MSG_RESULT([no])
470*6236dae4SAndroid Build Coastguard Worker  fi
471*6236dae4SAndroid Build Coastguard Worker  AM_CONDITIONAL(DOING_CURL_SYMBOL_HIDING, test x$doing_symbol_hiding = xyes)
472*6236dae4SAndroid Build Coastguard Worker  AC_SUBST(CFLAG_CURL_SYMBOL_HIDING)
473*6236dae4SAndroid Build Coastguard Worker])
474*6236dae4SAndroid Build Coastguard Worker
475*6236dae4SAndroid Build Coastguard Worker
476*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_LIB_ARES
477*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
478*6236dae4SAndroid Build Coastguard Workerdnl When c-ares library support has been requested, performs necessary checks
479*6236dae4SAndroid Build Coastguard Workerdnl and adjustments needed to enable support of this library.
480*6236dae4SAndroid Build Coastguard Worker
481*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_LIB_ARES], [
482*6236dae4SAndroid Build Coastguard Worker  #
483*6236dae4SAndroid Build Coastguard Worker  if test "$want_ares" = "yes"; then
484*6236dae4SAndroid Build Coastguard Worker    dnl c-ares library support has been requested
485*6236dae4SAndroid Build Coastguard Worker    clean_CPPFLAGS="$CPPFLAGS"
486*6236dae4SAndroid Build Coastguard Worker    clean_LDFLAGS="$LDFLAGS"
487*6236dae4SAndroid Build Coastguard Worker    clean_LIBS="$LIBS"
488*6236dae4SAndroid Build Coastguard Worker    configure_runpath=`pwd`
489*6236dae4SAndroid Build Coastguard Worker    if test -n "$want_ares_path"; then
490*6236dae4SAndroid Build Coastguard Worker      dnl c-ares library path has been specified
491*6236dae4SAndroid Build Coastguard Worker      ARES_PCDIR="$want_ares_path/lib/pkgconfig"
492*6236dae4SAndroid Build Coastguard Worker      CURL_CHECK_PKGCONFIG(libcares, [$ARES_PCDIR])
493*6236dae4SAndroid Build Coastguard Worker      if test "$PKGCONFIG" != "no" ; then
494*6236dae4SAndroid Build Coastguard Worker        ares_LIBS=`CURL_EXPORT_PCDIR([$ARES_PCDIR])
495*6236dae4SAndroid Build Coastguard Worker          $PKGCONFIG --libs-only-l libcares`
496*6236dae4SAndroid Build Coastguard Worker        ares_LDFLAGS=`CURL_EXPORT_PCDIR([$ARES_PCDIR])
497*6236dae4SAndroid Build Coastguard Worker          $PKGCONFIG --libs-only-L libcares`
498*6236dae4SAndroid Build Coastguard Worker        ares_CPPFLAGS=`CURL_EXPORT_PCDIR([$ARES_PCDIR])
499*6236dae4SAndroid Build Coastguard Worker          $PKGCONFIG --cflags-only-I libcares`
500*6236dae4SAndroid Build Coastguard Worker        AC_MSG_NOTICE([pkg-config: ares LIBS: "$ares_LIBS"])
501*6236dae4SAndroid Build Coastguard Worker        AC_MSG_NOTICE([pkg-config: ares LDFLAGS: "$ares_LDFLAGS"])
502*6236dae4SAndroid Build Coastguard Worker        AC_MSG_NOTICE([pkg-config: ares CPPFLAGS: "$ares_CPPFLAGS"])
503*6236dae4SAndroid Build Coastguard Worker      else
504*6236dae4SAndroid Build Coastguard Worker        dnl ... path without pkg-config
505*6236dae4SAndroid Build Coastguard Worker        ares_CPPFLAGS="-I$want_ares_path/include"
506*6236dae4SAndroid Build Coastguard Worker        ares_LDFLAGS="-L$want_ares_path/lib"
507*6236dae4SAndroid Build Coastguard Worker        ares_LIBS="-lcares"
508*6236dae4SAndroid Build Coastguard Worker      fi
509*6236dae4SAndroid Build Coastguard Worker    else
510*6236dae4SAndroid Build Coastguard Worker      dnl c-ares path not specified, use defaults
511*6236dae4SAndroid Build Coastguard Worker      CURL_CHECK_PKGCONFIG(libcares)
512*6236dae4SAndroid Build Coastguard Worker      if test "$PKGCONFIG" != "no" ; then
513*6236dae4SAndroid Build Coastguard Worker        ares_LIBS=`$PKGCONFIG --libs-only-l libcares`
514*6236dae4SAndroid Build Coastguard Worker        ares_LDFLAGS=`$PKGCONFIG --libs-only-L libcares`
515*6236dae4SAndroid Build Coastguard Worker        ares_CPPFLAGS=`$PKGCONFIG --cflags-only-I libcares`
516*6236dae4SAndroid Build Coastguard Worker        AC_MSG_NOTICE([pkg-config: ares_LIBS: "$ares_LIBS"])
517*6236dae4SAndroid Build Coastguard Worker        AC_MSG_NOTICE([pkg-config: ares_LDFLAGS: "$ares_LDFLAGS"])
518*6236dae4SAndroid Build Coastguard Worker        AC_MSG_NOTICE([pkg-config: ares_CPPFLAGS: "$ares_CPPFLAGS"])
519*6236dae4SAndroid Build Coastguard Worker      else
520*6236dae4SAndroid Build Coastguard Worker        ares_CPPFLAGS=""
521*6236dae4SAndroid Build Coastguard Worker        ares_LDFLAGS=""
522*6236dae4SAndroid Build Coastguard Worker        ares_LIBS="-lcares"
523*6236dae4SAndroid Build Coastguard Worker      fi
524*6236dae4SAndroid Build Coastguard Worker    fi
525*6236dae4SAndroid Build Coastguard Worker    #
526*6236dae4SAndroid Build Coastguard Worker    CPPFLAGS="$clean_CPPFLAGS $ares_CPPFLAGS"
527*6236dae4SAndroid Build Coastguard Worker    LDFLAGS="$clean_LDFLAGS $ares_LDFLAGS"
528*6236dae4SAndroid Build Coastguard Worker    LIBS="$ares_LIBS $clean_LIBS"
529*6236dae4SAndroid Build Coastguard Worker    #
530*6236dae4SAndroid Build Coastguard Worker
531*6236dae4SAndroid Build Coastguard Worker    dnl check if c-ares new enough
532*6236dae4SAndroid Build Coastguard Worker    AC_MSG_CHECKING([that c-ares is good and recent enough])
533*6236dae4SAndroid Build Coastguard Worker    AC_LINK_IFELSE([
534*6236dae4SAndroid Build Coastguard Worker      AC_LANG_PROGRAM([[
535*6236dae4SAndroid Build Coastguard Worker        #include <ares.h>
536*6236dae4SAndroid Build Coastguard Worker        /* set of dummy functions in case c-ares was built with debug */
537*6236dae4SAndroid Build Coastguard Worker        void curl_dofree() { }
538*6236dae4SAndroid Build Coastguard Worker        void curl_sclose() { }
539*6236dae4SAndroid Build Coastguard Worker        void curl_domalloc() { }
540*6236dae4SAndroid Build Coastguard Worker        void curl_docalloc() { }
541*6236dae4SAndroid Build Coastguard Worker        void curl_socket() { }
542*6236dae4SAndroid Build Coastguard Worker      ]],[[
543*6236dae4SAndroid Build Coastguard Worker        ares_channel channel;
544*6236dae4SAndroid Build Coastguard Worker        ares_cancel(channel); /* added in 1.2.0 */
545*6236dae4SAndroid Build Coastguard Worker        ares_process_fd(channel, 0, 0); /* added in 1.4.0 */
546*6236dae4SAndroid Build Coastguard Worker        ares_dup(&channel, channel); /* added in 1.6.0 */
547*6236dae4SAndroid Build Coastguard Worker      ]])
548*6236dae4SAndroid Build Coastguard Worker    ],[
549*6236dae4SAndroid Build Coastguard Worker      AC_MSG_RESULT([yes])
550*6236dae4SAndroid Build Coastguard Worker    ],[
551*6236dae4SAndroid Build Coastguard Worker      AC_MSG_RESULT([no])
552*6236dae4SAndroid Build Coastguard Worker      AC_MSG_ERROR([c-ares library defective or too old])
553*6236dae4SAndroid Build Coastguard Worker      dnl restore initial settings
554*6236dae4SAndroid Build Coastguard Worker      CPPFLAGS="$clean_CPPFLAGS"
555*6236dae4SAndroid Build Coastguard Worker      LDFLAGS="$clean_LDFLAGS"
556*6236dae4SAndroid Build Coastguard Worker      LIBS="$clean_LIBS"
557*6236dae4SAndroid Build Coastguard Worker      # prevent usage
558*6236dae4SAndroid Build Coastguard Worker      want_ares="no"
559*6236dae4SAndroid Build Coastguard Worker    ])
560*6236dae4SAndroid Build Coastguard Worker
561*6236dae4SAndroid Build Coastguard Worker    if test "$want_ares" = "yes"; then
562*6236dae4SAndroid Build Coastguard Worker      dnl finally c-ares will be used
563*6236dae4SAndroid Build Coastguard Worker      AC_DEFINE(USE_ARES, 1, [Define to enable c-ares support])
564*6236dae4SAndroid Build Coastguard Worker      AC_DEFINE(CARES_NO_DEPRECATED, 1, [Ignore c-ares deprecation warnings])
565*6236dae4SAndroid Build Coastguard Worker      AC_SUBST([USE_ARES], [1])
566*6236dae4SAndroid Build Coastguard Worker      LIBCURL_PC_REQUIRES_PRIVATE="$LIBCURL_PC_REQUIRES_PRIVATE libcares"
567*6236dae4SAndroid Build Coastguard Worker      curl_res_msg="c-ares"
568*6236dae4SAndroid Build Coastguard Worker    fi
569*6236dae4SAndroid Build Coastguard Worker  fi
570*6236dae4SAndroid Build Coastguard Worker])
571*6236dae4SAndroid Build Coastguard Worker
572*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_OPTION_NTLM_WB
573*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
574*6236dae4SAndroid Build Coastguard Workerdnl Verify if configure has been invoked with option
575*6236dae4SAndroid Build Coastguard Workerdnl --enable-ntlm-wb or --disable-ntlm-wb, and set
576*6236dae4SAndroid Build Coastguard Workerdnl shell variable want_ntlm_wb and want_ntlm_wb_file
577*6236dae4SAndroid Build Coastguard Workerdnl as appropriate.
578*6236dae4SAndroid Build Coastguard Worker
579*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_OPTION_NTLM_WB], [
580*6236dae4SAndroid Build Coastguard Worker  AC_BEFORE([$0],[CURL_CHECK_NTLM_WB])dnl
581*6236dae4SAndroid Build Coastguard Worker  OPT_NTLM_WB="default"
582*6236dae4SAndroid Build Coastguard Worker  AC_ARG_ENABLE(ntlm-wb,
583*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--enable-ntlm-wb@<:@=FILE@:>@],[Enable NTLM delegation to winbind's ntlm_auth helper, where FILE is ntlm_auth's absolute filename (default: /usr/bin/ntlm_auth)])
584*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--disable-ntlm-wb],[Disable NTLM delegation to winbind's ntlm_auth helper]),
585*6236dae4SAndroid Build Coastguard Worker  OPT_NTLM_WB=$enableval)
586*6236dae4SAndroid Build Coastguard Worker  want_ntlm_wb_file="/usr/bin/ntlm_auth"
587*6236dae4SAndroid Build Coastguard Worker  case "$OPT_NTLM_WB" in
588*6236dae4SAndroid Build Coastguard Worker    no)
589*6236dae4SAndroid Build Coastguard Worker      dnl --disable-ntlm-wb option used
590*6236dae4SAndroid Build Coastguard Worker      want_ntlm_wb="no"
591*6236dae4SAndroid Build Coastguard Worker      ;;
592*6236dae4SAndroid Build Coastguard Worker    default)
593*6236dae4SAndroid Build Coastguard Worker      dnl configure option not specified
594*6236dae4SAndroid Build Coastguard Worker      want_ntlm_wb="yes"
595*6236dae4SAndroid Build Coastguard Worker      ;;
596*6236dae4SAndroid Build Coastguard Worker    *)
597*6236dae4SAndroid Build Coastguard Worker      dnl --enable-ntlm-wb option used
598*6236dae4SAndroid Build Coastguard Worker      want_ntlm_wb="yes"
599*6236dae4SAndroid Build Coastguard Worker      if test -n "$enableval" && test "$enableval" != "yes"; then
600*6236dae4SAndroid Build Coastguard Worker        want_ntlm_wb_file="$enableval"
601*6236dae4SAndroid Build Coastguard Worker      fi
602*6236dae4SAndroid Build Coastguard Worker      ;;
603*6236dae4SAndroid Build Coastguard Worker  esac
604*6236dae4SAndroid Build Coastguard Worker])
605*6236dae4SAndroid Build Coastguard Worker
606*6236dae4SAndroid Build Coastguard Worker
607*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_NTLM_WB
608*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
609*6236dae4SAndroid Build Coastguard Workerdnl Check if support for NTLM delegation to winbind's
610*6236dae4SAndroid Build Coastguard Workerdnl ntlm_auth helper will finally be enabled depending
611*6236dae4SAndroid Build Coastguard Workerdnl on given configure options and target platform.
612*6236dae4SAndroid Build Coastguard Worker
613*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_NTLM_WB], [
614*6236dae4SAndroid Build Coastguard Worker  AC_REQUIRE([CURL_CHECK_OPTION_NTLM_WB])dnl
615*6236dae4SAndroid Build Coastguard Worker  AC_REQUIRE([CURL_CHECK_NATIVE_WINDOWS])dnl
616*6236dae4SAndroid Build Coastguard Worker  AC_MSG_CHECKING([whether to enable NTLM delegation to winbind's helper])
617*6236dae4SAndroid Build Coastguard Worker  if test "$curl_cv_native_windows" = "yes" ||
618*6236dae4SAndroid Build Coastguard Worker    test "x$SSL_ENABLED" = "x"; then
619*6236dae4SAndroid Build Coastguard Worker    want_ntlm_wb_file=""
620*6236dae4SAndroid Build Coastguard Worker    want_ntlm_wb="no"
621*6236dae4SAndroid Build Coastguard Worker  elif test "x$ac_cv_func_fork" != "xyes"; then
622*6236dae4SAndroid Build Coastguard Worker    dnl ntlm_wb requires fork
623*6236dae4SAndroid Build Coastguard Worker    want_ntlm_wb="no"
624*6236dae4SAndroid Build Coastguard Worker  fi
625*6236dae4SAndroid Build Coastguard Worker  AC_MSG_RESULT([$want_ntlm_wb])
626*6236dae4SAndroid Build Coastguard Worker  if test "$want_ntlm_wb" = "yes"; then
627*6236dae4SAndroid Build Coastguard Worker    AC_DEFINE(NTLM_WB_ENABLED, 1,
628*6236dae4SAndroid Build Coastguard Worker      [Define to enable NTLM delegation to winbind's ntlm_auth helper.])
629*6236dae4SAndroid Build Coastguard Worker    AC_DEFINE_UNQUOTED(NTLM_WB_FILE, "$want_ntlm_wb_file",
630*6236dae4SAndroid Build Coastguard Worker      [Define absolute filename for winbind's ntlm_auth helper.])
631*6236dae4SAndroid Build Coastguard Worker    NTLM_WB_ENABLED=1
632*6236dae4SAndroid Build Coastguard Worker  fi
633*6236dae4SAndroid Build Coastguard Worker])
634*6236dae4SAndroid Build Coastguard Worker
635*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_OPTION_HTTPSRR
636*6236dae4SAndroid Build Coastguard Workerdnl -----------------------------------------------------
637*6236dae4SAndroid Build Coastguard Workerdnl Verify whether configure has been invoked with option
638*6236dae4SAndroid Build Coastguard Workerdnl --enable-httpsrr or --disable-httpsrr, and set
639*6236dae4SAndroid Build Coastguard Workerdnl shell variable want_httpsrr as appropriate.
640*6236dae4SAndroid Build Coastguard Worker
641*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_OPTION_HTTPSRR], [
642*6236dae4SAndroid Build Coastguard Worker  AC_MSG_CHECKING([whether to enable HTTPSRR support])
643*6236dae4SAndroid Build Coastguard Worker  OPT_HTTPSRR="default"
644*6236dae4SAndroid Build Coastguard Worker  AC_ARG_ENABLE(httpsrr,
645*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--enable-httpsrr],[Enable HTTPSRR support])
646*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--disable-httpsrr],[Disable HTTPSRR support]),
647*6236dae4SAndroid Build Coastguard Worker  OPT_HTTPSRR=$enableval)
648*6236dae4SAndroid Build Coastguard Worker  case "$OPT_HTTPSRR" in
649*6236dae4SAndroid Build Coastguard Worker    no)
650*6236dae4SAndroid Build Coastguard Worker      dnl --disable-httpsrr option used
651*6236dae4SAndroid Build Coastguard Worker      want_httpsrr="no"
652*6236dae4SAndroid Build Coastguard Worker      curl_httpsrr_msg="no      (--enable-httpsrr)"
653*6236dae4SAndroid Build Coastguard Worker      AC_MSG_RESULT([no])
654*6236dae4SAndroid Build Coastguard Worker      ;;
655*6236dae4SAndroid Build Coastguard Worker    default)
656*6236dae4SAndroid Build Coastguard Worker      dnl configure option not specified
657*6236dae4SAndroid Build Coastguard Worker      want_httpsrr="no"
658*6236dae4SAndroid Build Coastguard Worker      curl_httpsrr_msg="no      (--enable-httpsrr)"
659*6236dae4SAndroid Build Coastguard Worker      AC_MSG_RESULT([no])
660*6236dae4SAndroid Build Coastguard Worker      ;;
661*6236dae4SAndroid Build Coastguard Worker    *)
662*6236dae4SAndroid Build Coastguard Worker      dnl --enable-httpsrr option used
663*6236dae4SAndroid Build Coastguard Worker      want_httpsrr="yes"
664*6236dae4SAndroid Build Coastguard Worker      curl_httpsrr_msg="enabled (--disable-httpsrr)"
665*6236dae4SAndroid Build Coastguard Worker      AC_MSG_RESULT([yes])
666*6236dae4SAndroid Build Coastguard Worker      ;;
667*6236dae4SAndroid Build Coastguard Worker  esac
668*6236dae4SAndroid Build Coastguard Worker])
669*6236dae4SAndroid Build Coastguard Worker
670*6236dae4SAndroid Build Coastguard Workerdnl CURL_CHECK_OPTION_ECH
671*6236dae4SAndroid Build Coastguard Workerdnl -----------------------------------------------------
672*6236dae4SAndroid Build Coastguard Workerdnl Verify whether configure has been invoked with option
673*6236dae4SAndroid Build Coastguard Workerdnl --enable-ech or --disable-ech, and set
674*6236dae4SAndroid Build Coastguard Workerdnl shell variable want_ech as appropriate.
675*6236dae4SAndroid Build Coastguard Worker
676*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([CURL_CHECK_OPTION_ECH], [
677*6236dae4SAndroid Build Coastguard Worker  AC_MSG_CHECKING([whether to enable ECH support])
678*6236dae4SAndroid Build Coastguard Worker  OPT_ECH="default"
679*6236dae4SAndroid Build Coastguard Worker  AC_ARG_ENABLE(ech,
680*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--enable-ech],[Enable ECH support])
681*6236dae4SAndroid Build Coastguard WorkerAS_HELP_STRING([--disable-ech],[Disable ECH support]),
682*6236dae4SAndroid Build Coastguard Worker  OPT_ECH=$enableval)
683*6236dae4SAndroid Build Coastguard Worker  case "$OPT_ECH" in
684*6236dae4SAndroid Build Coastguard Worker    no)
685*6236dae4SAndroid Build Coastguard Worker      dnl --disable-ech option used
686*6236dae4SAndroid Build Coastguard Worker      want_ech="no"
687*6236dae4SAndroid Build Coastguard Worker      curl_ech_msg="no      (--enable-ech)"
688*6236dae4SAndroid Build Coastguard Worker      AC_MSG_RESULT([no])
689*6236dae4SAndroid Build Coastguard Worker      ;;
690*6236dae4SAndroid Build Coastguard Worker    default)
691*6236dae4SAndroid Build Coastguard Worker      dnl configure option not specified
692*6236dae4SAndroid Build Coastguard Worker      want_ech="no"
693*6236dae4SAndroid Build Coastguard Worker      curl_ech_msg="no      (--enable-ech)"
694*6236dae4SAndroid Build Coastguard Worker      AC_MSG_RESULT([no])
695*6236dae4SAndroid Build Coastguard Worker      ;;
696*6236dae4SAndroid Build Coastguard Worker    *)
697*6236dae4SAndroid Build Coastguard Worker      dnl --enable-ech option used
698*6236dae4SAndroid Build Coastguard Worker      want_ech="yes"
699*6236dae4SAndroid Build Coastguard Worker      curl_ech_msg="enabled (--disable-ech)"
700*6236dae4SAndroid Build Coastguard Worker      AC_MSG_RESULT([yes])
701*6236dae4SAndroid Build Coastguard Worker      ;;
702*6236dae4SAndroid Build Coastguard Worker  esac
703*6236dae4SAndroid Build Coastguard Worker])
704*6236dae4SAndroid Build Coastguard Worker])
705