Eu tenho um Makefile
que diz:
aaa:bbb
echo 456
bbb:
echo 123
Quando não há nenhum bbb
arquivo no diretório, essas duas regras serão executadas independentemente de haver um aaa
arquivo ou não.
Mas por que?
Eu tenho um Makefile
que diz:
aaa:bbb
echo 456
bbb:
echo 123
Quando não há nenhum bbb
arquivo no diretório, essas duas regras serão executadas independentemente de haver um aaa
arquivo ou não.
Mas por que?
Você disse que isso
aaa
dependebbb
. Isso significa que para criar ou atualizaraaa
, obbb
alvo precisa ser definido.Se
aaa
ebbb
existirem como arquivos no diretório atual, e seaaa
for mais recente quebbb
, então nenhum dos destinos precisará ser reconstruído, mas seaaa
estiver desatualizado em comparação combbb
ou sebbb
estiver faltando ,aaa
será necessário compilá-lo para garantir que esteja atualizado (sebbb
estiver faltando, isso também envolveria a reconstruçãobbb
).O exemplo abaixo mostra que se os dois destinos realmente criarem os arquivos relevantes, então os destinos não serão criados após uma segunda invocação de
make
. Se obbb
arquivo for removido, ambos os destinos serão reconstruídos: