Hello Noah, all, * Noah Misch wrote on Sun, Jun 24, 2007 at 09:35:02PM CEST: > On Fri, Jun 22, 2007 at 08:40:14PM +0200, Ralf Wildenhues wrote: > > # Test that AC_SUBST($1) does something sensible. From Ulrich > > # Drepper. > > > > It is broken by this recent (and very sensible) patch against Autoconf: [...] > Some speculation: macros like AC_CHECK_PROG use `AC_SUBST([$1])'. `aclocal' > used to have a home-grown parser for the input files; upon parsing such code, > it > would take the $1 literally, rather than having a macro argument to > substitute. > This test ensured that such constructs did not invalidate the makefile. In > modern times, `aclocal' uses `autoconf' to trace the input files. > > Presuming this speculation is accurate, we can change the test to use that > sort > of substitution from a macro definition, which is hopefully how it was always > used (untested):
Thanks for the suggestion. I like this as well, the reasoning makes sense. > I am skeptical about the second deleted line, because it looks like a > different > usage entirely. Perhaps this sort of thing worked at one point: > > for $1 in a b c; do > AC_SUBST([$]$1) > done Maybe. I added some comments about the old version of the test and applied this to branch-1-10 and HEAD: Cheers, Ralf 2007-07-22 Noah Misch <[EMAIL PROTECTED]> * tests/subst.test: Move the AC_SUBST into a macro definition. Avoids an error from CVS Autoconf. * THANKS: Update. Report by Benoit Sigoure. Index: tests/subst.test =================================================================== RCS file: /cvs/automake/automake/tests/subst.test,v retrieving revision 1.6 diff -u -r1.6 subst.test --- tests/subst.test 7 Jul 2007 11:23:29 -0000 1.6 +++ tests/subst.test 22 Jul 2007 09:02:50 -0000 @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 1996, 2001, 2002 Free Software Foundation, Inc. +# Copyright (C) 1996, 2001, 2002, 2007 Free Software Foundation, Inc. # # This file is part of GNU Automake. # @@ -24,8 +24,14 @@ . ./defs || exit 1 cat >> configure.in << 'END' -AC_SUBST($1) -AC_SUBST([$]$1) dnl this is the actual invocation that was used +dnl This test used to have the following lines, which cannot have +dnl worked sensibly with Autoconf for years, however: +dnl AC_SUBST($1) +dnl AC_SUBST([$]$1) dnl this is the actual invocation that was used +dnl +AC_DEFUN([FOO], +[AC_SUBST([$1])]) +FOO([BAR]) END : > Makefile.am