У меня есть расчет A.N
, где каждый шаг зависит от предыдущего шага A.N-1
(кроме первого шага), а также другого результата последовательного вычисления, B.N
. Я хотел бы выразить это отношение в замыкающий файле:make: неявное правило, (tail-) рекурсивно применяется?
A.001: calc.script B.001
$^ > [email protected]
A.%: calc.script B.% A.(%-1) # (%-1) is pseudocode for idea
$^ > [email protected]
я могу получить второе правило работать A.002
, но это не будет работать для A.003
. Подход, который я использовал для псевдокода части выше:
# ... A.001 rule
define dec = $(shell echo $(1)-1|bc|xargs printf '%03d') # want 3 digit #s
.SECONDEXPANSION:
A.%: calc.script B.% A.$$(call dec,$$*)
$$^ > [email protected]
Есть ли поддержка языка для такого подхода? Я смотрю, что у меня есть конструкция $(foreach ..., $(eval $(call ...)))
для создания правил, но я бы предпочел рекурсивный подход.
Получил это - я искал это четкое заявление, так как видел в другом месте намеки на поведение, но не мог его найти. Спасибо. Я просто использую цикл для построения правил, так как у меня есть четко определенный конечный индекс. – Carl