From: Vladimir Prus (ghost_at_[hidden])
Date: 2005-06-16 01:28:08
Stefan Seefeld wrote:
> Vladimir Prus wrote:
>>>Again, I'm thinking of platforms such as Fedora or Debian, which both
>>>have their own package management tools. If I want to develop software
>>>that is to use boost rpm or deb packages, I'd much appreciate some
>>>standardization of how to query the boost package(s) about required
>>>flags. If this isn't done as part of the boost project itself, packagers
>>>will do it, but probably not in a consistent way.
>> If this is done by Boost.Build, it's required the all packages use
>> Boost.Build too. If they build boost in some other way, then there's
>> nothing we can do.
> Indeed. The point is really to make it *possible* for them to do it
> without boost developers having to care.
> If packagers build boost with bjam, but then rename libraries manually,
> they need to manually adjust the table. Still the whole process is
> transparent to users, as they would still look up library names in the
> same table.
I think that if packagers rename the libraries.... well nothing would work
because then the name of the library encoded inside it will be different
from the filename ;-)
So, packages will either
1. Build boost in some other way
2. Make Boost.Build use the conventions they want.
In either case, they'll know the naming conventions used and can
generate .pc files without any Boost.Build help.
Boost.Build support is only desired if packages will be created by
"bjam --some-naming-convention", it which case packages won't have to do
anything. It's also desired for those building from CVS and installing boost
manually, bypassing package management system.
Do we agree on the above?
> Let's take a concrete example:
> I want to use boost.wave, so I'm looking for a 'boost_wave.pc' file.
> `pkgconfig --libs boost_wave`
> should report something like '-lboost_wave -lboost_program_options
> -lboost_filesystem' on my FC box,
I think Boost packages for all Linux distribution will have exactly those
names, so static .pc file can be fine.
> but when using boost from CVS installed
> in /usr/local, the same command may report:
> '-L/usr/local/lib -lboost_wave-gcc-1_33 -lboost_program_options-gcc-1_33
> You get the idea...
Ok, for installing from CVS the name indeed can vary. Note however, that for
shared linking you don't need -l...program_options... and
-l...filesystem... at all.
BTW, where should .pc file be installed? $prefix/lib/pkgconfig
or /usr/lib/pkgconfig? With arbitrary prefix, the .pc file just won't be
found, which make it useless.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk