[C++-sig] stage rule and version in .so name
Leonardo Rochael Almeida
leo at hiper.com.br
Thu Sep 12 23:35:12 CEST 2002
Hi,
I'm trying to make it easier to test stuff I built with boost python, so
I created some stage rules to gather all stuff I need so that I could,
say, just copy them over to /usr/local and have them work. For instance,
I added the following snipped to boost/libs/python/example/Jamfile:
stage distrib/lib/python$(PYTHON_VERSION)/site-packages
: # extensions
<pyd>getting_started1
;
stage distrib/lib
: # needed libraries
<dll>../build/boost_python
;
This same Jamfile has this extension rule:
# Declare a Python extension called getting_started1
extension getting_started1
: # sources
getting_started1.cpp
# dependencies
<dll>../build/boost_python
;
The stage rules above generate the following directory tree:
distrib/
distrib/lib
distrib/lib/python2.1
distrib/lib/python2.1/site-packages
distrib/lib/python2.1/site-packages/getting_started1.so
distrib/lib/libboost_python.so
which is mostly what I expected, except that:
$ ldd distrib/lib/python2.1/site-packages/getting_started1.so
libboost_python.so.1.29.0 => not found
libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x40021000)
libm.so.6 => /lib/libm.so.6 (0x4006a000)
libc.so.6 => /lib/libc.so.6 (0x4008b000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
The "not found" above is not important, what's important is that the
same <dll>../build/boost_python, when in the "stage" rule, generates a
libboost_python.so, but in the "extension" rule, makes the extesion
depend on libboost_python.so.1.29.0 which I think is a bug.
I believe the correct behaviour would be for the "stage" rule to
copy/generate the same thing that the extension rule make
getting_started1.so depend on, that is, to generate a
libboost_python.so.1.29.0 in the distrib/lib directory. But I have no
idea how to go about it.
Any thoughts?
--
Ideas don't stay in some minds very long because they don't like
solitary confinement.
More information about the Cplusplus-sig
mailing list