Hello everyone,
I observed that build-aux/bootstrap uses $(command) for command
substitution which is known to be less portable than `command`.[1]
Is it on purpose? Thanks in advance.
Regards,
Akash Rawal.
[1]
https://www.gnu.org/software/autoconf/manual/autoconf-2.63/html_node/Shell-Substitutions.html#Shell-Substitutions
diff --git a/build-aux/bootstrap b/build-aux/bootstrap
index 932ff85e7..1bdf332f8 100755
--- a/build-aux/bootstrap
+++ b/build-aux/bootstrap
@@ -88,7 +88,7 @@ warnf_ ()
nl='
'
case $* in
- *$nl*) me_=$(printf "$me"|tr "$nl|" '??')
+ *$nl*) me_=`printf "$me"|tr "$nl|" '??'`
printf "$warnf_format_" "$@" | sed "s|^|$me_: |" ;;
*) printf "$me: $warnf_format_" "$@" ;;
esac >&2
@@ -161,7 +161,7 @@ extract_package_name='
p
}
'
-package=$(sed -n "$extract_package_name" configure.ac) \
+package=`sed -n "$extract_package_name" configure.ac` \
|| die 'cannot find package name in configure.ac'
gnulib_name=lib$package
@@ -332,12 +332,12 @@ insert_if_absent() {
str=$2
test -f $file || touch $file
test -r $file || die "Error: failed to read ignore file: $file"
- duplicate_entries=$(gitignore_entries $file | sort | uniq -d)
+ duplicate_entries=`gitignore_entries $file | sort | uniq -d`
if [ "$duplicate_entries" ] ; then
die "Error: Duplicate entries in $file: " $duplicate_entries
fi
- linesold=$(gitignore_entries $file | wc -l)
- linesnew=$( { echo "$str"; cat $file; } | gitignore_entries | sort -u | wc
-l)
+ linesold=`gitignore_entries $file | wc -l`
+ linesnew=` { echo "$str"; cat $file; } | gitignore_entries | sort -u | wc -l`
if [ $linesold != $linesnew ] ; then
{ echo "$str" | cat - $file > $file.bak && mv $file.bak $file; } \
|| die "insert_if_absent $file $str: failed"
@@ -354,7 +354,7 @@ insert_vc_ignore() {
# A .gitignore entry that does not start with '/' applies
# recursively to subdirectories, so prepend '/' to every
# .gitignore entry.
- pattern=$(echo "$pattern" | sed s,^,/,);;
+ pattern=`echo "$pattern" | sed s,^,/,`;;
esac
insert_if_absent "$vc_ignore_file" "$pattern"
}
@@ -391,8 +391,8 @@ sort_ver() { # sort -V is not generally available
# split on '.' and compare each component
i=1
while : ; do
- p1=$(echo "$ver1" | cut -d. -f$i)
- p2=$(echo "$ver2" | cut -d. -f$i)
+ p1=`echo "$ver1" | cut -d. -f$i`
+ p2=`echo "$ver2" | cut -d. -f$i`
if [ ! "$p1" ]; then
echo "$1 $2"
break
@@ -405,7 +405,7 @@ sort_ver() { # sort -V is not generally available
elif [ "$p2" -gt "$p1" ] 2>/dev/null; then # numeric comparison
echo "$1 $2"
else # numeric, then lexicographic comparison
- lp=$(printf "$p1\n$p2\n" | LANG=C sort -n | tail -n1)
+ lp=`printf "$p1\n$p2\n" | LANG=C sort -n | tail -n1`
if [ "$lp" = "$p2" ]; then
echo "$1 $2"
else
@@ -457,7 +457,7 @@ check_versions() {
$use_git || continue
fi
# Honor $APP variables ($TAR, $AUTOCONF, etc.)
- appvar=$(echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_')
+ appvar=`echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_'`
test "$appvar" = TAR && appvar=AMTAR
case $appvar in
GZIP) ;; # Do not use $GZIP: it contains gzip options.
@@ -500,12 +500,12 @@ check_versions() {
fi
else
# Require app to produce a new enough version string.
- inst_ver=$(get_version $app)
+ inst_ver=`get_version $app`
if [ ! "$inst_ver" ]; then
warn_ "Error: '$app' not found"
ret=1
else
- latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2)
+ latest_ver=`sort_ver $req_ver $inst_ver | cut -d' ' -f2`
if [ ! "$latest_ver" = "$inst_ver" ]; then
warnf_ '%s\n' \
"Error: '$app' version == $inst_ver is too old" \
@@ -580,7 +580,7 @@ fi
# Warn the user if autom4te appears to be broken; this causes known
# issues with at least gettext 0.18.3.
-probe=$(echo 'm4_quote([hi])' | autom4te -l M4sugar -t 'm4_quote:$%' -)
+probe=`echo 'm4_quote([hi])' | autom4te -l M4sugar -t 'm4_quote:$%' -`
if test "x$probe" != xhi; then
warn_ "WARNING: your autom4te wrapper eats stdin;"
warn_ "if bootstrap fails, consider upgrading your autotools"
@@ -613,7 +613,7 @@ git_modules_config () {
}
if $use_git; then
- gnulib_path=$(git_modules_config submodule.gnulib.path)
+ gnulib_path=`git_modules_config submodule.gnulib.path`
test -z "$gnulib_path" && gnulib_path=gnulib
fi
@@ -660,7 +660,7 @@ case ${GNULIB_SRCDIR--} in
# Older git can't clone into an empty directory.
rmdir "$gnulib_path" 2>/dev/null
git clone --reference "$GNULIB_SRCDIR" \
- "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \
+ "`git_modules_config submodule.gnulib.url`" "$gnulib_path" \
&& git submodule init -- "$gnulib_path" \
&& git submodule update -- "$gnulib_path" \
|| exit $?
@@ -677,7 +677,7 @@ esac
if $bootstrap_sync; then
cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || {
echo "$0: updating bootstrap and restarting..."
- case $(sh -c 'echo "$1"' -- a) in
+ case `sh -c 'echo "$1"' -- a` in
a) ignored=--;;
*) ignored=ignored;;
esac
@@ -697,10 +697,10 @@ download_po_files() {
subdir=$1
domain=$2
echo "$me: getting translations into $subdir for $domain..."
- cmd=$(printf "$po_download_command_format" "$domain" "$subdir")
+ cmd=`printf "$po_download_command_format" "$domain" "$subdir"`
eval "$cmd" && return
# Fallback to HTTP.
- cmd=$(printf "$po_download_command_format2" "$subdir" "$domain")
+ cmd=`printf "$po_download_command_format2" "$subdir" "$domain"`
eval "$cmd"
}
@@ -723,7 +723,7 @@ update_po_files() {
&& ls "$ref_po_dir"/*.po 2>/dev/null |
sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return
- langs=$(cd $ref_po_dir && echo *.po | sed 's/\.po//g')
+ langs=`cd $ref_po_dir && echo *.po | sed 's/\.po//g'`
test "$langs" = '*' && langs=x
for po in $langs; do
case $po in x) continue;; esac
@@ -759,14 +759,14 @@ symlink_to_dir()
# If the destination directory doesn't exist, create it.
# This is required at least for "lib/uniwidth/cjk.h".
- dst_dir=$(dirname "$dst")
+ dst_dir=`dirname "$dst"`
if ! test -d "$dst_dir"; then
mkdir -p "$dst_dir"
# If we've just created a directory like lib/uniwidth,
# tell version control system(s) it's ignorable.
# FIXME: for now, this does only one level
- parent=$(dirname "$dst_dir")
+ parent=`dirname "$dst_dir"`
for dot_ig in x $vc_ignore; do
test $dot_ig = x && continue
ig=$parent/$dot_ig
@@ -794,10 +794,10 @@ symlink_to_dir()
# so that broken tools aren't confused into skipping needed builds. See
# <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00326.html>.
test -h "$dst" &&
- src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 &&
- dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 &&
+ src_ls=`ls -diL "$src" 2>/dev/null` && set $src_ls && src_i=$1 &&
+ dst_ls=`ls -diL "$dst" 2>/dev/null` && set $dst_ls && dst_i=$1 &&
test "$src_i" = "$dst_i" &&
- both_ls=$(ls -dt "$src" "$dst") &&
+ both_ls=`ls -dt "$src" "$dst"` &&
test "X$both_ls" = "X$dst$nl$src" || {
dot_dots=
case $src in
@@ -869,7 +869,7 @@ if test $with_gettext = yes || test $use_libtool = 1; then
# to libtoolize 1.5.22, where the install action was default.
if test $use_libtool = 1; then
install=
- case $($LIBTOOLIZE --help) in
+ case `$LIBTOOLIZE --help` in
*--install*) install=--install ;;
esac
echo "running: $LIBTOOLIZE $install --copy"
@@ -879,7 +879,7 @@ if test $with_gettext = yes || test $use_libtool = 1; then
find . ! -type d -print | sort >$tempbase.1
old_IFS=$IFS
IFS=$nl
- for file in $(comm -13 $tempbase.0 $tempbase.1); do
+ for file in `comm -13 $tempbase.0 $tempbase.1`; do
IFS=$old_IFS
parent=${file%/*}
version_controlled_file "$parent" "$file" || {
@@ -948,7 +948,7 @@ AUTORECONFFLAGS="--verbose --install --force -I $m4_base
$ACLOCAL_FLAGS"
# --no-recursive option had not been invented. Detect that lack and
# omit the option when it's not supported. FIXME in 2017: remove this
# hack when RHEL 5 autotools are updated, or when they become irrelevant.
-case $($AUTORECONF --help) in
+case `$AUTORECONF --help` in
*--no-recursive*) AUTORECONFFLAGS="$AUTORECONFFLAGS --no-recursive";;
esac