Переносимость Makefile напрямую не связана с операционной системой, но связана с реализацией make на рассматриваемой платформе. (Таким образом, существует косвенная связь в том, что реализация make может быть угадана (но НЕ точно) из ОС.) В общем, это сложная проблема, для которой было предложено много решений. Возможно, вы захотите взглянуть на automake, который сгенерирует для вас переносимые файлы сборки. Однако решение automake проблемы установки флагов для разных unixen может не понравиться вам, поскольку решение (в основном) «не делайте этого». Философия заключается не в настройке параметров на основе платформы, а в том, чтобы определить, какие флаги необходимы, основываясь на функциональности, предоставляемой хостом или пользователем во время настройки. Одним из удобных решений на основе autoconf / automake для задачи назначения флагов на основе платформы является наличие отдельного файла для каждой из ваших платформ, который назначает CFLAGS во время настройки, и этот файл должен быть указан в переменной среды CONFIG_SITE пользователя, выполняющего configure , Вы можете назначить CONFIG_SITE в сценарии входа пользователя в зависимости от платформы. (т. е. отодвиньте проблему от настройки / изготовления и в настройку входа в систему) Это делает прозрачным назначение для пользователя, создающего программное обеспечение. (прозрачный, но легко переопределяемый).