On Mon, 2011-03-07 at 04:53 +0300, Dmitry N. Mikushin wrote:
> > Why did you use $$?
> 
> Well, I think because my understanding of $$ is poor. From manual I
> understood $$ should be issued in cases when we want to evaluate a
> variable whose name is constructed from other tokens. Why it is not
> the case here?

That's not really what $$ is for.  $$ is, very simply, escaping the "$"
so that make does not expand the value.

What is happening is that at various points in a makefile content may be
expanded more than one time.  In those situations you have to think
about whether you want variables/functions to be expanded the first time
through, or the second time.  If the latter, you have to escape the "$"
so the first expansion doesn't interpret it and the second one will.

In order to understand when you need $ and when you need $$ you need to
understand expansion, when it happens, and why you might want to defer
it until next time.

Typically the only time you need to worry about this is when (a) you're
using $(call ...) and sometimes $(eval ...), or (b) when you're using
secondary expansion targets.

You're not using either here.

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <[email protected]>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.mad-scientist.net
 "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

Reply via email to