Випуск системи збирання GNU Make 4.4

Після майже трьох років розробки відбувся випуск системи складання GNU Make 4.4. Окрім виправлення помилок, у новій версії можна відзначити такі зміни:

  • Оголошено застарілими платформи OS/2 (EMX), AmigaOS, Xenix та Cray, підтримка яких буде припинена у наступному випуску.
  • Підвищено вимоги до складального оточення, для складання GNU Gnulib тепер потрібний компілятор, який підтримує елементи зі стандарту C99.
  • Додана спеціальна збірна мета .WAIT, що дозволяє призупинити запуск складання певних цілей до завершення зборки інших цілей.
  • У спеціальній складальній меті .NOTPARALLEL реалізована можливість вказівки пререквізитів (файлів, необхідних для збирання мети) для послідовного запуску пов'язаних з ними цілей (якби між кожним пререквізитом був виставлений «.WAIT»).
  • Додана спеціальна збірна мета .NOTINTERMEDIATE, що відключає поведінку, пов'язану з використанням проміжних цілей (.INTERMEDIATE), для зазначених файлів, файлів, що підпадають під маску або всього makefile.
  • Реалізована функція $(let …), що дозволяє визначати локальні змінні в функціях користувача.
  • Реалізовано функцію $(intcmp...) для порівняння чисел.
  • При використанні опції «-l» (—load-average) при визначенні числа робіт, що запускаються, тепер враховуються дані з файлу /proc/loadavg про навантаження на систему.
  • Додано опцію «-shuffle» для перемішування пререквізитів, що дозволяє домогтися недетермінованої поведінки при розпаралеленому складанні (наприклад, для fuzzing тестування коректності визначення пререквізитів в makefile).
  • На системах з підтримкою mkfifo забезпечено використання нового методу взаємодії з jobserver при паралельному виконанні робіт, що базується на використанні іменованих каналів. Для повернення старого методу на основі неіменованих каналів запропоновано опцію «-jobserver-style=pipe».
  • Розширено застосування тимчасових файлів у процесі роботи (можуть виникнути проблеми при виставленні складальною системою альтернативного каталогу для тимчасових файлів (TMPDIR) та видалення вмісту TMPDIR під час збирання).

Джерело: opennet.ru

Додати коментар або відгук