regras de padrão de makefile sem receitas
Estou observando um comportamento interessante do make e me pergunto se existe uma explicação razoável além de um bug no gmake.
Digamos que temos o seguinte no makefile:
%-animal:
echo "$* is an animal"
%-fox: %-fox-animal
%-wolf: %-wolf-animal
A diferença entre os dois últimos destinos é que "% -wolf" não tem receita e "% -fox" possui uma receita vazia (ou seja, apenas uma linha com uma guia no início).
Quando tentamos executar as regras, eis o que acontece:
[root@cv19 tmp]# make freddy-animal
echo "freddy is an animal"
freddy is an animal
[root@cv19 tmp]# make freddy-wolf
make: *** No rule to make target `freddy-wolf'. Stop.
[root@cv19 tmp]# make freddy-fox
echo "freddy-fox is an animal"
freddy-fox is an animal
ou seja, a regra padrão que possui uma receita (embora uma vazia) funcione, a regra que não possui. Estou perdendo alguma coisa da maneira que deveria funcionar?