Boost logo

Boost :

From: Stefan Seefeld (seefeld_at_[hidden])
Date: 2005-06-16 06:59:49


Vladimir Prus wrote:

> 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 ;-)

You are right, on most systems there is more to renaming a library than
just 'mv foo.so bar.so'.

> 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.

Sure they *can*. But so far it hasn't happened, and I believe instead of
sending a RFE to RedHat and Debian and... it is simpler to make the change
to the boost build system and then encourage packagers to follow the
example.

> 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?

Yes.

>
>
>>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.

Ok. But who creates / maintains them ?

>>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
>>-lboost_filesystem-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.

That depends on the platform. Not everywhere is the dependency encoded in the
library itself. On some the user has to explicitly (re)link with *all* libraries.

>
> 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.

I install them into <prefix>/lib/pkgconfig. That of course requires the
PKG_CONFIG_PATH to be set. That is basically the same procedure as setting
the LD_LIBRARY_PATH if libraries are installed in places not automatically
looked in by the library loader.

Regards,
                Stefan


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk