System: Red Hat 8.0 with gcc 3.2 Boost 1_30_0 I have built the boost signals library using bjam. The test suite runs and passes all tests. How do I make the resulting libraries available to my own programs? Is there an equivalent of 'make install' which will move the results to somewhere from which linking is possible? I have searched the documentation on Boost Signal and also on building libraries and have found nothing on this. Thanks John Fletcher
On Monday 31 March 2003 06:17 am, John Fletcher wrote:
System: Red Hat 8.0 with gcc 3.2 Boost 1_30_0
I have built the boost signals library using bjam. The test suite runs and passes all tests.
How do I make the resulting libraries available to my own programs? Is there an equivalent of 'make install' which will move the results to somewhere from which linking is possible?
There isn't any equivalent to "make install" in Boost.Build, yet. However, you might consider adding a stage target to put the binaries into a more accessible location, e.g., the Jamfile might contain: (borrowed from libs/thread/build/Jamfile) stage bin-stage : <dll>boost_signals : <tag><debug>"d" : debug release ; Doug
Douglas Gregor wrote:
On Monday 31 March 2003 06:17 am, John Fletcher wrote:
System: Red Hat 8.0 with gcc 3.2 Boost 1_30_0
I have built the boost signals library using bjam. The test suite runs and passes all tests.
How do I make the resulting libraries available to my own programs? Is there an equivalent of 'make install' which will move the results to somewhere from which linking is possible?
There isn't any equivalent to "make install" in Boost.Build, yet. However, you might consider adding a stage target to put the binaries into a more accessible location, e.g., the Jamfile might contain:
(borrowed from libs/thread/build/Jamfile) stage bin-stage : <dll>boost_signals : <tag><debug>"d" : debug release ;
Doug
Doug Thank you for this. I don't understand the answer as I don't see any code there which will enable me to designate a location e.g. boost_1_30_0/lib where my libraries could be. An alternative would be to provide a link from e.g. boost_1_30_0/lib to the location where the library actually is, down a very long directory chain. Either would be nice as then I could do g++ -I../boost_1_30_0 something.cpp -osomething -L../boost_1_30_0/lib -lsignals from anywhere, and use a system of my choice e.g. Cmake, to control my own parts of the software. It is simple to include the noncompiled boost libraries in other code, which is presumably the purpose of reusable library code. I appreciate that bjam is there to automate the building of alternative configurations of the libraries, and it works well for that. Surely that doesn't mean that users have to become experts in it to access the tutorial material on a library? Incidentally, the signals library is not included in the list of libraries which have a compiled component, and there is no mention of the need for linking a library in the otherwise excellent tutorial on the signals library. Thanks again John Fletcher
On Tuesday 01 April 2003 04:24 am, John Fletcher wrote:
Doug
Thank you for this. I don't understand the answer as I don't see any code there which will enable me to designate a location e.g. boost_1_30_0/lib where my libraries could be.
Sorry, 'bin-stage' was the location, although I don't particularly like the name choice.
An alternative would be to provide a link from e.g. boost_1_30_0/lib to the location where the library actually is, down a very long directory chain. Either would be nice as then I could do
g++ -I../boost_1_30_0 something.cpp -osomething -L../boost_1_30_0/lib -lsignals
from anywhere, and use a system of my choice e.g. Cmake, to control my own parts of the software. It is simple to include the noncompiled boost libraries in other code, which is presumably the purpose of reusable library code.
This is the idea of staging. If you add this into libs/signals/build/Jamfile: stage lib : <dll>boost_signals : <tag><debug>"d" : debug release ; You'll get libboost_signals.(so|dll) in the 'lib' subdirectory of where you're building. So if you run bjam from libs/signals/build/, it'll be in libs/signals/build/lib. There is also a libboost_signalsd.(so|dll) in the same location for the debug version of the library. Replace "stage lib" with "stage ../../../lib" to put the results where you want them in $(BOOST_ROOT)/lib.
I appreciate that bjam is there to automate the building of alternative configurations of the libraries, and it works well for that. Surely that doesn't mean that users have to become experts in it to access the tutorial material on a library?
It shouldn't have to, but without some form of installation we've unfortunately forced users into precisely that.
Incidentally, the signals library is not included in the list of libraries which have a compiled component, and there is no mention of the need for linking a library in the otherwise excellent tutorial on the signals library.
Those I can fix quickly, and will do so. Doug
participants (2)
-
Douglas Gregor
-
John Fletcher