LINUX.ORG.RU

Пример смешанного проекта с autotools


0

0

Доброе утро!

Есть проект, содержащий как ядерный модуль (kernel-space код), так и много user-space утилит, и библиотеку. Примерно следующая структура:

dir1/ksrc (kernel module)
dir1/ipt_target (iptables user-space target)
dir1/kernel_to_stdout (pass some info from kernel-space to user-space)
lib/ (несколько статичных библиотек, используемых user-space утилитами)
apps/app1/
apps/app2
..
tools/app1
tools/app2 (некоторые user-space приложения, которые линкуются с библиотеками из lib/)
common/ (общие для user-space и kernel-space хеадеры, которые собираются с помощью awk и Make)

Хочется все это перевести на autotools, а для этого хочется увидеть хороший пример уже сделанного проекта с похожей структурой. Хочется, чтобы ./configure скрипт понимал вещи вроде --without-kernel-module, --without-apps, --without-dirs и не компилировал соответствующие части, а также чтобы можно было задавать некоторые константы общие для всех частей проекта (таких 2 или 3 + пути к сырцам ядра/iptables). Буду очень признателен, если кто-нибудь поможет найти что-то подобное. Вопрос выбора autotools обсуждать не стоит.


Ответ на: комментарий от const86

спасибо, достаточно похоже

cs
() автор топика
Ответ на: комментарий от anonymous

Почему это?

Жалкие человечишки не могут прочитать autobook ;)

mv ★★★★★
()
Ответ на: комментарий от tailgunner

Autotools захламляет каталог проекта. Вдобавок к этому, при сборке занимает своими файлами невообразимое количество места. Проект с 100 Мб исходников может занять больше гигабайта после запуска сборки.

anonymous
()
Ответ на: комментарий от anonymous

А еще нада держать стопесяттысяч версий этих автоговнотулсов из за того, что они между собой несовместимы.

Gorthauer ★★★★★
()
Ответ на: комментарий от anonymous

> Autotools захламляет каталог проекта.

Autotools говно, нет вопросов. Но назови мне еще одну систему сборки, которая поддерживает кросс-компиляцию «искаропки».

при сборке занимает своими файлами невообразимое количество места. Проект с 100 Мб исходников может занять больше гигабайта после запуска сборки.

Не наблюдал такого.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

> Autotools захламляет каталог проекта

открой для себя AC_CONFIG_AUX_DIR

ananas ★★★★★
()
Ответ на: комментарий от tailgunner

Не наблюдал такого.

Подозреваю, что младой человек имел ввиду объектные файлы. Да, действительно, это досадное недоразумение иногда возникает в процессе сборки проектов. В особенности это заметно для проектов, активно использующих C++.

bibi
()
Ответ на: комментарий от tailgunner

>Но назови мне еще одну систему сборки, которая поддерживает кросс-компиляцию «искаропки».

CMake поддерживает. А вот в том, что Autotools работает под Оффтопиком я сильно сомневаюсь.

AC_CONFIG_AUX_DIR


Dzięki panu.

anonymous
()
Ответ на: комментарий от tailgunner

Но назови мне еще одну систему сборки, которая поддерживает кросс-компиляцию «искаропки».

я поднял виртуалку и всё в ней собрал. Ценность поддержки кросс-компилеров сильно преувеличена. 99.9% юзеров и девелоперов этого не надо.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

>> Но назови мне еще одну систему сборки, которая поддерживает кросс-компиляцию «искаропки».

я поднял виртуалку и всё в ней собрал

Ты понимаешь разницу между виртуалкой и эмулятором?

Ценность поддержки кросс-компилеров сильно преувеличена

Доо.

99.9% юзеров и девелоперов этого не надо.

Статистика собрана... каким образом? Кстати, юзерам вообще ничего собирать не надо, на то они и юзеры.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

>> Но назови мне еще одну систему сборки, которая поддерживает кросс-компиляцию «искаропки».

CMake поддерживает.

Буду знать. Хотя лично меня cmake бесит еще больше autotools по эстетическим причинам :)

А вот в том, что Autotools работает под Оффтопиком я сильно сомневаюсь.

Я из счастливого меньшинства, которому искренне плевать на оффтопик.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

> Autotools работает под Оффтопиком я сильно сомневаюсь.

Работает чисто условно. autotools даже не может кроссплатформенные makefile создавать, какой там нафиг еще оффтопик?

Reset ★★★★★
()
Ответ на: комментарий от tailgunner

>Хотя лично меня cmake бесит еще больше autotools по эстетическим причинам :)

А что в нем такого не эстетичного?

anonymous
()
Ответ на: комментарий от anonymous

> А вот в том, что Autotools работает под Оффтопиком я сильно сомневаюсь.

поддержка альтернативных ОС это Ваши проблемы, не надо их на всех проецировать.

anonymous
()
Ответ на: комментарий от anonymous

>> Хотя лично меня cmake бесит еще больше autotools по эстетическим причинам :)

А что в нем такого не эстетичного?

Ну, например, что в ELSE и ENDIF нужно писать условие IF (я знаю, что сейчас уже можно ставить пустые скобки, но, мля, надо же было до такого вообще додуматься). Макроязык cmake вообще иначе, как «уродским», не назовешь.

