Hi Steve and Vladimir, I know you're both really busy, so if you haven't got time for this right now, don't worry. However, this is becoming increasingly important. It was previously a nice to have; with new GCCs, it's going to become rather more essential if one wishes to have any hope of proper linking and support more than one Boost release.
With --as-needed in GCC making linking much stricter, knowing which Boost libraries need linking in is becoming much more of an issue, especially since you can't rely on indirect linking doing the right thing. You are required to know *all* the libraries you need to link with in advance--and this can change with Boost versions, and we have no hope of being able to do this reliably without the same level of support that auto-linking provides Windows users with suitable compilers. https://svn.boost.org/trac/boost/ticket/1094 is the upstream ticket for adding pkg-config support. I've already done the bulk of the work, the patches are all there. Do you have any knowledge of bjam? I don't, and the missing part is integrating the patch with the build system. This is probably trivial if you have any idea how bjam works, but I don't have the first clue. I had a good look, but after several hours I'm still no wiser, so it would probably be a much more effective use of time and effort for someone with working bjam knowledge to do the last bit. With the patches in the ticket, bjam just needs telling how to spit out and install the pkg-config .pc files. auto-link-pkg-config.2.patch is the header patch to supply us with the needed library dependency information. boost-pkg-config-gen.cc is the program to acquire the information and generate the .pc file. It just needs building with these defines: TEST_HEADER - the header to include for a given boost library PREFIX - the bjam prefix (however you get at it) LIBDIR - the bjam libdir (however you get at it) So the program just needs building and running once for each Boost library (bjam must have a list of libraries, or at least provide some means for us to get at the information). Then those files just need installing in $prefix/lib/pkgconfig and the job is done. If you wish to support cross-compiling, this could be done by a script post-install. For distributions like Debian where we compile natively, that's not a major issue at present, so we could like without cross-compile support. Users can then just run e.g. "pkg-config --libs boost_filesystem" and it will tell them exactly which libs are required (or they can use the autoconf macros to do this automatically). Even if you don't include the tools directly in Boost, having the header patch in place will at least allow others to create such tools. Many thanks, Roger -- .''`. Roger Leigh : :' : Debian GNU/Linux http://people.debian.org/~rleigh/ `. `' Printing on GNU/Linux? http://gutenprint.sourceforge.net/ `- GPG Public Key: 0x25BFB848 Please GPG sign your mail.
signature.asc
Description: Digital signature