reglas de patrón de archivo sin recetas

Estoy observando un comportamiento interesante de make y me pregunto si hay una explicación razonable además de un error en gmake.

Digamos que tenemos lo siguiente en makefile:

%-animal:
        echo "$* is an animal"

%-fox: %-fox-animal

%-wolf: %-wolf-animal

La diferencia entre los dos últimos objetivos es que "% -wolf" no tiene ninguna receta, y "% -fox" tiene una receta vacía (es decir, solo una línea con una pestaña al principio).

Cuando intentamos ejecutar las reglas, esto es lo que sucede:

[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

es decir, la regla de patrón que tiene una receta (aunque está vacía) funciona, la que no la tiene. ¿Me estoy perdiendo algo en la forma en que se supone que funciona?

Respuestas a la pregunta(1)

Su respuesta a la pregunta