После почти трех лет разработки выпущена система сборки GNU Make 4.4, В этой новой версии, помимо исправления ошибок, видно, что были добавлены улучшения, а также повышены требования к среде компиляции.
Те из вас, кто плохо знаком с GNU Make, должны знать, что это это утилита для разработки невероятно популярен тем, что организует компиляцию программных проектов. Make часто используется для управления набором компилятора GCC., но может использоваться для любой задачи разработки программного обеспечения или упаковки.
Поскольку создание больших программ на C/C++ часто включает в себя несколько шагов, необходим такой инструмент, как Make, чтобы убедиться, что все исходные файлы скомпилированы и связаны.. Make также позволяет разработчику контролировать, как упаковываются и устанавливаются вспомогательные файлы, такие как документация, справочные страницы, профили systemd, сценарии запуска и шаблоны конфигурации.
Make не ограничивается такими языками, как C/C++. Веб-разработчики могут использовать GNU Make для выполнения повторяющихся задач, таких как минимизация CSS и JS, а системные администраторы могут автоматизировать задачи обслуживания.
Кроме того, конечные пользователи могут использовать Make для компиляции и установки программного обеспечения, не будучи программистом или экспертом в устанавливаемом программном обеспечении.
Основные новые функции GNU Make 4.4
В этой новой версии, которая представлена, Платформы OS/2 (EMX), AmigaOS, Xenix и Cray устарели., плюс поддержка этих систем будет удалена в следующей версии GNU Make.
Еще одно изменение, которое представлено в новой версии, заключается в том, что повышенные требования к среде сборки, для компиляции GNU Gnulib теперь вам нужен компилятор, поддерживающий элементы стандарта C99.
Помимо этого, добавлена цель сборки .WAIT Специальная функция, позволяющая приостановить запуск сборки определенных целей до завершения сборки других целей.
В то время как .NOTPARALLEL, реализована возможность указывать пререквизиты (файлы, необходимые для создания цели) для последовательного запуска связанных с ними целей (как если бы между каждым предварительным условием было установлено «.WAIT»).
С другой стороны, был добавлен .NOTINTERMEDIATE, который отключает поведение, связанное с использованием промежуточных целей (.INTERMEDIATE) для конкретных файлов, файлов, соответствующих маске, или всего make-файла.
В системах, совместимых с mkfifo, предоставлен новый метод взаимодействия с сервером заданий во время параллельного выполнения. заданий, основанных на использовании именованных каналов, а также была добавлена опция «-jobserver-style=pipe» для возврата старого метода на основе безымянных каналов.
Также отмечается, что расширено использование временных файлов в рабочем процессе (могут возникнуть проблемы, когда система сборки устанавливает альтернативный каталог для временных файлов (TMPDIR) и удаляет содержимое TMPDIR во время компиляции).
Из других изменений которые выделяются из этой новой версии:
- Реализована функция $(let…), позволяющая определять локальные переменные в пользовательских функциях.
- Реализована функция $(intcmp…) для сравнения чисел.
- При использовании опции «-l» (—load-average) количество запускаемых заданий теперь учитывает данные в файле /proc/loadavg о нагрузке на систему.
- Добавлена опция «–shuffle» для перемешивания предварительных требований, позволяющая недетерминированное поведение в параллельных сборках (например, для фазз-тестирования правильности определения предварительных условий в make-файле).
В конце концов если вам интересно узнать об этом больше, вы можете проверить подробности По следующей ссылке.
Как установить GNU Make в Linux?
Для тех, кто заинтересованы в возможности установить этот инструмент, они могут сделать это, выполнив одну из следующих команд:
Для тех, кто пользуется Debian/Ubuntu или некоторые производные от них:
sudo apt install make
В случае пользователей Fedora/RHEL или производные:
yum install make
А для тех, кто пользуется Arch Linux и производные:
sudo pacman -S make