2015-08-12 2 views
0

От docs:определения переменного игнорируется в Makefile

Существует еще одна особенности целевого конкретной переменные: когда вы определяете переменную целевой конкретные это переменное значение также эффекта для всех условий этой цели и все их предварительные условия и т. д. (если эти предпосылки не переопределяют эту переменную с их собственным значением переменной для конкретной цели).

Попытка следующий Makefile:

all:: 
    @: '[email protected]' 

all:: dep; 

dep: 
    echo target is: $(target) 


all : target = all 

.PHONY: all dep 

И подножка:

$ make -j 

я получаю:

echo target is: 
target is: 

Где определение target = all идти?

ответ

0

Если запустить make вместо make -j выход

echo target is: all 
target is: all 

Я не знаю, почему вам нужно указать -j но мое первоначальное предположение, что предоставление -j делают выполняется каждый all рецепт как отдельное задание и, таким образом, переменная target = all является не установлено в ту же работу, которая работает

all:: dep; 

dep: 
    echo target is: $(target) 

, следовательно, почему $target пуста, а выход

echo target is: 
target is: 
Смежные вопросы