В моей компании я сейчас работаю над созданием пакета Debian deb
из сторонней библиотеки. Библиотека построена с использованием Autotools. Я никогда раньше не работал с Autotools, и мне трудно. Исходные файлы библиотеки содержат файлы configure.in
и Makefile.am
и каталог m4/
. Я могу построить библиотеку, используя эту последовательность:
aclocal -I m4 -I /usr/share/aclocal
autoheader
libtoolize --automake
automake -a
autoconf
./configure
make
В debian/rules
файле я бы хотел использовать CDBS. Я написал это:
#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/autotools.mk
Но это не работает. Он жалуется, что файл configure
отсутствует. И это правильно, потому что класс Autotools ожидает присутствия этого файла. Но его там нет, и кто-то должен сначала позвонить autoconf
и друзьям!
Почему класс Autotools CDBS не позволяет мне звонить autoconf
и друзьям? Как мне обойти это?
Отступление:
Когда я использую программу, я не компилирую ее каждый раз, я компилирую ее один раз и повторно использую двоичный файл.
Когда люди устанавливают программное обеспечение, они не компилируют его самостоятельно, сопровождающий компилирует его один раз, и люди повторно используют бинарный пакет.
Когда сопровождающий компилирует пакет, он / она не создает сценарий configure
каждый раз, когда компилирует, автор исходной программы создал его один раз, и сопровождающий может повторно его использовать.
Это последнее предложение верно? Потому что мне кажется, что авторы класса Autotools CDBS предполагали такую вещь - они предполагают наличие configure
и повторно используют его при компиляции пакета для другой архитектуры. Я прав?
С одной стороны, если можно сгенерировать configure
, его нигде не должно быть - если вам это нужно, вы сгенерировали из других файлов. С другой стороны, у авторов класса Autotools CDBS должны быть некоторые причины для реализации этого способа, а не другого.
Резюме:
- Как мне решить описанную выше проблему класса Autotools CDBS?
- Как часто я регенерирую
configure
? (В целом и при сборке пакетов Debian.)