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). _______________________________________________ Help-make mailing list Help-make@gnu.org https://lists.gnu.org/mailman/listinfo/help-make