|
Boost-Build : |
Subject: [Boost-build] naive usage of bootstrap.sh
From: Robert Ramey (ramey_at_[hidden])
Date: 2016-10-23 15:55:41
I can test the serialization library in the mac terminal and things work
great. I can test using whichever one of several compilers, I can build
my library status table, etc. and everything is OK.
But for the last 18 months, I have errors in the official boost test
matrix on the develop branch on the linux platforms. This was pretty
frustrating as I always considered the underlying OS of the mac and
linux very similar. After experimenting trying to isolate the issue I\
concluded that I have no choice but to install a similar platform in my
office. So I installed parallels on my mac with ubuntu 14.04. This went
pretty smoothly. It's very convenient that from within the ubuntu os I
can access my original mac OS file system with my master copy of Boost
source on it. So I should have the capability of running b2 test
procedure on exactly the same file versions.
So all I have to is to build B2 and a couple of other utilities on the
ubuntu file system - straight forward? - not so much. First of all I
don't want to polute my file tree on the Mac with files which contain
ubuntu executables and libraries. Of course I forget how to do this so
I look at the documentation on bootstrap.sh
http://www.boost.org/doc/libs/1_62_0/more/getting_started/unix-variants.html.
It states in part:
$ cd path/to/boost_1_62_0
$ ./bootstrap.sh --help
which rewards me with:
parallels_at_ubuntu:~/Desktop/Parallels Shared
Folders/Home/WorkingProjects/modular-boost$ ./bootstrap.sh -help
`./bootstrap.sh' prepares Boost for building on a few kinds of systems.
Usage: ./bootstrap.sh [OPTION]...
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--with-bjam=BJAM use existing Boost.Jam executable (bjam)
[automatically built]
--with-toolset=TOOLSET use specific Boost.Build toolset
[automatically detected]
--show-libraries show the set of libraries that require build
and installation steps (i.e., those libraries
that can be used with --with-libraries or
--without-libraries), then exit
--with-libraries=list build only a particular set of libraries,
describing using either a comma-separated
list of
library names or "all"
[all]
--without-libraries=list build all libraries except the ones listed []
--with-icu enable Unicode/ICU support in Regex
[automatically detected]
--without-icu disable Unicode/ICU support in Regex
--with-icu=DIR specify the root of the ICU library
installation
and enable Unicode/ICU support in Regex
[automatically detected]
--with-python=PYTHON specify the Python executable [python]
--with-python-root=DIR specify the root of the Python installation
[automatically detected]
--with-python-version=X.Y specify the Python version as X.Y
[automatically detected]
Installation directories:
--prefix=PREFIX install Boost into the given PREFIX
[/usr/local]
--exec-prefix=EPREFIX install Boost binaries into the given EPREFIX
[PREFIX]
More precise control over installation directories:
--libdir=DIR install libraries here [EPREFIX/lib]
--includedir=DIR install headers here [PREFIX/include]
parallels_at_ubuntu:~/Desktop/Parallels Shared
Folders/Home/WorkingProjects/modular-boost$
Which looks quite wrong to me. I expect bootstrap.sh to build some
boost tools not include things like --show-libraries , without-icu etc.
I'm now totally confused as to what bootstrap.sh is supposed to do.
Of course I'm not going to let a minor think like total confusion
prevent me from taking action ( this is america after all). So
following the documentation I let loose with:
parallels_at_ubuntu:~/Desktop/Parallels Shared
Folders/Home/WorkingProjects/modular-boost$ pwd
/home/parallels/Desktop/Parallels Shared
Folders/Home/WorkingProjects/modular-boost
parallels_at_ubuntu:~/Desktop/Parallels Shared
Folders/Home/WorkingProjects/modular-boost$ ./bootstrap.sh
--prefix=/home/parallels/boost
Building Boost.Build engine with toolset gcc...
tools/build/src/engine/bin.linuxx86_64/b2
Detecting Python version... 2.7
Detecting Python root... /usr
Unicode/ICU support for Boost.Regex?... not found.
Backing up existing Boost.Build configuration in project-config.jam.3
Generating Boost.Build configuration in project-config.jam...
Bootstrapping is done. To build, run:
./b2
To adjust configuration, edit 'project-config.jam'.
Further information:
- Command line help:
./b2 --help
- Getting started guide:
http://www.boost.org/more/getting_started/unix-variants.html
- Boost.Build documentation:
http://www.boost.org/build/doc/html/index.html
parallels_at_ubuntu:~/Desktop/Parallels Shared
Folders/Home/WorkingProjects/modular-boost$ ls -l b2
-rwxrwxr-x 1 parallels parallels 271448 Oct 23 12:50 b2
parallels_at_ubuntu:~/Desktop/Parallels Shared
Folders/Home/WorkingProjects/modular-boost$
Which displays a number of messages whch seem totally out of place -
python? who ordered that?, etc. Worst of all, it seems to ignore the
"prefix" switch and builds b2 right in the boost root. Not where I
meant to put it and not where the documentation nor the help information
says it will go.
So now I'm going to have to dive into a place where I didn't want to go
- reviewing the bootstrap.sh script in detail. It shouldn't be this
way. At a very miniumum, the Getting Started documentation,
booststrap.sh help and execution are out of sync. I user less
persistent user shouldn't have to deal with this.
Robert Ramey
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk