Makefile — это текстовый файл, используемый утилитой 'make' (и аналогичными инструментами автоматизации сборки) для управления компиляцией и построением программных проектов. Он содержит набор правил, которые определяют зависимости между исходными файлами и команды, необходимые для преобразования этих исходных файлов в исполняемые программы или библиотеки. Каждое правило, как правило, состоит из цели (целевого файла, который необходимо построить), списка предварительных условий (зависимостей) и рецепта (команд оболочки), необходимых для создания цели, если какое-либо предварительное условие новее самой цели. Файлы Makefile имеют решающее значение в разработке на C/C++ и многих других компилируемых языках для управления сложными процессами сборки, гарантируя, что происходят только необходимые перекомпиляции, что значительно экономит время в циклах разработки. Они позволяют разработчикам определять пользовательские шаги сборки, очищать сгенерированные файлы и автоматизировать процедуры развертывания. Синтаксис строго специфичен и полагается на символы табуляции (а не пробелы) для отступа строк рецепта, что является распространенным источником ошибок для новичков в этом инструменте.