[m4_define([AC_CONFIG_MACRO_DIRS],
m4_defn([AC_CONFIG_MACRO_DIR]))])
+ - Overhead of probing for a non-backslash crippled echo equivalent
+ during initialization of every script has been removed in favor of
+ trusting that "printf %s\n" works out of the box on all non-museum
+ host architectures. Manually setting ECHO appropriately in the
+ build environment will be necessary on some ancient architectures.
+
** Changes in supported systems or compilers:
- Support for bitrig (*-*-bitrig*).
+ - Solaris 7 and earlier requires ECHO=/usr/ucb/echo in the build
+ environment, to build and use libtool.
+
New in 2.4.2 2011-10-17: git version 2.4.1a, Libtool team:
* New features:
}
-# There are still modern systems that have problems with 'echo' mis-
-# handling backslashes, among others, so make sure $bs_echo is set to a
-# command that correctly interprets backslashes.
-# (this code from Autoconf 2.68)
-
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-bs_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-bs_echo=$bs_echo$bs_echo$bs_echo$bs_echo$bs_echo
-bs_echo=$bs_echo$bs_echo$bs_echo$bs_echo$bs_echo$bs_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $bs_echo`" = "X$bs_echo") 2>/dev/null; then
- bs_echo='print -r --'
- bs_echo_n='print -rn --'
-elif (test "X`printf %s $bs_echo`" = "X$bs_echo") 2>/dev/null; then
- bs_echo='printf %s\n'
- bs_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $bs_echo) 2>/dev/null`" = "X-n $bs_echo"; then
- bs_echo_body='eval /usr/ucb/echo -n "$1$nl"'
- bs_echo_n='/usr/ucb/echo -n'
- else
- bs_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- bs_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$nl"*)
- expr "X$arg" : "X\\(.*\\)$nl";
- arg=`expr "X$arg" : ".*$nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$nl"
- '
- export bs_echo_n_body
- bs_echo_n='sh -c $bs_echo_n_body bs_echo'
- fi
- export bs_echo_body
- bs_echo='sh -c $bs_echo_body bs_echo'
-fi
-
-
# We want to be able to use the functions in this file before configure
# has figured out where the best binaries are kept, which means we have
# to search for them ourselves - except when the results are already set
_G_path_prog=$1
_G_count=0
- $bs_echo_n 0123456789 >conftest.in
+ printf 0123456789 >conftest.in
while :
do
cat conftest.in conftest.in >conftest.tmp
mv conftest.tmp conftest.in
cp conftest.in conftest.nl
- $bs_echo '' >> conftest.nl
+ echo '' >> conftest.nl
"$_G_path_prog" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break
diff conftest.out conftest.nl >/dev/null 2>&1 || break
_G_count=`expr $_G_count + 1`
_G_count=0
_G_path_prog_max=0
- $bs_echo_n 0123456789 >conftest.in
+ printf 0123456789 >conftest.in
while :
do
cat conftest.in conftest.in >conftest.tmp
mv conftest.tmp conftest.in
cp conftest.in conftest.nl
- $bs_echo 'GREP' >> conftest.nl
+ echo 'GREP' >> conftest.nl
"$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' <conftest.nl >conftest.out 2>/dev/null || break
diff conftest.out conftest.nl >/dev/null 2>&1 || break
_G_count=`expr $_G_count + 1`
# in the command search PATH.
: ${CP="cp -f"}
-: ${ECHO="$bs_echo"}
+: ${ECHO="printf %s\n"}
: ${EGREP="$GREP -E"}
: ${FGREP="$GREP -F"}
: ${LN_S="ln -s"}
progpath=$0
# The name of this program.
-progname=`$bs_echo "$progpath" |$SED "$sed_basename"`
+progname=`$ECHO "$progpath" |$SED "$sed_basename"`
# Make sure we have an absolute progpath for reexecution:
case $progpath in
[\\/]*|[A-Za-z]:\\*) ;;
*[\\/]*)
- progdir=`$bs_echo "$progpath" |$SED "$sed_dirname"`
+ progdir=`$ECHO "$progpath" |$SED "$sed_dirname"`
progdir=`cd "$progdir" && pwd`
progpath=$progdir/$progname
;;
{
$debug_cmd
- eval _G_current_value='`$bs_echo $'$1'`'
+ eval _G_current_value='`$ECHO $'$1'`'
_G_delim=`expr "$2" : '\(.\)'`
case $_G_delim$_G_current_value$_G_delim in
IFS=$nl
for _G_line in $_G_message; do
IFS=$func_echo_IFS
- $bs_echo "$progname: $_G_line"
+ $ECHO "$progname: $_G_line"
done
IFS=$func_echo_IFS
}
for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan"
do
test -n "$_G_tc" && {
- _G_esc_tc=`$bs_echo "$_G_tc" | $SED "$sed_make_literal_regex"`
- _G_indent=`$bs_echo "$_G_indent" | $SED "s|$_G_esc_tc||g"`
+ _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"`
+ _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"`
}
done
_G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes
IFS=$nl
for _G_line in $_G_message; do
IFS=$func_echo_infix_1_IFS
- $bs_echo "$_G_prefix$tc_bold$_G_line$tc_reset" >&2
+ $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2
_G_prefix=$_G_indent
done
IFS=$func_echo_infix_1_IFS
{
$debug_cmd
- eval ${1}_hooks='`$bs_echo "\$'$1'_hooks" |$SED "s| '$2'||"`'
+ eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`'
}
{
$debug_cmd
- eval \$bs_echo \""Usage: $usage"\"
- eval \$bs_echo \""$fatal_help"\"
+ eval \$ECHO \""Usage: $usage"\"
+ eval \$ECHO \""$fatal_help"\"
func_error ${1+"$@"}
exit $EXIT_FAILURE
}
$debug_cmd
func_usage_message
- $bs_echo "$long_help_message"
+ $ECHO "$long_help_message"
exit 0
}
$debug_cmd
func_usage_message
- $bs_echo "Run '$progname --help |${PAGER-more}' for full usage"
+ $ECHO "Run '$progname --help |${PAGER-more}' for full usage"
exit 0
}
{
$debug_cmd
- eval \$bs_echo \""Usage: $usage"\"
+ eval \$ECHO \""Usage: $usage"\"
echo
$SED -n 's|^# ||
/^Written by/{
h
/^Written by/q' < "$progpath"
echo
- eval \$bs_echo \""$usage_message"\"
+ eval \$ECHO \""$usage_message"\"
}
$require_configure_ac
$require_gnu_m4
- _G_m4_traces=`$bs_echo "--trace=$1" |$SED 's%,% --trace=%g'`
- _G_re_macros=`$bs_echo "($1)" |$SED 's%,%|%g'`
+ _G_m4_traces=`$ECHO "--trace=$1" |$SED 's%,% --trace=%g'`
+ _G_re_macros=`$ECHO "($1)" |$SED 's%,%|%g'`
_G_macros="$1"; shift
test $# -gt 0 || {
set dummy $configure_ac
# Save the command pipeline results for further use by callers of
# this function.
- func_extract_trace_result=`$bs_echo "$_G_mini" \
+ func_extract_trace_result=`$ECHO "$_G_mini" \
|$M4 -daq --prefix $_G_m4_traces - "$@" 2>&1 1>/dev/null \
|$SED -n -e "$_G_transform"`
}
$debug_cmd
func_extract_trace ${1+"$@"}
- func_extract_trace_first_result=`$bs_echo "$func_extract_trace_result" \
+ func_extract_trace_first_result=`$ECHO "$func_extract_trace_result" \
|$SED -e 's|:.*$||g' -e 1q`
}
# Display results.
test -n "$func_extract_trace_result" \
- && $bs_echo "$func_extract_trace_result"
+ && $ECHO "$func_extract_trace_result"
# The End.
exit $EXIT_SUCCESS
# ...and AM_INIT_AUTOMAKE is declared...
test -n "$func_extract_trace_result" && {
- automake_version=`$bs_echo "$func_extract_trace_result" \
+ automake_version=`$ECHO "$func_extract_trace_result" \
|$SED -e 's|[^0-9]*||' -e 's| .*$||'`
test -n "$automake_version" || automake_version=-
$debug_cmd
_G_width=`expr "$2" - 1`
- func_strpad_result=`$bs_echo "$1" |$SED '
+ func_strpad_result=`$ECHO "$1" |$SED '
:a
s|^.\{0,'"$_G_width"'\}$|&'"$3"'|
ta
$debug_cmd
_G_width=`expr "$2" - 1`
- func_strrpad_result=`$bs_echo "$1" |$SED '
+ func_strrpad_result=`$ECHO "$1" |$SED '
:a
s|^.\{0,'"$_G_width"'\}$|'"$3"'&|
ta
# Strip off the indent, and make a divider with '-' chars, then
# reindent.
- _G_divider=`$bs_echo "$func_strrow_result" \
+ _G_divider=`$ECHO "$func_strrow_result" \
|$SED 's|[^ ]|-|g
:a
s|- |--|g
|| func_verbose "inserting '$str' into '$file'"
linesold=`func_gitignore_entries "$file" |wc -l`
- linesnew=`{ $bs_echo "$str"; cat "$file"; } \
+ linesnew=`{ $ECHO "$str"; cat "$file"; } \
|func_gitignore_entries |sort -u |wc -l`
test "$linesold" -eq "$linesnew" \
|| { $SED "1i\\$nl$str$nl" "$file" >"$file"T && mv "$file"T "$file"; } \
# Rather than uncomment the sed script in-situ, strip the comments
# programatically before passing the result to $SED for evaluation.
- sed_get_version=`$bs_echo '# extract version within line
+ sed_get_version=`$ECHO '# extract version within line
s|.*[v ]\{1,\}\([0-9]\{1,\}\.[.a-z0-9-]*\).*|\1|
t done
IFS=$nl
for _G_line in $_G_message; do
IFS=$func_echo_IFS
- $bs_echo "$progname${opt_mode+: $opt_mode}: $_G_line"
+ $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line"
done
IFS=$func_echo_IFS
}
# ...and AM_INIT_AUTOMAKE is declared...
test -n "$func_extract_trace_result" && {
- automake_version=`$bs_echo "$func_extract_trace_result" \
+ automake_version=`$ECHO "$func_extract_trace_result" \
|$SED -e 's|[^0-9]*||' -e 's| .*$||'`
test -n "$automake_version" || automake_version=-
$debug_cmd
_G_width=`expr "$2" - 1`
- func_strpad_result=`$bs_echo "$1" |$SED '
+ func_strpad_result=`$ECHO "$1" |$SED '
:a
s|^.\{0,'"$_G_width"'\}$|&'"$3"'|
ta
$debug_cmd
_G_width=`expr "$2" - 1`
- func_strrpad_result=`$bs_echo "$1" |$SED '
+ func_strrpad_result=`$ECHO "$1" |$SED '
:a
s|^.\{0,'"$_G_width"'\}$|'"$3"'&|
ta
# Strip off the indent, and make a divider with '-' chars, then
# reindent.
- _G_divider=`$bs_echo "$func_strrow_result" \
+ _G_divider=`$ECHO "$func_strrow_result" \
|$SED 's|[^ ]|-|g
:a
s|- |--|g
|| func_verbose "inserting '$str' into '$file'"
linesold=`func_gitignore_entries "$file" |wc -l`
- linesnew=`{ $bs_echo "$str"; cat "$file"; } \
+ linesnew=`{ $ECHO "$str"; cat "$file"; } \
|func_gitignore_entries |sort -u |wc -l`
test "$linesold" -eq "$linesnew" \
|| { $SED "1i\\$nl$str$nl" "$file" >"$file"T && mv "$file"T "$file"; } \
# Rather than uncomment the sed script in-situ, strip the comments
# programatically before passing the result to $SED for evaluation.
- sed_get_version=`$bs_echo '# extract version within line
+ sed_get_version=`$ECHO '# extract version within line
s|.*[v ]\{1,\}\([0-9]\{1,\}\.[.a-z0-9-]*\).*|\1|
t done
$require_configure_ac
$require_gnu_m4
- _G_m4_traces=`$bs_echo "--trace=$1" |$SED 's%,% --trace=%g'`
- _G_re_macros=`$bs_echo "($1)" |$SED 's%,%|%g'`
+ _G_m4_traces=`$ECHO "--trace=$1" |$SED 's%,% --trace=%g'`
+ _G_re_macros=`$ECHO "($1)" |$SED 's%,%|%g'`
_G_macros="$1"; shift
test $# -gt 0 || {
set dummy $configure_ac
# Save the command pipeline results for further use by callers of
# this function.
- func_extract_trace_result=`$bs_echo "$_G_mini" \
+ func_extract_trace_result=`$ECHO "$_G_mini" \
|$M4 -daq --prefix $_G_m4_traces - "$@" 2>&1 1>/dev/null \
|$SED -n -e "$_G_transform"`
}
$debug_cmd
func_extract_trace ${1+"$@"}
- func_extract_trace_first_result=`$bs_echo "$func_extract_trace_result" \
+ func_extract_trace_first_result=`$ECHO "$func_extract_trace_result" \
|$SED -e 's|:.*$||g' -e 1q`
}
# Display results.
test -n "$func_extract_trace_result" \
- && $bs_echo "$func_extract_trace_result"
+ && $ECHO "$func_extract_trace_result"
# The End.
exit $EXIT_SUCCESS
}
-# There are still modern systems that have problems with 'echo' mis-
-# handling backslashes, among others, so make sure $bs_echo is set to a
-# command that correctly interprets backslashes.
-# (this code from Autoconf 2.68)
-
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-bs_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-bs_echo=$bs_echo$bs_echo$bs_echo$bs_echo$bs_echo
-bs_echo=$bs_echo$bs_echo$bs_echo$bs_echo$bs_echo$bs_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $bs_echo`" = "X$bs_echo") 2>/dev/null; then
- bs_echo='print -r --'
- bs_echo_n='print -rn --'
-elif (test "X`printf %s $bs_echo`" = "X$bs_echo") 2>/dev/null; then
- bs_echo='printf %s\n'
- bs_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $bs_echo) 2>/dev/null`" = "X-n $bs_echo"; then
- bs_echo_body='eval /usr/ucb/echo -n "$1$nl"'
- bs_echo_n='/usr/ucb/echo -n'
- else
- bs_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- bs_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$nl"*)
- expr "X$arg" : "X\\(.*\\)$nl";
- arg=`expr "X$arg" : ".*$nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$nl"
- '
- export bs_echo_n_body
- bs_echo_n='sh -c $bs_echo_n_body bs_echo'
- fi
- export bs_echo_body
- bs_echo='sh -c $bs_echo_body bs_echo'
-fi
-
-
# We want to be able to use the functions in this file before configure
# has figured out where the best binaries are kept, which means we have
# to search for them ourselves - except when the results are already set
_G_path_prog=$1
_G_count=0
- $bs_echo_n 0123456789 >conftest.in
+ printf 0123456789 >conftest.in
while :
do
cat conftest.in conftest.in >conftest.tmp
mv conftest.tmp conftest.in
cp conftest.in conftest.nl
- $bs_echo '' >> conftest.nl
+ echo '' >> conftest.nl
"$_G_path_prog" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break
diff conftest.out conftest.nl >/dev/null 2>&1 || break
_G_count=`expr $_G_count + 1`
_G_count=0
_G_path_prog_max=0
- $bs_echo_n 0123456789 >conftest.in
+ printf 0123456789 >conftest.in
while :
do
cat conftest.in conftest.in >conftest.tmp
mv conftest.tmp conftest.in
cp conftest.in conftest.nl
- $bs_echo 'GREP' >> conftest.nl
+ echo 'GREP' >> conftest.nl
"$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' <conftest.nl >conftest.out 2>/dev/null || break
diff conftest.out conftest.nl >/dev/null 2>&1 || break
_G_count=`expr $_G_count + 1`
# in the command search PATH.
: ${CP="cp -f"}
-: ${ECHO="$bs_echo"}
+: ${ECHO="printf %s\n"}
: ${EGREP="$GREP -E"}
: ${FGREP="$GREP -F"}
: ${LN_S="ln -s"}
progpath=$0
# The name of this program.
-progname=`$bs_echo "$progpath" |$SED "$sed_basename"`
+progname=`$ECHO "$progpath" |$SED "$sed_basename"`
# Make sure we have an absolute progpath for reexecution:
case $progpath in
[\\/]*|[A-Za-z]:\\*) ;;
*[\\/]*)
- progdir=`$bs_echo "$progpath" |$SED "$sed_dirname"`
+ progdir=`$ECHO "$progpath" |$SED "$sed_dirname"`
progdir=`cd "$progdir" && pwd`
progpath=$progdir/$progname
;;
{
$debug_cmd
- eval _G_current_value='`$bs_echo $'$1'`'
+ eval _G_current_value='`$ECHO $'$1'`'
_G_delim=`expr "$2" : '\(.\)'`
case $_G_delim$_G_current_value$_G_delim in
IFS=$nl
for _G_line in $_G_message; do
IFS=$func_echo_IFS
- $bs_echo "$progname: $_G_line"
+ $ECHO "$progname: $_G_line"
done
IFS=$func_echo_IFS
}
for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan"
do
test -n "$_G_tc" && {
- _G_esc_tc=`$bs_echo "$_G_tc" | $SED "$sed_make_literal_regex"`
- _G_indent=`$bs_echo "$_G_indent" | $SED "s|$_G_esc_tc||g"`
+ _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"`
+ _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"`
}
done
_G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes
IFS=$nl
for _G_line in $_G_message; do
IFS=$func_echo_infix_1_IFS
- $bs_echo "$_G_prefix$tc_bold$_G_line$tc_reset" >&2
+ $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2
_G_prefix=$_G_indent
done
IFS=$func_echo_infix_1_IFS
{
$debug_cmd
- eval ${1}_hooks='`$bs_echo "\$'$1'_hooks" |$SED "s| '$2'||"`'
+ eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`'
}
{
$debug_cmd
- eval \$bs_echo \""Usage: $usage"\"
- eval \$bs_echo \""$fatal_help"\"
+ eval \$ECHO \""Usage: $usage"\"
+ eval \$ECHO \""$fatal_help"\"
func_error ${1+"$@"}
exit $EXIT_FAILURE
}
$debug_cmd
func_usage_message
- $bs_echo "$long_help_message"
+ $ECHO "$long_help_message"
exit 0
}
$debug_cmd
func_usage_message
- $bs_echo "Run '$progname --help |${PAGER-more}' for full usage"
+ $ECHO "Run '$progname --help |${PAGER-more}' for full usage"
exit 0
}
{
$debug_cmd
- eval \$bs_echo \""Usage: $usage"\"
+ eval \$ECHO \""Usage: $usage"\"
echo
$SED -n 's|^# ||
/^Written by/{
h
/^Written by/q' < "$progpath"
echo
- eval \$bs_echo \""$usage_message"\"
+ eval \$ECHO \""$usage_message"\"
}