Автоматизированные системы сборки
arkanoid — 22.09.2010
Знали бы вы, как я ненавижу сраный autoconf. Это натуральный самородный пиздец. Собственно autoconf ненавидеть как бы и не за что: вполне нормальное, годное средство автоматизации в некривых руках. Но проблема, увы, в том, что некривых рук исчезающе мало. Проблему портабельности большинство понимает, как "узнать, какой у нас дистрибутив линукса". Ах да, еще есть *BSD. Некоторые, если повезет, вспомнят про Solaris.
Итого, проблема сводится к двум:
1) autoconf генерирует человеконечитаемые makefiles
2) большинство разработчиков рассчитывают на некое свое понятие о стандартном окружении.
Кумулятивный эффект этих двух пунктов похож на ЕБАНЫЙ ПИЗДЕЦ. На произвольном юниксе, который в общем не Linux и не *BSD (при этом никакой экзотики там может и не быть) согласно пункту 2) сборку ГАРАНТИРОВАННО ПЕРЕКОСОЕБИТ, а пункт 1) обеспечит невозможность ее вменяемо и быстро починить. Я уже молчу о том, что мало кто думает, например, что компилятор может быть вовсе не gcc, линкер далеко не gnu ld, а разделяемые библиотеки могут быть вовсе не .so (превед, поганый libtool)
За всю свою жизнь я видел всего один программный пакет, который из configure выдавал человекочитаемый компактный Makefile. И то это были какие-то примеры из книжки.
Особенно милы параметры командной строки, которые предлагают тебе указать --with-моеговно=/usr/local/моеговно, а услужливые мейнтейнеры родного пакета моеговно красиво расфасовали его что-то в /usr/local/lib/моеговно, что-то в /usr/local/include/моеговно, что-то в /etc/моеговно и так далее.
Далее, вспомним про fredesktop, gnome и любимый ими pkg_config, который должен бы избавить от подобных проблем. Хуев тачку! Мало того, что любой уважающий себя коммерческий юникс имеет несколько независимых third-party репозиториев, каждый из которых раскладывает свою иерархию библиотек, желательно несовместимых между собой, так еще и десктопные библиотеки при этом тупо не складываются в sane build environment. То есть, если хочется что-то собрать из десктопной хуйни, нужна чорная магия и список параметров сборки на полэкрана, а вот чтобы собрать за один ./configure(enter) , то скорее Дед Мороз придет и поможет. Желающие могут на досуге добиться нормальной работы банального dbus на solaris10/sparc.
И все, типа, делают вид, что нормально. Мало того, вся критика autotools, которую я видел, сводится к "(insert-name-here) гораздо лучше!" Да щас там. cmake такое же точно говно и ведет себя до мелочей идентично, а остальное и пробовать не хочу. При этом доля софта, который собирается на "немейнстримовых" системах без бубна и напильника не больше одного программного пакета на десять. И кстати, autoconf совершенно там не избавляет от ручной правки кода.
Нет уж, лучше бы мы перед сборкой каждого пакета тратили десять минут на ручную правку Makefile, чем жить с этой ебанью и сраниной.
|
|
</> |
ТТГ норма у женщин: как подготовиться к анализу крови и избежать ошибок
Король Нидерландов Виллем-Александр с королевой Максимой на Суринаме
UUS IGI ! - «(да будет) вечно новый, вечно молодой!»
Возобновление ядерных испытаний. Сергей Переслегин
Самый несчастный на свете ..
Сегодня
За рулем 1957
Про неприятное происшествие на борту авиалайнера рейса Маскат - Москва
ЖЖ-юбилей: шесть сюжетов из 2010.

