Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to install Modular Boost?

Tags:

c++

git

boost

Because I need to test some experimental features of Boost, I would like to install Boost from the Modular Boost repository.

I followed the instructions on https://svn.boost.org/trac/boost/wiki/TryModBoost and the b2 command failed:

./b2 headers
/home/wichtounet/src/modular-boost/tools/build/src/build/feature.jam:493: in feature.validate-value-string from module feature
error: "none" is not a known value of feature <optimization>
error: legal values: "off" "speed" "space"
/home/wichtounet/src/modular-boost/tools/build/src/build/property.jam:273: in validate1 from module property
/home/wichtounet/src/modular-boost/tools/build/src/build/property.jam:299: in property.validate from module property
/home/wichtounet/src/modular-boost/tools/build/src/tools/builtin.jam:377: in variant from module builtin
/usr/share/boost-build/site-config.jam:9: in modules.load from module site-config
/home/wichtounet/src/modular-boost/tools/build/src/build-system.jam:249: in load-config from module build-system
/home/wichtounet/src/modular-boost/tools/build/src/build-system.jam:351: in load-configuration-files from module build-system
/home/wichtounet/src/modular-boost/tools/build/src/build-system.jam:524: in load from module build-system
/home/wichtounet/src/modular-boost/tools/build/src/kernel/modules.jam:289: in import from module modules
/home/wichtounet/src/modular-boost/tools/build/src/kernel/bootstrap.jam:139: in boost-build from module
/home/wichtounet/src/modular-boost/boost-build.jam:17: in module scope from module

I tried adding optimization=speed on the command line, but it didn't changed a thing. I tried the master and develop branches. I tried with clang and gcc toolset.

Does someone has an idea how to install Modular Boost ?

Is there some configuration that is necessary (and where) ? Or is there another procedure to follow ?

EDIT: It seems that it comes from the /usr/share/boost-build/site-config.jam file that is probably installed by Gentoo. I need to be able to tell b2 to ignore this file.

like image 301
Baptiste Wicht Avatar asked Apr 11 '14 13:04

Baptiste Wicht


2 Answers

I turned out that this was caused by a Gentoo configuration file. I just had to ignore the file with:

./b2 --ignore-site-config 
like image 99
Baptiste Wicht Avatar answered Oct 10 '22 17:10

Baptiste Wicht


I use modular boost to get all revisions of boost at my fingertips. Together with ccache I can just switch the boost library version at a whim and I use this procedure for this:

export BOOST_VER=boost-1.55.0
git checkout --force "$BOOST_VER"
git submodule foreach 'git checkout --force "$BOOST_VER" || true'

./bootstrap.sh && ./b2 headers

That's after initial cloning as per the documentation:

git clone --recursive [email protected]:boostorg/boost.git modular-boost

My system is

Linux desktop 3.11.0-18-generic #32-Ubuntu SMP Tue Feb 18 21:11:14 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 13.10
Release:    13.10
Codename:   saucy

git version 1.8.3.2
like image 45
sehe Avatar answered Oct 10 '22 16:10

sehe