<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Релиз GNU Make 4.0 с поддержкой расширений на языке GNU Guile]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=30936</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=30936&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Релиз GNU Make 4.0 с поддержкой расширений на языке GNU Guile».]]></description>
		<lastBuildDate>Wed, 09 Oct 2013 17:11:27 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Релиз GNU Make 4.0 с поддержкой расширений на языке GNU Guile]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=368865#p368865</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Rizado)]]></author>
			<pubDate>Wed, 09 Oct 2013 17:11:27 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=368865#p368865</guid>
		</item>
	</channel>
</rss>
