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)])