Да и вообще cmake производит впечатление GNU Make, искалеченного сверхдозой стероидов.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Нда а автотулз у меня создает впечатление кучки душевнобольных обезъян, которые уже лет 20 какую то муть на клаве клацают, а потом некий гуру-шаман приходит и склеивает это всё скотчем, проговаривая непонятное заклинание. Ужасное количество макросов, непонятных файлов, куча команд, конфигурирование мелких прог времени занимает больше, чем сборка. Под виндой это говно не работает. Только через костыли в виде cygwin'а. CMake куда лаконичнее и понятнее.

Gorthauer ★★★★★
()
Ответ на: комментарий от Gorthauer

> Нда а автотулз у меня создает впечатление кучки душевнобольных обезъян, которые уже лет 20 какую то муть на клаве клацают, а потом некий гуру-шаман приходит и склеивает это всё скотчем, проговаривая непонятное заклинание.

Я ими пользоваться не умею, но результат работы других мне скорее нравится, чем нет :)

Под виндой это говно не работает.

Да и хрен с ней, вендой.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Ты понимаешь разницу между виртуалкой и эмулятором?

расскажи. Типа виртуалка какие-то имеет фундаментальные ограничения которые не позволят ей решить какие-то задачи?

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

>> Ты понимаешь разницу между виртуалкой и эмулятором?

расскажи.

Банальщина же. В вики посмотри.

Типа виртуалка какие-то имеет фундаментальные ограничения которые не позволят ей решить какие-то задачи?

Ага, она не умеет пускать код чужой ISA.

tailgunner ★★★★★
()
Ответ на: комментарий от true_admin

> Ты по-русски скажи чем тебе эмуляторы не нравятся.

Скоростью. Раскрути в qemu систему для другой архитектуры.

Что такое ISA так и не понял.

Instruction Set Architecture. Набор команд, если по-простому.

Тут оно есть: http://www.abbreviations.com/ISA ?

Да :D

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Скоростью. Раскрути в qemu систему для другой архитектуры.

И куда ты торопишься? Ты же не запустишь эти бинари, значит и потестить не сможешь. Отсюда следует что это нужно только на этапе подготовки релиза. А уж поставить на крайний случай на ночь не проблема(таких проектов очень мало и у них совсем другие проблемы на переднем плане чем сборка). Уж точно лучше чем возиться с autotools.

Статистика собрана... каким образом? Кстати, юзерам вообще ничего собирать не надо, на то они и юзеры.

От балдны. Но определённый процент юзеров которые будут пересобирать есть всегда.

true_admin ★★★★★
()
Ответ на: комментарий от anonymous

>CMake поддерживает. А вот в том, что Autotools работает под Оффтопиком я сильно сомневаюсь.

Не осилил поставить кросскомпилер чтоли?

linuxfan
()
Ответ на: комментарий от anonymous

гнутые считают все что не лялех это альтернативная ось и поэтому autocrap нормально работает только с гнутым компайлером и гнутым мейком, а на остальных даже *nix системах начинаются свистопляски

Reset ★★★★★
()
Ответ на: комментарий от linuxfan

Не осилил поставить кросскомпилер чтоли?

Нахера мне ещё и с ним парится? Потом трахаться с этими говнотулзами и т.д. И вообще, между прочему qutIM с CMake скриптами даже на Haiku собирается. В общем желаю autotools'ам скорейшей смерти.

Gorthauer ★★★★★
()
Ответ на: комментарий от true_admin

>> Скоростью. Раскрути в qemu систему для другой архитектуры.

И куда ты торопишься?

Ждать не люблю.

Ты же не запустишь эти бинари, значит и потестить не сможешь.

Да? Думаешь, я их из любви к исскуству собираю?

Отсюда следует

...что Луна сделана из зеленого сыра.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Да? Думаешь, я их из любви к исскуству собираю?

Ничего не понимаю. Как ты запускаешь проги собраные под друой проц?

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Естественно на другом проце :) Ты предлагаешь собирать проги под дохлые процы типа arm'а на самом железе? Ты представляешь как при этом упадет скорость разработки?

Reset ★★★★★
()
Ответ на: комментарий от Reset

Честно говоря, когда был sharp zaurus я на нём и собирал. mplayer, например, 1час 5мин...

Неужели распространённым системам для кросс-сборки не хватит export CC=gcc -march=blah-blah-blah?

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

чё? ты хоть представляешь что такое кросскомпиляция? какие нахер еще -march ? Подменять надо весь тулчейн. cmake с этим отлично справляется, ссылку я привел.

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

Reset ★★★★★
()
Ответ на: комментарий от Reset

Всё было гораздо интереснее. Тулчейном бустрап не соберёшь и для сборки нужны все зависимости, мне не всё удалось собрать.

true_admin ★★★★★
()
Ответ на: комментарий от Reset

Фигню я сморозил, бутстрап для gcc нужен. Не буду спорить на тему кросс-тулчейнов, лучше кину камень в огород autotools.

autotools должен умереть. Тот же scons позволяет делать и кросс-сборки(не то чтобы поддерживает из коробки, но не препятствует этому). Думаю и любая другая система сборки которая позволяет передавать аргументы компилеру и линкеру, поэтому пользоваться только из-за поддержки «из коробки» двух-трёх опций я бы не стал.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

> autotools должен умереть. Тот же scons позволяет делать и кросс-сборки

SCons основан на расово неверной идее того, что сборка должна производиться Python-скриптом. Даже в cmake есть хоть какой-то _декларативный_ язык.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

можно конкретный пример из эини где это «неверно»?

anonymous
()

НЕ смотри RTAI. Никогда. Структура похожая, а вот как все это сделано - жепь.

Pavval ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.