Современные средства сборки (cmake, autotools) поддерживают фантастическое количество фич. Детектирование возможностей системы, поиск заголовочных файлов, размеров типов в памяти и умные решения по поводу компиляции, все это пишется например в config.h и готово для построения сложных ifdef в коде.
Если вы С++ разработчик, то верно ли будет сказать следующее: для 90% приложений для сборки достаточно было бы просто детектирование флагов через pkg-config, поддержка --with/--without флагов и просто ручное указание флагов для конкретного файла (чтобы вставить костыль)?
Доп вопрос: какие фичи используете вы для сборки собственноручно написаного софта (в том числе на работе) и эти фичи критичны для вас?