[Top][All Lists]
[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)])
- make AM_MISSING_PROG (more) portable,
Ralf Wildenhues <=