GNU make 3.82

Все новости из мира ОС Linux, BSD, Unix
Post Reply
User avatar
Raven
Бородатый сис
Бородатый сис
Posts: 2794
Joined: 03 Mar 2010, 15:12
ОС: RHEL 8
Location: Из серверной

GNU make 3.82

Post by Raven » 21 Aug 2010, 14:07

Через 4 года от последнего релиза обновилась утилита make, управляющая сборкой и компоновкой обьектных, бинарных объектов, а также созданием другого рода файлов при сборке программных проектов.

Обновление носит значимый характер и включает некоторые несовместимые с предыдущими версиями изменения.
  • анонсировано удаление функций сортировки по маске, рекомендуется пользоваться $(sort ...)
  • ввиду изменения в 2008 году стандарта POSIX , теперь требуется вызывать шелл с ключом -e , подобное может быть несовместимо с многими имеющимися makefile's и пока потребует указания переменных .POSIX или .SHELLFLAGS
  • переменная $? теперь содержит все предзависимости (даже те которых пока не существует), ранее переменная содержала только существующие цели.
  • расширены директивы парсера, анонсированы три возможные несовместимости: 1) предзависимость содержащая = больше не может заканчиваться обратным слешем, нужно создавать переменную с = и использовать ее в правилах для цели. 2) в именах переменных более недопустимы пробелы. 3) прямые цели (explicit target) и цели по шаблону (pattern target) теперь не могут сосуществовать в одном правиле сборки
  • правила для переменных и правил шаблонов теперь будут применяться по наиболее короткому пути, а не в порядке их определения. Определяется ключем shortest-stem в переменной .FEATURES
  • поиск библиотек теперь производиться также как его делает компоновщик (ранее для -lfoo просматривались libfoo.so в текущем каталоге, путях vpath и системных каталогах, потом производился поиск статической библиотеки по этим же путям, теперь один и тот же путь будет проверяться сначала на libfoo.so, а потом на libfoo.a)
из других изменений:
  • новый ключ командной строки --eval=STRING, идентичен директиве $(eval ...), будет обработан после определения правил и переменных по умолчанию, но перед обработкой любых makefile
  • новая специальная переменная .RECIPEPREFIX позволяет переопределить начало рецепта (recipe introduction) с табуляции (tab) на что-то другое
  • новая специальная переменная .SHELLFLAGS позволяет управлять вызовами шелла, по умолчанию это будет ключ -с или -ec, если установлена переменная .POSIX
  • новая специальная цель .ONESHELL укажет make вызвать шелл и вызвать команду сборки всего рецепта (recipe) вне зависимости от числа строк в нем. Для совместимости с POSIX шеллами контрольные символы "@", "+" и "-" будут отфильтрованы.
  • модификатор переменных private запретит наследование этой переменной в предзависимостях
    директива undefine (для удаления переменной)
  • обработчик теперь будет воспринимать множественные модификаторы export, override, private на одной строке и в любом порядке, также можно создавать цели и переменные с такими именами
  • директива define теперь разрешает использовать оператор назначения переменной, что особенно облегчает работу с многострочными переменными
  • Исправлены многочисленные ошибки
Анонс

Источник
Я не злопамятный, я просто часто ковыряю логи
Post Reply

Return to “Новости *nix”