[sisyphus] mk-configure -- lightweight replacement for GNU autotools

Aleksey Cheusov vle на gmx.net
Вт Июл 14 00:20:16 MSD 2009


 AC>> Я пока не понял, в чем именно заключается проблема. В том, что каталогов
 AC>> с инклюдами и библиотеками больше одного? Это не проблема.
 AC>>    LDFLAGS='-Ldir -Ldir2' CPPFLAGS='-Idir1 -Idir2' ./configure
 AC>>    make

> Правильно написаный configure на autotols сделает это за меня.

> И я, кстати, почти никогда не переопределяю переменные окружения для
> ./configure.

И я не определяю опции при сборки mk-files, если библиотеки и заголовки
разложены в стандартных местах.

 AC>> Для этого не нужны опции --foo-includedir и --bar-includedir.
 AC>> Это просто лишний, ничего не добавляющий к функциональности, код (жир).

> Он _очевиден_. Глядя на эти опции autotools я понимаю что таким образом
> добавлена эта библиотека.
Ага. Создается иллюзия, что --foo-includedir - это только для FOO,
а --bar-includedir - это только для BAR, хотя на самом деле все совсем
не так. Не уж, в сад.

> Кстати рекомендую посмотреть на spec чего-нибудь вроде mplayer, где
> используетяс много with/without. Или на тот же asterisk.
Музхи отдельно, котлеты отдельно. --with/without не имеет никакого
отношения к --foo-{lib,include}dir.

> То есть те о ком вы не собираетесь заботиться, для меня лично является
> иденственной аудитории, которой я готов многим помочь не выставив
> предварительно счет.
Мне не интересны "профессионалы", которым нравится откровенно
кривой дизайн.

 >>> Вы пробовали написать приложение, которое бы:
 >>> а) пользовалось большим количеством сторонних библиотек;
 AC>> Нет. Любой дурак может написать большое приложение. Попробуй написать
 AC>> маленькое ;-) У меня довольно много проектов в open source, и все они
 AC>> невелики по объему исходного кода. Много сторонних библиотек я тоже не
 AC>> использую.

> Таким образом, естественно, что вы не учли при разработке своего решения
> интересов тем, кому приходится писать большие системы :)
Нет. Просто в первую очередл реализовано то, что необходимо было
мнепрямо вот сейчас. Поддержка sml-я мне, например, прямо сейчас не
нужна.

 >>> б) использовало бы некоторые ОС-специфичные функции (к примеру системные
 >>> вызовы);
 >>> в) собиралось бы под хотя бы 2-3 разных ОС;
 AC>> Естественно. dictd, runawk, paexec...

> Как выглядит сборка под разные ОС?
> В случае autotools она выглядит так:
> ./configure
> make
> make install

Точно также.

   bmake
   bmake install-dirs
   bmake install

install-dirs - это побочный эффект немного кривых в этом месте
mk-files. Мне это не очень нравится. Но лучшего решения я не нашел.

> Сейчас, когда я много времени трачу на сборку, у меня к любой системе
> сборки всегда один вопрос -- чем она _принципиально_ лучше autotools?
Я уже много раз отвечал:
- более правильным дизайном
- простотой в изучении и использвании

И я никогда не говорил, что в нем реализовано все на свете.

> Другая система -- требует отдельного вкуривание в него, и не всегда
> понятно с какими перспективами.
Немного времени требуется. В случае с pkgsrc, например, в одном случае
нужно написать в Makefile-е пакета

  GNU_CONFIGURE=yes

а для mk-files (и mk-configure)

  USE_BSD_MAKEFILE=yes

Все остальное сделается и передастся куда следует автоматом.
Если в Алте не так, значит вам есть над чем поработать ;-)

> Ради интереса -- ознкомьтесь с системой сборки в Asterisk,
Угу.

> Думаю это поставит перед вами ряд
> вопросов которые вам будет интересно решить :)
Посмотрим. Записал.

-- 
Best regards, Aleksey Cheusov.


Подробная информация о списке рассылки Sisyphus