...Файлы Makefile подвержены трудно обнаруживаемым ошибкам из-за того, что пробельные символы могут играть роль при определённых обстоятельствах. Например, в сценариях командной строки команды, передаваемые интерпретатору, должны быть предварены символами табуляции. Если вместо них стоят пробелы, сценарий не заработает.
Другой недостаток утилиты Make заключается в том, что она зависит от интерпретатора команд. Без него она ничего не может делать. В результате файлы Makefile специфичны для операционных систем. Чтобы заставить набор инструментов на основе Make работать в разных дистрибутивах UNIX, нужно приложить много усилий. Файлы Makefile фактически являются внешними файлами DSL (Domain Specific Language - предметно-ориентированный язык), которые не предусматривают расширение базовой системы (помимо определения новых правил), поэтому расширения вынуждены повторно создавать типовые решения без доступа к внутренним структурам данных Make.
Перечисленные проблемы, в сочетании с декларативной программной моделью Make, которая незнакома большинству разработчиков (они больше привыкли к императивному программированию), приводят к тому, что в запускаемых с нуля коммерческих проектах Make редко используется в качестве базового инструмента сборки.