Please try to avoid top-posting, and use quoting so we can see what parts of the message are added by you. Thanks!
On Thu, 2011-01-20 at 11:14 -0800, Mark Galeck (CW) wrote: > Paul, I am actually happy to say that I did follow the same logic as > you had carefully explain, and I appreciate very much taking your > time. > > So, what I don't understand, is that, when make expands FOOBAR, in the > inner call to "call", then yes the result is the empty string, but as > a side effect, "bar" should be printed to stdout, because $(FOO) is > expadnded to "bar" and that is given to info. Because the value of the variable FOO is not set until later, when the eval runs. The definition is: define FOOBAR FOO := bar $(info $(FOO)) endef The expansions of FOOBAR happen in call, but this just treats the value of the variable as a string, it doesn't interpret it. That's what eval is for. So when call expands this it is doing it BEFORE eval, and hence before the "FOO := bar" line is evaluated, and hence FOO has no value and hence $(info $(FOO)) prints nothing. _______________________________________________ Help-make mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-make
