Attached is a new files for building the boost library with stdcxx.
The .jam files should be placed in %BOOST_ROOT%/tools/build/v1.
The boost-base.jam.diff is the patch file for the boost-base.jam file.
The 2 environment variable should be defined before build:
STDCXX_ROOT - is the root directory of the stdcxx
STDCXX_BUILD_PATH - is the build directory
That variables can be exported of specified in the command line
using syntax -sNAME=value.
Example of the command line which I've used:
bjam --without-python -sSTDCXX_ROOT=/usr/src/stdcxx
-sSTDCXX_BUILD_PATH=/usr/src/stdcxx/build_12d -sTOOLS=gcc-stdcxx
-s"BUILD=release <runtime-link>dynamic <threading>multi" stage
Farid.
2609a2610
> # "x" when building with stdcxx libraries
2628a2630,2632
> if [ MATCH .*(stdcxx).* : $(toolset) ] ||
> [ MATCH .*(stdcxx).* : $(properties:G) ]
> { runtime-tag += x ; }
extends-toolset gcc ;
flags $(gCURRENT_TOOLSET) STDCXX_LIB_BASE_NAME ;
STDCXX_LIB_BASE_NAME = std ;
# bring in the STDCXX configuration
SEARCH on stdcxx.jam = $(BOOST_BUILD_PATH) ;
include stdcxx.jam ;
CURR_TOOLSET = $(gCURRENT_TOOLSET) ;
# singleton variables...
set-as-singleton STDCXX_INCLUDE_DIRECTORY STDCXX_LIB_DIRECTORY
STDCXX_BUILD_PATH STDCXX_ROOT ;
#############################################################################
STDCXX_INCLUDE_DIRECTORY ?= include ;
STDCXX_LIB_DIRECTORY ?= lib ;
# Clear out the STD paths so that the real toolset doesn't include
# anything but the STDCXX as the STD. But also set the STDLIBPATH to
# include the compiler libs afterwards as STDCXX still relies on the
# rest of the runtime.
local .stdlibpath = $(STDLIBPATH) ;
STDHDRS = ;
STDLIBPATH = ;
### Common options.
flags $(CURR_TOOLSET) LIB_SUFFIX
<runtime-build>release/<runtime-link>static/<threading>single : 8s ;
flags $(CURR_TOOLSET) LIB_SUFFIX
<runtime-build>release/<runtime-link>dynamic/<threading>single : 8d ;
flags $(CURR_TOOLSET) LIB_SUFFIX
<runtime-build>debug/<runtime-link>static/<threading>single : 11s ;
flags $(CURR_TOOLSET) LIB_SUFFIX
<runtime-build>debug/<runtime-link>dynamic/<threading>single : 11d ;
flags $(CURR_TOOLSET) LIB_SUFFIX
<runtime-build>release/<runtime-link>static/<threading>multi : 12s ;
flags $(CURR_TOOLSET) LIB_SUFFIX
<runtime-build>release/<runtime-link>dynamic/<threading>multi : 12d ;
flags $(CURR_TOOLSET) LIB_SUFFIX
<runtime-build>debug/<runtime-link>static/<threading>multi : 15s ;
flags $(CURR_TOOLSET) LIB_SUFFIX
<runtime-build>debug/<runtime-link>dynamic/<threading>multi : 15d ;
flags $(CURR_TOOLSET) LIB_SUFFIX
<runtime-build>release/<runtime-link>static/<threading>single<address-model>64
: 8S ;
flags $(CURR_TOOLSET) LIB_SUFFIX
<runtime-build>release/<runtime-link>dynamic/<threading>single<address-model>64
: 8D ;
flags $(CURR_TOOLSET) LIB_SUFFIX
<runtime-build>debug/<runtime-link>static/<threading>single<address-model>64 :
11S ;
flags $(CURR_TOOLSET) LIB_SUFFIX
<runtime-build>debug/<runtime-link>dynamic/<threading>single<address-model>64 :
11D ;
flags $(CURR_TOOLSET) LIB_SUFFIX
<runtime-build>release/<runtime-link>static/<threading>multi<address-model>64 :
12S ;
flags $(CURR_TOOLSET) LIB_SUFFIX
<runtime-build>release/<runtime-link>dynamic/<threading>multi<address-model>64
: 12D ;
flags $(CURR_TOOLSET) LIB_SUFFIX
<runtime-build>debug/<runtime-link>static/<threading>multi<address-model>64 :
15S ;
flags $(CURR_TOOLSET) LIB_SUFFIX
<runtime-build>debug/<runtime-link>dynamic/<threading>multi<address-model>64 :
15D ;
flags $(CURR_TOOLSET) STDHDRS :
$(STDCXX_ROOT)$(SLASH)$(STDCXX_INCLUDE_DIRECTORY)
$(STDCXX_ROOT)$(SLASH)$(STDCXX_INCLUDE_DIRECTORY)$(SLASH)ansi
$(STDCXX_BUILD_PATH)$(SLASH)$(STDCXX_INCLUDE_DIRECTORY) ;
flags $(CURR_TOOLSET) DEFINES <runtime-build>debug : _RWSTDDEBUG ;
flags $(CURR_TOOLSET) DEFINES <runtime-link>dynamic : _RWSHARED ;
flags $(CURR_TOOLSET) STDLIBPATH :
$(STDCXX_BUILD_PATH)$(SLASH)$(STDCXX_LIB_DIRECTORY)
$(.stdlibpath) ;
flags $(CURR_TOOLSET) FINDLIBS : $(STDCXX_LIB_BASE_NAME)$(LIB_SUFFIX) ;
extends-toolset msvc ;
flags $(gCURRENT_TOOLSET) STDCXX_LIB_BASE_NAME ;
STDCXX_LIB_BASE_NAME = stdlib ;
# bring in the STDCXX configuration
SEARCH on stdcxx.jam = $(BOOST_BUILD_PATH) ;
include stdcxx.jam ;
# singleton variables...
set-as-singleton VC71_ROOT ;
if ! $(MSVCDir)
{
ProgramFiles ?= $(PROGRAMFILES) ;
VC71_ROOT ?= $(ProgramFiles:J=" ")"\\Microsoft Visual Studio .NET
2003\\VC7" ;
VC_TOOL_PATH = "$(VC71_ROOT)"\\bin\\ ;
VC_SETUP = "CALL \"$(VC_TOOL_PATH)VCVARS32.BAT\" >nul" ;
}
VC_PDB_NAME = vc71 ;
feature native-wchar_t : off on ;
flags vc-7_1-stdcxx CFLAGS : /Op ;
flags vc-7_1-stdcxx C++FLAGS : /wd4675 ; # Don't warn about the use of ADL
flags vc-7_1-stdcxx C++FLAGS : /Zc:forScope ;
flags vc-7_1-stdcxx C++FLAGS <native-wchar_t>on : /Zc:wchar_t ;
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version
number.
#//<a
href="http://msdn.microsoft.com/vstudio/default.asp">Micro-<br>soft<br>VC++</a><br><a
href="http://incubator.apache.org/stdcxx/">STDCXX</a>
extends-toolset msvc ;
flags $(gCURRENT_TOOLSET) STDCXX_LIB_BASE_NAME ;
STDCXX_LIB_BASE_NAME = stdlib ;
# bring in the STDCXX configuration
SEARCH on stdcxx.jam = $(BOOST_BUILD_PATH) ;
include stdcxx.jam ;
# singleton variables...
set-as-singleton VC80_ROOT ;
if ! $(MSVCDir)
{
if $(VS80COMNTOOLS)
{
VC80_ROOT ?= $(VS80COMNTOOLS:J=" ")..\\..\\VC ;
}
else
{
ProgramFiles ?= $(PROGRAMFILES) ;
VC80_ROOT ?= $(ProgramFiles:J=" ")"\\Microsoft Visual Studio 8\\VC" ;
}
}
if $(VC80_ROOT)
{
VC_TOOL_PATH = "$(VC80_ROOT)"\\bin\\ ;
VC_SETUP = "CALL \"$(VC_TOOL_PATH)vcvars32.BAT\" >nul" ;
}
VC_PDB_NAME = vc80 ;
VC_MANIFEST = "mt -manifest " ;
VC_OUTPUTRESOURCE = -outputresource: ;
feature native-wchar_t : on off ;
flags vc-8_0 C++FLAGS : /Zc:forScope ;
flags vc-8_0 C++FLAGS <native-wchar_t>on : /Zc:wchar_t ;
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version
number.
#//<a
href="http://msdn.microsoft.com/vstudio/whidbey/default.aspx">Micro-<br>soft<br>VC++</a><br><a
href="http://incubator.apache.org/stdcxx/">STDCXX</a>