
It seems that I need to use the dll-path feature to add an -rpath directive to the linker when my boost libraries are installed. This seems to be described (mostly) fairly clearly at http://www.boost.org/boost-build2/doc/html/bbv2/faq/dll-path.html What is not clear is where the feature should be invoked. My attempt to modify Jamroot to add <dll-path> to the boost-install rule failed in the sense that not rpath information makes it into the installed libraries. (The rest of this snippet is the original.). rule boost-install ( libraries * ) { package.install install : <dependency>/boost//install-headers $(install-requirements) : # No binaries : $(libraries) : # No headers, it's handled by the dependency ; install stage : $(libraries) : <location>$(BOOST_STAGE_LOCATE) <dll-path>/path/to/add/via/rpath ; local c = [ project.current ] ; local project-module = [ $(c).project-module ] ; module $(project-module) { explicit stage ; explicit install ; } } So, how is one supposed to invoke the <dll-path> feature in order to have -rpath added to the linking of libraries during their installation? Thanks for your help. Cheers, Brook

AMDG Brook Milligan wrote:
It seems that I need to use the dll-path feature to add an -rpath directive to the linker when my boost libraries are installed. This seems to be described (mostly) fairly clearly at
http://www.boost.org/boost-build2/doc/html/bbv2/faq/dll-path.html
What is not clear is where the feature should be invoked.
My attempt to modify Jamroot to add <dll-path> to the boost-install rule failed in the sense that not rpath information makes it into the installed libraries. (The rest of this snippet is the original.).
rule boost-install ( libraries * )
So, how is one supposed to invoke the <dll-path> feature in order to have -rpath added to the linking of libraries during their installation?
Jamroot is kind of odd. It ignores the targets created with boost-install. Try adding dll-path to this one: # Complete install package.install install-proper : $(install-requirements) <install-no-version-symlinks>on : : libs/$(libraries)/build : $(headers) ; In Christ, Steven Watanabe

Steven Watanabe writes:
Jamroot is kind of odd. It ignores the targets created with boost-install. Try adding dll-path to this one:
# Complete install package.install install-proper : $(install-requirements) <install-no-version-symlinks>on : : libs/$(libraries)/build : $(headers) ;
Thank you very much. This does in fact create libraries with rpath defined when I build all of boost. Would it make sense to modify this web page
http://www.boost.org/boost-build2/doc/html/bbv2/faq/dll-path.html
to indicate that more explicitly? I know I never would have figured it out without your help, but would have immediately found the correct answer if the page was more complete. I'm not certain of the use of the 'stage installed ...' Jamroot fragment on the web page, because that did not work for me. Perhaps it does for others. Had that been replaced by the following (and the note that this was referring to Jamroot):
# Complete install package.install install-proper : $(install-requirements) <install-no-version-symlinks>on <dll-path>/usr/lib/snake : : libs/$(libraries)/build : $(headers) ;
it would have worked for me. Thanks again for your help. Cheers, Brook

Hi Brook.
Would it make sense to modify this web page
http://www.boost.org/boost-build2/doc/html/bbv2/faq/dll-path.html
to indicate that more explicitly? I know I never would have figured it out without your help, but would have immediately found the correct answer if the page was more complete.
Could you please update the wording so it fits your needs and then send it back to the boost.build mailing list? Best regards, Jurko Gospodnetić

AMDG Brook Milligan wrote:
Steven Watanabe writes:
Jamroot is kind of odd. It ignores the targets created with boost-install. Try adding dll-path to this one:
# Complete install package.install install-proper : $(install-requirements) <install-no-version-symlinks>on : : libs/$(libraries)/build : $(headers) ;
Thank you very much. This does in fact create libraries with rpath defined when I build all of boost.
Actually it's probably better to pass bjam ... dll-path=... on the command line instead of modifying Jamroot.
Would it make sense to modify this web page
http://www.boost.org/boost-build2/doc/html/bbv2/faq/dll-path.html
to indicate that more explicitly? I know I never would have figured it out without your help, but would have immediately found the correct answer if the page was more complete.
I don't think so. That page is not documenting Jamroot at all. It's documenting how the dll-path feature works. As far as it goes it is correct. In Christ, Steven Watanabe
participants (3)
-
brook@biology.nmsu.edu
-
Jurko Gospodnetić
-
Steven Watanabe