Я наблюдаю интересное поведение make и мне интересно, есть ли разумное объяснение этому, кроме ошибки в gmake.
Допустим, у нас есть следующее в make-файле:
%-animal:
echo "$* is an animal"
%-fox: %-fox-animal
%-wolf: %-wolf-animal
Разница между двумя последними целями в том, что у "% -wolf" нет никакого рецепта, а у "% -fox" пустой рецепт (то есть просто строка с вкладкой в начале).
Когда мы пытаемся выполнить правила, вот что происходит:
[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
Т.е. правило шаблона, у которого есть рецепт (хотя и пустой), работает, а правило, которого нет. Я что-то упустил, как это должно работать?