воскресенье, 17 июля 2011 г.

Managing Projects with GNU Make

дочитал давеча subj
Все время меня не покидало ощущение что надо мною всячески глумятся и местами совершенно неприкрыто издеваются и вообще держат за конченного дебила
Вынужден повторить собственные слова:
разработчика под linux рассматривают как врага и относятся к нему соотв-но
Начнем например с того что никакого отладчика для gnu make в природе нет в принципе. Все описанные в главе 12 Debugging Makefiles советы подозрительно попахивают нафталином напоминают техники, рекомендуемые для отладки linux kernel например

Да чо там отладчика - у них нет даже встроенных арифметических операций (с 1977 года ! адский ад какой-то). Приложение B представляет канешна весьма впечатляющий пример преодоления искусственных трудностей, но это вот именно оно - "рассматривают как врага"

Более того - я дичайше ржал над главой 10 - Improving the Performance of make. Сначала граждане весьма искусно сделали все чтобы для любой нетривиальной операции нужно было вызывать всякие внешние программы типа sed/awk через shell. Потом внезапно™ оказывается что вызов внешнего shellа на каждый чих - весьма дорогая операция и ее нужно всячески избегать (бгг)

Казалось бы следующим логичным шагом должно стать встраивание более-менее нормального языка программирования внутрь make вместо его весьма усеченного набора встроенных ф-ций. Я могу даже догадаться какого именно языка - например в том же приложении B только в путь используются идиомы lispа. И у них есть даже функция eval !
Но хрен там - линуксоиды способны встроить lisp только в свою священную корову emacs, ни во что другое (где оно менее будет смахивать на седло на козе) совершенно не можно - это ересь и Столлман проклянет, бгг

7 комментариев:

  1. Насчёт "отладки" - таки действительно адов пиздец. Плачу кровавыми слезами каждый раз, когда пытаюсь собрать какую-то не лишком well-coded GNU-тую библиотеку в cygwin/mingw.

    ОтветитьУдалить
  2. Алсо, по-настоящему жесть с "sed/awk через shell" у красноглазых наблюдается в init-скриптах. По-моему, писать такие компоненты операционной системы на шелл-скриптах - это вообще за гранью добра и зла.

    ОтветитьУдалить
  3. 1. Книжке-то уже 7 лет.
    2. Не нравится Makefile - напишите скрипт на Perl или Python. А для обратной совместимости можно в тот самый мейкфайл приписать вызов этого скрипта.

    ОтветитьУдалить
  4. все же линуксоидами становятся существа с некоторой генетической к тому предрасположенностью
    И что что книжке 7 лет ? Идем сюда: http://ftp.gnu.org/gnu/make/ и наслаждаемся количеством обоих вышедших с тех пор версий например

    ОтветитьУдалить
  5. Ок. Вычеркиваем первый пункт. Скажите, а отклонения в каком гене приводят к желанию программировать с использованием средства, предназначенного вовсе не для программирования? Этот же ген приводит к росту ЧСВ over 9000 или у вас сразу два отклонения? ;)

    ОтветитьУдалить
  6. записывает в секретный зеленый блокнотик: "линуксоиды признали что линукс предназначен вовсе не для программирования"
    Нащет бага в днк и ЧСВ over9000 рекомендую спросить Столлмана, бгг

    ОтветитьУдалить
  7. Автор, вы прочитали "плохую" книжку.

    Про GNU Make стоит почитать:

    http://www.cmcrossroads.com/ask-mr-make

    Там из GNU Make "выдавливают" все соки.

    Конечно после чтения Вы поймете, правда на другом уровне, что у GNU Make много проблем.

    И кстати у GNU Make есть отладчик - http://gmd.sourceforge.net/ и ключи - сдампить ВСЕ.

    Расширяемые системы сборок, с арифметикой в комплекте, куча - Cmake, Scons.

    ОтветитьУдалить