GNU Autoconf был разработан для решения этой самой проблемы:
Autoconf - это расширяемый пакет макросов M4, которые создают сценарии оболочки для автоматической настройки пакетов исходного кода программного обеспечения.Эти сценарии могут адаптировать пакеты для многих типов UNIX-подобных систем без ручного вмешательства пользователя.Autoconf создает сценарий конфигурации для пакета из файла шаблона, в котором перечислены функции операционной системы, которые пакет может использовать, в виде вызовов макросов M4.
Я сам использовал Autoconf для парыпростых проектов.Вы можете взглянуть на исходный код, чтобы узнать, как использовать Autoconf для простого обнаружения функций:
Обратите внимание, что цельAutoconf не должен определять вашу операционную систему.Скорее, он предназначен для обнаружения функций, настроек и т. Д., Которые могут присутствовать или не присутствовать в вашей операционной системе.
Подумайте над вопросом: «Как называется компилятор C на этой платформе?»не "я работаю на Linux или Solaris?"