You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Robert Greig <ro...@gmail.com> on 2007/09/03 17:47:22 UTC

Building the C++ M2 branch

I decided to check out the M2 branch and try building the C++ from
source. The platform was RH4 x86_64.

The good news is that overall it worked very well, almost according to
the instructions. When I am building, I am not root so I cannot use
yum to update packages therefore everything needs to be available in
non-standard locations.

The only issues I had were:

1) Someone had installed an old version of boost in /usr/lib and this
hadn't been built with -fPIC and therefore didn't link. I built my own
version of boost, but its libraries had the compiler name at the end
e.g. libboost_signals-gcc34.a. I therefore had to change the link
lines to get it to link. I wasn't sure how to do this properly so I
just hacked it in the Makefiles.

Is there either a better way of building boost so it doesn't have
these suffixes or a better way of configuring the libraries to link?

2) The build needed help2man installed. Unfortunately when I tried to
install that, it needed some perl module (Locale::gettext) and I had
no idea how to install a perl module (and the package came with no
instructions). Again I just hacked the makefile.

Apart from those minor issues, it built and ran fine.

RG

Re: Building the C++ M2 branch

Posted by Rajith Attapattu <ra...@gmail.com>.
Thanks for the feedback. I built it on an FC7 machine and only had to update
a few.
(of course I had root so yum was not a problem).

The c++ team can better answer the other questions so I will leave it to
them.

Rajith

On 9/3/07, Robert Greig <ro...@gmail.com> wrote:
>
> I decided to check out the M2 branch and try building the C++ from
> source. The platform was RH4 x86_64.
>
> The good news is that overall it worked very well, almost according to
> the instructions. When I am building, I am not root so I cannot use
> yum to update packages therefore everything needs to be available in
> non-standard locations.
>
> The only issues I had were:
>
> 1) Someone had installed an old version of boost in /usr/lib and this
> hadn't been built with -fPIC and therefore didn't link. I built my own
> version of boost, but its libraries had the compiler name at the end
> e.g. libboost_signals-gcc34.a. I therefore had to change the link
> lines to get it to link. I wasn't sure how to do this properly so I
> just hacked it in the Makefiles.
>
> Is there either a better way of building boost so it doesn't have
> these suffixes or a better way of configuring the libraries to link?
>
> 2) The build needed help2man installed. Unfortunately when I tried to
> install that, it needed some perl module (Locale::gettext) and I had
> no idea how to install a perl module (and the package came with no
> instructions). Again I just hacked the makefile.
>
> Apart from those minor issues, it built and ran fine.
>
> RG
>

Re: Building the C++ M2 branch

Posted by Andrew Stitcher <as...@redhat.com>.
On Tue, 2007-09-04 at 12:20 +0100, Gordon Sim wrote:
> Robert Greig wrote:
> > 1) Someone had installed an old version of boost in /usr/lib and this
> > hadn't been built with -fPIC and therefore didn't link. I built my own
> > version of boost, but its libraries had the compiler name at the end
> > e.g. libboost_signals-gcc34.a. I therefore had to change the link
> > lines to get it to link. I wasn't sure how to do this properly so I
> > just hacked it in the Makefiles.
> > 
> > Is there either a better way of building boost so it doesn't have
> > these suffixes or a better way of configuring the libraries to link?
> 
> There is a --layout=system option to bjam that creates libs that don't 
> include the extra suffixes (and is apparently 'intended for system 
> integrators who are building distribution packages').
> 
> There are also some autoconf macros that might be useful in enhancing 
> our build system: 
> http://autoconf-archive.cryp.to/macros-by-category.html#BOOST

After some experimentation the easeist way to build boost libraries from
source with the "correct" names (ie names that will currently "just"
work).

	unpack boost

	in the top level boost directory run:
		./configure

	then edit the generated Makefile to add "--layout=system"
	to the line beginning "BJAM_CONFIG="

	then run "make"

Andrew



Re: Building the C++ M2 branch

Posted by Gordon Sim <gs...@redhat.com>.
Robert Greig wrote:
> 1) Someone had installed an old version of boost in /usr/lib and this
> hadn't been built with -fPIC and therefore didn't link. I built my own
> version of boost, but its libraries had the compiler name at the end
> e.g. libboost_signals-gcc34.a. I therefore had to change the link
> lines to get it to link. I wasn't sure how to do this properly so I
> just hacked it in the Makefiles.
> 
> Is there either a better way of building boost so it doesn't have
> these suffixes or a better way of configuring the libraries to link?

There is a --layout=system option to bjam that creates libs that don't 
include the extra suffixes (and is apparently 'intended for system 
integrators who are building distribution packages').

There are also some autoconf macros that might be useful in enhancing 
our build system: 
http://autoconf-archive.cryp.to/macros-by-category.html#BOOST