help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to interpret commands between colon and first tab ?


From: Paul Smith
Subject: Re: How to interpret commands between colon and first tab ?
Date: Mon, 23 Nov 2015 12:57:07 -0500

On Mon, 2015-11-23 at 18:46 +0100, Ewan Delanoy wrote:
> > The above introduces a rule "all:" which has no prerequisites and no
> recipe
>  
> But some 70 lines after that "all:", a tab-at-beginning-of-line
> appears,  before the declaration of the next target. It appears as
> follow :

Doesn't matter.  As soon as the first non-whitespace, non-comment line
that doesn't start with a TAB appears, that recipe is ended.

If a line starting with TAB appears in a non-recipe context, it's just
treated as normal whitespace.  It has no special significance to make.

>   CXX_FOR_TARGET_FLAG_TO_PASS = \
> [TAB CHARACTER HERE]    "CXX_FOR_TARGET=$(CXX_FOR_TARGET)"

Well, this is on the line after a backslash newline: backslash newline
continues the current line on the next line.  TAB has no special effect
here at all.  It's just as if you'd written:

 CXX_FOR_TARGET_FLAG_TO_PASS = [TAB CHARACTER HERE] 
"CXX_FOR_TARGET=$(CXX_FOR_TARGET)"

> # CXX_FOR_TARGET is tricky to get right for target libs that require a
> # functional C++ compiler.  When we recurse, if we expand
>   In that situation, this tab does not indicate a recipe then ?
>  
> >These rest are just variable assignments, using the ":=" simple
> variable assignment syntax.
>  
>  Sure, but the thing I wanted to know is whether the command inside
> the  backticks gets executed when the variable is assigned, or not ?
> It would be in  shell syntax. In makefile syntax I don't know  

Well, make doesn't know anything about backticks and doesn't ever do
anything special with them, so the answer is always "no, the command
inside the backticks is not executed when the variable is assigned".

Make ONLY expands variables and functions, which start with "$".  All
other characters are ignored during expansion (except backslash/newline
I guess).





reply via email to

[Prev in Thread] Current Thread [Next in Thread]