Мне интересно, есть ли какие-либо потенциальные условия гонки при использовании уловок по целям.Так, например, если у меня есть:
all1:
$(eval X:=1)
$(eval Y:=1)
@echo "[$@] X: $(X), Y: $(Y)"
all2:
$(eval Y:=2);
$(eval X:=2);
@echo "[$@] X: $(X), Y: $(Y)"
и затем выполнено
make all all2 -j
Гарантированы ли X
и Y
одинаковые значения для одной и той же цели, или можетодин экземпляр целевого расширения потенциально может набросаться на другой по мере его расширения?
(Справочная информация - я отлаживаю несовместимую ошибку make в некоторых make-файлах, которые используют evals для установки некоторых общих переменных для многих целей, и ямне интересно, может ли это быть способствующим фактором)