[devel] Q: libtool (clanlib)
Alexey Morozov
alex-altlinux на idisys.iae.nsk.su
Пт Окт 15 12:49:54 MSD 2004
On Fri, Oct 15, 2004 at 12:56:15AM +0400, Alexey Tourbin wrote:
> Разделяемая библиотека libclanCore должна быть слинкована с разделяемой
> библиотекой libclanSignals (однако Makefile'ами этого не предусмотрено).
> Для этого я делаю такой патч:
>
> --- ClanLib-0.7.8~/Sources/Core/Makefile.am 2004-04-20 13:36:27 +0000
> +++ ClanLib-0.7.8/Sources/Core/Makefile.am 2004-10-14 19:58:21 +0000
> @@ -125,7 +125,7 @@
> endif
>
> # FIXME: Hardcoding these here might not be a good idea
> -libclanCore_la_LIBADD = @LIBPTHREAD@
> +libclanCore_la_LIBADD = @LIBPTHREAD@ ../Signals/libclanSignals.la
>
> libclanCore_la_LDFLAGS = \
> -release $(LT_RELEASE) \
>
> Однако же сборка не проходит, т.к. на момент сборки библиотеки
> libclanCore.la библиотека libclanSignals.la ещё не собрана:
Ну, это проблема не libtool, а корректности написанного Makefile[.am]
Если не хочется менять порядок сборки (передвигать Signals перед
Core в вышестоящем Makefile.am), то можно добавить в
Sources/Core/Makefile.am правило для сборки
../Signals/libclanSignals.la, что-то типа
../Signals/libclanSignals.la:
$(MAKE) -C ../Signals/ libclanSignals.la
(Ну, и, конечно же, убедиться, что ../Signals/libclanSignals.la попадает
в зависимости к libclanCore.la. При использовании _LIBADD это происходит
автоматически, если мне не изменяет память).
> $ cd ../Signals
> $ make
> ...
> $ cd ../Core
> $ make
> /bin/sh ../../libtool --mode=link g++ ... -lpthread ../Signals/libclanSignals.la -lz
> g++ -shared ... -Wl,--rpath -Wl,/home/at/RPM/BUILD/ClanLib-0.7.8/Sources/Signals/.libs -L/usr/X11R6/lib -lpthread ../Signals/.libs/libclanSignals.so -lz ...
> ...
> $
>
> Однако же появляется rpath на каталог Sources/Signals/.libs.
Насколько я помню, он должен изчезать после фазы инсталляции библиотеки
(средствами libtool, опять-таки, --mode=install). То есть, на этапе сборки
у всех подобных библиотек будет rpath, чтобы можно было грузить
приложения локально, без инсталляции (н-р, тесты).
> Вопрос: можно ли корректно решить эту задачу стандартными
> средствами automake/libtool?
Вероятно, да.
P.S. И не забудьте добавить
%__libtoolize --copy --force
aclocal
automake
autoconf
перед %configure ;-))
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.altlinux.ru/pipermail/devel/attachments/20041015/0719e684/attachment.bin
Подробная информация о списке рассылки Devel