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>

Reply via email to