how to specify options for Boost-building?

Hello, I want to build version 1_38_0, but I can't progress due to missing build-documentation. I need to use bjam (due to special demands on the build), and my platform is Linux. Apparently besides this little bit of information at http://www.boost.org/doc/libs/1_38_0/more/getting_started/unix-variants.html there is nothing available? (Even to get there is not obvious --- you need to click on "microsoft install" first, in order to find a further link to Linux/Unix install?) So well, I invoke "bjam --help": Usage says bjam [options] [properties] [install|stage] where under "properties" we find Properties: toolset=toolset Indicates the toolset to build with. variant=debug|release Select the build variant link=static|shared Whether to build static or shared libraries threading=single|multi Whether to build single or multithreaded binaries runtime-link=static|shared Whether to link to static or shared C and C++ runtime. What's the syntax here?? "--toolset=gcc", as one finds it on that webpage above, or "toolset=gcc", as that information seems to suggest (since for the options the "--" is mentioned)?? Unfortunately, it seems that, different from all other build systems I'm aware of, bjam doesn't print out a summary of what it will be doing. I tried many variations of syntax, but apparently it never worked out. There is an option which is potentially relevant, "--build-type", but again I don't know what are the possible parameters for that --- since there are no examples, I don't know how to read the cryptic listing (syntax-wise). What I need to achieve is simple: 1) I need to specify a locally installed gcc toolset: Past installations suggested to use the options --toolset=gcc-4.1.2 --toolset-root=PATH-TO-LOCAL-INSTALLATION --"-sGCC_ROOT_DIRECTORY=PATH-TO-LOCAL-INSTALLATION" I can't find any information on that topic. 2) I need a local installation of boost; that works out: --prefix=XXX --build-dir=YYY no problem here. 3) No python; this seems also unproblematic (but apparently it vanished from the documentation?) --without-python 4) Only simple names for the built libraries; this seems also to work with --layout=system 5) No multi-threading: Don't know how to achieve this: Somehow "threading=single" seems to be needed here, but I don't know how to specify it (whatever I do, I always end up with libraries with the "mt"-ending). Glad for any help. Oliver

Oliver Kullmann wrote:
Hello,
I want to build version 1_38_0, but I can't progress due to missing build-documentation. I need to use bjam (due to special demands on the build), and my platform is Linux.
Apparently besides this little bit of information at http://www.boost.org/doc/libs/1_38_0/more/getting_started/unix-variants.html there is nothing available? (Even to get there is not obvious --- you need to click on "microsoft install" first, in order to find a further link to Linux/Unix install?)
So well, I invoke "bjam --help":
Usage says
bjam [options] [properties] [install|stage]
where under "properties" we find
Properties:
toolset=toolset Indicates the toolset to build with.
variant=debug|release Select the build variant
link=static|shared Whether to build static or shared libraries
threading=single|multi Whether to build single or multithreaded binaries
runtime-link=static|shared Whether to link to static or shared C and C++ runtime.
What's the syntax here??
"--toolset=gcc", as one finds it on that webpage above, or "toolset=gcc", as that information seems to suggest (since for the options the "--" is mentioned)??
Unfortunately, it seems that, different from all other build systems I'm aware of, bjam doesn't print out a summary of what it will be doing. I tried many variations of syntax, but apparently it never worked out.
There is an option which is potentially relevant, "--build-type", but again I don't know what are the possible parameters for that --- since there are no examples, I don't know how to read the cryptic listing (syntax-wise).
What I need to achieve is simple:
1) I need to specify a locally installed gcc toolset: Past installations suggested to use the options
--toolset=gcc-4.1.2 --toolset-root=PATH-TO-LOCAL-INSTALLATION --"-sGCC_ROOT_DIRECTORY=PATH-TO-LOCAL-INSTALLATION"
I can't find any information on that topic.
2) I need a local installation of boost; that works out:
--prefix=XXX --build-dir=YYY
no problem here.
3) No python; this seems also unproblematic (but apparently it vanished from the documentation?)
--without-python
4) Only simple names for the built libraries; this seems also to work with
--layout=system
5) No multi-threading: Don't know how to achieve this: Somehow "threading=single" seems to be needed here, but I don't know how to specify it (whatever I do, I always end up with libraries with the "mt"-ending).
Glad for any help.
Oliver
This small script can build boost for you. btw, cannot the package manager of your system install boost? BR, Dmitry

