После года разработки представлен (http://permalink.gmane.org/gmane.org.fsf.announce/2212) релиз системы сборки GNU Make 4.1. Кроме исправления ошибок, в новой версии добавлены новые переменные $(MAKE_TERMOUT) и $(MAKE_TERMERR), позволяющие переопределить потоки вывода сообщений и информации об ошибках вместо stdout и stderr. Добавлена возможность вызова функции $(file ...) без передачи текстовых аргументов (в этом случае файл будет открыт в указанном режиме и закрыт без записи данных). Вместо фатальной ошибки при смешивании явных и неявных правил теперь выводится предупреждение.URL: http://permalink.gmane.org/gmane.org.fsf.announce/2212
Новость: http://www.opennet.me/opennews/art.shtml?num=40758
> добавлены новые переменные $(MAKE_TERMOUT) и $(MAKE_TERMERR), позволяющие переопределить потоки вывода сообщений и информации об ошибках вместо stdout и stderr.Вот за что не люблю проекты конкретно от фонда GNU, так это за подобную монструозность. Когда откровенные недоработки в каком-то другом месте затыкаются подобными костылями. И эти люди потом ещё что-то говорят о качестве open source, хотя сами прилагают немало усилий по "исправлению" ситуации. Тьфу.
free software != open source
Это неправда. Всё, что open source — free software, и наоборот. Вопрос в подходе к определению термина.
> Это неправда. Всё, что open sourceРазница в убеждениях и действиях авторов.
> — free software, и наоборот. Вопрос в подходе к определению термина.
Не юли! Или "Всё и наоборот", или "вопрос". А то ишь ты, подстраховался он, болтунишка.
>> Это неправда. Всё, что open source
> Разница в убеждениях и действиях авторов.Нет.
>> — free software, и наоборот. Вопрос в подходе к определению термина.
> Не юли! Или "Всё и наоборот", или "вопрос". А то ишь ты,
> подстраховался он, болтунишка.Никто не юлит. Несмотря на то, что определения технически разные, к результатам они приходят идентичным. Потому что определяют одно и то же, но через разные понятия.
>А то ишь ты, подстраховался он, болтунишка.Наверняка он бздунишка. Это для них безразницы free и open.
А мне нравится GNU Make для мелких проектов.
Для мелких проектов разницы практически не будет. На маленьком проекте что угодно для сборки будет подходить, хоть GNU make, хоть bmake, хоть вообще SCons. И, как говорится, на здоровье... А вот когда половишь баги GNU make на сборке исходников общим чистым весом за двадцать метров, начинаешь по-другому на неё смотреть.
>> добавлены новые переменные $(MAKE_TERMOUT) и $(MAKE_TERMERR), позволяющие переопределить потоки вывода сообщений и информации об ошибках вместо stdout и stderr.
> Вот за что не люблю проекты конкретно от фонда GNU, так это за подобную монструозность. Когда откровенные недоработки в каком-то другом месте затыкаются подобными костылями.И в каком месте тут недоработка, костыли и "монструозность"?
Сдаётся что ты, мил-человек, казачОк.
(Ты вообще хоть понял про что тут написано?)
>>> добавлены новые переменные $(MAKE_TERMOUT) и $(MAKE_TERMERR), позволяющие переопределить потоки вывода сообщений и информации об ошибках вместо stdout и stderr.
>> Вот за что не люблю проекты конкретно от фонда GNU, так это за подобную монструозность. Когда откровенные недоработки в каком-то другом месте затыкаются подобными костылями.
> И в каком месте тут недоработка, костыли и "монструозность"?
> Сдаётся что ты, мил-человек, казачОк.
> (Ты вообще хоть понял про что тут написано?)Для начала попробуйте сами подумать, ЗАЧЕМ может это понадобиться? Я не вижу ни одной вменяемой причины. Хотя стараюсь, честно. Не дураки же, по идее, пишут.
С другой стороны: вот обычный процесс, про него заранее известно, что он шлёт рабочий выхлоп в stdout, а всё остальное - в stderr. На это можно (было) полагаться, с этим можно (было) надёжно работать. А теперь, если я хочу работать - надёжно - с GNU make, то мне надо ещё и две новые переменные окружения контроллировать?!
> ...переопределить потоки вывода сообщений и информации об ошибках вместо stdout и stderrМне кажется или это прямое нарушение UNIX way? Зачем тогда хвалиться на каждом углу со своими дурацкими pipes, если ЛЮБОЕ приложение вот так на ровном месте нагадит в цепочку перенаправлений?!
Ну так это же *GNU* make, а GNU это Not UNIX :) Так что претензии по UNIX way'ности не принимаются!
Претензии к вашему преподавателю информатики разве что.
И то, при условии что вы в принципе обучаемый.Зыж
Для дЭбилов повторяю — командная строка имеет бОльший приоритет, чем переменные окружения, которые в свою очередь имеют бОльший приоритет, чем переменные конфигурационного файла.
Собственно именно поэтому пайпы В ПРИНЦИПЕ и возможны.
Например,
MAKE_TERMOUT=/dev/null make ....
переопределит переменную $(MAKE_TERMOUT) в мэйкфайле.В общем,.. где вас вообще выращивают? В застенках каких проприетарных контор, раз вы так глупо наезжаете на опен-сорс? Две недели курсов и "спец" готов?
Вот жеж дэбилы.
>[оверквотинг удален]
> Для дЭбилов повторяю - командная строка имеет бОльший приоритет, чем переменные окружения,
> которые в свою очередь имеют бОльший приоритет, чем переменные конфигурационного файла.
> Собственно именно поэтому пайпы В ПРИНЦИПЕ и возможны.
> Например,
> MAKE_TERMOUT=/dev/null make ....
> переопределит переменную $(MAKE_TERMOUT) в мэйкфайле.
> В общем,.. где вас вообще выращивают? В застенках каких проприетарных контор, раз
> вы так глупо наезжаете на опен-сорс? Две недели курсов и "спец"
> готов?
> Вот жеж дэбилы.Вы может быть лучше повторите зачем нужно MAKE_TERMOUT... Когда стандартный поток вывода...
Повторяю, (см. сабж) для определения потока вывода сообщений.
При этом неучи о пайпах могут не беспокоится, с ними всё будет по прежнему.
Я прямо даже теряюсь. Преподаватель информатики? Застенки проприетарных контор? Наезжаем на опен-сорс? Пайпы возможны? Вот жеж вас понесло от маленькой шутки. Что же, буду продолжать стараться :)
В каждой шутке есть доля... шутки.
При этом очевидно, что с таким невежеством стараться вам особо не нужно. :D
От недостатка знаний такое бывает.
И не то ещё померещиться может неразвитому уму.Зыж
Тебе не пох куда именно (на экран, в файл,.. в анб) приложение выводило поток для дескрипторов 1 и 2, если ты их в командной строке всё равно переопределяешь?
Вы поздно спохватились. В *nix изначально была возможность для приложения закрыть STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO и открыть другие файлы с теми же файловыми дескрипторами. Прямое нарушение UNIX-Way присутствовало на этом UNIX-Way с самого начала.
> Вы поздно спохватились. В *nix изначально была возможность для приложения закрыть STDIN_FILENO,
> STDOUT_FILENO, STDERR_FILENO и открыть другие файлы с теми же файловыми дескрипторами.
> Прямое нарушение UNIX-Way присутствовало на этом UNIX-Way с самого начала.Оно не нарушение. Оно - возможность. Одна из очень многих...