<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Релиз GNU Make 4.0 с поддержкой расширений на языке GNU Guile]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=30936&amp;type=atom" />
	<updated>2013-10-09T17:11:27Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=30936</id>
		<entry>
			<title type="html"><![CDATA[Релиз GNU Make 4.0 с поддержкой расширений на языке GNU Guile]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=368865#p368865" />
			<content type="html"><![CDATA[<p>После трёх лет разработки <a href="http://lists.gnu.org/archive/html/info-gnu/2013-10/msg00006.html">представлен</a> релиз системы сборки <a href="http://www.gnu.org/software/make/">GNU Make 4.0</a>. Наиболее существенным новшеством является опциональная поддержка языка <a href="http://www.gnu.org/software/guile/">GNU Guile</a> (одна из реализаций языка Scheme) для определения дополнительных функций в make-файлах. Проверить в скрипте поддержку Guile можно путём оценки наличия ключевого слова guile в переменной &quot;.FEATURES&quot;. При наличии поддержки Guile, появляется возможность загрузки/определения Guile-скриптов с реализацией дополнительных функций и их использование в сценарии сборки.</p><p>Из других изменений отмечается:</p><ul><li><p>Новый оператор &quot;!=&quot; для вызова внешних shell-команд, выступающий в качестве альтернативы функции $(shell ...) и реализованный для совместимости с BSD make. Например, вместо &quot;var := $(shell echo *.c)&quot; можно написать &quot;var != echo *.c&quot;. Появление нового оператора может привести к нарушению обратной совместимости, так как присвоение значений переменным оканчивающимся на символ &quot;!&quot; теперь может интерпретироваться как вызов shell-команд. Чтобы избежать подобного поведения следует использовать пробел для явного отделения имени переменной (&quot;var! = value&quot; вместо &quot;var!= value&quot;);</p></li><li><p>Новый оператор присвоения &quot;::=&quot;, определённый в стандарте POSIX 2012 и идентичный ранее доступному оператору &quot;:=&quot;;</p></li><li><p>Новая функция $(file ...) для организации записи в файл;</p></li><li><p>Новая опция командной строки &quot;--output-sync&quot; (&quot;-O&quot;), включающая режим группировки вывода по целям и рекурсивным вызовам make, что позволяет обеспечить наглядность вывода при сборке с распараллеливанием в несколько потоков (вывод разных экземпляров make не будет смешиваться);</p></li><li><p>Реализация режима трассировки, активируемого через указание опции &quot;--trace&quot;. При включении режима выводятся полные сведения о всех шагах сборки с указанием файла и номера строки. Данные выводятся даже, если указана переменная .SILENT или применён префикс &quot;@&quot;;</p></li><li><p>В опцию &quot;--debug&quot; добавлена поддержка флага &quot;n&quot; (none) для принудительного отключения всех отладочных настроек;</p></li><li><p>Сервер управления работами (jobserver), используемый для оптимизации выполнения параллельной сборки проектов в несколько потоков, адаптирован для работы на платформе Windows. Для Windows также обеспечена поддержка специальной сборочной цели <a href="http://www.gnu.org/software/make/manual/make.html#Execution">.ONESHELL</a>;</p></li><li><p>Указание опций &quot;-r&quot; и &quot;-R&quot; в переменной MAKEFLAGS внутри make-файла теперь приводит к удалению всех встроенных правил и переменных.</p></li></ul><p>Источник: <a href="http://www.opennet.ru/opennews/art.shtml?num=38120">http://www.opennet.ru/opennews/art.shtml?num=38120</a></p>]]></content>
			<author>
				<name><![CDATA[Rizado]]></name>
				<uri>https://linuxforum.ru/profile.php?id=23158</uri>
			</author>
			<updated>2013-10-09T17:11:27Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=368865#p368865</id>
		</entry>
</feed>
