|
From: | David Fang |
Subject: | Re: echo vs. printf regression (darwin8) |
Date: | Mon, 16 Aug 2010 13:58:33 -0400 (EDT) |
On 08/16/2010 04:27 PM, Peter O'Gorman wrote:On 08/16/2010 07:37 AM, Paolo Bonzini wrote:On 08/16/2010 12:54 AM, David Fang wrote:Actually, 'pogma' pointed out that this comes from the autoconf macros in libtool.m4, near AC_MSG_CHECKING([how to print strings]). I'm using libtool-2.2.10 right now.I don't understand, is it breaking in Makefiles that you wrote? I don't know of anything in {autoconf,automake,libtool} that would use $ECHO this way.I think it is a namespace problem. What business does libtool have setting vars like ECHO, MV, etc.That's correct. However...If libtool had not unconditionally set ECHO to something other than 'echo', David's Makefiles would have continued to work when he moved from libtool-1.5.x to libtool-2.x.... this doesn't seem to be the case. It looks like David's makefiles were relying on the definition of ECHO that libtool provided, and this is clearly an issue of using an undocumented interface. He, or some package he used, had to explicitly do AC_SUBST([ECHO]), and this is a very strong point against this usage, even if the variable name doesn't show that.
I think we agree that autoconf is not at fault here. For years, I've been using $(ECHO) in Makefile.am's with an AC_CHECK_PROG([ECHO], echo, echo), up through autoconf-2.63, and libtool-2.2.6, but the latest libtool-2.2.10 overrides ECHO in libtool.m4. I don't recall seeing anything wrong with AC_CHECK_PROG(ECHO...), which does the AC_SUBST. It just happens to be done before LT_INIT. If I reorder the macros, can I expect to get back the old behavior, where ECHO is echo from AC_CHECK_PROG?
I leave it up to libtool devs to decide whether/how to fix. Fang David Fang http://www.csl.cornell.edu/~fang/ http://www.achronix.com/
[Prev in Thread] | Current Thread | [Next in Thread] |