Ваш вопрос в основном вопрос мнения.Обратите внимание, что есть несколько средств автоматизации сборки инструментов (не только GNU make ), например, также ниндзя , scons , omake и т. Д. *
Когда вы кодируете в C (или в C ++ ....) какой-то проект, вы можете иметь несколько файлов C (или C ++), которые генерируются изчто-то еще (например, lemon или вашей собственной утилитой ...).Для таких случаев (педантично вы можете назвать их метапрограммирование ), правила шаблонов могут быть полезны (в частности, если у вас есть несколько таких случаев в проекте).В других случаях вы генерируете другие файлы (кроме объектных файлов) из источника C (например, генерируете документацию с помощью doxygen ), и тогда правила шаблона также очень полезны.
Пример большого C ++Проект со многими генераторами кода C ++ является GCC компилятором.И еще, когда (в 2009 году) GCC был написан на C, он уже имел дюжину специализированных программ генерации кода, испускающих некоторый C-код.Для этих случаев могут быть удобны правила шаблонов.
Конечно, правила шаблонов - это роскошь.В принципе, вы можете сгенерировать Makefile
, и он будет содержать простое правило для каждого отдельного файла.(в GCC Makefile
-s генерируется autoconf и automake основанными на вещах ...)
Если вы наблюдаете иИзучите исходный код большинства больших свободных программ проектов, и вы обнаружите, что в большинстве из них есть генераторы для файлов C (или C ++).Поэтому генерация кода на C - это обычная практика (оригинальный Unix конца 1970-х уже делал это).Сегодня некоторые программные проекты генерируют большую часть или даже все (например, CAIA ) своего кода C.