Thanks! But as far as I can see, two important things are missing from ------------------------------- #!/bin/sh if [ `uname -m` == "x86_64" ] then BJAM=bin.linuxx86_64/bjam fi if [ `uname -m` == "i686" ] then BJAM=bin.linuxx86/bjam fi cd tools/jam/src || exit 1 test -x $BJAM || ./build.sh --update || exit 1 cd ../../.. || exit 1 NCPUS=`cat /proc/cpuinfo | grep "^processor\s*" | wc -l` ./configure \ --with-bjam=`pwd`/tools/jam/src/$BJAM \ --with-toolset=gcc \ $CFGFLAGS \ || exit 1 make -j$NCPUS BJAM_CONFIG='--layout=system' || exit 1 make BJAM_CONFIG='--layout=system' install || exit 1 ------------------------------- 1. It doesn't use a local gcc. 2. Non-multithreading is not specified. Likely prefix, build-dir and no-python are easily added, but exactly these two problems are my problems. Regarding whether "the package manager of my system" can't install Boost: Unfortunately, I'm the package manager ;-). Just for information: I develop an open-source library, which amongst other things also uses Boost, and so when installing my library I first install gcc, then Boost with this local gcc. Of course, all installations are local. Oliver On Thu, Feb 12, 2009 at 08:45:38PM +0300, Dmitry Goncharov wrote:
Oliver Kullmann wrote:
Hello,
I want to build version 1_38_0, but I can't progress due to missing build-documentation. I need to use bjam (due to special demands on the build), and my platform is Linux.
Apparently besides this little bit of information at http://www.boost.org/doc/libs/1_38_0/more/getting_started/unix-variants.html there is nothing available? (Even to get there is not obvious --- you need to click on "microsoft install" first, in order to find a further link to Linux/Unix install?)
So well, I invoke "bjam --help":
Usage says
bjam [options] [properties] [install|stage]
where under "properties" we find
Properties:
toolset=toolset Indicates the toolset to build with.
variant=debug|release Select the build variant
link=static|shared Whether to build static or shared libraries
threading=single|multi Whether to build single or multithreaded binaries
runtime-link=static|shared Whether to link to static or shared C and C++ runtime.
What's the syntax here??
"--toolset=gcc", as one finds it on that webpage above, or "toolset=gcc", as that information seems to suggest (since for the options the "--" is mentioned)??
Unfortunately, it seems that, different from all other build systems I'm aware of, bjam doesn't print out a summary of what it will be doing. I tried many variations of syntax, but apparently it never worked out.
There is an option which is potentially relevant, "--build-type", but again I don't know what are the possible parameters for that --- since there are no examples, I don't know how to read the cryptic listing (syntax-wise).
What I need to achieve is simple:
1) I need to specify a locally installed gcc toolset: Past installations suggested to use the options
--toolset=gcc-4.1.2 --toolset-root=PATH-TO-LOCAL-INSTALLATION --"-sGCC_ROOT_DIRECTORY=PATH-TO-LOCAL-INSTALLATION"
I can't find any information on that topic.
2) I need a local installation of boost; that works out:
--prefix=XXX --build-dir=YYY
no problem here.
3) No python; this seems also unproblematic (but apparently it vanished from the documentation?)
--without-python
4) Only simple names for the built libraries; this seems also to work with
--layout=system
5) No multi-threading: Don't know how to achieve this: Somehow "threading=single" seems to be needed here, but I don't know how to specify it (whatever I do, I always end up with libraries with the "mt"-ending).
Glad for any help.
Oliver
This small script can build boost for you. btw, cannot the package manager of your system install boost?
BR, Dmitry

