Как настраиваемый скрипт libtool генерируется при конфигурировании? - PullRequest
4 голосов
/ 15 ноября 2011

Я совершенно новичок в libtool. У меня проблема с тем, что для сборки моего проекта требуется libtool 1.5, но по умолчанию libtool в моей системе (debian, squeeze) равен 2.2. Я установил libtool 1.5 из исходного кода и поместил в / usr / local. Моя переменная PATH сначала выбирает путь / usr / local / bin.

При запуске autogen я вижу, что он "видит" libtool 1.5. Однако, когда я запускаю скрипт configure, в моей сборочной директории появляется скрипт libtool версии 2.2. Я понятия не имею, откуда это, так как я удалил libtool 2.2 с помощью менеджера пакетов.

Подскажите, пожалуйста, как решить проблему? Как генерируется скрипт libtool в моей папке сборки? Какое отношение имеет к ltmain.sh?

Спасибо, Вячеслав

1 Ответ

7 голосов
/ 15 ноября 2011

Простое решение может быть:

$ ./configure LIBTOOL=/usr/local/bin/libtool ...

но если вы используете древний libtool, вы можете использовать и древний autoconf, в этом случае вам придется сделать:

$ LIBTOOL=/usr/local/bin/libtool ./configure ...

или, если вы используете csh или его вариант:

$ env LIBTOOL=/usr/local/bin/libtool ./configure ...

libtool в вашем каталоге сборки сгенерирован из ltmain.sh. Файл config.status (сгенерированный с помощью configure) запускает скрипт sed, который использует ltmain.sh в качестве входных данных для генерации libtool. ltmain.sh копируется libtoolize в исходный каталог, когда вы запускаете libtoolize через autoreconf. Если autoreconf действительно видит libtool 1.5 в / usr / local / bin, то ltmain.sh в исходном каталоге должен быть копией /usr/local/share/libtool/ltmain.sh.

...