Ответ 1
GNU Make и POSIX Создайте общий ядро, чтобы GNU Make понимал make файлы, предназначенные для POSIX Make, и интерпретировал их одинаково - за очень небольшим исключением. Однако многие GNU Make файлы используют функции, доступные только в GNU Make. Иногда это сознательно и сознательно; иногда это не так (и "иногда это не проблема" ). Я меньше знаком с Microsoft nmake; Я полагаю, что он, вероятно, приблизится к семантике POSIX Make в своей основе, но у нее будет свой собственный расходящийся набор расширений.
Вообще говоря, что такие программы, как autoconf, близки к портативным Makefiles.
Основными задачами, которые следует избегать использования GNU Make, являются все расширенные функциональные обозначения для сопоставления имен файлов (макросов) в полезные значения. Хотя они, несомненно, полезны, они также являются ловушкой для переносимости.
Обозначения ".x" для правил суффикса не определены POSIX - они распознаются как общее расширение:
Интерпретация целей, содержащих символы
'%'
и'"'
, определяется реализацией.