AMDG Oliver Kullmann wrote:
I want to build version 1_38_0, but I can't progress due to missing build-documentation. I need to use bjam (due to special demands on the build), and my platform is Linux.
Apparently besides this little bit of information at http://www.boost.org/doc/libs/1_38_0/more/getting_started/unix-variants.html there is nothing available? (Even to get there is not obvious --- you need to click on "microsoft install" first, in order to find a further link to Linux/Unix install?)
There are links to both the windows and unix versions at the bottom of http://www.boost.org/doc/libs/1_38_0/more/getting_started/index.html
So well, I invoke "bjam --help":
Usage says
bjam [options] [properties] [install|stage]
where under "properties" we find
Properties:
toolset=toolset Indicates the toolset to build with.
variant=debug|release Select the build variant
link=static|shared Whether to build static or shared libraries
threading=single|multi Whether to build single or multithreaded binaries
runtime-link=static|shared Whether to link to static or shared C and C++ runtime.
What's the syntax here??
"--toolset=gcc", as one finds it on that webpage above, or "toolset=gcc", as that information seems to suggest (since for the options the "--" is mentioned)??
The syntax is toolset=gcc. For toolset (only) --toolset=gcc will also work for backwards compatibility.
Unfortunately, it seems that, different from all other build systems I'm aware of, bjam doesn't print out a summary of what it will be doing. I tried many variations of syntax, but apparently it never worked out.
There is an option which is potentially relevant, "--build-type", but again I don't know what are the possible parameters for that --- since there are no examples, I don't know how to read the cryptic listing (syntax-wise).
The options are --build-type=minimal or --build-type=complete If you need specific libraries this is probably not helpful.
What I need to achieve is simple:
1) I need to specify a locally installed gcc toolset: Past installations suggested to use the options
--toolset=gcc-4.1.2 --toolset-root=PATH-TO-LOCAL-INSTALLATION --"-sGCC_ROOT_DIRECTORY=PATH-TO-LOCAL-INSTALLATION"
I can't find any information on that topic.
http://www.boost.org/boost-build2/doc/html/bbv2/advanced/configuration.html
2) I need a local installation of boost; that works out:
--prefix=XXX --build-dir=YYY
no problem here.
3) No python; this seems also unproblematic (but apparently it vanished from the documentation?)
--without-python
--without-<library> is listed in the --help output.
4) Only simple names for the built libraries; this seems also to work with
--layout=system
Yep.
5) No multi-threading: Don't know how to achieve this: Somehow "threading=single" seems to be needed here, but I don't know how to specify it (whatever I do, I always end up with libraries with the "mt"-ending).
threading=single should work. In Christ, Steven Watanabe

Oliver Kullmann wrote:
Hello,
I want to build version 1_38_0, but I can't progress due to missing build-documentation. I need to use bjam (due to special demands on the build), and my platform is Linux.
Apparently besides this little bit of information at http://www.boost.org/doc/libs/1_38_0/more/getting_started/unix-variants.html there is nothing available? (Even to get there is not obvious --- you need to click on "microsoft install" first, in order to find a further link to Linux/Unix install?)
So well, I invoke "bjam --help":
Usage says
bjam [options] [properties] [install|stage]
where under "properties" we find
Properties:
toolset=toolset Indicates the toolset to build with.
variant=debug|release Select the build variant
link=static|shared Whether to build static or shared libraries
threading=single|multi Whether to build single or multithreaded binaries
runtime-link=static|shared Whether to link to static or shared C and C++ runtime.
What's the syntax here??
"--toolset=gcc", as one finds it on that webpage above, or "toolset=gcc", as that information seems to suggest (since for the options the "--" is mentioned)??
Both work. I hope that getting started will be fixed to use toolset=xxx
Unfortunately, it seems that, different from all other build systems I'm aware of, bjam doesn't print out a summary of what it will be doing. I tried many variations of syntax, but apparently it never worked out.
No build system I know produces summary of that it *will* be doing. Some build systems echo the commands before executing them, but definitely not all -- for example, CMake does not print complete commands either. You can make Boost.Build to print commands using -d2 option.
There is an option which is potentially relevant, "--build-type", but again I don't know what are the possible parameters for that --- since there are no examples, I don't know how to read the cryptic listing (syntax-wise).
What I need to achieve is simple:
1) I need to specify a locally installed gcc toolset: Past installations suggested to use the options
--toolset=gcc-4.1.2 --toolset-root=PATH-TO-LOCAL-INSTALLATION --"-sGCC_ROOT_DIRECTORY=PATH-TO-LOCAL-INSTALLATION"
I can't find any information on that topic.
See: http://www.boost.org/boost-build2/doc/html/bbv2/advanced/configuration.html
3) No python; this seems also unproblematic (but apparently it vanished from the documentation?)
--without-python
It is present in "--help" output.
5) No multi-threading: Don't know how to achieve this: Somehow "threading=single" seems to be needed here, but I don't know how to specify it (whatever I do, I always end up with libraries with the "mt"-ending).
The syntax is documented at: http://www.boost.org/boost-build2/doc/html/bbv2/advanced/invocation.html What did you try exactly? - Volodya

