Как научиться пользоваться autotools/libtool? (Кому-то это тоже не нравится?)

Когда в каком-то проекте есть все эти "ltmain", "aclocal.m4" и прочие "autogen.sh", это приносит дискомфорт:

  1. ./autogen.sh работает медленно. ./configure медленный.
  2. ./configure не жалуется, что чего-то не хватает. Я исправляю это, и это жалуется на что-то следующее. Медленно.
  3. Makefiles БОЛЬШИЕ. скрипт configure БОЛЬШОЙ. Даже configure.ac обычно большой и непонятный.
  4. Makefile.am и configure.ac полны в основном загадочных переменных. Как он выводит правила?
  5. Я внезапно понимаю, что скопировал только заглушку сценария оболочки libtool, а фактический двоичный файл находится в .deps или .libs или где-то еще.
  6. В общем, если что-то там сломано, я не знаю, что делать, и сообщения об ошибках обычно сбивают с толку.
  7. Наконец, даже небольшой проект занимает не менее 50 КБ в архиве, если в нем есть скрипт настройки autotool (когда исходный код может быть 5 КБ в архиве).

Каждая проблема с ним добавляет все больше и больше очков ненависти к инструменту {auto,lib}.

Как ладить с такими вещами? Есть ли краткое руководство (не длинное «введение в систему сборки GNU» или как оно называется) плюс исчерпывающая ссылка о том, как создавать, исправлять и отлаживать эти вещи?


person Vi.    schedule 16.12.2010    source источник
comment
Я закрываю это как дубликат, но даже если бы это было не так, я бы закрыл его как субъективный и спорный. :-(   -  person ptomato    schedule 17.12.2010
comment
возможный дубликат Как узнать радость от Autotools?   -  person ptomato    schedule 17.12.2010
comment
Те, кто этого не понимают, обречены на то, чтобы их не любить.   -  person user502515    schedule 20.12.2010
comment
Нет такого понятия, как configure.am. Возможно, вы подумали о configure.ac в пункте 4.   -  person Jack Kelly    schedule 18.01.2011
comment
Людям это не нравится, потому что они не написали сценарий ./configure вручную.   -  person alternative    schedule 17.07.2013
comment
@alternative, иногда я создаю простой небольшой файл ./configure на основе bash (который предполагает наличие хорошей, готовой к разработке GNU/Linux и проверяет некоторые необычные вещи).   -  person Vi.    schedule 18.07.2013


Ответы (2)


http://www.lrde.epita.fr/~adl/autotools.html — фантастический учебник. Не позволяйте количеству страниц сбить вас с толку: в основном это диаграммы, появляющиеся по частям.

person Jack Kelly    schedule 18.01.2011
comment
Похоже на то, что я искал. - person Vi.; 18.01.2011

Существует книга GNU Autoconf, Automake and Libtool, опубликованная New Riders. У меня есть копия, но я не могу настоятельно рекомендовать ее, в основном потому, что меня не очень интересуют инструменты. Тем не менее, он кажется довольно авторитетным - авторы - люди Red Hat и сопровождающие GNU.

Обновление: кажется, что содержание книги доступно онлайн здесь.

person unquiet mind    schedule 16.12.2010