bug-automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

make AM_MISSING_PROG (more) portable


From: Ralf Wildenhues
Subject: make AM_MISSING_PROG (more) portable
Date: Mon, 8 Aug 2005 09:38:32 +0200
User-agent: Mutt/1.4.1i

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

[Prev in Thread] Current Thread [Next in Thread]