Unfortunately, it seems that, different from all other build systems I'm aware of, bjam doesn't print out a summary of what it will be doing. I tried many variations of syntax, but apparently it never worked out.
No build system I know produces summary of that it *will* be doing. Some build systems echo the commands before executing them, but definitely not all -- for example, CMake does not print complete commands either. You can make Boost.Build to print commands using -d2 option.
I didn't mean the build-system as such, but the concrete instance: For example building CLisp I get a summary: Here are all the instructions you gave as (and as we understand them!), here are our findings about your system, and here is what we are going to do.
http://www.boost.org/boost-build2/doc/html/bbv2/advanced/invocation.html
Thanks for this information! This page is valuable. Now I activated more informative output via -d+2 --debug-configuration --debug-building (not clear what I really need), and I see notice: [cmdline-cfg] Detected command-line request for gcc-4.1.2: toolset= gcc version= 4.1.2 notice: [cmdline-cfg] toolset gcc-4.1.2 not previously configured; attempting to auto-configure now notice: will use 'g++' for gcc, condition <toolset>gcc-4.1.2 notice: using gcc libraries :: <toolset>gcc-4.1.2 :: /usr/local/bin /usr/local/lib /usr/local/lib32 /usr/local/lib64 This is definitely not what I want: So the remaining open problems is how to get my *local* gcc working? Apparently --toolset=gcc-4.1.2 --toolset-root=PATH-TO-LOCAL-INSTALLATION --"-sGCC_ROOT_DIRECTORY=PATH-TO-LOCAL-INSTALLATION" which used to work for boost 1_34_1, is no longer working. According to http://www.boost.org/boost-build2/doc/html/bbv2/advanced/configuration.html all what I need to do instead seems to tell bjam the full path to my g++ (and then apparently it figures out the rest): Can this information be passed as a parameter, or is such a .jam-file needed?
3) No python; this seems also unproblematic (but apparently it vanished from the documentation?)
--without-python
It is present in "--help" output.
But it "python" a library? Thanks! Oliver

AMDG Oliver Kullmann wrote:
So the remaining open problems is how to get my *local* gcc working? Apparently
--toolset=gcc-4.1.2 --toolset-root=PATH-TO-LOCAL-INSTALLATION --"-sGCC_ROOT_DIRECTORY=PATH-TO-LOCAL-INSTALLATION"
which used to work for boost 1_34_1, is no longer working.
According to
http://www.boost.org/boost-build2/doc/html/bbv2/advanced/configuration.html
all what I need to do instead seems to tell bjam the full path to my g++ (and then apparently it figures out the rest): Can this information be passed as a parameter, or is such a .jam-file needed?
A .jam file is needed.
3) No python; this seems also unproblematic (but apparently it vanished from the documentation?)
--without-python
It is present in "--help" output.
But it "python" a library?
Yes. In Christ, Steven Watanabe

Just to report: Seems that building is now okay. Thanks! (Though I get now compiler errors, and linker segmentation faults. Let's see what to do about that.) Oliver On Thu, Feb 12, 2009 at 11:29:36AM -0800, Steven Watanabe wrote:
AMDG
Oliver Kullmann wrote:
So the remaining open problems is how to get my *local* gcc working? Apparently
--toolset=gcc-4.1.2 --toolset-root=PATH-TO-LOCAL-INSTALLATION --"-sGCC_ROOT_DIRECTORY=PATH-TO-LOCAL-INSTALLATION"
which used to work for boost 1_34_1, is no longer working.
According to
http://www.boost.org/boost-build2/doc/html/bbv2/advanced/configuration.html
all what I need to do instead seems to tell bjam the full path to my g++ (and then apparently it figures out the rest): Can this information be passed as a parameter, or is such a .jam-file needed?
A .jam file is needed.
3) No python; this seems also unproblematic (but apparently it vanished from the documentation?)
--without-python
It is present in "--help" output.
But it "python" a library?
Yes.
In Christ, Steven Watanabe
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- Dr. Oliver Kullmann Computer Science Department Swansea University Faraday Building, Singleton Park Swansea SA2 8PP, UK http://cs.swan.ac.uk/~csoliver/
participants (4)
-
Dmitry Goncharov
-
Oliver Kullmann
-
Steven Watanabe
-
Vladimir Prus