Quoting automake/m4/missing.m4:
| # AM_MISSING_PROG(NAME, PROGRAM)
| # ------------------------------
| AC_DEFUN([AM_MISSING_PROG],
| [AC_REQUIRE([AM_MISSING_HAS_RUN])
| $1=${$1-"${am_missing_run}$2"}
| AC_SUBST($1)])

This leads to lines like
| ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}

in the output (expanded from AM_INIT_AUTOMAKE).
This contradicts portability requirements from
  info Autoconf Assignments

because the default value both contains a closing brace and will be
IFS-split later.  In that case it suggests this style:
| test "${var+set}" = set || var='${indirection}'

(aren't there, by the way, superfluous quotes on the right hand side?)
I have not encountered this bug (knowingly) in practice, the broken
shells in question are probably very old, so please use your judgement
on whether this is useful to work around.

Regards,
Ralf

        * m4/missing.m4 (AM_MISSING_PROG): Use portable assignment.

Index: m4/missing.m4
===================================================================
RCS file: /cvs/automake/automake/m4/missing.m4,v
retrieving revision 1.25
diff -u -r1.25 missing.m4
--- m4/missing.m4       9 Jan 2005 14:46:21 -0000       1.25
+++ m4/missing.m4       8 Aug 2005 07:01:05 -0000
@@ -13,7 +13,7 @@
 # ------------------------------
 AC_DEFUN([AM_MISSING_PROG],
 [AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
+test "${$1+set}" = set || $1="${am_missing_run}$2"
 AC_SUBST($1)])
 
 


Reply via email to