Make является стандартом де-факто, например, в системах Linux. Это очень сложный инструмент, а также очень мощный инструмент.
Хорошо подходит для изучения того, разрабатываете ли вы C или C ++, особенно если вы нацелены на Linux / * nix.
Одной из особенностей make является то, что вы можете установить зависимости для того, когда перестраивать файл. Например. каждый файл c или c ++ встроен в файл .obj, и, в конце концов, все файлы .obj связаны с исполняемым файлом. Но, возможно, исполняемый файл является статически связанной библиотекой, которая связана с другим исполняемым файлом с другими файлами .obj.
Make может убедиться, что время компиляции максимально короткое, поскольку вы можете определить, что файл c должен компилироваться, только если он или любые зависимые заголовочные файлы новее, чем файл .obj. Поэтому любой шаг компиляции или компоновки выполняется только в том случае, если текущие исходные файлы для этого шага новее целевого файла.
Если вы разрабатываете, например, на C #, вам не нужна такая проверка зависимостей, потому что все файлы .cs сразу скомпилированы в один исполняемый файл.
Итак, вывод заключается в том, что вы должны использовать инструмент сборки, который хорошо подходит для вашего языка программирования.