1 # This is a frozen state file generated by GNU M4 1.4.16
6 m4_providem4_ifdef([m4_provide($1)], [],
7 [m4_set_add([_m4_provide], [$1], [m4_define([m4_provide($1)],
8 m4_ifdef([_m4_diverting], [_m4_defn([_m4_diverting])]))])])
12 _AS_TR_SH_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_sh`
14 _AS_BOURNE_COMPATIBLEAS_IF([test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1],
17 [#] Pre-4.2 versions of Zsh do word splitting on ${1+"$[@]"}, which
18 # is contrary to our usage. Disable this feature.
19 alias -g '${1+"$[@]"}'='"$[@]"'
20 setopt NO_GLOB_SUBST],
21 [AS_CASE([`(set -o) 2>/dev/null`], [*posix*], [set -o posix])])
26 m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1064
28 _m4_qlenm4_define([m4_qlen-$1],
29 m4_if(m4_index([$1], [@]), [-1], [m4_len([$1])],
30 [m4_len(m4_bpatsubst([[$1]],
31 [@\(\(<:\|:>\|S|\|%:\|\{:\|:\}\)\(@\)\|&t@\)],
32 [\3]))]))_m4_defn([m4_qlen-$1])
34 AS_WARNAS_MESSAGE([WARNING: $1], [2])
36 _AS_TR_SH_AS_LITERAL_IF([$1], [$0_LITERAL], [$0_INDIR])([$1])
40 AS_FOR_m4_defun_pro([$0])m4_pushdef([$1], m4_if([$3], [], [[$$2]], m4_translit([$3], [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789][%+=:,./-]), [], [[$3]], [[$$2]]))for $2[]m4_ifval([$3], [ in $3])
43 done[]_m4_popdef([$1])[]_m4_defun_epi([$0])
45 m4_divert_textm4_divert_push([$1])$2
48 AT_SETUPm4_ifdef([AT_ingroup], [m4_fatal([$0: nested AT_SETUP detected])],
49 [m4_define([AT_ingroup], [AS_ECHO(["$at_setup_line"]) >"$at_check_line_file"
51 m4_ifdef([AT_keywords], [m4_undefine([AT_keywords])])
52 m4_define([AT_capture_files], [])
53 m4_define([AT_line], AT_LINE)
54 m4_define([AT_xfail], [at_xfail=no])
55 m4_define([AT_description], m4_expand([$1]))
56 m4_define([AT_ordinal], m4_incr(AT_ordinal))
57 m4_append([AT_groups_all], [ ]m4_defn([AT_ordinal]))
58 m4_divert_push([TEST_GROUPS])dnl
59 [#AT_START_]AT_ordinal
60 @%:@ AT_ordinal. m4_defn([AT_line]): m4_defn([AT_description])
61 at_setup_line='m4_defn([AT_line])'
62 m4_if(AT_banner_ordinal, [0], [], [at_fn_banner AT_banner_ordinal
64 at_desc="AS_ESCAPE(m4_dquote(m4_defn([AT_description])))"
65 at_desc_line=m4_format(["%3d: $at_desc%*s"], AT_ordinal,
66 m4_max(0, m4_eval(47 - m4_qlen(m4_defn([AT_description])))), [])
67 $at_quiet AS_ECHO_N(["$at_desc_line"])
68 m4_divert_push([TEST_SCRIPT])dnl
71 AT_SETUPm4_fatal([AT_SETUP: missing AT_INIT detected])
76 AS_FUNCTION_DESCRIBE@%:@ $1[]m4_ifval([$2], [ $2])
77 @%:@ m4_translit(m4_format([%*s],
78 m4_decr(m4_qlen(_m4_expand([$1[]m4_ifval([$2], [ $2])
80 m4_text_wrap([$3], [@%:@ ], [], [$4])
82 m4_dom4_if([$#], 0, [],
84 [$1[]$0(m4_shift($@))])
86 _m4_divert(PARSE_ARGS_END)202
90 m4_defaultm4_if([$1], [], [$2], [$1])
92 m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:992
94 AS_IDENTIFIER_IFm4_if(_$0(m4_if(m4_index([$1], [@]), [-1],
95 [[$1]], [m4_bpatsubst([[$1]], [@&t@])])), [-], [$2], [$3])
97 m4_argnm4_assert([0 < $1])m4_pushdef([_$0], [_m4_popdef([_$0])]m4_dquote([$]m4_incr([$1])))_$0($@)
99 AS_VAR_SETAS_LITERAL_IF([$1],
101 [eval "$1=AS_ESCAPE([$2])"])
103 m4_copym4_ifdef([$2], [m4_fatal([$0: won't overwrite defined macro: $2])],
104 [m4_stack_foreach_sep([$1], [m4_pushdef([$2],], [)])])m4_ifdef([m4_location($1)], [m4_define([m4_location($2)], m4_location)])
106 _AS_ERROR_PREPAREAS_REQUIRE_SHELL_FN([as_fn_error],
107 [AS_FUNCTION_DESCRIBE([as_fn_error], [ERROR]m4_ifval(AS_MESSAGE_LOG_FD,
108 [[ [[LINENO LOG_FD]]]]),
109 [Output "`basename @S|@0`: error: ERROR" to stderr.]
110 m4_ifval(AS_MESSAGE_LOG_FD,
111 [[If LINENO and LOG_FD are provided, also output the error to LOG_FD,
112 referencing LINENO.]])
113 [Then exit the script with status $?, using 1 if that was 0.])],
114 [ as_status=$?; test $as_status -eq 0 && as_status=1
115 m4_ifval(AS_MESSAGE_LOG_FD,
116 [m4_pushdef([AS_MESSAGE_LOG_FD], [$[3]])dnl
118 AS_LINENO_PUSH([$[2]])
119 _AS_ECHO_LOG([error: $[1]])
121 m4_define([AS_MESSAGE_LOG_FD])], [m4_pushdef([AS_MESSAGE_LOG_FD])])dnl
122 AS_MESSAGE([error: $[1]], [2])
123 _m4_popdef([AS_MESSAGE_LOG_FD])dnl
124 AS_EXIT([$as_status])])
126 AT_DIFF_STDOUT(stdout-nolog)echo stdout captured; cp "$at_stdout" stdout
128 AT_DIFF_STDERR(stderr-nolog)echo stderr captured; cp "$at_stderr" stderr
130 AT_CAPTURE_FILEm4_ifndef([AT_ingroup],
131 [m4_fatal([AT_CAPTURE_FILE: missing AT_SETUP detected])])m4_append_uniq([AT_capture_files], ["$1"], [ \
134 _m4_quotem4_if([$#], [0], [], [[$*]])
136 m4_applym4_if([$2], [], [$1], [$1($2)])[]
138 _m4_divert(VERSION_NOTICES)351
140 _m4_divert(VERSION)350
144 m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:630
146 m4_flattenm4_if(m4_index([$1], [
148 [m4_translit(m4_bpatsubst([[[$1]]], [\\
152 m4_debugmodedebugmode
154 m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1209
158 m4_shiftnm4_assert(0 < $1 && $1 < $#)_$0($@)
160 m4_set_deletem4_ifdef([_m4_set([$1])],
161 [_m4_popdef([_m4_set([$1],]_m4_defn([_m4_set([$1])])[)],
162 [_m4_set([$1])])$0([$1])],
163 [m4_ifdef([_m4_set_cleanup($1)],
164 [_m4_popdef([_m4_set_cleanup($1)])])m4_ifdef(
166 [_m4_popdef([_m4_set_size($1)])])])
168 _AS_ME_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_BASENAME_PREPARE])as_me=`AS_BASENAME("$[0]")`
169 []_m4_defun_epi([$0])
171 _m4_for$4[$1]$5[]m4_if([$1], [$2], [],
172 [$0(m4_eval([$1 + $3]), [$2], [$3], [$4], [$5])])
174 AS_COPYRIGHTm4_divert_text([HEADER-COPYRIGHT],
178 AT_CHECKm4_ifndef([AT_ingroup],
179 [m4_fatal([AT_CHECK: missing AT_SETUP detected])])_AT_CHECK(m4_expand([$1]), [$2], AS_ESCAPE(m4_dquote(m4_expand([$3]))),
180 AS_ESCAPE(m4_dquote(m4_expand([$4]))), [$5], [$6])
184 m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1704
186 _AS_LINENO_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_CR_PREPARE])AS_REQUIRE([_AS_ME_PREPARE])_AS_DETECT_SUGGESTED([_AS_LINENO_WORKS])m4_pushdef([AS_MESSAGE_LOG_FD])m4_pushdef([AS_ERROR],
187 [{ AS_MESSAGE(]m4_dquote([error: $][1])[, [2]); AS_EXIT([1]); }])_AS_LINENO_WORKS || {
188 # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
200 s/[[$]]LINENO\([[^'$as_cr_alnum'_]].*\n\)\(.*\)/\2\1\2/
204 chmod +x "$as_me.lineno" ||
205 AS_ERROR([cannot create $as_me.lineno; rerun with a POSIX shell])
207 # Don't try to exec as it changes $[0], causing all sort of problems
208 # (the dirname of $[0] is not the place where we might find the
209 # original and so on. Autoconf is especially sensitive to this).
211 # Exit status is that of the last command.
214 _m4_popdef([AS_MESSAGE_LOG_FD], [AS_ERROR])[]_m4_defun_epi([$0])
216 m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1608
218 _AS_IF_ELSEm4_ifnblank([$1],
223 m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1737
225 m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:616
227 _AS_EXIT_PREPARE_m4_defun_pro([$0])AS_REQUIRE_SHELL_FN([as_fn_set_status],
228 [AS_FUNCTION_DESCRIBE([as_fn_set_status], [STATUS],
229 [Set $? to STATUS, without forking.])], [ return $[]1])AS_REQUIRE_SHELL_FN([as_fn_exit],
230 [AS_FUNCTION_DESCRIBE([as_fn_exit], [STATUS],
231 [Exit the shell with STATUS, even in a "trap 0" or "set -e" context.])],
233 as_fn_set_status $[1]
234 exit $[1]])[]_m4_defun_epi([$0])
236 m4_defun_initm4_define([$1], [$3])m4_defun([$1],
237 [$2[]_m4_popdef(]m4_dquote($[0])[)m4_indir(]m4_dquote($[0])dnl
238 [m4_if(]m4_dquote($[#])[, [0], [], ]m4_dquote([,$]@)[))], [m4_pushdef])
240 _m4_divert(TEST_GROUPS)500
242 m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:960
244 _m4_dumpdefm4_if([$#], [0], [m4_fatal([$0: missing argument])],
245 [$#], [1], [m4_builtin([dumpdef], [$1])],
246 [m4_map_args_sep([m4_builtin([dumpdef],], [)], [], $@)])
248 _m4_divert(TESTS_BEGIN)401
256 AT_DIFF_STDERR()at_fn_diff_devnull "$at_stderr" || at_failed=:
258 AS_SET_CATFILEcase $2 in @%:@((
263 [[\\/]]* | ?:[[\\/]]* ) $1=$3;;
268 _m4_stack_reversem4_ifdef([$1], [m4_pushdef([$2],
269 _m4_defn([$1]))$3[]_m4_popdef([$1])$0([$1], [$2], [$4$3])])
273 AS_VAR_ARITHas_fn_arith $2 && AS_VAR_SET([$1], [$as_val])
275 AS_VAR_ARITH_m4_defun_pro([$0])_AS_DETECT_SUGGESTED([_AS_VAR_ARITH_WORKS])AS_REQUIRE([_AS_VAR_ARITH_PREPARE], [], [M4SH-INIT-FN])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0])
279 _m4_divert(M4SH-INIT-FN)5
281 _AS_DETECT_SUGGESTED_m4_defun_pro([$0])m4_set_add([_AS_DETECT_SUGGESTED_BODY], [$1 || AS_EXIT])[]_m4_defun_epi([$0])
283 AT_DIFF_STDOUT(stdout)echo stdout:; tee stdout <"$at_stdout"
285 m4_casem4_if([$#], 0, [],
289 [$0([$1], m4_shift3($@))])
291 AS_ME_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_$0])[]_m4_defun_epi([$0])
293 m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:984
295 _m4_set_add_all_checkm4_if([$#], [2], [],
296 [m4_set_add([$1], [$3])$0([$1], m4_shift2($@))])
300 m4_includem4_include_unique([$1])dnl
301 m4_builtin([include], [$1])
303 _AS_LITERAL_IFm4_if(m4_cond([m4_eval(m4_index([$1], [@S|@]) == -1)], [0], [],
304 [m4_index(m4_translit([$1], [[]`,#()]][[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]][, [$$$]), [$])],
305 [-1], [-]), [-], [$2], [$3])
307 AS_REQUIRE_SHELL_FNm4_provide_if([AS_SHELL_FN_$1], [],
308 [AS_REQUIRE([AS_SHELL_FN_$1],
309 [m4_provide([AS_SHELL_FN_$1])_$0($@)],
310 m4_default_quoted([$4], [M4SH-INIT-FN]))])
312 _AS_TEST_PREPARE_m4_defun_pro([$0])if test -x / >/dev/null 2>&1; then
315 if ls -dL / >/dev/null 2>&1; then
322 if test -d "$[]1"; then
328 case `ls -ld'$as_ls_L_option' "$[]1" 2>/dev/null` in @%:@((
329 ???[[sx]]*):;;*)false;;esac;fi
333 dnl as_executable_p is present for backward compatibility with Libtool
334 dnl 1.5.22, but it should go away at some point.
335 as_executable_p=$as_test_x
336 []_m4_defun_epi([$0])
338 _AS_ECHO_UNQUOTEDAS_ECHO(["$1"]) >&m4_default([$2], [AS_MESSAGE_FD])
340 _AS_CLEAN_DIRif test -d $1; then
341 find $1 -type d ! -perm -700 -exec chmod u+rwx {} \;
342 rm -fr $1/* $1/.[[!.]] $1/.??*
345 m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:527
351 m4_PACKAGE_STRINGGNU Autoconf 2.65
353 m4_PACKAGE_NAMEGNU Autoconf
355 AS_DIRNAME$as_dirname -- $1 ||
356 _AS_DIRNAME_EXPR([$1]) 2>/dev/null ||
357 _AS_DIRNAME_SED([$1])
359 AS_DIRNAME_m4_defun_pro([$0])AS_REQUIRE([_$0_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0])
361 m4_cr_not_symbols1
\x01\x02\x03\x04\x05\x06\a\b
362 \v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\e\x1c\x1d\x1e\x1f !"#$%&'()*+,./0123456789:;<=>?@[\]^`{|}~
\x7f€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-
364 _AS_LINENO_WORKS as_lineno_1=$LINENO as_lineno_1a=$LINENO
365 as_lineno_2=$LINENO as_lineno_2a=$LINENO
366 eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
367 test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"'
369 m4_cr_not_symbols2
\x01\x02\x03\x04\x05\x06\a\b
370 \v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\e\x1c\x1d\x1e\x1f !"#$%&'()*+,./:;<=>?@[\]^`{|}~
\x7f€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-
372 AS_EXECUTABLE_P{ test -f $1 && AS_TEST_X([$1]); }
374 AS_EXECUTABLE_P_m4_defun_pro([$0])AS_REQUIRE([_AS_TEST_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0])
376 m4_cr_not_alnum
\x01\x02\x03\x04\x05\x06\a\b
377 \v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\e\x1c\x1d\x1e\x1f !"#$%&'()*+,./:;<=>?@[\]^_`{|}~
\x7f€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-
379 m4_noquotem4_changequote([-=<{(],[)}>=-])$1-=<{()}>=-m4_changequote([,])
381 m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1248
383 m4_dumpdefm4_if([$#], [0], [m4_fatal([$0: missing argument])],
384 [$#], [1], [m4_ifdef([$1], [m4_errprintn(
385 [$1: ]m4_dquote(_m4_defn([$1])))], [m4_fatal([$0: undefined macro: $1])])],
386 [m4_map_args([$0], $@)])
388 _m4_divert_diversionKILL
390 AS_VAR_PUSHDEF_$0([$1], m4_expand([$2]))
392 AS_VAR_PUSHDEF_m4_defun_pro([$0])AS_REQUIRE([_AS_TR_SH_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0])
394 m4_normalizem4_strip(m4_flatten([$1]))
396 m4_expansion_stack_pushm4_pushdef([_m4_expansion_stack], [$1])
398 m4_re_escapem4_bpatsubst([$1],
399 [[][*+.?\^$]], [\\\&])
401 m4_version_prereqm4_if(m4_version_compare([2.65], [$1]),
404 [m4_fatal([Autoconf version $1 or higher is required],
408 _AS_QUOTE_MODERN_AS_ESCAPE([$1], [`], [""])
410 AS_LINENO_PUSH_m4_defun_pro([$0])as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack[]_m4_defun_epi([$0])
412 AS_INIT_GENERATED_m4_defun_pro([$0])m4_require([AS_PREPARE])m4_pushdef([AS_MESSAGE_LOG_FD])as_write_fail=0
413 cat >$1 <<_ASEOF || as_write_fail=1
415 # Generated by $as_me.
417 SHELL=\${CONFIG_SHELL-$SHELL}
420 cat >>$1 <<\_ASEOF || as_write_fail=1
423 m4_if(AS_MESSAGE_FD, [1], [], [exec AS_MESSAGE_FD>&1
424 ])m4_text_box([Main body of $1 script.])
426 test $as_write_fail = 0 && chmod +x $1[]dnl
427 _m4_popdef([AS_MESSAGE_LOG_FD])[]_m4_defun_epi([$0])
429 m4_defunm4_define([m4_location($1)], m4_location)m4_default([$3], [m4_define])([$1],
430 [_m4_defun_pro(]m4_dquote($[0])[)$2[]_m4_defun_epi(]m4_dquote($[0])[)])
432 m4_include(autotest/general.m4)
434 AS_LITERAL_IF_$0(m4_expand([$1]), [$2], [$3])
436 m4_chompm4_format([[%.*s]], m4_index(m4_translit([[$1]], [
437 /.], [/ ])[./.], [/.]), [$1])
439 AS_ERRORm4_ifvaln([$2], [{ AS_SET_STATUS([$2])])as_fn_error "_AS_QUOTE([$1])"m4_ifval(AS_MESSAGE_LOG_FD,
440 [ "$LINENO" AS_MESSAGE_LOG_FD])[]m4_ifval([$2], [; }])
442 AS_ERROR_m4_defun_pro([$0])m4_append_uniq([_AS_CLEANUP],
443 [m4_divert_text([M4SH-INIT-FN], [_AS_ERROR_PREPARE[]])])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0])
445 m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:749
447 m4_cr_not_digits
\x01\x02\x03\x04\x05\x06\a\b
448 \v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\e\x1c\x1d\x1e\x1f !"#$%&'()*+,./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
\x7f€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-
452 m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:1971
456 _AS_UNSET_PREPARE_m4_defun_pro([$0])AS_FUNCTION_DESCRIBE([as_fn_unset], [VAR], [Portably unset VAR.])
461 as_unset=as_fn_unset[]_m4_defun_epi([$0])
463 AS_LN_S$as_ln_s $1 $2
465 AS_LN_S_m4_defun_pro([$0])AS_REQUIRE([_AS_LN_S_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0])
467 m4_wrap_lifo_m4_wrap([$1[]])
469 m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:509
471 _m4_expansion_stack_entry_m4_defn([m4_location($1)])[: $1 is expanded from...]
473 m4_divert_pushm4_divert_stack_push([$0], [$1])m4_pushdef([_m4_divert_diversion], [$1])_m4_divert_raw(_m4_divert([$1]))
475 m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:862
477 _m4_shift2m4_if([$#], [2], [],
478 [, m4_shift(m4_shift($@))])
480 _m4_shift3m4_if([$#], [3], [],
481 [, m4_shift(m4_shift(m4_shift($@)))])
483 AT_COPYRIGHTAS_COPYRIGHT([$1])[]m4_divert_text([VERSION_NOTICES],
484 [m4_default([$2], [m4_newline])([$1])])
486 m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1716
488 m4_copy_unm4m4_copy([$1], m4_bpatsubst([$1], [^m4_\(.*\)], [[\1]]))
490 _m4_set_unionm4_ifdef([_m4_set([$1],$2)], [], [,[$2]])
492 m4_location(AT_ARG_OPTION_ARG)../../lib/autotest/general.m4:1716
494 m4_appendm4_define([$1], m4_ifdef([$1], [_m4_defn([$1])[$3]])[$2])
496 _AT_LINE_ESCAPED"AS_ESCAPE(m4_dquote(AT_LINE))"
498 _m4_append_uniqm4_ifdef([$1],
499 [m4_if(m4_index([$3]_m4_defn([$1])[$3], [$3$2$3]), [-1],
500 [m4_append([$1], [$2], [$3])$4], [$5])],
501 [m4_define([$1], [$2])$4])
503 m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1787
505 AT_CHECK_NOESCAPEm4_warn([obsolete], [consider using AT_CHECK_UNQUOTED instead of $0])_AT_CHECK(m4_expand([$1]), [$2], m4_expand([$3]),
506 m4_expand([$4]), [$5], [$6])
510 m4_set_map_sepm4_ifdef([_m4_set_cleanup($1)], [_m4_set_contents_1c],
511 [_m4_set_contents_1])([$1])_m4_set_contents_2($@)
519 m4_stack_foreach_sep_lifo_m4_stack_reverse([$1], [m4_tmp-$1], [$2[]_m4_defn([m4_tmp-$1])$3], [$4[]])_m4_stack_reverse([m4_tmp-$1], [$1])
521 m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:933
523 _m4_text_wrapm4_pushdef([m4_Indent], m4_qlen([$2]))m4_pushdef([m4_Cursor], m4_qlen([$3]))m4_pushdef([m4_Separator], [m4_define([m4_Separator], [ ])])[$3]m4_cond([m4_Cursor], m4_Indent, [],
524 [m4_eval(m4_Cursor > m4_Indent)], [1], [
525 [$2]m4_define([m4_Cursor], m4_Indent)],
526 [m4_format([%*s], m4_max([0],
527 m4_eval(m4_Indent - m4_Cursor)), [])m4_define([m4_Cursor], m4_Indent)])m4_map_args_w([$1], [$0_word(], [, [$2], [$4])])_m4_popdef([m4_Separator], [m4_Cursor], [m4_Indent])
529 _m4_divert(M4SH-INIT)6
533 AS_INIT# Wrap our cleanup prior to m4sugar's cleanup.
534 m4_wrap([_AS_CLEANUP])
536 m4_provide([AS_INIT])
538 # Forbidden tokens and exceptions.
539 m4_pattern_forbid([^_?AS_])
541 # Bangshe and minimal initialization.
542 m4_divert_text([BINSH], [@%:@! /bin/sh])
543 m4_divert_text([HEADER-COMMENT],
544 [@%:@ Generated from __file__ by m4_PACKAGE_STRING.])
545 m4_divert_text([M4SH-SANITIZE], [_AS_SHELL_SANITIZE])
546 m4_divert_text([M4SH-INIT-FN], [m4_text_box([M4sh Shell Functions.])])
550 m4_text_box([Main body of script.])
551 _AS_DETECT_REQUIRED([_AS_SHELL_FN_WORK])dnl
552 AS_REQUIRE([_AS_UNSET_PREPARE], [], [M4SH-INIT-FN])dnl
555 AS_LINENO_POP_m4_defun_pro([$0])eval $as_lineno_stack; test "x$as_lineno_stack" = x && AS_UNSET([as_lineno])[]_m4_defun_epi([$0])
557 m4_expansion_stackm4_stack_foreach_sep_lifo([_$0], [_$0_entry(], [)
558 ])m4_location[: the top level]
560 m4_beforem4_provide_if([$2],
561 [m4_warn([syntax], [$2 was called before $1])])
563 m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1291
565 m4_ifndefm4_ifdef([$1], [$3], [$2])
567 _m4_divert(HEADER-COMMENT)2
569 m4_cr_LETTERSABCDEFGHIJKLMNOPQRSTUVWXYZ
571 _m4_require_callm4_pushdef([_m4_divert_grow], m4_decr(_m4_divert_grow))m4_pushdef([_m4_diverting([$1])])m4_pushdef([_m4_diverting], [$1])m4_divert_push(_m4_divert_grow)m4_if([$2], [], [$1], [$2])
572 m4_provide_if([$1], [m4_set_remove([_m4_provide], [$1])],
573 [m4_warn([syntax], [$1 is m4_require'd but not m4_defun'd])])_m4_divert_raw($3)_m4_undivert(_m4_divert_grow)m4_divert_pop(_m4_divert_grow)_m4_popdef([_m4_divert_grow],
574 [_m4_diverting([$1])], [_m4_diverting])
576 AT_INITm4_pushdef([AT_INIT], [m4_fatal([$0: invoked multiple times])])
577 m4_pattern_forbid([^_?AT_])
578 m4_pattern_allow([^_ATEOF$])
579 m4_ifndef([AT_PACKAGE_BUGREPORT], [m4_fatal(
580 [$1: AT_PACKAGE_BUGREPORT is missing, consider writing package.m4])])
581 m4_define([AT_TESTSUITE_NAME],
582 m4_defn([AT_PACKAGE_STRING])[ test suite]m4_ifval([$1],
583 [m4_expand([: $1])]))
584 m4_define([AT_ordinal], 0)
585 m4_define([AT_banner_ordinal], 0)
586 m4_define([AT_groups_all], [])
587 m4_define([AT_help_all], [])
588 m4_map_args([_m4_popdef], _AT_DEFINE_INIT_LIST)
589 m4_wrap([_AT_FINISH])
590 AS_INIT[]m4_cleardivert([BODY])AS_ME_PREPARE[]m4_divert_push([DEFAULTS])AT_COPYRIGHT(m4_defn([_AT_COPYRIGHT_YEARS]), [
591 m4_copyright_condense])
593 [This test suite is free software; the Free Software Foundation gives
594 unlimited permission to copy, distribute and modify it.], [m4_echo])
597 SHELL=${CONFIG_SHELL-/bin/sh}
602 m4_divert_push([BANNERS])dnl
604 # Should we print banners? at_groups is space-separated for entire test,
605 # newline-separated if only a subset of the testsuite is run.
607 *' '*' '* | *"$as_nl"*"$as_nl"* )
608 at_print_banners=: ;;
609 * ) at_print_banners=false ;;
611 # Text for banner N, set to empty once printed.
612 m4_divert_pop([BANNERS])dnl back to DEFAULTS
613 m4_divert_push([PREPARE_TESTS])dnl
615 m4_text_box([Autotest shell functions.])
617 AS_FUNCTION_DESCRIBE([at_fn_banner], [NUMBER],
618 [Output banner NUMBER, provided the testsuite is running multiple groups
619 and this particular banner has not yet been printed.])
622 $at_print_banners || return 0
623 eval at_banner_text=\$at_banner_text_$[1]
624 test "x$at_banner_text" = x && return 0
625 eval at_banner_text_$[1]=
626 AS_ECHO(["$as_nl$at_banner_text$as_nl"])
629 AS_FUNCTION_DESCRIBE([at_fn_check_prepare_notrace], [REASON LINE],
630 [Perform AT_CHECK preparations for the command at LINE for an
631 untraceable command; REASON is the reason for disabling tracing.])
632 at_fn_check_prepare_notrace ()
634 $at_trace_echo "Not enabling shell tracing (command contains $[1])"
635 AS_ECHO(["$[2]"]) >"$at_check_line_file"
636 at_check_trace=: at_check_filter=:
637 : >"$at_stdout"; : >"$at_stderr"
640 AS_FUNCTION_DESCRIBE([at_fn_check_prepare_trace], [LINE],
641 [Perform AT_CHECK preparations for the command at LINE for a traceable
643 at_fn_check_prepare_trace ()
645 AS_ECHO(["$[1]"]) >"$at_check_line_file"
646 at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
647 : >"$at_stdout"; : >"$at_stderr"
650 AS_FUNCTION_DESCRIBE([at_fn_check_prepare_dynamic], [COMMAND LINE],
651 [Decide if COMMAND at LINE is traceable at runtime, and call the
652 appropriate preparation function.])
653 at_fn_check_prepare_dynamic ()
657 at_fn_check_prepare_notrace 'an embedded newline' "$[2]" ;;
659 at_fn_check_prepare_trace "$[2]" ;;
663 AS_FUNCTION_DESCRIBE([at_fn_filter_trace], [],
664 [Remove the lines in the file "$at_stderr" generated by "set -x" and print
666 at_fn_filter_trace ()
668 mv "$at_stderr" "$at_stder1"
669 grep '^ *+' "$at_stder1" >&2
670 grep -v '^ *+' "$at_stder1" >"$at_stderr"
673 AS_FUNCTION_DESCRIBE([at_fn_log_failure], [FILE-LIST],
674 [Copy the files in the list on stdout with a "> " prefix, and exit the shell
675 with a failure exit code.])
679 do AS_ECHO(["$file:"]); sed 's/^/> /' "$file"; done
680 echo 1 > "$at_status_file"
684 AS_FUNCTION_DESCRIBE([at_fn_check_skip], [EXIT-CODE LINE],
685 [Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit
686 the test group subshell with that same exit code. Use LINE in any report
687 about test failure.])
691 99) echo 99 > "$at_status_file"; at_failed=:
692 AS_ECHO(["$[2]: hard failure"]); exit 99;;
693 77) echo 77 > "$at_status_file"; exit 77;;
697 AS_FUNCTION_DESCRIBE([at_fn_check_status], [EXPECTED EXIT-CODE LINE],
698 [Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing.
699 Otherwise, if it is 77 or 99, exit the test group subshell with that same
700 exit code; if it is anything else print an error message referring to LINE,
702 at_fn_check_status ()
704 dnl This order ensures that we don't `skip' if we are precisely checking
705 dnl $? = 77 or $? = 99.
708 77) echo 77 > "$at_status_file"; exit 77;;
709 99) echo 99 > "$at_status_file"; at_failed=:
710 AS_ECHO(["$[3]: hard failure"]); exit 99;;
711 *) AS_ECHO(["$[3]: exit code was $[2], expected $[1]"])
716 AS_FUNCTION_DESCRIBE([at_fn_diff_devnull], [FILE],
717 [Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless
719 at_fn_diff_devnull ()
721 test -s "$[1]" || return 0
722 $at_diff "$at_devnull" "$[1]"
725 AS_FUNCTION_DESCRIBE([at_fn_test], [NUMBER],
726 [Parse out test NUMBER from the tail of this file.])
729 eval at_sed=\$at_sed$[1]
730 sed "$at_sed" "$at_myself" > "$at_test_source"
733 AS_FUNCTION_DESCRIBE([at_fn_create_debugging_script], [],
734 [Create the debugging script $at_group_dir/run which will reproduce the
735 current test group.])
736 at_fn_create_debugging_script ()
740 echo 'test "${ZSH_VERSION+set}" = set dnl
741 && alias -g '\''${1+"$[@]"}'\''='\''"$[@]"'\''' &&
742 AS_ECHO(["cd '$at_dir'"]) &&
743 AS_ECHO(["exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d ]dnl
744 [$at_debug_args $at_group \${1+\"\$[@]\"}"]) &&
746 } >"$at_group_dir/run" &&
747 chmod +x "$at_group_dir/run"
750 m4_text_box([End of autotest shell functions.])
751 m4_divert_pop([PREPARE_TESTS])dnl back to DEFAULTS
753 # Not all shells have the 'times' builtin; the subshell is needed to make
754 # sure we discard the 'times: not found' message from the shell.
756 (times) >/dev/null 2>&1 && at_times_p=:
758 # CLI Arguments to pass to the debugging scripts.
762 # Shall we be verbose? ':' means no, empty means yes.
765 # Running several jobs in parallel, 0 means as many as test groups.
769 at_check_filter_trace=:
771 # Shall we keep the debug scripts? Must be `:' when the suite is
772 # run by a debug script, so that the script doesn't remove itself.
774 # Display help message?
776 # Display the version message?
784 # Whether a write failure occurred
787 # The directory we run the suite in. Default to . if no -C option.
789 # An absolute reference to this testsuite script.
790 dnl m4-double quote, to preserve []
792 [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;;
793 * ) at_myself=$at_dir/$as_myself ;;
795 # Whether -C is in effect.
797 m4_divert_pop([DEFAULTS])dnl
798 m4_define([_AT_FINISH],
799 [m4_ifdef([AT_ingroup], [m4_fatal([missing AT_CLEANUP detected])])dnl
800 m4_divert_text([DEFAULTS],
802 # List of the tested programs.
803 at_tested='m4_ifdef([AT_tested],
804 [m4_translit(m4_dquote(m4_defn([AT_tested])), [ ], m4_newline)])'
805 # List of the all the test groups.
806 at_groups_all='AT_groups_all'
807 # As many question marks as there are digits in the last test group number.
808 # Used to normalize the test group numbers so that `ls' lists them in
810 at_format='m4_bpatsubst(m4_defn([AT_ordinal]), [.], [?])'
811 # Description of all the test groups.
812 at_help_all="AS_ESCAPE(m4_dquote(m4_defn([AT_help_all])))"
814 AS_FUNCTION_DESCRIBE([at_fn_validate_ranges], [NAME...],
815 [Validate and normalize the test group number contained in each
816 variable NAME. Leading zeroes are treated as decimal.])
817 at_fn_validate_ranges ()
821 eval at_value=\$$at_grp
822 if test $at_value -lt 1 || test $at_value -gt AT_ordinal; then
823 AS_ECHO(["invalid test group: $at_value"]) >&2
827 0*) # We want to treat leading 0 as decimal, like expr and test, but
828 # AS_VAR_ARITH treats it as octal if it uses $(( )).
829 # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the
830 # expr fork, but it is not worth the effort to determine if the
831 # shell supports XSI when the user can just avoid leading 0.
832 eval $at_grp='`expr $at_value + 0`' ;;
836 m4_divert_push([PARSE_ARGS])dnl
841 # If the previous option needs an argument, assign it.
842 if test -n "$at_prev"; then
843 at_option=$at_prev=$at_option
848 *=*) at_optarg=`expr "x$at_option" : 'x[[^=]]*=\(.*\)'` ;;
852 # Accept the important Cygnus configure options, so we can diagnose typos.
881 at_verbose=; at_quiet=:
887 at_check_filter_trace=at_fn_filter_trace
890 [[0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9]])
891 at_fn_validate_ranges at_option
892 AS_VAR_APPEND([at_groups], ["$at_option "])
896 [[0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-])
897 at_range_start=`echo $at_option |tr -d X-`
898 at_fn_validate_ranges at_range_start
899 at_range=`AS_ECHO([" $at_groups_all "]) | \
900 sed -e 's/^.* \('$at_range_start' \)/\1/'`
901 AS_VAR_APPEND([at_groups], ["$at_range "])
904 [-[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9]])
905 at_range_end=`echo $at_option |tr -d X-`
906 at_fn_validate_ranges at_range_end
907 at_range=`AS_ECHO([" $at_groups_all "]) | \
908 sed -e 's/\( '$at_range_end'\) .*$/\1/'`
909 AS_VAR_APPEND([at_groups], ["$at_range "])
912 [[0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9]] | \
913 [[0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9]] | \
914 [[0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9]] | \
915 [[0-9][0-9][0-9]-[0-9][0-9][0-9]] | \
916 [[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]] | \
917 [[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]] )
918 at_range_start=`expr $at_option : '\(.*\)-'`
919 at_range_end=`expr $at_option : '.*-\(.*\)'`
920 if test $at_range_start -gt $at_range_end; then
922 at_range_end=$at_range_start
923 at_range_start=$at_tmp
925 at_fn_validate_ranges at_range_start at_range_end
926 at_range=`AS_ECHO([" $at_groups_all "]) | \
927 sed -e 's/^.*\( '$at_range_start' \)/\1/' \
928 -e 's/\( '$at_range_end'\) .*$/\1/'`
929 AS_VAR_APPEND([at_groups], ["$at_range "])
932 # Directory selection.
941 # Parallel execution.
945 --jobs=* | -j[[0-9]]* )
946 if test -n "$at_optarg"; then
949 at_jobs=`expr X$at_option : 'X-j\(.*\)'`
951 case $at_jobs in *[[!0-9]]*)
952 at_optname=`echo " $at_option" | sed 's/^ //; s/[[0-9=]].*//'`
953 AS_ERROR([non-numeric argument to $at_optname: $at_jobs]) ;;
962 at_groups_selected=$at_help_all
974 at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'`
977 # It is on purpose that we match the test group titles too.
978 at_groups_selected=`AS_ECHO(["$at_groups_selected"]) |
979 grep -i $at_invert ["^[1-9][^;]*;.*[; ]$at_keyword[ ;]"]`
981 # Smash the newlines.
982 at_groups_selected=`AS_ECHO(["$at_groups_selected"]) | sed 's/;.*//' |
985 AS_VAR_APPEND([at_groups], ["$at_groups_selected "])
987 m4_divert_pop([PARSE_ARGS])dnl
988 dnl Process *=* last to allow for user specified --option=* type arguments.
989 m4_divert_push([PARSE_ARGS_END])dnl
992 at_envvar=`expr "x$at_option" : 'x\([[^=]]*\)='`
993 # Reject names that are not valid shell variable names.
995 '' | [[0-9]]* | *[[!_$as_cr_alnum]]* )
996 AS_ERROR([invalid variable name: `$at_envvar']) ;;
998 at_value=`AS_ECHO(["$at_optarg"]) | sed "s/'/'\\\\\\\\''/g"`
999 # Export now, but save eval for later and for debug scripts.
1001 AS_VAR_APPEND([at_debug_args], [" $at_envvar='$at_value'"])
1004 *) AS_ECHO(["$as_me: invalid option: $at_option"]) >&2
1005 AS_ECHO(["Try \`$[0] --help' for more information."]) >&2
1011 # Verify our last option didn't require an argument
1012 AS_IF([test -n "$at_prev"], [AS_ERROR([`$at_prev' requires an argument.])])
1014 # Selected test groups.
1015 if test -z "$at_groups"; then
1016 at_groups=$at_groups_all
1018 # Sort the tests, removing duplicates.
1019 at_groups=`AS_ECHO(["$at_groups"]) | tr ' ' "$as_nl" | sort -nu`
1021 m4_divert_pop([PARSE_ARGS_END])dnl
1022 m4_divert_push([HELP])dnl
1026 cat <<_ATEOF || at_write_fail=1
1027 Usage: $[0] [[OPTION]... [VARIABLE=VALUE]... [TESTS]]
1029 Run all the tests, or the selected TESTS, given by numeric ranges, and
1030 save a detailed log file. Upon failure, create debugging scripts.
1032 Do not change environment variables directly. Instead, set them via
1033 command line arguments. Set \`AUTOTEST_PATH' to select the executables
1034 to exercise. Each relative directory is expanded as build and source
1035 directories relative to the top level of this distribution.
1036 E.g., from within the build directory /tmp/foo-1.0, invoking this:
1038 $ $[0] AUTOTEST_PATH=bin
1040 is equivalent to the following, assuming the source directory is /src/foo-1.0:
1042 PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $[0]
1044 m4_divert_pop([HELP])dnl
1045 m4_divert_push([HELP_MODES])dnl
1046 cat <<_ATEOF || at_write_fail=1
1049 -h, --help print the help message, then exit
1050 -V, --version print version number, then exit
1051 -c, --clean remove all the files this test suite might create and exit
1052 -l, --list describes all the tests, or the selected TESTS
1054 m4_divert_pop([HELP_MODES])dnl
1055 m4_divert_push([HELP_TUNING])dnl
1056 cat <<_ATEOF || at_write_fail=1
1058 dnl extra quoting prevents emacs whitespace mode from putting tabs in output
1061 [ change to directory DIR before starting]
1063 [ Allow N jobs at once; infinite jobs with no arg (default 1)]
1064 -k, --keywords=KEYWORDS
1065 [ select the tests matching all the comma-separated KEYWORDS]
1066 [ multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD]
1067 -e, --errexit abort as soon as a test fails; implies --debug
1068 -v, --verbose force more detailed output
1069 [ default for debugging scripts]
1070 -d, --debug inhibit clean up and top-level logging
1071 [ default for debugging scripts]
1072 -x, --trace enable tests shell tracing
1074 m4_divert_pop([HELP_TUNING])dnl
1075 m4_divert_push([HELP_END])dnl
1076 cat <<_ATEOF || at_write_fail=1
1078 Report bugs to <AT_PACKAGE_BUGREPORT>.dnl
1079 m4_ifdef([AT_PACKAGE_NAME],
1080 [m4_ifset([AT_PACKAGE_URL], [
1081 m4_defn([AT_PACKAGE_NAME]) home page: <AT_PACKAGE_URL>.])dnl
1082 m4_if(m4_index(m4_defn([AT_PACKAGE_NAME]), [GNU ]), [0], [
1083 General help using GNU software: <http://www.gnu.org/gethelp/>.])])
1090 cat <<_ATEOF || at_write_fail=1
1091 AT_TESTSUITE_NAME test groups:
1093 NUM: FILE-NAME:LINE TEST-GROUP-NAME
1097 # Passing at_groups is tricky. We cannot use it to form a literal string
1098 # or regexp because of the limitation of AIX awk. And Solaris' awk
1099 # doesn't grok more than 99 fields in a record, so we have to use `split'.
1100 # at_groups needs to be space-separated for this script to work.
1103 at_groups=`AS_ECHO(["$at_groups"]) | tr "$as_nl" ' '` ;;
1105 AS_ECHO(["$at_groups$as_nl$at_help_all"]) |
1106 awk 'BEGIN { FS = ";" }
1108 for (n = split ($ 0, a, " "); n; n--)
1109 selected[[a[n]]] = 1
1113 if (selected[[$ 1]]) {
1114 printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3
1120 n = split ($ 4, a, " ")
1121 for (i = 1; i <= n; i++) {
1122 l = length (a[[i]]) + 1
1123 if (i > 1 && len + l > lmax) {
1125 line = indent " " a[[i]]
1128 line = line " " a[[i]]
1136 }' || at_write_fail=1
1139 m4_divert_pop([HELP_END])dnl
1140 m4_divert_push([VERSION])dnl
1141 if $at_version_p; then
1142 AS_ECHO(["$as_me (AT_PACKAGE_STRING)"]) &&
1143 cat <<\_ATEOF || at_write_fail=1
1144 m4_divert_pop([VERSION])dnl
1145 m4_divert_push([VERSION_END])dnl
1149 m4_divert_pop([VERSION_END])dnl
1150 m4_divert_push([TESTS_BEGIN])dnl
1152 # Take any -C into account.
1153 if $at_change_dir ; then
1154 if test x- = "x$at_dir" ; then
1157 test x != "x$at_dir" && cd "$at_dir" \
1158 || AS_ERROR([unable to change directory])
1162 # Load the config files for any default variable assignments.
1163 for at_file in atconfig atlocal
1165 test -r $at_file || continue
1166 . ./$at_file || AS_ERROR([invalid content: $at_file])
1169 # Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
1170 : ${at_top_build_prefix=$at_top_builddir}
1172 # Perform any assignments requested during argument parsing.
1173 eval "$at_debug_args"
1175 # atconfig delivers names relative to the directory the test suite is
1176 # in, but the groups themselves are run in testsuite-dir/group-dir.
1177 if test -n "$at_top_srcdir"; then
1179 for at_dir_var in srcdir top_srcdir top_build_prefix
1181 AS_VAR_COPY([at_val], [at_$at_dir_var])
1183 [[\\/$]]* | ?:[[\\/]]* ) at_prefix= ;;
1184 *) at_prefix=../../ ;;
1186 AS_VAR_SET([$at_dir_var], [$at_prefix$at_val])
1190 m4_text_box([Directory structure.])
1192 # This is the set of directories and files used by this script
1193 # (non-literals are capitalized):
1195 # TESTSUITE - the testsuite
1196 # TESTSUITE.log - summarizes the complete testsuite run
1197 # TESTSUITE.dir/ - created during a run, remains after -d or failed test
1198 # + at-groups/ - during a run: status of all groups in run
1199 # | + NNN/ - during a run: meta-data about test group NNN
1200 # | | + check-line - location (source file and line) of current AT_CHECK
1201 # | | + status - exit status of current AT_CHECK
1202 # | | + stdout - stdout of current AT_CHECK
1203 # | | + stder1 - stderr, including trace
1204 # | | + stderr - stderr, with trace filtered out
1205 # | | + test-source - portion of testsuite that defines group
1206 # | | + times - timestamps for computing duration
1207 # | | + pass - created if group passed
1208 # | | + xpass - created if group xpassed
1209 # | | + fail - created if group failed
1210 # | | + xfail - created if group xfailed
1211 # | | + skip - created if group skipped
1212 # + at-stop - during a run: end the run if this file exists
1213 # + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction
1214 # + 0..NNN/ - created for each group NNN, remains after -d or failed test
1215 # | + TESTSUITE.log - summarizes the group results
1216 # | + ... - files created during the group
1218 # The directory the whole suite works in.
1219 # Should be absolute to let the user `cd' at will.
1220 at_suite_dir=$at_dir/$as_me.dir
1221 # The file containing the suite.
1222 at_suite_log=$at_dir/$as_me.log
1223 # The directory containing helper files per test group.
1224 at_helper_dir=$at_suite_dir/at-groups
1225 # Stop file: if it exists, do not start new jobs.
1226 at_stop_file=$at_suite_dir/at-stop
1227 # The fifo used for the job dispatcher.
1228 at_job_fifo=$at_suite_dir/at-job-fifo
1231 test -d "$at_suite_dir" &&
1232 find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
1233 rm -f -r "$at_suite_dir" "$at_suite_log"
1237 # Don't take risks: use only absolute directories in PATH.
1239 # For stand-alone test suites (ie. atconfig was not found),
1240 # AUTOTEST_PATH is relative to `.'.
1242 # For embedded test suites, AUTOTEST_PATH is relative to the top level
1243 # of the package. Then expand it into build/src parts, since users
1244 # may create executables in both places.
1245 AUTOTEST_PATH=`AS_ECHO(["$AUTOTEST_PATH"]) | sed "s|:|$PATH_SEPARATOR|g"`
1247 _AS_PATH_WALK([$AUTOTEST_PATH $PATH],
1248 [test -n "$at_path" && AS_VAR_APPEND([at_path], [$PATH_SEPARATOR])
1250 [[\\/]]* | ?:[[\\/]]* )
1251 AS_VAR_APPEND([at_path], ["$as_dir"])
1254 if test -z "$at_top_build_prefix"; then
1255 # Stand-alone test suite.
1256 AS_VAR_APPEND([at_path], ["$as_dir"])
1258 # Embedded test suite.
1259 AS_VAR_APPEND([at_path], ["$at_top_build_prefix$as_dir$PATH_SEPARATOR"])
1260 AS_VAR_APPEND([at_path], ["$at_top_srcdir/$as_dir"])
1265 # Now build and simplify PATH.
1267 # There might be directories that don't exist, but don't redirect
1268 # builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
1270 _AS_PATH_WALK([$at_path],
1271 [test -d "$as_dir" || continue
1273 [[\\/]]* | ?:[[\\/]]* ) ;;
1274 * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;;
1276 case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in
1277 *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;;
1278 $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;;
1279 *) AS_VAR_APPEND([at_new_path], ["$PATH_SEPARATOR$as_dir"]) ;;
1284 # Setting up the FDs.
1285 m4_define([AS_MESSAGE_LOG_FD], [5])
1286 m4_define([AT_JOB_FIFO_FD], [6])
1287 [#] AS_MESSAGE_LOG_FD is the log file. Not to be overwritten if `-d'.
1288 if $at_debug_p; then
1289 at_suite_log=/dev/null
1293 exec AS_MESSAGE_LOG_FD>>"$at_suite_log"
1296 AS_BOX(m4_defn([AT_TESTSUITE_NAME])[.])
1298 AS_BOX(m4_defn([AT_TESTSUITE_NAME])[.])
1301 AS_ECHO(["$as_me: command line was:"])
1302 AS_ECHO([" \$ $[0] $at_cli_args"])
1305 # Try to find a few ChangeLogs in case it might help determining the
1306 # exact version. Use the relative dir: if the top dir is a symlink,
1307 # find will not follow it (and options to follow the links are not
1308 # portable), which would result in no output here. Prune directories
1309 # matching the package tarname, since they tend to be leftovers from
1310 # `make dist' or `make distcheck' and contain redundant or stale logs.
1311 if test -n "$at_top_srcdir"; then
1312 AS_BOX([ChangeLogs.])
1314 for at_file in `find "$at_top_srcdir" m4_ifdef([AT_PACKAGE_TARNAME],
1315 [-name "AT_PACKAGE_TARNAME-*" -prune -o ])-name ChangeLog -print`
1317 AS_ECHO(["$as_me: $at_file:"])
1318 sed 's/^/| /;10q' $at_file
1327 # Contents of the config files.
1328 for at_file in atconfig atlocal
1330 test -r $at_file || continue
1331 AS_ECHO(["$as_me: $at_file:"])
1332 sed 's/^/| /' $at_file
1335 } >&AS_MESSAGE_LOG_FD
1337 m4_divert_pop([TESTS_BEGIN])dnl
1338 m4_divert_push([PREPARE_TESTS])dnl
1340 AS_BOX([Tested programs.])
1342 } >&AS_MESSAGE_LOG_FD
1344 # Report what programs are being tested.
1345 for at_program in : $at_tested
1347 test "$at_program" = : && continue
1349 [[\\/]* | ?:[\\/]* ) $at_program_=$at_program ;;]
1351 _AS_PATH_WALK([$PATH], [test -f "$as_dir/$at_program" && break])
1352 at_program_=$as_dir/$at_program ;;
1354 if test -f "$at_program_"; then
1356 AS_ECHO(["$at_srcdir/AT_LINE: $at_program_ --version"])
1357 "$at_program_" --version </dev/null
1359 } >&AS_MESSAGE_LOG_FD 2>&1
1361 AS_ERROR([cannot find $at_program])
1366 AS_BOX([Running the tests.])
1367 } >&AS_MESSAGE_LOG_FD
1369 at_start_date=`date`
1370 at_start_time=`date +%s 2>/dev/null`
1371 AS_ECHO(["$as_me: starting at: $at_start_date"]) >&AS_MESSAGE_LOG_FD
1372 m4_divert_pop([PREPARE_TESTS])dnl
1373 m4_divert_push([TESTS])dnl
1375 # Create the master directory if it doesn't already exist.
1376 AS_MKDIR_P(["$at_suite_dir"]) ||
1377 AS_ERROR([cannot create `$at_suite_dir'])
1379 # Can we diff with `/dev/null'? DU 5.0 refuses.
1380 if diff /dev/null /dev/null >/dev/null 2>&1; then
1381 at_devnull=/dev/null
1383 at_devnull=$at_suite_dir/devnull
1387 # Use `diff -u' when possible.
1388 if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff"
1395 # Get the last needed group.
1396 for at_group in : $at_groups; do :; done
1398 # Extract the start and end lines of each test group at the tail
1406 test = substr ($ 0, 10)
1407 print "at_sed" test "=\"1," start "d;" (NR-1) "q\""
1408 if (test == "'"$at_group"'") exit
1409 }' "$at_myself" > "$at_suite_dir/at-source-lines" &&
1410 . "$at_suite_dir/at-source-lines" ||
1411 AS_ERROR([cannot create test line number cache])
1412 rm -f "$at_suite_dir/at-source-lines"
1414 # Set number of jobs for `-j'; avoid more jobs than test groups.
1415 set X $at_groups; shift; at_max_jobs=$[@%:@]
1416 if test $at_max_jobs -eq 0; then
1419 if test $at_jobs -ne 1 &&
1420 { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then
1421 at_jobs=$at_max_jobs
1424 # If parallel mode, don't output banners, don't split summary lines.
1425 if test $at_jobs -ne 1; then
1426 at_print_banners=false
1430 # Set up helper dirs.
1431 rm -rf "$at_helper_dir" &&
1432 mkdir "$at_helper_dir" &&
1433 cd "$at_helper_dir" &&
1434 { test -z "$at_groups" || mkdir $at_groups; } ||
1435 AS_ERROR([testsuite directory setup failed])
1437 # Functions for running a test group. We leave the actual
1438 # test group execution outside of a shell function in order
1439 # to avoid hitting zsh 4.x exit status bugs.
1441 AS_FUNCTION_DESCRIBE([at_fn_group_prepare], [],
1442 [Prepare running a test group.])
1443 at_fn_group_prepare ()
1445 # The directory for additional per-group helper files.
1446 at_job_dir=$at_helper_dir/$at_group
1447 # The file containing the location of the last AT_CHECK.
1448 at_check_line_file=$at_job_dir/check-line
1449 # The file containing the exit status of the last command.
1450 at_status_file=$at_job_dir/status
1451 # The files containing the output of the tested commands.
1452 at_stdout=$at_job_dir/stdout
1453 at_stder1=$at_job_dir/stder1
1454 at_stderr=$at_job_dir/stderr
1455 # The file containing the code for a test group.
1456 at_test_source=$at_job_dir/test-source
1457 # The file containing dates.
1458 at_times_file=$at_job_dir/times
1460 # Be sure to come back to the top test directory.
1463 # Clearly separate the test groups when verbose.
1464 $at_first || $at_verbose echo
1466 at_group_normalized=$at_group
1467 _AT_NORMALIZE_TEST_GROUP_NUMBER(at_group_normalized)
1469 # Create a fresh directory for the next test group, and enter.
1470 # If one already exists, the user may have invoked ./run from
1471 # within that directory; we remove the contents, but not the
1472 # directory itself, so that we aren't pulling the rug out from
1473 # under the shell's notion of the current directory.
1474 at_group_dir=$at_suite_dir/$at_group_normalized
1475 at_group_log=$at_group_dir/$as_me.log
1476 _AS_CLEAN_DIR("$at_group_dir") ||
1477 AS_WARN([test directory for $at_group_normalized could not be cleaned.])
1478 # Be tolerant if the above `rm' was not able to remove the directory.
1479 AS_MKDIR_P(["$at_group_dir"])
1481 echo 0 > "$at_status_file"
1483 # In verbose mode, append to the log file *and* show on
1484 # the standard output; in quiet mode only write to the log.
1485 if test -z "$at_verbose"; then
1486 at_tee_pipe='tee -a "$at_group_log"'
1488 at_tee_pipe='cat >> "$at_group_log"'
1492 AS_FUNCTION_DESCRIBE([at_fn_group_postprocess], [],
1493 [Perform cleanup after running a test group.])
1494 at_fn_group_postprocess ()
1496 # Be sure to come back to the suite directory, in particular
1497 # since below we might `rm' the group directory we are in currently.
1500 if test ! -f "$at_check_line_file"; then
1501 sed "s/^ */$as_me: WARNING: /" <<_ATEOF
1502 A failure happened in a test group before any test could be
1503 run. This means that test suite is improperly designed. Please
1504 report this failure to <AT_PACKAGE_BUGREPORT>.
1506 AS_ECHO(["$at_setup_line"]) >"$at_check_line_file"
1509 $at_verbose AS_ECHO_N(["$at_group. $at_setup_line: "])
1510 AS_ECHO_N(["$at_group. $at_setup_line: "]) >> "$at_group_log"
1511 case $at_xfail:$at_status in
1513 at_msg='FAILED ('`cat "$at_check_line_file"`')'
1515 at_errexit=$at_errexit_p
1518 at_msg="UNEXPECTED PASS"
1520 at_errexit=$at_errexit_p
1528 at_msg='skipped ('`cat "$at_check_line_file"`')'
1533 at_msg='expected failure ('`cat "$at_check_line_file"`')'
1538 at_msg='FAILED ('`cat "$at_check_line_file"`')'
1540 at_errexit=$at_errexit_p
1543 echo "$at_res" > "$at_job_dir/$at_res"
1544 # In parallel mode, output the summary line only afterwards.
1545 if test $at_jobs -ne 1 && test -n "$at_verbose"; then
1546 AS_ECHO(["$at_desc_line $at_msg"])
1548 # Make sure there is a separator even with long titles.
1549 AS_ECHO([" $at_msg"])
1551 at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
1554 # $at_times_file is only available if the group succeeded.
1555 # We're not including the group log, so the success message
1556 # is written in the global log separately. But we also
1557 # write to the group log in case they're using -d.
1558 if test -f "$at_times_file"; then
1559 at_log_msg="$at_log_msg ("`sed 1d "$at_times_file"`')'
1560 rm -f "$at_times_file"
1562 AS_ECHO(["$at_log_msg"]) >> "$at_group_log"
1563 AS_ECHO(["$at_log_msg"]) >&AS_MESSAGE_LOG_FD
1565 # Cleanup the group directory, unless the user wants the files.
1566 if $at_debug_p; then
1567 at_fn_create_debugging_script
1569 if test -d "$at_group_dir"; then
1570 find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
1571 rm -fr "$at_group_dir"
1573 rm -f "$at_test_source"
1577 # Upon failure, include the log into the testsuite's global
1578 # log. The failure message is written in the group log. It
1579 # is later included in the global log.
1580 AS_ECHO(["$at_log_msg"]) >> "$at_group_log"
1582 # Upon failure, keep the group directory for autopsy, and create
1583 # the debugging script. With -e, do not start any further tests.
1584 at_fn_create_debugging_script
1585 if $at_errexit; then
1586 echo stop > "$at_stop_file"
1593 m4_text_box([Driver loop.])
1595 dnl Catching signals correctly:
1597 dnl The first idea was: trap the signal, send it to all spawned jobs,
1598 dnl then reset the handler and reraise the signal for ourselves.
1599 dnl However, before exiting, ksh will then send the signal to all
1600 dnl process group members, potentially killing the outer testsuite
1601 dnl and/or the 'make' process driving us.
1602 dnl So now the strategy is: trap the signal, send it to all spawned jobs,
1603 dnl then exit the script with the right status.
1605 dnl In order to let the jobs know about the signal, we cannot just send it
1606 dnl to the current process group (kill $SIG 0), for the same reason as above.
1607 dnl Also, it does not reliably stop the suite to send the signal to the
1608 dnl spawned processes, because they might not transport it further
1609 dnl (maybe this can be fixed?).
1611 dnl So what we do is enable shell job control if available, which causes the
1612 dnl shell to start each parallel task as its own shell job, thus as a new
1613 dnl process group leader. We then send the signal to all new process groups.
1615 dnl Do we have job control?
1616 if (set -m && set +m && set +b) >/dev/null 2>&1; then
1618 at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=-
1620 at_job_control_on=: at_job_control_off=: at_job_group=
1623 for at_signal in 1 2 15; do
1624 dnl This signal handler is not suitable for PIPE: it causes writes.
1625 dnl The code that was interrupted may have the errexit, monitor, or xtrace
1626 dnl flags enabled, so sanitize.
1627 trap 'set +x; set +e
1629 at_signal='"$at_signal"'
1630 dnl Safety belt: even with runaway processes, prevent starting new jobs.
1631 echo stop > "$at_stop_file"
1632 dnl Do not enter this area multiple times, do not kill self prematurely.
1634 dnl Gather process group IDs of currently running jobs.
1636 for at_pgid in `jobs -p 2>/dev/null`; do
1637 at_pgids="$at_pgids $at_job_group$at_pgid"
1639 dnl Ignore `kill' errors, as some jobs may have finished in the meantime.
1640 test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null
1641 dnl wait until all jobs have exited.
1643 dnl Status output. Do this after waiting for the jobs, for ordered output.
1644 dnl Avoid scribbling onto the end of a possibly incomplete line.
1645 if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then
1648 at_signame=`kill -l $at_signal 2>&1 || echo $at_signal`
1650 test $# -gt 2 && at_signame=$at_signal
1651 AS_WARN([caught signal $at_signame, bailing out])
1652 dnl Do not reinstall the default handler here and reraise the signal to
1653 dnl let the default handler do its job, see the note about ksh above.
1654 dnl trap - $at_signal
1655 dnl kill -$at_signal $$
1656 dnl Instead, exit with appropriate status.
1657 AS_VAR_ARITH([exit_status], [128 + $at_signal])
1658 AS_EXIT([$exit_status])' $at_signal
1661 rm -f "$at_stop_file"
1664 if test $at_jobs -ne 1 &&
1665 rm -f "$at_job_fifo" &&
1666 test -n "$at_job_group" &&
1667 ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null
1669 # FIFO job dispatcher.
1671 dnl Since we use job control, we need to propagate TSTP.
1672 dnl This handler need not be used for serial execution.
1673 dnl Again, we should stop all processes in the job groups, otherwise
1674 dnl the stopping will not be effective while one test group is running.
1675 dnl Apparently ksh does not honor the TSTP trap.
1676 dnl As a safety measure, not use the same variable names as in the
1677 dnl termination handlers above, one might get called during execution
1680 for at_pid in `jobs -p`; do
1681 at_pids="$at_pids $at_job_group$at_pid"
1683 dnl Send it to all spawned jobs, ignoring those finished meanwhile.
1684 if test -n "$at_pids"; then
1685 dnl Unfortunately, ksh93 fork-bombs when we send TSTP, so send STOP
1686 dnl if this might be ksh (STOP prevents possible TSTP handlers inside
1687 dnl AT_CHECKs from running). Then stop ourselves.
1689 test "${TMOUT+set}" = set && at_sig=STOP
1690 kill -$at_sig $at_pids 2>/dev/null
1693 dnl We got a CONT, so let's go again. Passing this to all processes
1694 dnl in the groups is necessary (because we stopped them), but it may
1695 dnl cause changed test semantics; e.g., a sleep will be interrupted.
1696 test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP
1699 # Turn jobs into a list of numbers, starting from 1.
1700 at_joblist=`AS_ECHO([" $at_groups_all "]) | \
1701 sed 's/\( '$at_jobs'\) .*/\1/'`
1705 for at_group in $at_groups; do
1706 dnl Enable job control only for spawning the test group:
1707 dnl Let the jobs to run in separate process groups, but
1708 dnl avoid all the status output by the shell.
1709 $at_job_control_on 2>/dev/null
1711 # Start one test group.
1713 exec AT_JOB_FIFO_FD>"$at_job_fifo"
1714 dnl When a child receives PIPE, be sure to write back the token,
1715 dnl so the master does not hang waiting for it.
1716 dnl errexit and xtrace should not be set in this shell instance,
1717 dnl except as debug measures. However, shells such as dash may
1718 dnl optimize away the _AT_CHECK subshell, so normalize here.
1719 trap 'set +x; set +e
1720 dnl Ignore PIPE signals that stem from writing back the token.
1722 echo stop > "$at_stop_file"
1723 echo token >&AT_JOB_FIFO_FD
1724 dnl Do not reraise the default PIPE handler.
1725 dnl It wreaks havoc with ksh, see above.
1728 AS_EXIT([141])' PIPE
1730 if cd "$at_group_dir" &&
1731 at_fn_test $at_group &&
1732 . "$at_test_source" # AT_JOB_FIFO_FD>&-
1734 AS_WARN([unable to parse test group: $at_group])
1737 at_fn_group_postprocess
1738 echo token >&AT_JOB_FIFO_FD
1743 exec AT_JOB_FIFO_FD<"$at_job_fifo"
1745 shift # Consume one token.
1746 if test $[@%:@] -gt 0; then :; else
1747 read at_token <&AT_JOB_FIFO_FD || break
1750 test -f "$at_stop_file" && break
1752 # Read back the remaining ($at_jobs - 1) tokens.
1755 if test $[@%:@] -gt 0; then
1760 done <&AT_JOB_FIFO_FD
1762 exec AT_JOB_FIFO_FD<&-
1765 # Run serially, avoid forks and other potential surprises.
1766 for at_group in $at_groups; do
1768 if cd "$at_group_dir" &&
1769 at_fn_test $at_group &&
1770 . "$at_test_source"; then :; else
1771 AS_WARN([unable to parse test group: $at_group])
1774 at_fn_group_postprocess
1775 test -f "$at_stop_file" && break
1780 # Wrap up the test suite with summary statistics.
1783 # Use ?..???? when the list must remain sorted, the faster * otherwise.
1784 at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'`
1785 at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'`
1786 at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'`
1787 at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do
1788 echo $f; done | sed '/?/d; s,/xpass,,'`
1789 at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do
1790 echo $f; done | sed '/?/d; s,/fail,,'`
1792 set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list
1793 shift; at_group_count=$[@%:@]
1794 set X $at_xpass_list; shift; at_xpass_count=$[@%:@]; at_xpass_list=$[*]
1795 set X $at_xfail_list; shift; at_xfail_count=$[@%:@]
1796 set X $at_fail_list; shift; at_fail_count=$[@%:@]; at_fail_list=$[*]
1797 set X $at_skip_list; shift; at_skip_count=$[@%:@]
1799 AS_VAR_ARITH([at_run_count], [$at_group_count - $at_skip_count])
1800 AS_VAR_ARITH([at_unexpected_count], [$at_xpass_count + $at_fail_count])
1801 AS_VAR_ARITH([at_total_fail_count], [$at_xfail_count + $at_fail_count])
1803 # Back to the top directory.
1805 rm -rf "$at_helper_dir"
1807 # Compute the duration of the suite.
1809 at_stop_time=`date +%s 2>/dev/null`
1810 AS_ECHO(["$as_me: ending at: $at_stop_date"]) >&AS_MESSAGE_LOG_FD
1811 case $at_start_time,$at_stop_time in
1813 AS_VAR_ARITH([at_duration_s], [$at_stop_time - $at_start_time])
1814 AS_VAR_ARITH([at_duration_m], [$at_duration_s / 60])
1815 AS_VAR_ARITH([at_duration_h], [$at_duration_m / 60])
1816 AS_VAR_ARITH([at_duration_s], [$at_duration_s % 60])
1817 AS_VAR_ARITH([at_duration_m], [$at_duration_m % 60])
1818 at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
1819 AS_ECHO(["$as_me: test suite duration: $at_duration"]) >&AS_MESSAGE_LOG_FD
1824 AS_BOX([Test results.])
1828 AS_BOX([Test results.])
1830 } >&AS_MESSAGE_LOG_FD
1833 dnl FIXME: this code is as far from i18n-cleanness as man
1834 dnl could imagine...
1836 if test $at_run_count = 1; then
1840 at_result="$at_run_count tests"
1843 if $at_errexit_p && test $at_unexpected_count != 0; then
1844 if test $at_xpass_count = 1; then
1845 at_result="$at_result $at_were run, one passed"
1847 at_result="$at_result $at_were run, one failed"
1849 at_result="$at_result unexpectedly and inhibited subsequent tests."
1851 # Don't you just love exponential explosion of the number of cases?
1852 case $at_xpass_count:$at_fail_count:$at_xfail_count in
1854 0:0:0) at_result="$at_result $at_were successful." ;;
1855 0:0:*) at_result="$at_result behaved as expected." ;;
1857 # Some unexpected failures
1858 0:*:0) at_result="$at_result $at_were run,
1859 $at_fail_count failed unexpectedly." ;;
1861 # Some failures, both expected and unexpected
1862 0:*:1) at_result="$at_result $at_were run,
1863 $at_total_fail_count failed ($at_xfail_count expected failure)." ;;
1864 0:*:*) at_result="$at_result $at_were run,
1865 $at_total_fail_count failed ($at_xfail_count expected failures)." ;;
1867 # No unexpected failures, but some xpasses
1868 *:0:*) at_result="$at_result $at_were run,
1869 $at_xpass_count passed unexpectedly." ;;
1871 # No expected failures, but failures and xpasses
1872 *:1:0) at_result="$at_result $at_were run,
1873 $at_unexpected_count did not behave as expected dnl
1874 ($at_fail_count unexpected failure)." ;;
1875 *:*:0) at_result="$at_result $at_were run,
1876 $at_unexpected_count did not behave as expected dnl
1877 ($at_fail_count unexpected failures)." ;;
1880 *:*:1) at_result="$at_result $at_were run,
1881 $at_xpass_count passed unexpectedly,
1882 $at_total_fail_count failed ($at_xfail_count expected failure)." ;;
1883 *:*:*) at_result="$at_result $at_were run,
1884 $at_xpass_count passed unexpectedly,
1885 $at_total_fail_count failed ($at_xfail_count expected failures)." ;;
1888 if test $at_skip_count = 0 && test $at_run_count -gt 1; then
1889 at_result="All $at_result"
1893 # Now put skips in the mix.
1894 case $at_skip_count in
1896 1) at_result="$at_result
1897 1 test was skipped." ;;
1898 *) at_result="$at_result
1899 $at_skip_count tests were skipped." ;;
1902 if test $at_unexpected_count = 0; then
1904 echo "$at_result" >&AS_MESSAGE_LOG_FD
1906 echo "ERROR: $at_result" >&2
1907 echo "ERROR: $at_result" >&AS_MESSAGE_LOG_FD
1910 AS_BOX([Summary of the failures.])
1912 # Summary of failed and skipped tests.
1913 if test $at_fail_count != 0; then
1914 echo "Failed tests:"
1915 $SHELL "$at_myself" $at_fail_list --list
1918 if test $at_skip_count != 0; then
1919 echo "Skipped tests:"
1920 $SHELL "$at_myself" $at_skip_list --list
1923 if test $at_xpass_count != 0; then
1924 echo "Unexpected passes:"
1925 $SHELL "$at_myself" $at_xpass_list --list
1928 if test $at_fail_count != 0; then
1929 AS_BOX([Detailed failed tests.])
1931 for at_group in $at_fail_list
1933 at_group_normalized=$at_group
1934 _AT_NORMALIZE_TEST_GROUP_NUMBER(at_group_normalized)
1935 cat "$at_suite_dir/$at_group_normalized/$as_me.log"
1940 if test -n "$at_top_srcdir"; then
1941 AS_BOX([${at_top_build_prefix}config.log])
1942 sed 's/^/| /' ${at_top_build_prefix}config.log
1945 } >&AS_MESSAGE_LOG_FD
1947 AS_BOX([$as_me.log was created.])
1950 if $at_debug_p; then
1951 at_msg='per-test log files'
1953 at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
1955 AS_ECHO(["Please send $at_msg and all information you think might help:
1957 To: <AT_PACKAGE_BUGREPORT>
1958 Subject: @<:@AT_PACKAGE_STRING@:>@ $as_me: dnl
1959 $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}dnl
1960 $at_xpass_list${at_xpass_list:+ passed unexpectedly}
1962 You may investigate any problem if you feel able to do so, in which
1963 case the test suite provides a good starting point. Its output may
1964 be found below \`${at_testdir+${at_testdir}/}$as_me.dir'.
1971 m4_text_box([Actual tests.])
1972 m4_divert_pop([TESTS])dnl
1973 dnl End of AT_INIT: divert to KILL, only test groups are to be
1974 dnl output, the rest is ignored. Current diversion is BODY, inherited
1979 m4_PACKAGE_URLhttp://www.gnu.org/software/autoconf/
1981 m4_cr_alnumabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
1983 _m4_splitm4_changequote([-=<{(],[)}>=-])[m4_bpatsubst(-=<{(-=<{($1)}>=-)}>=-, -=<{($2)}>=-,
1984 -=<{(]$3[)}>=-)]m4_changequote([, ])
1986 _m4_divert(HELP_END)304
1988 m4_joinm4_if([$#], [1], [],
1990 [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift2($@))])
1992 _AS_ESCAPEm4_if(m4_index(m4_translit([[$1]], [$3], [$2$2$2$2]), [$2]), [-1],
1993 [$0_], [m4_bpatsubst])([$1], [[$2$3]], [\\\&])
1997 _m4_undefineundefine
1999 _AT_DECIDE_TRACEABLEm4_pushdef([at_reason],
2000 m4_cond([m4_eval(m4_index([$1], [`]) >= 0)], [1],
2001 [[a `...` command substitution]],
2002 [m4_eval(m4_index([$1], [$(]) >= 0)], [1],
2003 [[a $(...) command substitution]],
2004 [m4_eval(m4_index([$1], [${]) >= 0)], [1],
2005 [[a ${...} parameter expansion]],
2006 [m4_eval(m4_index([$1], m4_newline) >= 0)], [1],
2007 [[an embedded newline]],
2008 []))m4_if(m4_index(_m4_defn([at_reason]), [a]), [0],[at_fn_check_prepare_notrace '_m4_defn([at_reason])'],
2009 m4_index([$1], [$]), [-1],[at_fn_check_prepare_trace],[at_fn_check_prepare_dynamic "AS_ESCAPE([[$1]], [`\"])"])[]_m4_popdef([at_reason])
2011 m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:412
2013 AT_DIFF_STDERR(stderr)echo stderr:; tee stderr <"$at_stderr"
2015 m4_undivertm4_if([$#], [0], [m4_fatal([$0: missing argument])],
2016 [$#], [1], [_m4_undivert(_m4_divert([$1]))],
2017 [m4_map_args([$0], $@)])
2019 m4_stack_foreach_lifo_m4_stack_reverse([$1], [m4_tmp-$1], [$2(_m4_defn([m4_tmp-$1]))])_m4_stack_reverse([m4_tmp-$1], [$1])
2021 m4_mapallm4_if([$2], [], [],
2022 [_m4_foreach([m4_apply([$1],], [)], [], $2)])
2024 m4_cr_not_LETTERS
\x01\x02\x03\x04\x05\x06\a\b
2025 \v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\e\x1c\x1d\x1e\x1f !"#$%&'()*+,./0123456789:;<=>?@[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
\x7f€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-
2027 AT_DIFF_STDOUT()at_fn_diff_devnull "$at_stdout" || at_failed=:
2029 AS_IF_m4_defun_pro([$0])if $1; then :
2031 m4_map_args_pair([_$0], [_$0_ELSE], m4_shift2($@))fi[][]_m4_defun_epi([$0])
2035 m4_copy_forcem4_ifdef([$2], [_m4_undefine([$2])])m4_copy($@)
2037 m4_combinem4_if([$2], [], [], m4_eval([$# > 3]), [1],
2038 [m4_map_args_sep([m4_map_args_sep(m4_dquote(], [)[[$3]], [], [[$1]],]]m4_dquote(m4_dquote(m4_shift3($@)))[[)], [[$1]], $2)])
2040 _AT_DEFINE_INIT_LIST[AT_SETUP],[AT_CLEANUP],[AT_BANNER]
2042 AS_BOXAS_LITERAL_IF([$1],
2043 [_AS_BOX_LITERAL($@)],
2044 [_AS_BOX_INDIR($@)])
2046 _m4_divert(PARSE_ARGS)201
2048 _AS_ECHO_LOG_AS_ECHO([$as_me:${as_lineno-$LINENO}: $1], AS_MESSAGE_LOG_FD)
2050 _AS_ECHO_LOG_m4_defun_pro([$0])AS_REQUIRE([_AS_LINENO_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0])
2052 m4_ifsetm4_ifdef([$1],
2053 [m4_ifval(_m4_defn([$1]), [$2], [$3])],
2056 m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:346
2058 _m4_divert(HELP_TUNING)302
2060 _m4_divert(HEADER-REVISION)1
2062 _AS_BOX_LITERALcat <<\_ASBOX
2066 _AS_BOX_INDIRsed 'h;s/./m4_default([$2], [-])/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX
2067 @%:@@%:@ $1 @%:@@%:@
2070 m4_ifnblankm4_if(m4_translit([[$1]], [ ][ ][
2073 _AT_ARG_OPTION_m4_defun_pro([$0])m4_divert_once([HELP_OTHER],
2074 [cat <<_ATEOF || at_write_fail=1
2078 ])dnl m4_divert_once HELP_OTHER
2079 m4_divert_text([HELP_OTHER],
2080 [cat <<_ATEOF || at_write_fail=1
2083 dnl Turn our options into our desired strings
2084 m4_ifdef([AT_first_option],[m4_undefine([AT_first_option])])dnl
2085 m4_ifdef([AT_case],[m4_undefine([AT_case])])dnl
2086 m4_ifdef([AT_case_no],[m4_undefine([AT_case_no])])dnl
2087 m4_ifdef([AT_case_arg],[m4_undefine([AT_case_arg])])dnl
2088 m4_foreach([AT_option], m4_split(m4_normalize([$1]),[[ \|]+]),
2089 [m4_define_default([AT_first_option],AT_option)dnl
2090 m4_append([AT_case],m4_if(m4_len(AT_option),1,[],[-])[-]AT_option, [ | ])dnl
2091 m4_append([AT_case_no],[--no]AT_option, [ | ])dnl
2092 m4_append([AT_case_arg],
2093 m4_if(m4_len(AT_option),1,[],[-])[-]AT_option[=*], [ | ])dnl
2094 ])dnl m4_foreach AT_option
2095 dnl keep track so we or the user may process ACTION-IF-NOT-GIVEN
2096 m4_divert_once([PARSE_ARGS_BEGIN],
2099 ## Set up package specific options.
2102 m4_divert_text([PARSE_ARGS_BEGIN],
2103 [dnl Provide a default value for options without arguments.
2104 m4_ifvaln([$3],,[at_arg_[]m4_bpatsubst([AT_first_option], -, _)=false])dnl
2105 at_arg_given_[]m4_bpatsubst([AT_first_option], -, _)=false
2106 ])dnl m4_divert_text DEFAULTS
2107 m4_divert_text([PARSE_ARGS],
2108 [dnl Parse the options and args when necessary.
2111 at_prev=--m4_bpatsubst([AT_first_option], -, _)
2114 at_arg_[]m4_bpatsubst([AT_first_option], -, _)=$at_optarg
2115 at_arg_given_[]m4_bpatsubst([AT_first_option], -, _)=:
2120 at_arg_[]m4_bpatsubst([AT_first_option], -, _)=:
2121 at_arg_given_[]m4_bpatsubst([AT_first_option], -, _)=:
2122 m4_ifval([$4],[$4])dnl
2126 at_arg_[]m4_bpatsubst([AT_first_option], -, _)=false
2127 at_arg_given_[]m4_bpatsubst([AT_first_option], -, _)=:
2128 m4_ifval([$4],[$4])dnl
2129 ;;])dnl m4_ifvaln $3
2130 ])dnl m4_divert_text PARSE_ARGS
2132 [m4_divert_once([PARSE_ARGS_END],
2135 ## Process package specific options when _not_ supplied.
2136 ##])dnl m4_divert_once PARSE_ARGS_END
2137 m4_divert_text([PARSE_ARGS_END],
2139 AS_IF([$at_arg_given_[]m4_bpatsubst([AT_first_option], -, _)],,[$5])dnl
2140 ])dnl m4_divert_text PARSE_ARGS_END
2142 []_m4_defun_epi([$0])
2144 AS_UNSET_m4_defun_pro([$0]){ AS_LITERAL_IF([$1], [], [eval ])$1=; unset $1;}[]_m4_defun_epi([$0])
2146 _m4_divert(HELP_OTHER)303
2148 AS_VERSION_COMPAREas_arg_v1=$1
2150 awk "$as_awk_strverscmp" v1="$as_arg_v1" v2="$as_arg_v2" /dev/null
2156 AS_VERSION_COMPARE_m4_defun_pro([$0])AS_REQUIRE([_$0_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0])
2160 _m4_divert(HEADER-COPYRIGHT)3
2162 _AS_BASENAME_SED_m4_defun_pro([$0])AS_ECHO([X/[]$1]) |
2163 sed ['/^.*\/\([^/][^/]*\)\/*$/{
2175 s/.*/./; q'][]_m4_defun_epi([$0])
2177 m4_undefinem4_if([$#], [0], [[$0]],
2178 [$#], [1], [m4_ifdef([$1], [_m4_undefine([$1])],
2179 [m4_fatal([$0: undefined macro: $1])])],
2180 [m4_map_args([$0], $@)])
2182 m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1175
2184 m4_PACKAGE_BUGREPORTbug-autoconf@gnu.org
2186 _AS_VAR_ARITH_PREPARE_m4_defun_pro([$0])AS_FUNCTION_DESCRIBE([as_fn_arith], [ARG...],
2187 [Perform arithmetic evaluation on the ARGs, and store the result in
2188 the global $as_val. Take advantage of shells that can avoid forks.
2189 The arguments must be portable across $(()) and expr.])
2190 AS_IF([_AS_RUN(["AS_ESCAPE(m4_quote(_AS_VAR_ARITH_WORKS))"])],
2191 [eval 'as_fn_arith ()
2197 as_val=`expr "$[]@" || test $? -eq 1`
2199 []_m4_defun_epi([$0])
2201 m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:879
2203 AS_ESCAPE_$0([$1], m4_if([$2], [], [[`], [\"$]], [m4_substr([$2], [0], [1]), [$2]]))
2205 m4_stack_foreach_sep_m4_stack_reverse([$1], [m4_tmp-$1])_m4_stack_reverse([m4_tmp-$1], [$1], [$2[]_m4_defn([m4_tmp-$1])$3], [$4[]])
2207 _m4_shiftnm4_if([$1], 1, [m4_shift(],
2208 [$0(m4_decr([$1])]), m4_shift(m4_shift($@)))
2210 AS_VAR_TEST_SETAS_LITERAL_IF([$1],
2211 [test "${$1+set}" = set],
2212 [{ as_var=$1; eval "test \"\${$as_var+set}\" = set"; }])
2214 m4_dumpdefsm4_if([$#], [0], [m4_fatal([$0: missing argument])],
2215 [$#], [1], [m4_stack_foreach_lifo([$1], [m4_dumpdef([$1])m4_ignore])],
2216 [m4_map_args([$0], $@)])
2218 _m4_defun_prom4_ifdef([_m4_expansion_stack], [], [_m4_defun_pro_outer([$1])])m4_expansion_stack_push([$1])m4_pushdef([_m4_expanding($1)])
2220 AS_LINENO_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_$0])[]_m4_defun_epi([$0])
2224 AS_ECHO_m4_defun_pro([$0])AS_REQUIRE([_$0_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0])
2231 AT_ARG_OPTION_ARG_m4_defun_pro([$0])_AT_ARG_OPTION([$1],[$2],1,[$3],[$4])[]_m4_defun_epi([$0])
2233 AT_ARG_OPTION_m4_defun_pro([$0])_AT_ARG_OPTION([$1],[$2],,[$3],[$4])[]_m4_defun_epi([$0])
2235 _AS_SHELL_FN_WORKas_fn_return () { (exit [$]1); }
2236 as_fn_success () { as_fn_return 0; }
2237 as_fn_failure () { as_fn_return 1; }
2238 as_fn_ret_success () { return 0; }
2239 as_fn_ret_failure () { return 1; }
2242 as_fn_success || { exitcode=1; echo as_fn_success failed.; }
2243 as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
2244 as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
2245 as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
2246 AS_IF([( set x; as_fn_ret_success y && test x = "[$]1" )], [],
2247 [exitcode=1; echo positional parameters were not saved.])
2248 test x$exitcode = x0[]
2250 AT_DIFF_STDOUT(ignore-nolog)
2252 AT_TESTEDm4_append_uniq_w([AT_tested], [$1])
2254 _m4_set_differencem4_set_contains([$1], [$2], [], [,[$2]])
2256 _m4_divertm4_ifdef([_m4_divert($1)],
2257 [m4_indir([_m4_divert($1)])],
2260 _AS_QUOTEm4_cond([m4_index([$1], [\])], [-1], [_AS_QUOTE_MODERN],
2261 [m4_eval(m4_index(m4_translit([[$1]], [$], [\]), [\\]) >= 0)],
2262 [1], [_AS_QUOTE_MODERN],
2263 [m4_eval(m4_index(m4_translit([[$1]], ["], [`]), [\`]) >= 0)],dnl"
2264 [1], [_AS_QUOTE_OLD],
2265 [_AS_QUOTE_MODERN])([$1])
2267 _AS_DIRNAME_EXPR$as_expr X[]$1 : 'X\(.*[[^/]]\)//*[[^/][^/]]*/*$' \| \
2268 X[]$1 : 'X\(//\)[[^/]]' \| \
2269 X[]$1 : 'X\(//\)$' \| \
2270 X[]$1 : 'X\(/\)' \| .
2272 _AS_DIRNAME_EXPR_m4_defun_pro([$0])AS_REQUIRE([_AS_EXPR_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0])
2274 m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:793
2276 m4_map_args_pairm4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])],
2277 [$#], [1], [m4_fatal([$0: too few arguments: $#: $1])],
2279 [$#], [3], [m4_default([$2], [$1])([$3])[]],
2280 [$#], [4], [$1([$3], [$4])[]],
2281 [$1([$3], [$4])[]$0([$1], [$2], m4_shift(m4_shift3($@)))])
2283 _m4_set_dump_checkm4_ifdef([_m4_set([$1])],
2284 [m4_set_contains([$1], _m4_defn([_m4_set([$1])]),
2285 [[$2]_m4_defn([_m4_set([$1])])])_m4_popdef(
2286 [_m4_set([$1],]_m4_defn([_m4_set([$1])])[)],
2287 [_m4_set([$1])])$0([$1], [$2$3])],
2288 [_m4_popdef([_m4_set_cleanup($1)])])
2292 m4_rename_forcem4_ifdef([$2], [_m4_undefine([$2])])m4_rename($@)
2294 m4_cleardivertm4_if([$#], [0], [m4_fatal([$0: missing argument])],
2295 [_m4_divert_raw([-1])m4_undivert($@)_m4_divert_raw(
2296 _m4_divert(_m4_defn([_m4_divert_diversion])))])
2298 _m4_defun_oncem4_pushdef([$1])$3[$2[]m4_provide([$1])]$4
2302 m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:283
2304 m4_cr_symbols1abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_
2306 m4_cr_symbols2abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789
2308 m4_set_containsm4_ifdef([_m4_set_cleanup($1)],
2309 [m4_if(m4_ifdef([_m4_set([$1],$2)],
2310 [m4_indir([_m4_set([$1],$2)])], [0]), [1], [$3], [$4])],
2311 [m4_ifdef([_m4_set([$1],$2)], [$3], [$4])])
2313 m4_expandm4_pushdef([m4_divert], _m4_defn([_m4_divert_unsafe]))m4_pushdef([m4_divert_push], _m4_defn([_m4_divert_unsafe]))m4_chomp(_$0([$1
2314 ]))_m4_popdef([m4_divert], [m4_divert_push])
2316 _AS_DETECT_BETTER_SHELL_m4_defun_pro([$0])m4_set_map([_AS_DETECT_SUGGESTED_BODY], [_AS_DETECT_SUGGESTED_PRUNE])m4_pushdef([AS_EXIT], [exit m4_default(]m4_dquote([$][1])[, 1)])if test "x$CONFIG_SHELL" = x; then
2317 as_bourne_compatible="AS_ESCAPE(_m4_expand([_AS_BOURNE_COMPATIBLE]))"
2318 _AS_DETECT_EXPAND([as_required], [_AS_DETECT_REQUIRED_BODY])
2319 _AS_DETECT_EXPAND([as_suggested], [_AS_DETECT_SUGGESTED_BODY])
2320 AS_IF([_AS_RUN(["$as_required"])],
2321 [as_have_required=yes],
2322 [as_have_required=no])
2323 AS_IF([test x$as_have_required = xyes && _AS_RUN(["$as_suggested"])],
2325 [_AS_PATH_WALK([/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH],
2326 [case $as_dir in @%:@(
2328 for as_base in sh bash ksh sh5; do
2329 # Try only shells that exist, to save several forks.
2330 as_shell=$as_dir/$as_base
2331 AS_IF([{ test -f "$as_shell" || test -f "$as_shell.exe"; } &&
2332 _AS_RUN(["$as_required"], ["$as_shell"])],
2333 [CONFIG_SHELL=$as_shell as_have_required=yes
2334 m4_set_empty([_AS_DETECT_SUGGESTED_BODY], [break 2],
2335 [AS_IF([_AS_RUN(["$as_suggested"], ["$as_shell"])],
2339 [AS_IF([{ test -f "$SHELL" || test -f "$SHELL.exe"; } &&
2340 _AS_RUN(["$as_required"], ["$SHELL"])],
2341 [CONFIG_SHELL=$SHELL as_have_required=yes])])
2343 AS_IF([test "x$CONFIG_SHELL" != x],
2344 [# We cannot yet assume a decent shell, so we have to provide a
2345 # neutralization value for shells without unset; and this also
2346 # works around shells that cannot unset nonexistent variables.
2349 (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
2351 exec "$CONFIG_SHELL" "$as_myself" ${1+"$[@]"}])
2353 dnl Unfortunately, $as_me isn't available here.
2354 AS_IF([test x$as_have_required = xno],
2355 [AS_ECHO(["$[]0: This script requires a shell more modern than all"])
2356 AS_ECHO(["$[]0: the shells that I found on your system."])
2357 if test x${ZSH_VERSION+set} = xset ; then
2358 AS_ECHO(["$[]0: In particular, zsh $ZSH_VERSION has bugs and should"])
2359 AS_ECHO(["$[]0: be upgraded to zsh 4.3.4 or later."])
2361 AS_ECHO("m4_text_wrap([Please tell ]_m4_defn([m4_PACKAGE_BUGREPORT])
2362 m4_ifset([AC_PACKAGE_BUGREPORT], [m4_if(_m4_defn([m4_PACKAGE_BUGREPORT]),
2363 _m4_defn([AC_PACKAGE_BUGREPORT]), [], [and _m4_defn([AC_PACKAGE_BUGREPORT])])])
2364 [about your system, including any error possibly output before this message.
2365 Then install a modern shell, or manually run the script under such a
2366 shell if you do have one.], [$[]0: ], [], [62])")
2370 SHELL=${CONFIG_SHELL-/bin/sh}
2372 # Unset more variables known to interfere with behavior of common tools.
2373 CLICOLOR_FORCE= GREP_OPTIONS=
2374 unset CLICOLOR_FORCE GREP_OPTIONS
2375 _m4_popdef([AS_EXIT])[]_m4_defun_epi([$0])
2377 _m4_bpatsubstsm4_if([$#], 2, [$1],
2378 [$0(m4_builtin([patsubst], [[$1]], [$2], [$3]),
2381 _AT_DEFINE_SETUPm4_define([$1], [m4_ifndef([AT_ingroup],
2382 [m4_fatal([$1: missing AT_SETUP detected])])$2])
2384 m4_set_contentsm4_set_map_sep([$1], [], [], [[$2]])
2386 _AS_CLEANUPm4_divert_text([M4SH-SANITIZE], [_AS_DETECT_BETTER_SHELL])
2388 AS_VAR_IFAS_LITERAL_IF([$1],
2389 [AS_IF([test "x$$1" = x""$2]],
2390 [AS_VAR_COPY([as_val], [$1])
2391 AS_IF([test "x$as_val" = x""$2]]), [$3], [$4])
2393 _m4_divert(PARSE_ARGS_BEGIN)200
2395 _AS_LN_S_PREPARE_m4_defun_pro([$0])rm -f conf$$ conf$$.exe conf$$.file
2396 if test -d conf$$.dir; then
2397 rm -f conf$$.dir/conf$$.file
2400 mkdir conf$$.dir 2>/dev/null
2402 if (echo >conf$$.file) 2>/dev/null; then
2403 if ln -s conf$$.file conf$$ 2>/dev/null; then
2405 # ... but there are two gotchas:
2406 # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
2407 # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
2408 # In both cases, we have to default to `cp -p'.
2409 ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
2411 elif ln conf$$.file conf$$ 2>/dev/null; then
2419 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
2420 rmdir conf$$.dir 2>/dev/null
2421 []_m4_defun_epi([$0])
2423 _AS_ECHO_NAS_ECHO_N(["_AS_QUOTE([$1])"]) >&m4_default([$2], [AS_MESSAGE_FD])
2425 m4_rename_m4m4_rename([$1], [m4_$1])
2427 m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:598
2429 m4_changequotechangequote
2431 _m4_list_cmpm4_if([$1], [], [0m4_ignore], [$2], [0], [m4_unquote], [$2m4_ignore])
2433 _m4_mapall_sepm4_apply([$1], [$3])_m4_foreach([m4_apply([$2[]$1],], [)], m4_shift2($@))
2435 m4_divertm4_popdef([_m4_divert_stack])m4_define([_m4_divert_diversion], [$1])m4_divert_stack_push([$0], [$1])_m4_divert_raw(_m4_divert([$1]))
2437 m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1848
2439 m4_defun_oncem4_define([m4_location($1)], m4_location)m4_define([$1], [_m4_defun_once([$1], [$2], m4_if(_m4_divert_dump, [],
2440 [[_m4_defun_pro([$1])m4_unquote(], [)_m4_defun_epi([$1])]],
2441 m4_ifdef([_m4_diverting([$1])], [-]), [-], [[m4_unquote(], [)]],
2442 [[_m4_require_call([$1],], [, _m4_divert_dump)]]))])
2444 m4_requirem4_ifdef([_m4_expanding($1)],
2445 [m4_fatal([$0: circular dependency of $1])])m4_if(_m4_divert_dump, [],
2446 [m4_fatal([$0($1): cannot be used outside of an ]dnl
2447 m4_if([$0], [m4_require], [[m4_defun]], [[AC_DEFUN]])['d macro])])m4_provide_if([$1], [m4_set_contains([_m4_provide], [$1],
2448 [_m4_require_check([$1], _m4_defn([m4_provide($1)]), [$0])], [m4_ignore])],
2449 [_m4_require_call])([$1], [$2], _m4_divert_dump)
2451 AS_TEST_X$as_test_x $1[]
2453 AS_TEST_X_m4_defun_pro([$0])AS_REQUIRE([_AS_TEST_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0])
2455 _m4_divert(HELP_MODES)301
2457 AS_CASE_m4_defun_pro([$0])case $1 in[]m4_map_args_pair([_$0], [_$0_DEFAULT],
2458 m4_shift($@m4_if(m4_eval([$# & 1]), [1], [,])))
2459 esac[]_m4_defun_epi([$0])
2461 m4_location(AT_ARG_OPTION)../../lib/autotest/general.m4:1696
2465 m4_fatalm4_errprintn(m4_location[: error: $1]
2466 m4_expansion_stack)m4_exit(m4_if([$2],, 1, [$2]))
2468 m4_bpatsubstsm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])],
2469 [$#], 1, [m4_fatal([$0: too few arguments: $#: $1])],
2470 [$#], 2, [m4_unquote(m4_builtin([patsubst], [[$1]], [$2]))],
2471 [$#], 3, [m4_unquote(m4_builtin([patsubst], [[$1]], [$2], [$3]))],
2472 [_$0($@m4_if(m4_eval($# & 1), 0, [,]))])
2476 m4_cr_LettersabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
2478 _m4_divert(VERSION_END)352
2480 m4_file_appendm4_syscmd([cat >>$1 <<_m4eof
2484 m4_if(m4_sysval, [0], [],
2485 [m4_fatal([$0: cannot write: $1])])
2487 _AS_TR_SH_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_CR_PREPARE])# Sed expression to map a string onto a valid variable name.
2488 as_tr_sh="eval sed 'y%*+%pp%;s%[[^_$as_cr_alnum]]%_%g'"
2489 []_m4_defun_epi([$0])
2491 m4_map_args_sepm4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])],
2495 [$#], [4], [$1[$4]$2[]],
2496 [$1[$4]$2[]_m4_foreach([$3[]$1], [$2], m4_shift3($@))])
2498 m4_bpatsubstpatsubst
2502 _AS_VAR_ARITH_WORKStest $(( 1 + 1 )) = 2
2504 m4_set_mapm4_set_map_sep([$1], [$2(], [)])
2506 m4_stripm4_bpatsubsts([$1 ],
2508 [^. ?\(.*\) .$], [[[\1]]])
2510 _AS_BASENAME_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_EXPR_PREPARE])if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
2511 as_basename=basename
2515 []_m4_defun_epi([$0])
2517 m4_list_cmp_$0_raw(m4_dquote($1), m4_dquote($2))
2519 m4_provide_ifm4_ifdef([m4_provide($1)],
2522 _m4_defun_epi_outer_m4_popdef([_m4_divert_dump], [_m4_diverting([$1])], [_m4_diverting])m4_divert_pop([GROW])m4_undivert([GROW])
2524 m4_make_listm4_join([,
2525 ], m4_dquote_elt($@))
2527 m4_cr_not_Letters
\x01\x02\x03\x04\x05\x06\a\b
2528 \v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\e\x1c\x1d\x1e\x1f !"#$%&'()*+,./0123456789:;<=>?@[\]^_`{|}~
\x7f€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-
2530 _m4_require_checkm4_if(_m4_defn([_m4_diverting]), [$2], [m4_ignore],
2531 m4_ifdef([_m4_diverting([$2])], [-]), [-], [m4_warn([syntax],
2532 [$3: `$1' was expanded before it was required])_m4_require_call],
2535 m4_mapall_sepm4_if([$3], [], [], [_$0([$1], [$2], $3)])
2537 AS_ECHO_N$as_echo_n $1
2539 AS_ECHO_N_m4_defun_pro([$0])AS_REQUIRE([_AS_ECHO_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0])
2541 __program____program__
2543 _m4_define_cr_notm4_define([m4_cr_not_$1],
2544 m4_translit(m4_dquote(m4_defn([m4_cr_all])),
2545 m4_defn([m4_cr_$1])))
2547 AT_DIFF_STDERR(ignore)echo stderr:; cat "$at_stderr"
2549 m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:969
2553 _m4_divert_rawdivert
2555 AT_SKIP_IFm4_ifndef([AT_ingroup],
2556 [m4_fatal([AT_SKIP_IF: missing AT_SETUP detected])])dnl
2557 dnl Try to limit the amount of conditionals that we emit.
2561 [:], [_AT_CHECK_EXIT([], [77])],
2562 [true], [_AT_CHECK_EXIT([], [77])],
2563 [_AT_CHECK_EXIT([$1], [77])])
2565 m4_version_compare_m4_list_cmp_raw(_m4_version_unletter([$1]), _m4_version_unletter([$2]))
2567 _AS_DETECT_REQUIRED_m4_defun_pro([$0])m4_set_add([_AS_DETECT_REQUIRED_BODY], [$1 || AS_EXIT])[]_m4_defun_epi([$0])
2569 m4_append_uniqm4_ifval([$3], [m4_if(m4_index([$2], [$3]), [-1], [],
2571 [$0: `$2' contains `$3'])])])_$0($@)
2575 m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1769
2577 m4_default_nblank_quotedm4_ifblank([$1], [[$2]], [[$1]])
2579 _AT_COPYRIGHT_YEARSCopyright (C) 2009 Free Software Foundation, Inc.
2581 m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1078
2583 m4_include(autotest/specific.m4)
2585 m4_default_nblankm4_ifblank([$1], [$2], [$1])
2587 m4_set_unionm4_set_listc([$1])m4_if([$1], [$2], [],
2588 [m4_set_map_sep([$2], [_$0([$1],], [)])])
2590 _m4_divert(BANNERS)400
2592 m4_copyright_condensem4_text_wrap(m4_bpatsubst(m4_flatten([[$1]]),
2593 [(C)[- ,0-9]*\([1-9][0-9][0-9][0-9]\)], [(C) \1]))
2595 _m4_set_dumpm4_ifdef([_m4_set([$1])],
2596 [[$2]_m4_defn([_m4_set([$1])])_m4_popdef([_m4_set([$1],]_m4_defn(
2597 [_m4_set([$1])])[)], [_m4_set([$1])])$0([$1], [$2$3])])
2599 m4_condm4_if([$#], [0], [m4_fatal([$0: cannot be called without arguments])],
2601 m4_eval([$# % 3]), [2], [m4_fatal([$0: missing an argument])],
2604 m4_set_foreachm4_pushdef([$2])m4_set_map_sep([$1], [m4_define([$2],], [)$3])
2606 m4_escapem4_if(m4_index(m4_translit([$1],
2607 [[]#,()][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789], [$$$]), [$]),
2608 [-1], [m4_echo], [_$0])([$1])
2610 _m4_text_wrap_wordm4_define([m4_Cursor], m4_eval(m4_Cursor + m4_qlen([$1]) + 1))m4_if(m4_eval(m4_Cursor > ([$3])),
2611 [1], [m4_define([m4_Cursor], m4_eval(m4_Indent + m4_qlen([$1]) + 1))
2613 [m4_Separator[]])[$1]
2615 m4_text_wrap_$0(m4_escape([$1]), [$2], m4_default_quoted([$3], [$2]),
2616 m4_default_quoted([$4], [79]))
2618 AT_XFAIL_IFm4_ifndef([AT_ingroup],
2619 [m4_fatal([AT_XFAIL_IF: missing AT_SETUP detected])])dnl
2620 dnl Try to limit the amount of conditionals that we emit.
2624 [:], [m4_define([AT_xfail], [at_xfail=yes])],
2625 [true], [m4_define([AT_xfail], [at_xfail=yes])],
2626 [m4_append([AT_xfail], [
2627 $1 && at_xfail=yes])])
2629 AS_TR_SH_$0(m4_expand([$1]))
2631 AS_TR_SH_m4_defun_pro([$0])AS_REQUIRE([_$0_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0])
2633 m4_divert_stack_pushm4_pushdef([_m4_divert_stack], m4_location[: $1: $2])
2635 m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1241
2637 m4_warningm4_errprintn(m4_location[: warning: $1])
2641 _AS_TR_SH_LITERALm4_translit([[$1]],
2642 [*+[]][
\x01\x02\x03\x04\x05\x06\a\b
2643 \v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\e\x1c\x1d\x1e\x1f !"#$%&'()*+,./:;<=>?@[\]^`{|}~
\x7f€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-],
2644 [pp[]][_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________])
2646 AS_BOURNE_COMPATIBLE# Be more Bourne compatible
2647 DUALCASE=1; export DUALCASE # for MKS sh
2651 m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1678
2653 _AS_PREPARE_m4_defun_pro([$0])m4_pushdef([AS_REQUIRE])m4_pushdef([AS_REQUIRE_SHELL_FN], _m4_defn([_AS_REQUIRE_SHELL_FN])
2654 )m4_pushdef([AS_MESSAGE_LOG_FD], [-1])_AS_ERROR_PREPARE
2655 _m4_popdef([AS_MESSAGE_LOG_FD])_AS_EXIT_PREPARE
2657 _AS_VAR_APPEND_PREPARE
2658 _AS_VAR_ARITH_PREPARE
2661 _AS_BASENAME_PREPARE
2671 _m4_popdef([AS_REQUIRE], [AS_REQUIRE_SHELL_FN])[]_m4_defun_epi([$0])
2673 m4_cr_digits0123456789
2677 m4_set_dumpm4_ifdef([_m4_set_size($1)],
2678 [_m4_popdef([_m4_set_size($1)])])m4_ifdef([_m4_set_cleanup($1)],
2679 [_$0_check], [_$0])([$1], [], [$2])
2681 m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:544
2683 m4_location__file__:__line__
2687 AS_EXIT_m4_defun_pro([$0])AS_REQUIRE([_AS_EXIT_PREPARE])[]as_fn_exit m4_ifval([$1], [$1], [$][?])[]_m4_defun_epi([$0])
2691 _m4_divert_stack../../lib/m4sugar/m4sugar.m4:3251: m4_divert_push: KILL
2693 _m4_applym4_if([$2], [], [], [$1($2)[]])
2699 m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1755
2703 m4_expand_oncem4_provide_if(m4_default_quoted([$2], [$1]),
2705 [m4_provide(m4_default_quoted([$2], [$1]))[]$1])
2707 m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:314
2709 AT_CLEANUPm4_ifdef([AT_ingroup], [AT_ingroup[]_m4_undefine([AT_ingroup])],
2710 [m4_fatal([$0: missing AT_SETUP detected])])dnl
2711 m4_append([AT_help_all],
2712 m4_defn([AT_ordinal]);m4_defn([AT_line]);m4_defn([AT_description]);dnl
2713 m4_ifdef([AT_keywords], [m4_defn([AT_keywords])]);
2715 m4_divert_pop([TEST_SCRIPT])dnl Back to TEST_GROUPS
2717 echo "# -*- compilation -*-" >> "$at_group_log"
2719 AS_ECHO(["AT_ordinal. m4_defn([AT_line]): testing $1..."])
2721 m4_undivert([TEST_SCRIPT])dnl Insert the code here
2723 $at_times_p && times >"$at_times_file"
2724 ) AS_MESSAGE_LOG_FD>&1 2>&1 | eval $at_tee_pipe
2725 read at_status <"$at_status_file"
2726 [#AT_STOP_]AT_ordinal
2727 m4_divert_pop([TEST_GROUPS])dnl Back to KILL.
2730 AT_CLEANUPm4_fatal([AT_CLEANUP: missing AT_INIT detected])
2732 _m4_joinallm4_if([$#], [2], [], [[$1$3]$0([$1], m4_shift2($@))])
2736 _AS_TR_CPP_INDIR`AS_ECHO(["$1"]) | $as_tr_cpp`
2738 AS_TMPDIR# Create a (secure) tmp directory for tmp files.
2739 m4_if([$2], [], [: ${TMPDIR=/tmp}])
2741 tmp=`(umask 077 && mktemp -d "m4_default([$2], [$TMPDIR])/$1XXXXXX") 2>/dev/null` &&
2742 test -n "$tmp" && test -d "$tmp"
2745 tmp=m4_default([$2], [$TMPDIR])/$1$$-$RANDOM
2746 (umask 077 && mkdir "$tmp")
2747 } || AS_ERROR([cannot create a temporary directory in m4_default([$2],
2750 _AT_CHECKm4_define([AT_ingroup]){ set +x
2751 AS_ECHO(["$at_srcdir/AT_LINE: AS_ESCAPE([[$1]])"])
2752 _AT_DECIDE_TRACEABLE([$1]) _AT_LINE_ESCAPED
2753 ( $at_check_trace; [$1]
2754 ) >>"$at_stdout" 2>>"$at_stderr"
2755 at_status=$? at_failed=false
2757 m4_ifdef([AT_DIFF_STDERR($4)], [m4_indir([AT_DIFF_STDERR($4)])],
2758 [echo >>"$at_stderr"; AS_ECHO([["$4"]]) | \
2759 $at_diff - "$at_stderr" || at_failed=:])
2760 m4_ifdef([AT_DIFF_STDOUT($3)], [m4_indir([AT_DIFF_STDOUT($3)])],
2761 [echo >>"$at_stdout"; AS_ECHO([["$3"]]) | \
2762 $at_diff - "$at_stdout" || at_failed=:])
2763 m4_if([$2], [ignore], [at_fn_check_skip],
2764 [at_fn_check_status m4_default([$2], [0])]) $at_status "$at_srcdir/AT_LINE"
2765 m4_ifvaln([$5$6], [AS_IF($at_failed, [$5], [$6])])$at_failed && at_fn_log_failure AT_capture_files
2769 AS_PREPARE_m4_defun_pro([$0])m4_divert_push([KILL])
2770 m4_append_uniq([_AS_CLEANUP],
2771 [m4_divert_text([M4SH-INIT-FN], [_AS_ERROR_PREPARE[]])])
2772 AS_REQUIRE([_AS_EXPR_PREPARE])
2773 AS_REQUIRE([_AS_BASENAME_PREPARE])
2774 AS_REQUIRE([_AS_DIRNAME_PREPARE])
2775 AS_REQUIRE([_AS_ME_PREPARE])
2776 AS_REQUIRE([_AS_CR_PREPARE])
2777 AS_REQUIRE([_AS_LINENO_PREPARE])
2778 AS_REQUIRE([_AS_ECHO_N_PREPARE])
2779 AS_REQUIRE([_AS_EXIT_PREPARE])
2780 AS_REQUIRE([_AS_LN_S_PREPARE])
2781 AS_REQUIRE([_AS_MKDIR_P_PREPARE])
2782 AS_REQUIRE([_AS_TEST_PREPARE])
2783 AS_REQUIRE([_AS_TR_CPP_PREPARE])
2784 AS_REQUIRE([_AS_TR_SH_PREPARE])
2785 AS_REQUIRE([_AS_UNSET_PREPARE])
2786 AS_REQUIRE([_AS_VAR_APPEND_PREPARE], [], [M4SH-INIT-FN])
2787 AS_REQUIRE([_AS_VAR_ARITH_PREPARE], [], [M4SH-INIT-FN])
2788 m4_divert_pop[][]_m4_defun_epi([$0])
2792 m4_default_quotedm4_if([$1], [], [[$2]], [[$1]])
2794 _AS_VERSION_COMPARE_PREPARE_m4_defun_pro([$0])[as_awk_strverscmp='
2795 # Use only awk features that work with 7th edition Unix awk (1978).
2796 # My, what an old awk you have, Mr. Solaris!
2798 while (length(v1) && length(v2)) {
2799 # Set d1 to be the next thing to compare from v1, and likewise for d2.
2800 # Normally this is a single character, but if v1 and v2 contain digits,
2801 # compare them as integers and fractions as strverscmp does.
2802 if (v1 ~ /^[0-9]/ && v2 ~ /^[0-9]/) {
2803 # Split v1 and v2 into their leading digit string components d1 and d2,
2804 # and advance v1 and v2 past the leading digit strings.
2805 for (len1 = 1; substr(v1, len1 + 1) ~ /^[0-9]/; len1++) continue
2806 for (len2 = 1; substr(v2, len2 + 1) ~ /^[0-9]/; len2++) continue
2807 d1 = substr(v1, 1, len1); v1 = substr(v1, len1 + 1)
2808 d2 = substr(v2, 1, len2); v2 = substr(v2, len2 + 1)
2811 # Compare two fractions.
2812 while (d1 ~ /^0/ && d2 ~ /^0/) {
2813 d1 = substr(d1, 2); len1--
2814 d2 = substr(d2, 2); len2--
2816 if (len1 != len2 && ! (len1 && len2 && substr(d1, 1, 1) == substr(d2, 1, 1))) {
2817 # The two components differ in length, and the common prefix
2818 # contains only leading zeros. Consider the longer to be less.
2822 # Otherwise, compare as strings.
2827 # A fraction is less than an integer.
2832 # An integer is greater than a fraction.
2835 # Compare two integers.
2841 # The normal case, without worrying about digits.
2842 d1 = substr(v1, 1, 1); v1 = substr(v1, 2)
2843 d2 = substr(v2, 1, 1); v2 = substr(v2, 2)
2848 # Beware Solaris /usr/xgp4/bin/awk (at least through Solaris 10),
2849 # which mishandles some comparisons of empty strings to integers.
2850 if (length(v2)) exit 1
2851 if (length(v1)) exit 2
2853 '][]_m4_defun_epi([$0])
2855 AT_FAIL_IFm4_ifndef([AT_ingroup],
2856 [m4_fatal([AT_FAIL_IF: missing AT_SETUP detected])])dnl
2857 dnl Try to limit the amount of conditionals that we emit.
2861 [:], [_AT_CHECK_EXIT([], [99])],
2862 [true], [_AT_CHECK_EXIT([], [99])],
2863 [_AT_CHECK_EXIT([$1], [99])])
2865 m4_ifvalnm4_if([$1],
2871 _m4_joinm4_if([$#$2], [2], [],
2872 [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift2($@))])
2874 AT_DIFF_STDOUT(expout)$at_diff expout "$at_stdout" || at_failed=:
2876 m4_set_differencem4_if([$1], [$2], [], [m4_set_map_sep([$1], [_$0([$2],], [)])])
2880 _AS_VAR_APPEND_PREPARE_m4_defun_pro([$0])AS_FUNCTION_DESCRIBE([as_fn_append], [VAR VALUE],
2881 [Append the text in VALUE to the end of the definition contained in
2882 VAR. Take advantage of any shell optimizations that allow amortized
2883 linear growth over repeated appends, instead of the typical quadratic
2884 growth present in naive implementations.])
2885 AS_IF([_AS_RUN(["AS_ESCAPE(m4_quote(_AS_VAR_APPEND_WORKS))"])],
2886 [eval 'as_fn_append ()
2892 eval $[]1=\$$[]1\$[]2
2894 []_m4_defun_epi([$0])
2898 m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1267
2900 _m4_minmaxm4_if([$#], [3], [$1([$2], [$3])],
2901 [$0([$1], $1([$2], [$3]), m4_shift3($@))])
2903 m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1123
2905 _m4_set_sizem4_define([_m4_set_size($1)],
2906 m4_ifdef([_m4_set_size($1)], [$2(m4_indir([_m4_set_size($1)]))],
2909 m4_tolowerm4_translit([[$1]], [ABCDEFGHIJKLMNOPQRSTUVWXYZ],
2910 [abcdefghijklmnopqrstuvwxyz])
2912 m4_re_word[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]*
2914 m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:912
2916 _m4_divert(M4SH-SANITIZE)4
2918 m4_dquote_eltm4_if([$#], [0], [],
2919 [$#], [1], [[[$1]]],
2920 [[[$1]],$0(m4_shift($@))])
2922 m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:854
2924 _m4_expand$0_([$1], [(], -=<{($1)}>=-, [}>=-])
2926 m4_re_string[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]*
2928 m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:940
2930 m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1054
2934 m4_cdrm4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
2936 [m4_dquote(m4_shift($@))])
2938 m4_PACKAGE_VERSION2.65
2940 _AS_TR_CPP_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_CR_PREPARE])# Sed expression to map a string onto a valid CPP name.
2941 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[[^_$as_cr_alnum]]%_%g'"
2942 []_m4_defun_epi([$0])
2944 m4_joinall[$2]_$0([$1], m4_shift($@))
2946 _m4_divert_unsafem4_fatal([$0: cannot change diversion to `$1' inside m4_expand])
2948 _m4_divert(TESTS)403
2950 m4_divert_popm4_if([$1], [], [],
2951 [$1], _m4_defn([_m4_divert_diversion]), [],
2952 [m4_fatal([$0($1): diversion mismatch:
2953 ]m4_divert_stack)])_m4_popdef([_m4_divert_stack], [_m4_divert_diversion])m4_ifdef([_m4_divert_diversion], [],
2954 [m4_fatal([too many m4_divert_pop])])_m4_divert_raw(_m4_divert(_m4_defn([_m4_divert_diversion])))
2956 m4_location(AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1122
2958 _AS_TR_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_TR_SH_PREPARE])AS_REQUIRE([_AS_TR_CPP_PREPARE])[]_m4_defun_epi([$0])
2960 m4_set_sizem4_ifdef([_m4_set_size($1)], [m4_indir([_m4_set_size($1)])], [0])
2962 m4_set_listcm4_set_map_sep([$1], [,])
2964 AS_VAR_POPDEFm4_popdef([$1])
2966 m4_ifblankm4_if(m4_translit([[$1]], [ ][ ][
2969 m4_wrap_m4_wrap([], [$1[]])
2971 m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1890
2973 m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:884
2975 _m4_set_add_allm4_if([$#], [2], [],
2976 [m4_ifdef([_m4_set([$1],$3)], [],
2977 [m4_define([_m4_set([$1],$3)], [1])m4_pushdef([_m4_set([$1])],
2978 [$3])-])$0([$1], m4_shift2($@))])
2980 m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1339
2982 _AS_ECHO_AS_ECHO_UNQUOTED([_AS_QUOTE([$1])], [$2])
2984 m4_qlenm4_ifdef([$0-$1], [_m4_defn([$0-]], [_$0(])[$1])
2986 _AT_CHECK_EXITm4_define([AT_ingroup])AS_ECHO(_AT_LINE_ESCAPED) >"$at_check_line_file"
2987 m4_ifval([$1], [($1) \
2988 && ])at_fn_check_skip $2 "$at_srcdir/AT_LINE"
2990 _m4_list_cmp_1_m4_list_cmp_2([$2], [m4_shift2($@)], $1)
2992 _AS_DIRNAME_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_EXPR_PREPARE])if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
2997 []_m4_defun_epi([$0])
2999 _m4_list_cmp_2_m4_list_cmp([$1$3], m4_cmp([$3+0], [$1+0]))(
3000 [_m4_list_cmp_1(m4_dquote(m4_shift3($@)), $2)])
3002 m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1857
3004 m4_errprintnm4_errprint([$1
3007 _AS_SHELL_SANITIZE_m4_defun_pro([$0])m4_pushdef([AS_EXIT], [exit m4_default(]m4_dquote([$][1])[, 1)])m4_text_box([M4sh Initialization.])
3009 AS_BOURNE_COMPATIBLE
3011 _AS_PATH_SEPARATOR_PREPARE
3014 # We need space, tab and new line, in precisely that order. Quoting is
3015 # there to prevent editors from complaining about space-tab.
3016 # (If _AS_PATH_WALK were called with IFS unset, it would disable word
3017 # splitting by setting IFS to empty value.)
3020 # Find who we are. Look in the path if we contain no directory separator.
3022 *[[\\/]]* ) as_myself=$[0] ;;
3023 *) _AS_PATH_WALK([],
3024 [test -r "$as_dir/$[0]" && as_myself=$as_dir/$[0] && break])
3027 # We did not find ourselves, most probably we were run as `sh COMMAND'
3028 # in which case we are not to be found in the path.
3029 if test "x$as_myself" = x; then
3032 if test ! -f "$as_myself"; then
3033 AS_ECHO(["$as_myself: error: cannot find myself; rerun with an absolute file name"]) >&2
3037 # Unset variables that we do not need and which cause bugs (e.g. in
3038 # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
3039 # suppresses any "Segmentation fault" message there. '((' could
3040 # trigger a bug in pdksh 5.2.14.
3041 for as_var in BASH_ENV ENV MAIL MAILPATH
3042 do eval test x\${$as_var+set} = xset \
3043 && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
3056 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
3057 _m4_popdef([AS_EXIT])[]_m4_defun_epi([$0])
3059 _AS_PATH_WALKas_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3060 m4_ifvaln([$3], [as_found=false])dnl
3061 m4_bmatch([$1], [[:;]],
3063 for as_dir in $as_dummy],
3064 [for as_dir in m4_default([$1], [$PATH])])
3067 test -z "$as_dir" && as_dir=.
3068 m4_ifvaln([$3], [as_found=:])dnl
3070 m4_ifvaln([$3], [as_found=false])dnl
3072 m4_ifvaln([$3], [$as_found || { $3; }])dnl
3076 _AS_PATH_WALK_m4_defun_pro([$0])AS_REQUIRE([_AS_PATH_SEPARATOR_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0])
3078 _AS_BASENAME_EXPR_m4_defun_pro([$0])$as_expr X/[]$1 : '.*/\([[^/][^/]*]\)/*$' \| \
3079 X[]$1 : 'X\(//\)$' \| \
3080 X[]$1 : 'X\(/\)' \| .[]_m4_defun_epi([$0])
3082 AT_CHECK_UNQUOTEDm4_ifndef([AT_ingroup],
3083 [m4_fatal([AT_CHECK_UNQUOTED: missing AT_SETUP detected])])_AT_CHECK(m4_expand([$1]), [$2], AS_ESCAPE(m4_dquote(m4_expand([$3])), [""]),
3084 AS_ESCAPE(m4_dquote(m4_expand([$4])), [""]), [$5], [$6])
3088 m4_toupperm4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz],
3089 [ABCDEFGHIJKLMNOPQRSTUVWXYZ])
3095 _m4_set_contents_1cm4_ifdef([_m4_set([$1])],
3096 [m4_set_contains([$1], _m4_defn([_m4_set([$1])]),
3097 [m4_pushdef([_m4_set_($1)], _m4_defn([_m4_set([$1])]))],
3098 [_m4_popdef([_m4_set([$1],]_m4_defn(
3099 [_m4_set([$1])])[)])])_m4_popdef([_m4_set([$1])])$0([$1])],
3100 [_m4_popdef([_m4_set_cleanup($1)])])
3106 m4_divert_oncem4_expand_once([m4_divert_text([$1], [$2])])
3108 _AS_DETECT_EXPAND$1="m4_bpatsubst(m4_dquote(AS_ESCAPE(_m4_expand(m4_set_contents([$2], [
3109 ])))), [\\\$LINENO\(.*\)$], [";$1=$$1$LINENO;$1=$$1"\1])"
3111 m4_map_sepm4_pushdef([m4_Sep], [m4_define([m4_Sep], _m4_defn([m4_unquote]))])_m4_foreach([_m4_apply([m4_Sep([$2])[]$1],], [)], [], $3)m4_popdef([m4_Sep])
3113 _AS_IDENTIFIER_IFm4_cond([[$1]], [], [],
3114 [m4_eval(m4_len(m4_translit([[$1]], ][[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]][)) > 0)], [1], [],
3115 [m4_len(m4_translit(m4_format([[%.1s]], [$1]), ][[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_]][))], [0], [-])
3117 _AS_ECHO_N_PREPARE_m4_defun_pro([$0])ECHO_C= ECHO_N= ECHO_T=
3118 case `echo -n x` in @%:@(((((
3120 case `echo 'xy\c'` in
3121 *c*) ECHO_T=' ';; # ECHO_T is single tab character.
3123 *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
3129 []_m4_defun_epi([$0])
3131 m4_warn_m4_warn([$1], [$2],
3132 m4_ifdef([_m4_expansion_stack], [m4_expansion_stack]))
3134 m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:168
3136 m4_renamem4_copy([$1], [$2])m4_undefine([$1])
3138 _AS_TR_CPP_LITERALm4_translit([$1],
3139 [*[]][abcdefghijklmnopqrstuvwxyz
\x01\x02\x03\x04\x05\x06\a\b
3140 \v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\e\x1c\x1d\x1e\x1f !"#$%&'()*+,./:;<=>?@[\]^`{|}~
\x7f€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-],
3141 [P[]][ABCDEFGHIJKLMNOPQRSTUVWXYZ_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________])
3143 m4_changecomchangecom
3145 m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:766
3149 _m4_defun_epi_m4_popdef([_m4_expanding($1)], [_m4_expansion_stack])m4_ifdef([_m4_expansion_stack], [], [_m4_defun_epi_outer([$1])])m4_provide([$1])
3151 AT_DIFF_STDERR(experr)$at_diff experr "$at_stderr" || at_failed=:
3155 _AS_TR_CPP_AS_LITERAL_IF([$1], [$0_LITERAL], [$0_INDIR])([$1])
3157 _m4_cdrm4_if([$#], 1, [],
3158 [, m4_dquote(m4_shift($@))])
3160 m4_splitm4_if([$1], [], [],
3161 [$2], [ ], [m4_if(m4_index([$1], [ ]), [-1], [[[$1]]],
3162 [_$0([$1], [$2], [, ])])],
3163 [$2], [], [_$0([$1], [[ ]+], [, ])],
3164 [_$0([$1], [$2], [, ])])
3166 m4_divert_requirem4_ifdef([_m4_expanding($2)],
3167 [m4_fatal([$0: circular dependency of $2])])m4_if(_m4_divert_dump, [],
3168 [m4_fatal([$0($2): cannot be used outside of an m4_defun'd macro])])m4_provide_if([$2], [],
3169 [_m4_require_call([$2], [$3], _m4_divert([$1]))])
3173 m4_map_m4_foreach([_m4_apply([$1],], [)], [], $2)
3175 _m4_set_contents_1_m4_stack_reverse([_m4_set([$1])], [_m4_set_($1)])
3177 _m4_set_contents_2_m4_stack_reverse([_m4_set_($1)], [_m4_set([$1])],
3178 [$2[]_m4_defn([_m4_set_($1)])$3], [$4[]])
3180 _m4_escapem4_changequote([-=<{(],[)}>=-])m4_bpatsubst(m4_bpatsubst(m4_bpatsubst(m4_bpatsubst(
3181 -=<{(-=<{(-=<{(-=<{(-=<{($1)}>=-)}>=-)}>=-)}>=-)}>=-,
3182 -=<{(#)}>=-, -=<{(@%:@)}>=-),
3183 -=<{(\[)}>=-, -=<{(@<:@)}>=-),
3184 -=<{(\])}>=-, -=<{(@:>@)}>=-),
3185 -=<{(\$)}>=-, -=<{(@S|@)}>=-)m4_changequote([,])
3191 _m4_divert(GROW)10000
3193 m4_minm4_if([$#], [0], [m4_fatal([too few arguments to $0])],
3194 [$#], [1], [m4_eval([$1])],
3195 [$#$1], [2$2], [m4_eval([$1])],
3196 [$#], [2], [_$0($@)],
3197 [_m4_minmax([_$0], $@)])
3199 _AS_IFelif $1; then :
3203 m4_foreach_wm4_pushdef([$1])m4_map_args_w([$2],
3204 [m4_define([$1],], [)$3])m4_popdef([$1])
3206 m4_sincludem4_include_unique([$1])dnl
3207 m4_builtin([sinclude], [$1])
3209 m4_defnm4_if([$#], [0], [[$0]],
3210 [$#], [1], [m4_ifdef([$1], [_m4_defn([$1])],
3211 [m4_fatal([$0: undefined macro: $1])])],
3212 [m4_map_args([$0], $@)])
3214 m4_location(_AT_ARG_OPTION)../../lib/autotest/general.m4:1606
3216 AT_DIFF_STDERR(ignore-nolog)
3218 m4_maxm4_if([$#], [0], [m4_fatal([too few arguments to $0])],
3219 [$#], [1], [m4_eval([$1])],
3220 [$#$1], [2$2], [m4_eval([$1])],
3221 [$#], [2], [_$0($@)],
3222 [_m4_minmax([_$0], $@)])
3224 m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2025
3228 _AS_CR_PREPARE_m4_defun_pro([$0])# Avoid depending upon Character Ranges.
3229 as_cr_letters='abcdefghijklmnopqrstuvwxyz'
3230 as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
3231 as_cr_Letters=$as_cr_letters$as_cr_LETTERS
3232 as_cr_digits='0123456789'
3233 as_cr_alnum=$as_cr_Letters$as_cr_digits
3234 []_m4_defun_epi([$0])
3236 m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:842
3238 _m4_divert(PREPARE_TESTS)402
3240 AS_VAR_GETAS_LITERAL_IF([$1],
3242 [`eval 'as_val=${'_AS_ESCAPE([[$1]], [`], [\])'};AS_ECHO(["$as_val"])'`])
3244 _m4_map_args_wm4_substr([$1], [$2], m4_eval(m4_len([$1]) - [$2] - [$3]))
3246 m4_include(m4sugar/version.m4)
3248 _AS_MKDIR_Pcase $as_dir in #(
3249 -*) as_dir=./$as_dir;;
3251 test -d "$as_dir" || eval $as_mkdir_p || {
3255 *\'*) as_qdir=`AS_ECHO(["$as_dir"]) | sed "s/'/'\\\\\\\\''/g"`;; #'(
3256 *) as_qdir=$as_dir;;
3258 as_dirs="'$as_qdir' $as_dirs"
3259 as_dir=`AS_DIRNAME("$as_dir")`
3260 test -d "$as_dir" && break
3262 test -z "$as_dirs" || eval "mkdir $as_dirs"
3263 } || test -d "$as_dir" || AS_ERROR([cannot create directory $as_dir])
3266 AT_KEYWORDSm4_ifndef([AT_ingroup],
3267 [m4_fatal([AT_KEYWORDS: missing AT_SETUP detected])])m4_append_uniq_w([AT_keywords], m4_tolower(_m4_expand([$1
3270 AS_MESSAGEm4_ifval(AS_MESSAGE_LOG_FD,
3271 [{ _AS_ECHO_LOG([$1])
3272 _AS_ECHO([$as_me: $1], [$2]);}],
3273 [_AS_ECHO([$as_me: $1], [$2])])[]
3275 AS_MESSAGE_m4_defun_pro([$0])AS_REQUIRE([_AS_ME_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0])
3277 m4_define_defaultm4_ifndef([$1], [m4_define($@)])
3279 AT_CHECK_EUNITm4_ifndef([AT_ingroup],
3280 [m4_fatal([AT_CHECK_EUNIT: missing AT_SETUP detected])])AT_SKIP_IF([test ! -f "$ERL" || test ! -f "$ERLC"])
3281 ## A wrapper to EUnit, to exit the Erlang VM with the right exit code:
3284 -export([test/0, test/1]).
3288 ReturnValue = case code:load_file(eunit) of
3289 {module, _} -> case eunit:test(TestSpec, Options) of
3290 ok -> "0\n"; %% test passes
3291 _ -> "1\n" %% test fails
3293 _ -> "77\n" %% EUnit not found, test skipped
3295 file:write_file("$1.result", ReturnValue),
3298 AT_CHECK(["$ERLC" $ERLCFLAGS -b beam $1.erl])
3299 ## Make EUnit verbose when testsuite is verbose:
3300 if test -z "$at_verbose"; then
3301 at_eunit_options="verbose"
3305 AT_CHECK(["$ERL" $3 -s $1 test $at_eunit_options -noshell], [0], [ignore], [],
3307 AT_CAPTURE_FILE([$1.result])
3308 AT_CHECK([test -f "$1.result" && (exit `cat "$1.result"`)])
3311 m4_stack_foreach_m4_stack_reverse([$1], [m4_tmp-$1])_m4_stack_reverse([m4_tmp-$1], [$1], [$2(_m4_defn([m4_tmp-$1]))])
3315 AS_TR_CPP_$0(m4_expand([$1]))
3317 AS_TR_CPP_m4_defun_pro([$0])AS_REQUIRE([_$0_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0])
3319 m4_cr_lettersabcdefghijklmnopqrstuvwxyz
3321 m4_PACKAGE_TARNAMEautoconf
3323 _AS_PATH_SEPARATOR_PREPARE_m4_defun_pro([$0])# The user is always right.
3324 if test "${PATH_SEPARATOR+set}" != set; then
3326 (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
3327 (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
3331 []_m4_defun_epi([$0])
3335 _AS_VAR_APPEND_WORKSas_var=1; as_var+=2; test x$as_var = x12
3337 m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1815
3339 m4_cr_all
\x01\x02\x03\x04\x05\x06\a\b
3340 \v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\e\x1c\x1d\x1e\x1f !"#$%&'()*+,./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
\x7f€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-
3342 _AS_QUOTE_OLDm4_warn([obsolete],
3343 [back quotes and double quotes must not be escaped in: $1])$1
3345 AT_DATAm4_ifndef([AT_ingroup],
3346 [m4_fatal([AT_DATA: missing AT_SETUP detected])])cat >$1 <<'_ATEOF'
3350 m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:566
3352 m4_set_removem4_set_contains([$1], [$2], [_m4_set_size([$1],
3353 [m4_decr])m4_if(_m4_defn([_m4_set([$1])]), [$2],
3354 [_m4_popdef([_m4_set([$1],$2)], [_m4_set([$1])])],
3355 [m4_define([_m4_set_cleanup($1)])m4_define(
3356 [_m4_set([$1],$2)], [0])])$3], [$4])
3358 m4_cr_not_letters
\x01\x02\x03\x04\x05\x06\a\b
3359 \v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\e\x1c\x1d\x1e\x1f !"#$%&'()*+,./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|}~
\x7f€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-
3361 AT_DIFF_STDOUT(ignore)echo stdout:; cat "$at_stdout"
3363 m4_ifvalm4_if([$1], [], [$3], [$2])
3365 m4_location(AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1077
3367 AT_BANNERm4_ifdef([AT_ingroup], [m4_fatal([$0: nested AT_SETUP detected])])dnl
3368 m4_define([AT_banner_ordinal], m4_incr(AT_banner_ordinal))
3369 m4_divert_text([BANNERS],
3370 [@%:@ Banner AT_banner_ordinal. AT_LINE
3371 @%:@ Category starts at test group m4_incr(AT_ordinal).
3372 at_banner_text_[]AT_banner_ordinal="AS_ESCAPE([$1])"])dnl
3375 AT_BANNERm4_fatal([AT_BANNER: missing AT_INIT detected])
3377 m4_map_args_w_$0(_m4_split([ ]m4_flatten([$1])[ ], [[ ]+],
3378 m4_if(m4_index([$2$3$4], [\]), [-1], [[$3[]$4[]$2]],
3379 [m4_bpatsubst([[$3[]$4[]$2]], [\\], [\\\\])])),
3380 m4_len([[]$3[]$4]), m4_len([$4[]$2[]]))
3382 m4_include_uniquem4_ifdef([m4_include($1)],
3383 [m4_warn([syntax], [file `$1' included several times])])dnl
3384 m4_define([m4_include($1)])
3386 m4_esyscmd_sm4_chomp_all(m4_esyscmd([$1]))
3390 AS_MKDIR_Pas_dir=$1; as_fn_mkdir_p
3392 AS_MKDIR_P_m4_defun_pro([$0])AS_REQUIRE([_$0_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0])
3394 _m4_condm4_if(($1), [($2)], [$3],
3397 [$0(m4_shift3($@))])
3401 m4_chomp_allm4_format([[%.*s]], m4_bregexp(m4_translit([[$1]], [
3402 /], [/ ]), [/*$]), [$1])
3406 AS_HELP_STRINGm4_text_wrap([$2], m4_cond([[$3]], [], [ ],
3407 [m4_eval([$3]+0)], [0], [[$3]],
3408 [m4_format([[%*s]], [$3], [])]),
3409 m4_expand([ $1 ]), [$4])
3411 m4_curry$1(m4_shift($@,)_$0
3413 m4_bmatchm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])],
3414 [$#], 1, [m4_fatal([$0: too few arguments: $#: $1])],
3416 [m4_if(m4_bregexp([$1], [$2]), -1, [$0([$1], m4_shift3($@))],
3419 AS_SET_STATUS_m4_defun_pro([$0])AS_REQUIRE([_AS_EXIT_PREPARE])[]as_fn_set_status $1[]_m4_defun_epi([$0])
3421 m4_append_uniq_wm4_map_args_w([$2], [_m4_append_uniq([$1],], [, [ ])])
3423 _m4_set_intersectionm4_set_contains([$1], [$2], [,[$2]])
3425 m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1002
3429 m4_text_boxm4_pushdef([m4_Border],
3430 m4_translit(m4_format([%*s], m4_decr(m4_qlen(_m4_expand([$1
3431 ]))), []), [ ], m4_default_quoted([$2], [-])))[##] m4_Border [##]
3433 [##] m4_Border [##]_m4_popdef([m4_Border])
3435 _m4_divert(TEST_SCRIPT)450
3439 m4_text_box([Platform.])
3441 hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
3442 uname -m = `(uname -m) 2>/dev/null || echo unknown`
3443 uname -r = `(uname -r) 2>/dev/null || echo unknown`
3444 uname -s = `(uname -s) 2>/dev/null || echo unknown`
3445 uname -v = `(uname -v) 2>/dev/null || echo unknown`
3447 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
3448 /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
3450 /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
3451 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
3452 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
3453 /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
3454 /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
3455 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
3456 /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
3460 _AS_PATH_WALK([$PATH], [AS_ECHO(["PATH: $as_dir"])])
3463 m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:157
3465 _m4_minm4_eval((([$1]) < ([$2])) * ([$1]) + (([$1]) >= ([$2])) * ([$2]))
3467 _m4_version_unletterm4_bpatsubst(m4_bpatsubst(m4_translit([[[[0,$1]]]], [.-], [,,]),[[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]][+],
3468 [+1,-1,[0r36:\&]]), [,0], [,[0r10:0]])
3472 m4_map_argsm4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])],
3474 [$#], [2], [$1([$2])[]],
3475 [_m4_foreach([$1(], [)], $@)])
3477 m4_cmpm4_eval((([$1]) > ([$2])) - (([$1]) < ([$2])))
3479 _m4_maxm4_eval((([$1]) > ([$2])) * ([$1]) + (([$1]) <= ([$2])) * ([$2]))
3481 m4_signm4_eval((([$1]) > 0) - (([$1]) < 0))
3483 m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:608
3485 AS_REQUIRE_m4_defun_pro([$0])m4_define([_m4_divert_desired], [m4_default_quoted([$3], [M4SH-INIT])])m4_if(m4_eval(_m4_divert_dump - 0 <= _m4_divert(_m4_divert_desired)),
3487 [m4_divert_require(_m4_divert_desired,]) [$1], [$2])[]_m4_defun_epi([$0])
3489 m4_set_intersectionm4_if([$1], [$2], [m4_set_listc([$1])],
3490 m4_eval(m4_set_size([$2]) < m4_set_size([$1])), [1], [$0([$2], [$1])],
3491 [m4_set_map_sep([$1], [_$0([$2],], [)])])
3493 AS_BASENAME$as_basename -- $1 ||
3494 _AS_BASENAME_EXPR([$1]) 2>/dev/null ||
3495 _AS_BASENAME_SED([$1])
3497 AS_BASENAME_m4_defun_pro([$0])AS_REQUIRE([_$0_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0])
3499 m4_popdefm4_if([$#], [0], [[$0]],
3500 [$#], [1], [m4_ifdef([$1], [_m4_popdef([$1])],
3501 [m4_fatal([$0: undefined macro: $1])])],
3502 [m4_map_args([$0], $@)])
3504 m4_set_addm4_ifdef([_m4_set([$1],$2)],
3505 [m4_if(m4_indir([_m4_set([$1],$2)]), [0],
3506 [m4_define([_m4_set([$1],$2)],
3507 [1])_m4_set_size([$1], [m4_incr])$3], [$4])],
3508 [m4_define([_m4_set([$1],$2)],
3509 [1])m4_pushdef([_m4_set([$1])],
3510 [$2])_m4_set_size([$1], [m4_incr])$3])
3512 _AS_VAR_PUSHDEF_AS_LITERAL_IF([$2],
3513 [m4_pushdef([$1], [_AS_TR_SH_LITERAL([$2])])],
3514 [as_$1=_AS_TR_SH_INDIR([$2])
3515 m4_pushdef([$1], [$as_[$1]])])
3517 _AS_RUNm4_ifval([$2], [{ $as_echo "$as_bourne_compatible"$1 | as_run=a $2; }],
3518 [(eval $1)]) 2>/dev/null
3520 m4_set_add_allm4_define([_m4_set_size($1)], m4_eval(m4_set_size([$1])
3521 + m4_len(m4_ifdef([_m4_set_cleanup($1)], [_$0_check], [_$0])([$1], $@))))
3523 m4_version_unletterm4_substr(m4_map_args([.m4_eval], m4_unquote(_$0([$1]))), [3])
3525 m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:900
3527 _m4_list_cmp_rawm4_if([$1], [$2], [0], [_m4_list_cmp_1([$1], $2)])
3529 m4_set_listm4_set_map_sep([$1], [], [], [,])
3531 m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:195
3533 m4_reversem4_if([$#], [0], [], [$#], [1], [[$1]],
3534 [$0(m4_shift($@)), [$1]])
3536 AS_SHELL_SANITIZE_AS_SHELL_SANITIZE
3537 m4_provide_if([AS_INIT], [],
3538 [m4_provide([AS_INIT])
3539 _AS_DETECT_REQUIRED([_AS_SHELL_FN_WORK])
3540 _AS_DETECT_BETTER_SHELL
3544 m4_init# All the M4sugar macros start with `m4_', except `dnl' kept as is
3545 # for sake of simplicity.
3546 m4_pattern_forbid([^_?m4_])
3547 m4_pattern_forbid([^dnl$])
3549 # If __m4_version__ is defined, we assume that we are being run by M4
3550 # 1.6 or newer, thus $@ recursion is linear, and debugmode(+do)
3551 # is available for faster checks of dereferencing undefined macros
3552 # and forcing dumpdef to print to stderr regardless of debugfile.
3553 # But if it is missing, we assume we are being run by M4 1.4.x, that
3554 # $@ recursion is quadratic, and that we need foreach-based
3555 # replacement macros. Also, m4 prior to 1.4.8 loses track of location
3556 # during m4wrap text; __line__ should never be 0.
3558 # Use the raw builtin to avoid tripping up include tracing.
3559 # Meanwhile, avoid m4_copy, since it temporarily undefines m4_defn.
3560 m4_ifdef([__m4_version__],
3561 [m4_debugmode([+do])
3562 m4_define([m4_defn], _m4_defn([_m4_defn]))
3563 m4_define([m4_dumpdef], _m4_defn([_m4_dumpdef]))
3564 m4_define([m4_popdef], _m4_defn([_m4_popdef]))
3565 m4_define([m4_undefine], _m4_defn([_m4_undefine]))],
3566 [m4_builtin([include], [m4sugar/foreach.m4])
3567 m4_wrap_lifo([m4_if(__line__, [0], [m4_pushdef([m4_location],
3568 ]]m4_dquote(m4_dquote(m4_dquote(__file__:__line__)))[[)])])])
3570 # Rewrite the first entry of the diversion stack.
3573 # Check the divert push/pop perfect balance.
3574 # Some users are prone to also use m4_wrap to register last-minute
3575 # m4_divert_text; so after our diversion cleanups, we restore
3576 # KILL as the bottom of the diversion stack.
3577 m4_wrap([m4_popdef([_m4_divert_diversion])m4_ifdef(
3578 [_m4_divert_diversion], [m4_fatal([$0: unbalanced m4_divert_push:
3579 ]m4_divert_stack)])_m4_popdef([_m4_divert_stack])m4_divert_push([KILL])])
3582 m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1046
3584 _m4_foreachm4_if([$#], [3], [],
3585 [$1[$4]$2[]$0([$1], [$2], m4_shift3($@))])
3587 m4_set_emptym4_ifdef([_m4_set_size($1)],
3588 [m4_if(m4_indir([_m4_set_size($1)]), [0], [$2], [$3])], [$2])
3590 _m4_divert(DEFAULTS)100
3594 _AS_ECHO_PREPARE_m4_defun_pro([$0])[as_nl='
3597 # Printing a long string crashes Solaris 7 /usr/bin/printf.
3598 as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
3599 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
3600 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
3601 # Prefer a ksh shell builtin over an external printf program on Solaris,
3602 # but without wasting forks for bash or zsh.
3603 if test -z "$BASH_VERSION$ZSH_VERSION" \
3604 && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
3605 as_echo='print -r --'
3606 as_echo_n='print -rn --'
3607 elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
3608 as_echo='printf %s\n'
3609 as_echo_n='printf %s'
3611 if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
3612 as_echo_body='eval /usr/ucb/echo -n "$][1$as_nl"'
3613 as_echo_n='/usr/ucb/echo -n'
3615 as_echo_body='eval expr "X$][1" : "X\\(.*\\)"'
3616 as_echo_n_body='eval
3620 expr "X$arg" : "X\\(.*\\)$as_nl";
3621 arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
3623 expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
3625 export as_echo_n_body
3626 as_echo_n='sh -c $as_echo_n_body as_echo'
3629 as_echo='sh -c $as_echo_body as_echo'
3631 ][]_m4_defun_epi([$0])
3633 m4_shift2m4_shift(m4_shift($@))
3635 m4_shift3m4_shift(m4_shift(m4_shift($@)))
3637 m4_form4_pushdef([$1], m4_eval([$2]))m4_cond([m4_eval(([$3]) > ([$2]))], 1,
3638 [m4_pushdef([_m4_step], m4_eval(m4_default_quoted([$4],
3639 1)))m4_assert(_m4_step > 0)_$0(_m4_defn([$1]),
3640 m4_eval((([$3]) - ([$2])) / _m4_step * _m4_step + ([$2])), _m4_step,],
3641 [m4_eval(([$3]) < ([$2]))], 1,
3642 [m4_pushdef([_m4_step], m4_eval(m4_default_quoted([$4],
3643 -1)))m4_assert(_m4_step < 0)_$0(_m4_defn([$1]),
3644 m4_eval((([$2]) - ([$3])) / -(_m4_step) * _m4_step + ([$2])), _m4_step,],
3645 [m4_pushdef([_m4_step])_$0(_m4_defn([$1]), _m4_defn([$1]), 0,])[m4_define([$1],], [)$5])m4_popdef([_m4_step], [$1])
3649 m4_debugfiledebugfile
3651 AT_LINEm4_if(m4_defn([_AT_LINE_file]), __file__, [],
3652 [m4_do([m4_define([_AT_LINE_file], __file__)],
3653 [m4_define([_AT_LINE_base],
3654 m4_bregexp(/__file__, [/\([^/]*\)$], [[\1]]))])])dnl
3655 m4_defn([_AT_LINE_base]):__line__
3657 AS_VAR_APPENDas_fn_append $1 $2
3659 AS_VAR_APPEND_m4_defun_pro([$0])AS_REQUIRE([_AS_VAR_APPEND_PREPARE], [], [M4SH-INIT-FN])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0])
3661 _AS_DETECT_SUGGESTED_PRUNEm4_set_contains([_AS_DETECT_REQUIRED_BODY], [$1],
3662 [m4_set_remove([_AS_DETECT_SUGGESTED_BODY], [$1])])
3664 _m4_expand_m4_if([$4], [}>=-],
3665 [m4_changequote([-=<{$2], [)}>=-])$3m4_changequote([, ])],
3666 [$0([$1], [($2], -=<{($2$1)}>=-, [}>=-])m4_ignore$2])
3668 _m4_defun_pro_outerm4_set_delete([_m4_provide])m4_pushdef([_m4_diverting([$1])])m4_pushdef([_m4_diverting], [$1])m4_pushdef([_m4_divert_dump], m4_divnum)m4_divert_push([GROW])
3670 _AS_DIRNAME_SED_m4_defun_pro([$0])AS_ECHO([X[]$1]) |
3671 sed ['/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
3687 s/.*/./; q'][]_m4_defun_epi([$0])
3689 _AS_CASE_DEFAULT [@%:@(]
3693 _m4_wrapm4_ifdef([$0_text],
3694 [m4_define([$0_text], [$1]_m4_defn([$0_text])[$2])],
3695 [m4_builtin([m4wrap], [m4_unquote(
3696 _m4_defn([$0_text])_m4_popdef([$0_text]))])m4_define([$0_text], [$1$2])])
3698 _AT_NORMALIZE_TEST_GROUP_NUMBER
3701 '"$at_format"'*) break;;
3707 _AS_MKDIR_P_PREPARE_m4_defun_pro([$0])AS_REQUIRE_SHELL_FN([as_fn_mkdir_p],
3708 [AS_FUNCTION_DESCRIBE([as_fn_mkdir_p], [],
3709 [Create "$as_dir" as a directory, including parents if necessary.])],
3712 ])if mkdir -p . 2>/dev/null; then
3713 as_mkdir_p='mkdir -p "$as_dir"'
3715 test -d ./-p && rmdir ./-p
3718 []_m4_defun_epi([$0])
3720 _AS_EXPR_PREPARE_m4_defun_pro([$0])if expr a : '\(a\)' >/dev/null 2>&1 &&
3721 test "X`expr 00001 : '.*\(...\)'`" = X001; then
3726 []_m4_defun_epi([$0])
3728 AS_VAR_SET_IFAS_IF([AS_VAR_TEST_SET([$1])], [$2], [$3])
3730 m4_foreachm4_if([$2], [], [],
3731 [m4_pushdef([$1])_$0([m4_define([$1],], [)$3], [],
3732 $2)m4_popdef([$1])])
3734 m4_divert_stackm4_stack_foreach_sep_lifo([_m4_divert_stack], [], [], [
3737 m4_assertm4_if(m4_eval([$1]), 0,
3738 [m4_fatal([assert failed: $1], [$2])])
3740 _AT_DEFINE_INITm4_define($@)m4_pushdef([$1], [m4_fatal([$1: missing AT_INIT detected])])dnl
3741 m4_append([_AT_DEFINE_INIT_LIST], [[$1]], [,])
3743 AS_VAR_COPYAS_LITERAL_IF([$1[]$2], [$1=$$2], [eval $1=\$$2])
3746 # End of frozen state file