Make- основные сведения
make — утилита предназначенная для автоматизации преобразования файлов из одной формы в другую.
Используется в Linux и является встроенной системой сборки.
Для описания файлов и правил преобразования используется файл/скрипт makefile.
На самом деле в linux makefile может собираться при помощи целой группы утилит (Autotools)
На их выходе получаются скрипт configure и makefile
Запустив makefile мы можем получить объектные файлы и после линковки исполняемые файлы (физически это можно делать «в 1 цели»)
Как создается исполняемый файл (упрощенно)
Исполняемый файл генерируется из объектных файлов, а объектные файлы генерируются из исходников с помощью компилятора (транслятора)
В виде схемы это можно представить так:
{исходные файлы} -> [компиляция] -> {объектные файлы}-> [линковка] -> {исполнимые файлы}
Также можно создавать makefile для отдельных частей проекта (т.е. реализуется некоторая модульность ПО) и эти makefile включать в состав «главного» makefile.
Минусы make
– проверка по всем форматам (см. встроенные правила)
— многократная проверка при перерестных make файлах
т.е. если
makefile A1 зависит от B1 а он зависит от C
и
makefile A2 зависит от B2 а он зависит от C
то будет каждый раз проверятся все в makefile C
-make НЕ кроплатформенный, но на его основе рабоает CMake (если точнее, то CMake в зависимости от платформы вызывает ту или иную систему сборки) + имеет некоторые надстройки.