xref: /aosp_15_r20/external/curl/m4/zz40-xc-ovr.m4 (revision 6236dae45794135f37c4eb022389c904c8b0090d)
1*6236dae4SAndroid Build Coastguard Worker#---------------------------------------------------------------------------
2*6236dae4SAndroid Build Coastguard Worker#
3*6236dae4SAndroid Build Coastguard Worker# zz40-xc-ovr.m4
4*6236dae4SAndroid Build Coastguard Worker#
5*6236dae4SAndroid Build Coastguard Worker# Copyright (C) Daniel Stenberg, <[email protected]>
6*6236dae4SAndroid Build Coastguard Worker#
7*6236dae4SAndroid Build Coastguard Worker# Permission to use, copy, modify, and distribute this software for any
8*6236dae4SAndroid Build Coastguard Worker# purpose with or without fee is hereby granted, provided that the above
9*6236dae4SAndroid Build Coastguard Worker# copyright notice and this permission notice appear in all copies.
10*6236dae4SAndroid Build Coastguard Worker#
11*6236dae4SAndroid Build Coastguard Worker# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12*6236dae4SAndroid Build Coastguard Worker# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13*6236dae4SAndroid Build Coastguard Worker# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14*6236dae4SAndroid Build Coastguard Worker# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15*6236dae4SAndroid Build Coastguard Worker# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16*6236dae4SAndroid Build Coastguard Worker# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17*6236dae4SAndroid Build Coastguard Worker# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18*6236dae4SAndroid Build Coastguard Worker#
19*6236dae4SAndroid Build Coastguard Worker# SPDX-License-Identifier: ISC
20*6236dae4SAndroid Build Coastguard Worker#
21*6236dae4SAndroid Build Coastguard Worker#---------------------------------------------------------------------------
22*6236dae4SAndroid Build Coastguard Worker
23*6236dae4SAndroid Build Coastguard Workerdnl The funny name of this file is intentional in order to make it
24*6236dae4SAndroid Build Coastguard Workerdnl sort alphabetically after any libtool, autoconf or automake
25*6236dae4SAndroid Build Coastguard Workerdnl provided .m4 macro file that might get copied into this same
26*6236dae4SAndroid Build Coastguard Workerdnl subdirectory. This allows that macro (re)definitions from this
27*6236dae4SAndroid Build Coastguard Workerdnl file may override those provided in other files.
28*6236dae4SAndroid Build Coastguard Worker
29*6236dae4SAndroid Build Coastguard Worker
30*6236dae4SAndroid Build Coastguard Workerdnl Version macros
31*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
32*6236dae4SAndroid Build Coastguard Workerdnl Public macros.
33*6236dae4SAndroid Build Coastguard Worker
34*6236dae4SAndroid Build Coastguard Workerm4_define([XC_CONFIGURE_PREAMBLE_VER_MAJOR],[1])dnl
35*6236dae4SAndroid Build Coastguard Workerm4_define([XC_CONFIGURE_PREAMBLE_VER_MINOR],[0])dnl
36*6236dae4SAndroid Build Coastguard Worker
37*6236dae4SAndroid Build Coastguard Worker
38*6236dae4SAndroid Build Coastguard Workerdnl _XC_CFG_PRE_PREAMBLE
39*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
40*6236dae4SAndroid Build Coastguard Workerdnl Private macro.
41*6236dae4SAndroid Build Coastguard Worker
42*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([_XC_CFG_PRE_PREAMBLE],
43*6236dae4SAndroid Build Coastguard Worker[
44*6236dae4SAndroid Build Coastguard Worker## -------------------------------- ##
45*6236dae4SAndroid Build Coastguard Worker@%:@@%:@  [XC_CONFIGURE_PREAMBLE] ver: []dnl
46*6236dae4SAndroid Build Coastguard WorkerXC_CONFIGURE_PREAMBLE_VER_MAJOR.[]dnl
47*6236dae4SAndroid Build Coastguard WorkerXC_CONFIGURE_PREAMBLE_VER_MINOR  ##
48*6236dae4SAndroid Build Coastguard Worker## -------------------------------- ##
49*6236dae4SAndroid Build Coastguard Worker
50*6236dae4SAndroid Build Coastguard Workerxc_configure_preamble_ver_major='XC_CONFIGURE_PREAMBLE_VER_MAJOR'
51*6236dae4SAndroid Build Coastguard Workerxc_configure_preamble_ver_minor='XC_CONFIGURE_PREAMBLE_VER_MINOR'
52*6236dae4SAndroid Build Coastguard Worker
53*6236dae4SAndroid Build Coastguard Worker#
54*6236dae4SAndroid Build Coastguard Worker# Set IFS to space, tab and newline.
55*6236dae4SAndroid Build Coastguard Worker#
56*6236dae4SAndroid Build Coastguard Worker
57*6236dae4SAndroid Build Coastguard Workerxc_space=' '
58*6236dae4SAndroid Build Coastguard Workerxc_tab='	'
59*6236dae4SAndroid Build Coastguard Workerxc_newline='
60*6236dae4SAndroid Build Coastguard Worker'
61*6236dae4SAndroid Build Coastguard WorkerIFS="$xc_space$xc_tab$xc_newline"
62*6236dae4SAndroid Build Coastguard Worker
63*6236dae4SAndroid Build Coastguard Worker#
64*6236dae4SAndroid Build Coastguard Worker# Set internationalization behavior variables.
65*6236dae4SAndroid Build Coastguard Worker#
66*6236dae4SAndroid Build Coastguard Worker
67*6236dae4SAndroid Build Coastguard WorkerLANG='C'
68*6236dae4SAndroid Build Coastguard WorkerLC_ALL='C'
69*6236dae4SAndroid Build Coastguard WorkerLANGUAGE='C'
70*6236dae4SAndroid Build Coastguard Workerexport LANG
71*6236dae4SAndroid Build Coastguard Workerexport LC_ALL
72*6236dae4SAndroid Build Coastguard Workerexport LANGUAGE
73*6236dae4SAndroid Build Coastguard Worker
74*6236dae4SAndroid Build Coastguard Worker#
75*6236dae4SAndroid Build Coastguard Worker# Some useful variables.
76*6236dae4SAndroid Build Coastguard Worker#
77*6236dae4SAndroid Build Coastguard Worker
78*6236dae4SAndroid Build Coastguard Workerxc_msg_warn='configure: WARNING:'
79*6236dae4SAndroid Build Coastguard Workerxc_msg_abrt='Can not continue.'
80*6236dae4SAndroid Build Coastguard Workerxc_msg_err='configure: error:'
81*6236dae4SAndroid Build Coastguard Worker])
82*6236dae4SAndroid Build Coastguard Worker
83*6236dae4SAndroid Build Coastguard Worker
84*6236dae4SAndroid Build Coastguard Workerdnl _XC_CFG_PRE_BASIC_CHK_CMD_ECHO
85*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
86*6236dae4SAndroid Build Coastguard Workerdnl Private macro.
87*6236dae4SAndroid Build Coastguard Workerdnl
88*6236dae4SAndroid Build Coastguard Workerdnl Emits shell code that verifies that 'echo' command
89*6236dae4SAndroid Build Coastguard Workerdnl is available, otherwise aborts execution.
90*6236dae4SAndroid Build Coastguard Worker
91*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([_XC_CFG_PRE_BASIC_CHK_CMD_ECHO],
92*6236dae4SAndroid Build Coastguard Worker[dnl
93*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_PREAMBLE])dnl
94*6236dae4SAndroid Build Coastguard Worker#
95*6236dae4SAndroid Build Coastguard Worker# Verify that 'echo' command is available, otherwise abort.
96*6236dae4SAndroid Build Coastguard Worker#
97*6236dae4SAndroid Build Coastguard Worker
98*6236dae4SAndroid Build Coastguard Workerxc_tst_str='unknown'
99*6236dae4SAndroid Build Coastguard Worker(`echo "$xc_tst_str" >/dev/null 2>&1`) && xc_tst_str='success'
100*6236dae4SAndroid Build Coastguard Workercase "x$xc_tst_str" in @%:@ ((
101*6236dae4SAndroid Build Coastguard Worker  xsuccess)
102*6236dae4SAndroid Build Coastguard Worker    :
103*6236dae4SAndroid Build Coastguard Worker    ;;
104*6236dae4SAndroid Build Coastguard Worker  *)
105*6236dae4SAndroid Build Coastguard Worker    # Try built-in echo, and fail.
106*6236dae4SAndroid Build Coastguard Worker    echo "$xc_msg_err 'echo' command not found. $xc_msg_abrt" >&2
107*6236dae4SAndroid Build Coastguard Worker    exit 1
108*6236dae4SAndroid Build Coastguard Worker    ;;
109*6236dae4SAndroid Build Coastguard Workeresac
110*6236dae4SAndroid Build Coastguard Worker])
111*6236dae4SAndroid Build Coastguard Worker
112*6236dae4SAndroid Build Coastguard Worker
113*6236dae4SAndroid Build Coastguard Workerdnl _XC_CFG_PRE_BASIC_CHK_CMD_TEST
114*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
115*6236dae4SAndroid Build Coastguard Workerdnl Private macro.
116*6236dae4SAndroid Build Coastguard Workerdnl
117*6236dae4SAndroid Build Coastguard Workerdnl Emits shell code that verifies that 'test' command
118*6236dae4SAndroid Build Coastguard Workerdnl is available, otherwise aborts execution.
119*6236dae4SAndroid Build Coastguard Worker
120*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([_XC_CFG_PRE_BASIC_CHK_CMD_TEST],
121*6236dae4SAndroid Build Coastguard Worker[dnl
122*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_CMD_ECHO])dnl
123*6236dae4SAndroid Build Coastguard Worker#
124*6236dae4SAndroid Build Coastguard Worker# Verify that 'test' command is available, otherwise abort.
125*6236dae4SAndroid Build Coastguard Worker#
126*6236dae4SAndroid Build Coastguard Worker
127*6236dae4SAndroid Build Coastguard Workerxc_tst_str='unknown'
128*6236dae4SAndroid Build Coastguard Worker(`test -n "$xc_tst_str" >/dev/null 2>&1`) && xc_tst_str='success'
129*6236dae4SAndroid Build Coastguard Workercase "x$xc_tst_str" in @%:@ ((
130*6236dae4SAndroid Build Coastguard Worker  xsuccess)
131*6236dae4SAndroid Build Coastguard Worker    :
132*6236dae4SAndroid Build Coastguard Worker    ;;
133*6236dae4SAndroid Build Coastguard Worker  *)
134*6236dae4SAndroid Build Coastguard Worker    echo "$xc_msg_err 'test' command not found. $xc_msg_abrt" >&2
135*6236dae4SAndroid Build Coastguard Worker    exit 1
136*6236dae4SAndroid Build Coastguard Worker    ;;
137*6236dae4SAndroid Build Coastguard Workeresac
138*6236dae4SAndroid Build Coastguard Worker])
139*6236dae4SAndroid Build Coastguard Worker
140*6236dae4SAndroid Build Coastguard Worker
141*6236dae4SAndroid Build Coastguard Workerdnl _XC_CFG_PRE_BASIC_CHK_VAR_PATH
142*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
143*6236dae4SAndroid Build Coastguard Workerdnl Private macro.
144*6236dae4SAndroid Build Coastguard Workerdnl
145*6236dae4SAndroid Build Coastguard Workerdnl Emits shell code that verifies that 'PATH' variable
146*6236dae4SAndroid Build Coastguard Workerdnl is set, otherwise aborts execution.
147*6236dae4SAndroid Build Coastguard Worker
148*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([_XC_CFG_PRE_BASIC_CHK_VAR_PATH],
149*6236dae4SAndroid Build Coastguard Worker[dnl
150*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_CMD_TEST])dnl
151*6236dae4SAndroid Build Coastguard Worker#
152*6236dae4SAndroid Build Coastguard Worker# Verify that 'PATH' variable is set, otherwise abort.
153*6236dae4SAndroid Build Coastguard Worker#
154*6236dae4SAndroid Build Coastguard Worker
155*6236dae4SAndroid Build Coastguard Workerxc_tst_str='unknown'
156*6236dae4SAndroid Build Coastguard Worker(`test -n "$PATH" >/dev/null 2>&1`) && xc_tst_str='success'
157*6236dae4SAndroid Build Coastguard Workercase "x$xc_tst_str" in @%:@ ((
158*6236dae4SAndroid Build Coastguard Worker  xsuccess)
159*6236dae4SAndroid Build Coastguard Worker    :
160*6236dae4SAndroid Build Coastguard Worker    ;;
161*6236dae4SAndroid Build Coastguard Worker  *)
162*6236dae4SAndroid Build Coastguard Worker    echo "$xc_msg_err 'PATH' variable not set. $xc_msg_abrt" >&2
163*6236dae4SAndroid Build Coastguard Worker    exit 1
164*6236dae4SAndroid Build Coastguard Worker    ;;
165*6236dae4SAndroid Build Coastguard Workeresac
166*6236dae4SAndroid Build Coastguard Worker])
167*6236dae4SAndroid Build Coastguard Worker
168*6236dae4SAndroid Build Coastguard Worker
169*6236dae4SAndroid Build Coastguard Workerdnl _XC_CFG_PRE_BASIC_CHK_CMD_EXPR
170*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
171*6236dae4SAndroid Build Coastguard Workerdnl Private macro.
172*6236dae4SAndroid Build Coastguard Workerdnl
173*6236dae4SAndroid Build Coastguard Workerdnl Emits shell code that verifies that 'expr' command
174*6236dae4SAndroid Build Coastguard Workerdnl is available, otherwise aborts execution.
175*6236dae4SAndroid Build Coastguard Worker
176*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([_XC_CFG_PRE_BASIC_CHK_CMD_EXPR],
177*6236dae4SAndroid Build Coastguard Worker[dnl
178*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_VAR_PATH])dnl
179*6236dae4SAndroid Build Coastguard Worker#
180*6236dae4SAndroid Build Coastguard Worker# Verify that 'expr' command is available, otherwise abort.
181*6236dae4SAndroid Build Coastguard Worker#
182*6236dae4SAndroid Build Coastguard Worker
183*6236dae4SAndroid Build Coastguard Workerxc_tst_str='unknown'
184*6236dae4SAndroid Build Coastguard Workerxc_tst_str=`expr "$xc_tst_str" : '.*' 2>/dev/null`
185*6236dae4SAndroid Build Coastguard Workercase "x$xc_tst_str" in @%:@ ((
186*6236dae4SAndroid Build Coastguard Worker  x7)
187*6236dae4SAndroid Build Coastguard Worker    :
188*6236dae4SAndroid Build Coastguard Worker    ;;
189*6236dae4SAndroid Build Coastguard Worker  *)
190*6236dae4SAndroid Build Coastguard Worker    echo "$xc_msg_err 'expr' command not found. $xc_msg_abrt" >&2
191*6236dae4SAndroid Build Coastguard Worker    exit 1
192*6236dae4SAndroid Build Coastguard Worker    ;;
193*6236dae4SAndroid Build Coastguard Workeresac
194*6236dae4SAndroid Build Coastguard Worker])
195*6236dae4SAndroid Build Coastguard Worker
196*6236dae4SAndroid Build Coastguard Worker
197*6236dae4SAndroid Build Coastguard Workerdnl _XC_CFG_PRE_BASIC_CHK_UTIL_SED
198*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
199*6236dae4SAndroid Build Coastguard Workerdnl Private macro.
200*6236dae4SAndroid Build Coastguard Workerdnl
201*6236dae4SAndroid Build Coastguard Workerdnl Emits shell code that verifies that 'sed' utility
202*6236dae4SAndroid Build Coastguard Workerdnl is found within 'PATH', otherwise aborts execution.
203*6236dae4SAndroid Build Coastguard Workerdnl
204*6236dae4SAndroid Build Coastguard Workerdnl This 'sed' is required in order to allow configure
205*6236dae4SAndroid Build Coastguard Workerdnl script bootstrapping itself. No fancy testing for a
206*6236dae4SAndroid Build Coastguard Workerdnl proper 'sed' this early, that should be done later.
207*6236dae4SAndroid Build Coastguard Worker
208*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([_XC_CFG_PRE_BASIC_CHK_UTIL_SED],
209*6236dae4SAndroid Build Coastguard Worker[dnl
210*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_VAR_PATH])dnl
211*6236dae4SAndroid Build Coastguard Worker#
212*6236dae4SAndroid Build Coastguard Worker# Verify that 'sed' utility is found within 'PATH', otherwise abort.
213*6236dae4SAndroid Build Coastguard Worker#
214*6236dae4SAndroid Build Coastguard Worker
215*6236dae4SAndroid Build Coastguard Workerxc_tst_str='unknown'
216*6236dae4SAndroid Build Coastguard Workerxc_tst_str=`echo "$xc_tst_str" 2>/dev/null \
217*6236dae4SAndroid Build Coastguard Worker  | sed -e 's:unknown:success:' 2>/dev/null`
218*6236dae4SAndroid Build Coastguard Workercase "x$xc_tst_str" in @%:@ ((
219*6236dae4SAndroid Build Coastguard Worker  xsuccess)
220*6236dae4SAndroid Build Coastguard Worker    :
221*6236dae4SAndroid Build Coastguard Worker    ;;
222*6236dae4SAndroid Build Coastguard Worker  *)
223*6236dae4SAndroid Build Coastguard Worker    echo "$xc_msg_err 'sed' utility not found in 'PATH'. $xc_msg_abrt" >&2
224*6236dae4SAndroid Build Coastguard Worker    exit 1
225*6236dae4SAndroid Build Coastguard Worker    ;;
226*6236dae4SAndroid Build Coastguard Workeresac
227*6236dae4SAndroid Build Coastguard Worker])
228*6236dae4SAndroid Build Coastguard Worker
229*6236dae4SAndroid Build Coastguard Worker
230*6236dae4SAndroid Build Coastguard Workerdnl _XC_CFG_PRE_BASIC_CHK_UTIL_GREP
231*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
232*6236dae4SAndroid Build Coastguard Workerdnl Private macro.
233*6236dae4SAndroid Build Coastguard Workerdnl
234*6236dae4SAndroid Build Coastguard Workerdnl Emits shell code that verifies that 'grep' utility
235*6236dae4SAndroid Build Coastguard Workerdnl is found within 'PATH', otherwise aborts execution.
236*6236dae4SAndroid Build Coastguard Workerdnl
237*6236dae4SAndroid Build Coastguard Workerdnl This 'grep' is required in order to allow configure
238*6236dae4SAndroid Build Coastguard Workerdnl script bootstrapping itself. No fancy testing for a
239*6236dae4SAndroid Build Coastguard Workerdnl proper 'grep' this early, that should be done later.
240*6236dae4SAndroid Build Coastguard Worker
241*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([_XC_CFG_PRE_BASIC_CHK_UTIL_GREP],
242*6236dae4SAndroid Build Coastguard Worker[dnl
243*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_VAR_PATH])dnl
244*6236dae4SAndroid Build Coastguard Worker#
245*6236dae4SAndroid Build Coastguard Worker# Verify that 'grep' utility is found within 'PATH', otherwise abort.
246*6236dae4SAndroid Build Coastguard Worker#
247*6236dae4SAndroid Build Coastguard Worker
248*6236dae4SAndroid Build Coastguard Workerxc_tst_str='unknown'
249*6236dae4SAndroid Build Coastguard Worker(`echo "$xc_tst_str" 2>/dev/null \
250*6236dae4SAndroid Build Coastguard Worker  | grep 'unknown' >/dev/null 2>&1`) && xc_tst_str='success'
251*6236dae4SAndroid Build Coastguard Workercase "x$xc_tst_str" in @%:@ ((
252*6236dae4SAndroid Build Coastguard Worker  xsuccess)
253*6236dae4SAndroid Build Coastguard Worker    :
254*6236dae4SAndroid Build Coastguard Worker    ;;
255*6236dae4SAndroid Build Coastguard Worker  *)
256*6236dae4SAndroid Build Coastguard Worker    echo "$xc_msg_err 'grep' utility not found in 'PATH'. $xc_msg_abrt" >&2
257*6236dae4SAndroid Build Coastguard Worker    exit 1
258*6236dae4SAndroid Build Coastguard Worker    ;;
259*6236dae4SAndroid Build Coastguard Workeresac
260*6236dae4SAndroid Build Coastguard Worker])
261*6236dae4SAndroid Build Coastguard Worker
262*6236dae4SAndroid Build Coastguard Worker
263*6236dae4SAndroid Build Coastguard Workerdnl _XC_CFG_PRE_BASIC_CHK_UTIL_TR
264*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
265*6236dae4SAndroid Build Coastguard Workerdnl Private macro.
266*6236dae4SAndroid Build Coastguard Workerdnl
267*6236dae4SAndroid Build Coastguard Workerdnl Emits shell code that verifies that 'tr' utility
268*6236dae4SAndroid Build Coastguard Workerdnl is found within 'PATH', otherwise aborts execution.
269*6236dae4SAndroid Build Coastguard Worker
270*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([_XC_CFG_PRE_BASIC_CHK_UTIL_TR],
271*6236dae4SAndroid Build Coastguard Worker[dnl
272*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_VAR_PATH])dnl
273*6236dae4SAndroid Build Coastguard Worker#
274*6236dae4SAndroid Build Coastguard Worker# Verify that 'tr' utility is found within 'PATH', otherwise abort.
275*6236dae4SAndroid Build Coastguard Worker#
276*6236dae4SAndroid Build Coastguard Worker
277*6236dae4SAndroid Build Coastguard Workerxc_tst_str="${xc_tab}98s7u6c5c4e3s2s10"
278*6236dae4SAndroid Build Coastguard Workerxc_tst_str=`echo "$xc_tst_str" 2>/dev/null \
279*6236dae4SAndroid Build Coastguard Worker  | tr -d "0123456789$xc_tab" 2>/dev/null`
280*6236dae4SAndroid Build Coastguard Workercase "x$xc_tst_str" in @%:@ ((
281*6236dae4SAndroid Build Coastguard Worker  xsuccess)
282*6236dae4SAndroid Build Coastguard Worker    :
283*6236dae4SAndroid Build Coastguard Worker    ;;
284*6236dae4SAndroid Build Coastguard Worker  *)
285*6236dae4SAndroid Build Coastguard Worker    echo "$xc_msg_err 'tr' utility not found in 'PATH'. $xc_msg_abrt" >&2
286*6236dae4SAndroid Build Coastguard Worker    exit 1
287*6236dae4SAndroid Build Coastguard Worker    ;;
288*6236dae4SAndroid Build Coastguard Workeresac
289*6236dae4SAndroid Build Coastguard Worker])
290*6236dae4SAndroid Build Coastguard Worker
291*6236dae4SAndroid Build Coastguard Worker
292*6236dae4SAndroid Build Coastguard Workerdnl _XC_CFG_PRE_BASIC_CHK_UTIL_WC
293*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
294*6236dae4SAndroid Build Coastguard Workerdnl Private macro.
295*6236dae4SAndroid Build Coastguard Workerdnl
296*6236dae4SAndroid Build Coastguard Workerdnl Emits shell code that verifies that 'wc' utility
297*6236dae4SAndroid Build Coastguard Workerdnl is found within 'PATH', otherwise aborts execution.
298*6236dae4SAndroid Build Coastguard Worker
299*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([_XC_CFG_PRE_BASIC_CHK_UTIL_WC],
300*6236dae4SAndroid Build Coastguard Worker[dnl
301*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_TR])dnl
302*6236dae4SAndroid Build Coastguard Worker#
303*6236dae4SAndroid Build Coastguard Worker# Verify that 'wc' utility is found within 'PATH', otherwise abort.
304*6236dae4SAndroid Build Coastguard Worker#
305*6236dae4SAndroid Build Coastguard Worker
306*6236dae4SAndroid Build Coastguard Workerxc_tst_str='unknown unknown unknown unknown'
307*6236dae4SAndroid Build Coastguard Workerxc_tst_str=`echo "$xc_tst_str" 2>/dev/null \
308*6236dae4SAndroid Build Coastguard Worker  | wc -w 2>/dev/null | tr -d "$xc_space$xc_tab" 2>/dev/null`
309*6236dae4SAndroid Build Coastguard Workercase "x$xc_tst_str" in @%:@ ((
310*6236dae4SAndroid Build Coastguard Worker  x4)
311*6236dae4SAndroid Build Coastguard Worker    :
312*6236dae4SAndroid Build Coastguard Worker    ;;
313*6236dae4SAndroid Build Coastguard Worker  *)
314*6236dae4SAndroid Build Coastguard Worker    echo "$xc_msg_err 'wc' utility not found in 'PATH'. $xc_msg_abrt" >&2
315*6236dae4SAndroid Build Coastguard Worker    exit 1
316*6236dae4SAndroid Build Coastguard Worker    ;;
317*6236dae4SAndroid Build Coastguard Workeresac
318*6236dae4SAndroid Build Coastguard Worker])
319*6236dae4SAndroid Build Coastguard Worker
320*6236dae4SAndroid Build Coastguard Worker
321*6236dae4SAndroid Build Coastguard Workerdnl _XC_CFG_PRE_BASIC_CHK_UTIL_CAT
322*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
323*6236dae4SAndroid Build Coastguard Workerdnl Private macro.
324*6236dae4SAndroid Build Coastguard Workerdnl
325*6236dae4SAndroid Build Coastguard Workerdnl Emits shell code that verifies that 'cat' utility
326*6236dae4SAndroid Build Coastguard Workerdnl is found within 'PATH', otherwise aborts execution.
327*6236dae4SAndroid Build Coastguard Worker
328*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([_XC_CFG_PRE_BASIC_CHK_UTIL_CAT],
329*6236dae4SAndroid Build Coastguard Worker[dnl
330*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_WC])dnl
331*6236dae4SAndroid Build Coastguard Worker#
332*6236dae4SAndroid Build Coastguard Worker# Verify that 'cat' utility is found within 'PATH', otherwise abort.
333*6236dae4SAndroid Build Coastguard Worker#
334*6236dae4SAndroid Build Coastguard Worker
335*6236dae4SAndroid Build Coastguard Workerxc_tst_str='unknown'
336*6236dae4SAndroid Build Coastguard Workerxc_tst_str=`cat <<_EOT 2>/dev/null \
337*6236dae4SAndroid Build Coastguard Worker  | wc -l 2>/dev/null | tr -d "$xc_space$xc_tab" 2>/dev/null
338*6236dae4SAndroid Build Coastguard Workerunknown
339*6236dae4SAndroid Build Coastguard Workerunknown
340*6236dae4SAndroid Build Coastguard Workerunknown
341*6236dae4SAndroid Build Coastguard Worker_EOT`
342*6236dae4SAndroid Build Coastguard Workercase "x$xc_tst_str" in @%:@ ((
343*6236dae4SAndroid Build Coastguard Worker  x3)
344*6236dae4SAndroid Build Coastguard Worker    :
345*6236dae4SAndroid Build Coastguard Worker    ;;
346*6236dae4SAndroid Build Coastguard Worker  *)
347*6236dae4SAndroid Build Coastguard Worker    echo "$xc_msg_err 'cat' utility not found in 'PATH'. $xc_msg_abrt" >&2
348*6236dae4SAndroid Build Coastguard Worker    exit 1
349*6236dae4SAndroid Build Coastguard Worker    ;;
350*6236dae4SAndroid Build Coastguard Workeresac
351*6236dae4SAndroid Build Coastguard Worker])
352*6236dae4SAndroid Build Coastguard Worker
353*6236dae4SAndroid Build Coastguard Worker
354*6236dae4SAndroid Build Coastguard Workerdnl _XC_CFG_PRE_CHECK_PATH_SEPARATOR
355*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
356*6236dae4SAndroid Build Coastguard Workerdnl Private macro.
357*6236dae4SAndroid Build Coastguard Workerdnl
358*6236dae4SAndroid Build Coastguard Workerdnl Emits shell code that computes the path separator
359*6236dae4SAndroid Build Coastguard Workerdnl and stores the result in 'PATH_SEPARATOR', unless
360*6236dae4SAndroid Build Coastguard Workerdnl the user has already set it with a non-empty value.
361*6236dae4SAndroid Build Coastguard Workerdnl
362*6236dae4SAndroid Build Coastguard Workerdnl This path separator is the symbol used to separate
363*6236dae4SAndroid Build Coastguard Workerdnl or differentiate paths inside the 'PATH' environment
364*6236dae4SAndroid Build Coastguard Workerdnl variable.
365*6236dae4SAndroid Build Coastguard Workerdnl
366*6236dae4SAndroid Build Coastguard Workerdnl Non-empty user provided 'PATH_SEPARATOR' always
367*6236dae4SAndroid Build Coastguard Workerdnl overrides the auto-detected one.
368*6236dae4SAndroid Build Coastguard Worker
369*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([_XC_CFG_PRE_CHECK_PATH_SEPARATOR],
370*6236dae4SAndroid Build Coastguard Worker[dnl
371*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_CMD_EXPR])dnl
372*6236dae4SAndroid Build Coastguard Worker#
373*6236dae4SAndroid Build Coastguard Worker# Auto-detect and set 'PATH_SEPARATOR', unless it is already non-empty set.
374*6236dae4SAndroid Build Coastguard Worker#
375*6236dae4SAndroid Build Coastguard Worker
376*6236dae4SAndroid Build Coastguard Worker# Directory count in 'PATH' when using a colon separator.
377*6236dae4SAndroid Build Coastguard Workerxc_tst_dirs_col='x'
378*6236dae4SAndroid Build Coastguard Workerxc_tst_prev_IFS=$IFS; IFS=':'
379*6236dae4SAndroid Build Coastguard Workerfor xc_tst_dir in $PATH; do
380*6236dae4SAndroid Build Coastguard Worker  IFS=$xc_tst_prev_IFS
381*6236dae4SAndroid Build Coastguard Worker  xc_tst_dirs_col="x$xc_tst_dirs_col"
382*6236dae4SAndroid Build Coastguard Workerdone
383*6236dae4SAndroid Build Coastguard WorkerIFS=$xc_tst_prev_IFS
384*6236dae4SAndroid Build Coastguard Workerxc_tst_dirs_col=`expr "$xc_tst_dirs_col" : '.*'`
385*6236dae4SAndroid Build Coastguard Worker
386*6236dae4SAndroid Build Coastguard Worker# Directory count in 'PATH' when using a semicolon separator.
387*6236dae4SAndroid Build Coastguard Workerxc_tst_dirs_sem='x'
388*6236dae4SAndroid Build Coastguard Workerxc_tst_prev_IFS=$IFS; IFS=';'
389*6236dae4SAndroid Build Coastguard Workerfor xc_tst_dir in $PATH; do
390*6236dae4SAndroid Build Coastguard Worker  IFS=$xc_tst_prev_IFS
391*6236dae4SAndroid Build Coastguard Worker  xc_tst_dirs_sem="x$xc_tst_dirs_sem"
392*6236dae4SAndroid Build Coastguard Workerdone
393*6236dae4SAndroid Build Coastguard WorkerIFS=$xc_tst_prev_IFS
394*6236dae4SAndroid Build Coastguard Workerxc_tst_dirs_sem=`expr "$xc_tst_dirs_sem" : '.*'`
395*6236dae4SAndroid Build Coastguard Worker
396*6236dae4SAndroid Build Coastguard Workerif test $xc_tst_dirs_sem -eq $xc_tst_dirs_col; then
397*6236dae4SAndroid Build Coastguard Worker  # When both counting methods give the same result we do not want to
398*6236dae4SAndroid Build Coastguard Worker  # chose one over the other, and consider auto-detection not possible.
399*6236dae4SAndroid Build Coastguard Worker  if test -z "$PATH_SEPARATOR"; then
400*6236dae4SAndroid Build Coastguard Worker    # User should provide the correct 'PATH_SEPARATOR' definition.
401*6236dae4SAndroid Build Coastguard Worker    # Until then, guess that it is colon!
402*6236dae4SAndroid Build Coastguard Worker    echo "$xc_msg_warn path separator not determined, guessing colon" >&2
403*6236dae4SAndroid Build Coastguard Worker    PATH_SEPARATOR=':'
404*6236dae4SAndroid Build Coastguard Worker  fi
405*6236dae4SAndroid Build Coastguard Workerelse
406*6236dae4SAndroid Build Coastguard Worker  # Separator with the greater directory count is the auto-detected one.
407*6236dae4SAndroid Build Coastguard Worker  if test $xc_tst_dirs_sem -gt $xc_tst_dirs_col; then
408*6236dae4SAndroid Build Coastguard Worker    xc_tst_auto_separator=';'
409*6236dae4SAndroid Build Coastguard Worker  else
410*6236dae4SAndroid Build Coastguard Worker    xc_tst_auto_separator=':'
411*6236dae4SAndroid Build Coastguard Worker  fi
412*6236dae4SAndroid Build Coastguard Worker  if test -z "$PATH_SEPARATOR"; then
413*6236dae4SAndroid Build Coastguard Worker    # Simply use the auto-detected one when not already set.
414*6236dae4SAndroid Build Coastguard Worker    PATH_SEPARATOR=$xc_tst_auto_separator
415*6236dae4SAndroid Build Coastguard Worker  elif test "x$PATH_SEPARATOR" != "x$xc_tst_auto_separator"; then
416*6236dae4SAndroid Build Coastguard Worker    echo "$xc_msg_warn 'PATH_SEPARATOR' does not match auto-detected one." >&2
417*6236dae4SAndroid Build Coastguard Worker  fi
418*6236dae4SAndroid Build Coastguard Workerfi
419*6236dae4SAndroid Build Coastguard Workerxc_PATH_SEPARATOR=$PATH_SEPARATOR
420*6236dae4SAndroid Build Coastguard WorkerAC_SUBST([PATH_SEPARATOR])dnl
421*6236dae4SAndroid Build Coastguard Worker])
422*6236dae4SAndroid Build Coastguard Worker
423*6236dae4SAndroid Build Coastguard Worker
424*6236dae4SAndroid Build Coastguard Workerdnl _XC_CFG_PRE_POSTLUDE
425*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
426*6236dae4SAndroid Build Coastguard Workerdnl Private macro.
427*6236dae4SAndroid Build Coastguard Worker
428*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([_XC_CFG_PRE_POSTLUDE],
429*6236dae4SAndroid Build Coastguard Worker[dnl
430*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_PREAMBLE])dnl
431*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_CMD_ECHO])dnl
432*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_CMD_TEST])dnl
433*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_VAR_PATH])dnl
434*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_CMD_EXPR])dnl
435*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_SED])dnl
436*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_GREP])dnl
437*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_TR])dnl
438*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_WC])dnl
439*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_CAT])dnl
440*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_CHECK_PATH_SEPARATOR])dnl
441*6236dae4SAndroid Build Coastguard Workerdnl
442*6236dae4SAndroid Build Coastguard Workerxc_configure_preamble_result='yes'
443*6236dae4SAndroid Build Coastguard Worker])
444*6236dae4SAndroid Build Coastguard Worker
445*6236dae4SAndroid Build Coastguard Worker
446*6236dae4SAndroid Build Coastguard Workerdnl XC_CONFIGURE_PREAMBLE
447*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
448*6236dae4SAndroid Build Coastguard Workerdnl Public macro.
449*6236dae4SAndroid Build Coastguard Workerdnl
450*6236dae4SAndroid Build Coastguard Workerdnl This macro emits shell code which does some
451*6236dae4SAndroid Build Coastguard Workerdnl very basic checks related with the availability
452*6236dae4SAndroid Build Coastguard Workerdnl of some commands and utilities needed to allow
453*6236dae4SAndroid Build Coastguard Workerdnl configure script bootstrapping itself when using
454*6236dae4SAndroid Build Coastguard Workerdnl these to figure out other settings. Also emits
455*6236dae4SAndroid Build Coastguard Workerdnl code that performs PATH_SEPARATOR auto-detection
456*6236dae4SAndroid Build Coastguard Workerdnl and sets its value unless it is already set with
457*6236dae4SAndroid Build Coastguard Workerdnl a non-empty value.
458*6236dae4SAndroid Build Coastguard Workerdnl
459*6236dae4SAndroid Build Coastguard Workerdnl These basic checks are intended to be placed and
460*6236dae4SAndroid Build Coastguard Workerdnl executed as early as possible in the resulting
461*6236dae4SAndroid Build Coastguard Workerdnl configure script, and as such these must be pure
462*6236dae4SAndroid Build Coastguard Workerdnl and portable shell code.
463*6236dae4SAndroid Build Coastguard Workerdnl
464*6236dae4SAndroid Build Coastguard Workerdnl This macro may be used directly, or indirectly
465*6236dae4SAndroid Build Coastguard Workerdnl when using other macros that AC_REQUIRE it such
466*6236dae4SAndroid Build Coastguard Workerdnl as XC_CHECK_PATH_SEPARATOR.
467*6236dae4SAndroid Build Coastguard Workerdnl
468*6236dae4SAndroid Build Coastguard Workerdnl Currently the mechanism used to ensure that this
469*6236dae4SAndroid Build Coastguard Workerdnl macro expands early enough in generated configure
470*6236dae4SAndroid Build Coastguard Workerdnl script is making it override autoconf and libtool
471*6236dae4SAndroid Build Coastguard Workerdnl PATH_SEPARATOR check.
472*6236dae4SAndroid Build Coastguard Worker
473*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([XC_CONFIGURE_PREAMBLE],
474*6236dae4SAndroid Build Coastguard Worker[dnl
475*6236dae4SAndroid Build Coastguard WorkerAC_PREREQ([2.50])dnl
476*6236dae4SAndroid Build Coastguard Workerdnl
477*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[_XC_CFG_PRE_PREAMBLE])dnl
478*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[_XC_CFG_PRE_BASIC_CHK_CMD_ECHO])dnl
479*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[_XC_CFG_PRE_BASIC_CHK_CMD_TEST])dnl
480*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[_XC_CFG_PRE_BASIC_CHK_VAR_PATH])dnl
481*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[_XC_CFG_PRE_BASIC_CHK_CMD_EXPR])dnl
482*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[_XC_CFG_PRE_BASIC_CHK_UTIL_SED])dnl
483*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[_XC_CFG_PRE_BASIC_CHK_UTIL_GREP])dnl
484*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[_XC_CFG_PRE_BASIC_CHK_UTIL_TR])dnl
485*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[_XC_CFG_PRE_BASIC_CHK_UTIL_WC])dnl
486*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[_XC_CFG_PRE_BASIC_CHK_UTIL_CAT])dnl
487*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[_XC_CFG_PRE_CHECK_PATH_SEPARATOR])dnl
488*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[_XC_CFG_PRE_POSTLUDE])dnl
489*6236dae4SAndroid Build Coastguard Workerdnl
490*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_CHECK_TOOL])dnl
491*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_CHECK_PROG])dnl
492*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_CHECK_TOOLS])dnl
493*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_CHECK_PROGS])dnl
494*6236dae4SAndroid Build Coastguard Workerdnl
495*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_PATH_TOOL])dnl
496*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_PATH_PROG])dnl
497*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_PATH_PROGS])dnl
498*6236dae4SAndroid Build Coastguard Workerdnl
499*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_PROG_SED])dnl
500*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_PROG_GREP])dnl
501*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_PROG_LN_S])dnl
502*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_PROG_MKDIR_P])dnl
503*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_PROG_INSTALL])dnl
504*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_PROG_MAKE_SET])dnl
505*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_PROG_LIBTOOL])dnl
506*6236dae4SAndroid Build Coastguard Workerdnl
507*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[LT_INIT])dnl
508*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AM_INIT_AUTOMAKE])dnl
509*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_LIBTOOL_WIN32_DLL])dnl
510*6236dae4SAndroid Build Coastguard Workerdnl
511*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_PREAMBLE])dnl
512*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_CMD_ECHO])dnl
513*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_CMD_TEST])dnl
514*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_VAR_PATH])dnl
515*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_CMD_EXPR])dnl
516*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_SED])dnl
517*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_GREP])dnl
518*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_TR])dnl
519*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_WC])dnl
520*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_CAT])dnl
521*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_CHECK_PATH_SEPARATOR])dnl
522*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([_XC_CFG_PRE_POSTLUDE])dnl
523*6236dae4SAndroid Build Coastguard Workerdnl
524*6236dae4SAndroid Build Coastguard Workerm4_pattern_forbid([^_*XC])dnl
525*6236dae4SAndroid Build Coastguard Workerm4_define([$0],[])dnl
526*6236dae4SAndroid Build Coastguard Worker])
527*6236dae4SAndroid Build Coastguard Worker
528*6236dae4SAndroid Build Coastguard Worker
529*6236dae4SAndroid Build Coastguard Workerdnl Override autoconf and libtool PATH_SEPARATOR check
530*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
531*6236dae4SAndroid Build Coastguard Workerdnl Macros overriding.
532*6236dae4SAndroid Build Coastguard Workerdnl
533*6236dae4SAndroid Build Coastguard Workerdnl This is done to ensure that the same check is
534*6236dae4SAndroid Build Coastguard Workerdnl used across different autoconf versions and to
535*6236dae4SAndroid Build Coastguard Workerdnl allow expansion of XC_CONFIGURE_PREAMBLE macro
536*6236dae4SAndroid Build Coastguard Workerdnl early enough in the generated configure script.
537*6236dae4SAndroid Build Coastguard Worker
538*6236dae4SAndroid Build Coastguard Workerdnl
539*6236dae4SAndroid Build Coastguard Workerdnl Override when using autoconf 2.53 and newer.
540*6236dae4SAndroid Build Coastguard Workerdnl
541*6236dae4SAndroid Build Coastguard Worker
542*6236dae4SAndroid Build Coastguard Workerm4_ifdef([_AS_PATH_SEPARATOR_PREPARE],
543*6236dae4SAndroid Build Coastguard Worker[dnl
544*6236dae4SAndroid Build Coastguard Workerm4_undefine([_AS_PATH_SEPARATOR_PREPARE])dnl
545*6236dae4SAndroid Build Coastguard Workerm4_defun([_AS_PATH_SEPARATOR_PREPARE],
546*6236dae4SAndroid Build Coastguard Worker[dnl
547*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([XC_CONFIGURE_PREAMBLE])dnl
548*6236dae4SAndroid Build Coastguard Workerm4_define([$0],[])dnl
549*6236dae4SAndroid Build Coastguard Worker])dnl
550*6236dae4SAndroid Build Coastguard Worker])
551*6236dae4SAndroid Build Coastguard Worker
552*6236dae4SAndroid Build Coastguard Workerdnl
553*6236dae4SAndroid Build Coastguard Workerdnl Override when using autoconf 2.50 to 2.52
554*6236dae4SAndroid Build Coastguard Workerdnl
555*6236dae4SAndroid Build Coastguard Worker
556*6236dae4SAndroid Build Coastguard Workerm4_ifdef([_AC_INIT_PREPARE_FS_SEPARATORS],
557*6236dae4SAndroid Build Coastguard Worker[dnl
558*6236dae4SAndroid Build Coastguard Workerm4_undefine([_AC_INIT_PREPARE_FS_SEPARATORS])dnl
559*6236dae4SAndroid Build Coastguard Workerm4_defun([_AC_INIT_PREPARE_FS_SEPARATORS],
560*6236dae4SAndroid Build Coastguard Worker[dnl
561*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([XC_CONFIGURE_PREAMBLE])dnl
562*6236dae4SAndroid Build Coastguard Workerac_path_separator=$PATH_SEPARATOR
563*6236dae4SAndroid Build Coastguard Workerm4_define([$0],[])dnl
564*6236dae4SAndroid Build Coastguard Worker])dnl
565*6236dae4SAndroid Build Coastguard Worker])
566*6236dae4SAndroid Build Coastguard Worker
567*6236dae4SAndroid Build Coastguard Workerdnl
568*6236dae4SAndroid Build Coastguard Workerdnl Override when using libtool 1.4.2
569*6236dae4SAndroid Build Coastguard Workerdnl
570*6236dae4SAndroid Build Coastguard Worker
571*6236dae4SAndroid Build Coastguard Workerm4_ifdef([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR],
572*6236dae4SAndroid Build Coastguard Worker[dnl
573*6236dae4SAndroid Build Coastguard Workerm4_undefine([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl
574*6236dae4SAndroid Build Coastguard Workerm4_defun([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR],
575*6236dae4SAndroid Build Coastguard Worker[dnl
576*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([XC_CONFIGURE_PREAMBLE])dnl
577*6236dae4SAndroid Build Coastguard Workerlt_cv_sys_path_separator=$PATH_SEPARATOR
578*6236dae4SAndroid Build Coastguard Workerm4_define([$0],[])dnl
579*6236dae4SAndroid Build Coastguard Worker])dnl
580*6236dae4SAndroid Build Coastguard Worker])
581*6236dae4SAndroid Build Coastguard Worker
582*6236dae4SAndroid Build Coastguard Worker
583*6236dae4SAndroid Build Coastguard Workerdnl XC_CHECK_PATH_SEPARATOR
584*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
585*6236dae4SAndroid Build Coastguard Workerdnl Public macro.
586*6236dae4SAndroid Build Coastguard Workerdnl
587*6236dae4SAndroid Build Coastguard Workerdnl Usage of this macro ensures that generated configure
588*6236dae4SAndroid Build Coastguard Workerdnl script uses the same PATH_SEPARATOR check irrespective
589*6236dae4SAndroid Build Coastguard Workerdnl of autoconf or libtool version being used to generate
590*6236dae4SAndroid Build Coastguard Workerdnl configure script.
591*6236dae4SAndroid Build Coastguard Workerdnl
592*6236dae4SAndroid Build Coastguard Workerdnl Emits shell code that computes the path separator
593*6236dae4SAndroid Build Coastguard Workerdnl and stores the result in 'PATH_SEPARATOR', unless
594*6236dae4SAndroid Build Coastguard Workerdnl the user has already set it with a non-empty value.
595*6236dae4SAndroid Build Coastguard Workerdnl
596*6236dae4SAndroid Build Coastguard Workerdnl This path separator is the symbol used to separate
597*6236dae4SAndroid Build Coastguard Workerdnl or differentiate paths inside the 'PATH' environment
598*6236dae4SAndroid Build Coastguard Workerdnl variable.
599*6236dae4SAndroid Build Coastguard Workerdnl
600*6236dae4SAndroid Build Coastguard Workerdnl Non-empty user provided 'PATH_SEPARATOR' always
601*6236dae4SAndroid Build Coastguard Workerdnl overrides the auto-detected one.
602*6236dae4SAndroid Build Coastguard Workerdnl
603*6236dae4SAndroid Build Coastguard Workerdnl Strictly speaking the check is done in two steps. The
604*6236dae4SAndroid Build Coastguard Workerdnl first, which does the actual check, takes place in
605*6236dae4SAndroid Build Coastguard Workerdnl XC_CONFIGURE_PREAMBLE macro and happens very early in
606*6236dae4SAndroid Build Coastguard Workerdnl generated configure script. The second one shows and
607*6236dae4SAndroid Build Coastguard Workerdnl logs the result of the check into config.log at a later
608*6236dae4SAndroid Build Coastguard Workerdnl configure stage. Placement of this second stage in
609*6236dae4SAndroid Build Coastguard Workerdnl generated configure script will be done where first
610*6236dae4SAndroid Build Coastguard Workerdnl direct or indirect usage of this macro happens.
611*6236dae4SAndroid Build Coastguard Worker
612*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([XC_CHECK_PATH_SEPARATOR],
613*6236dae4SAndroid Build Coastguard Worker[dnl
614*6236dae4SAndroid Build Coastguard WorkerAC_PREREQ([2.50])dnl
615*6236dae4SAndroid Build Coastguard Workerdnl
616*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_CHECK_TOOL])dnl
617*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_CHECK_PROG])dnl
618*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_CHECK_TOOLS])dnl
619*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_CHECK_PROGS])dnl
620*6236dae4SAndroid Build Coastguard Workerdnl
621*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_PATH_TOOL])dnl
622*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_PATH_PROG])dnl
623*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_PATH_PROGS])dnl
624*6236dae4SAndroid Build Coastguard Workerdnl
625*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_PROG_SED])dnl
626*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_PROG_GREP])dnl
627*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_PROG_LN_S])dnl
628*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_PROG_MKDIR_P])dnl
629*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_PROG_INSTALL])dnl
630*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_PROG_MAKE_SET])dnl
631*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_PROG_LIBTOOL])dnl
632*6236dae4SAndroid Build Coastguard Workerdnl
633*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[LT_INIT])dnl
634*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AM_INIT_AUTOMAKE])dnl
635*6236dae4SAndroid Build Coastguard WorkerAC_BEFORE([$0],[AC_LIBTOOL_WIN32_DLL])dnl
636*6236dae4SAndroid Build Coastguard Workerdnl
637*6236dae4SAndroid Build Coastguard WorkerAC_REQUIRE([XC_CONFIGURE_PREAMBLE])dnl
638*6236dae4SAndroid Build Coastguard Workerdnl
639*6236dae4SAndroid Build Coastguard Worker#
640*6236dae4SAndroid Build Coastguard Worker# Check that 'XC_CONFIGURE_PREAMBLE' has already run.
641*6236dae4SAndroid Build Coastguard Worker#
642*6236dae4SAndroid Build Coastguard Worker
643*6236dae4SAndroid Build Coastguard Workerif test -z "$xc_configure_preamble_result"; then
644*6236dae4SAndroid Build Coastguard Worker  AC_MSG_ERROR([xc_configure_preamble_result not set (internal problem)])
645*6236dae4SAndroid Build Coastguard Workerfi
646*6236dae4SAndroid Build Coastguard Worker
647*6236dae4SAndroid Build Coastguard Worker#
648*6236dae4SAndroid Build Coastguard Worker# Check that 'PATH_SEPARATOR' has already been set.
649*6236dae4SAndroid Build Coastguard Worker#
650*6236dae4SAndroid Build Coastguard Worker
651*6236dae4SAndroid Build Coastguard Workerif test -z "$xc_PATH_SEPARATOR"; then
652*6236dae4SAndroid Build Coastguard Worker  AC_MSG_ERROR([xc_PATH_SEPARATOR not set (internal problem)])
653*6236dae4SAndroid Build Coastguard Workerfi
654*6236dae4SAndroid Build Coastguard Workerif test -z "$PATH_SEPARATOR"; then
655*6236dae4SAndroid Build Coastguard Worker  AC_MSG_ERROR([PATH_SEPARATOR not set (internal or config.site problem)])
656*6236dae4SAndroid Build Coastguard Workerfi
657*6236dae4SAndroid Build Coastguard WorkerAC_MSG_CHECKING([for path separator])
658*6236dae4SAndroid Build Coastguard WorkerAC_MSG_RESULT([$PATH_SEPARATOR])
659*6236dae4SAndroid Build Coastguard Workerif test "x$PATH_SEPARATOR" != "x$xc_PATH_SEPARATOR"; then
660*6236dae4SAndroid Build Coastguard Worker  AC_MSG_CHECKING([for initial path separator])
661*6236dae4SAndroid Build Coastguard Worker  AC_MSG_RESULT([$xc_PATH_SEPARATOR])
662*6236dae4SAndroid Build Coastguard Worker  AC_MSG_ERROR([path separator mismatch (internal or config.site problem)])
663*6236dae4SAndroid Build Coastguard Workerfi
664*6236dae4SAndroid Build Coastguard Workerdnl
665*6236dae4SAndroid Build Coastguard Workerm4_pattern_forbid([^_*XC])dnl
666*6236dae4SAndroid Build Coastguard Workerm4_define([$0],[])dnl
667*6236dae4SAndroid Build Coastguard Worker])
668