%% Boris Kolpackov <[EMAIL PROTECTED]> writes: bk> It appears that non-recursive variables don't work well with $(call ).
Make saves time by not checking to see if simple variables need to be expanded again, since they were fully expanded once when they were set. A simple variable is just copied verbatim. Of course, with call, and maybe eval, this might not be such a good idea. However, any change to this will have to be very carefully considered. Make's implicit expansion means you have to tread very lightly in these areas to avoid egregious backward compatibility breaks. bk> Not that it is not possible with recursive variables now (segfaults bk> on cvs head): bk> b = $b bk> $(warning $(call b)) There is a counter that will detect this recursion eventually but it's too big, I guess, for most systems today to hit before they get a stack overflow or similar. Try changing EXP_COUNT_MAX in variable.h to something like 1000 or whatever. We don't allow any recursion at all for most variables, but call needs recursion to be legal to allow for recursive function definitions, so the max depth is something you don't want to make too small or you'll limit the usefulness of call. -- ------------------------------------------------------------------------------- Paul D. Smith <[EMAIL PROTECTED]> Find some GNU make tips at: http://www.gnu.org http://make.paulandlesley.org "Please remain calm...I may be mad, but I am a professional." --Mad Scientist _______________________________________________ Help-make mailing list [EMAIL PROTECTED] http://lists.gnu.org/mailman/listinfo/help-make
