Eu tenho isto:
.PHONY: check
check:
script-returning-nearly-always-zero
obj2.img: obj1.img check
make-obj2-from-obj1
Então, a lógica é que eu quero gerar novamente obj2.img
, se for mais antigo que obj1 (ou nem existir). No entanto, quero um erro se o alvo de "verificação" falhar.
Agora meu problema é que o gerador de obj2.img
sempre roda. Eu acho que pode ser porque check
é .PHONY
.
De alguma forma, posso pedir ao make para gerar novamente obj2.img
apenas se obj1.img
for mais recente?
A única maneira de fazer isso é não ter
check
como pré-requisito :Em vez disso, invoque
check
explicitamente como um alvo Make:Assim, se
obj2.img
existir e não for mais antigo queobj1.img
, não será refeito; caso contrário, primeiro a verificação será executada e, se for bem-sucedida,make-obj2-from-obj1
.Isso também tem o benefício colateral de poder forçar uma reconstrução mesmo se a verificação falhar, usando a
-k
opção.