Hello,

I had  difficulties building some boost libraries (system, thread, date_time, regex) I use in an API project for devices running Windows Mobile 6 / Windows CE. As I found close to no information on how to get the libs built for this platform and I struggled for a couple days to get this working, I would like to share my build environment as a reference for people with similar problems.

Kudos go to David Deakins who had posted a build environment from which I got an initial idea of how to set up my environment (here http://www.boost.org/development/tests/trunk/VeecoFTC.html).

Below I have included my user-config.jam and my environment setup batch file cesetup.bat. I also enclosed a bit of info on host and target systems used and the call i used to b2.exe.

Build Info:

user-config.jam:

using msvc : 9.0~wm6 :
    "cl.exe" :
    <compileflags>-D_CRT_SECURE_NO_WARNINGS
    <compileflags>-D_STLP_USE_WINCE_CRT_FUNCTIONS
    <compileflags>-DUNDER_CE
    <compileflags>-DWINCE
    <compileflags>-D_WINDOWS
    <compileflags>-DUNICODE
    <compileflags>-D_UNICODE
    <compileflags>-D_WIN32
    <compileflags>-DWIN32_PLATFROM_PSPC
    <compileflags>-DARMV4I
    <compileflags>-D_ARMV4I_
    <compileflags>-Darmv4i
    <compileflags>-D_ARM_
    <compileflags>-DARM
    <compileflags>-D__arm__
    <compileflags>-DQ_OS_WINCE_WM
    <compileflags>-D_WIN32_WCE=0x502
    <compileflags>-Zm200
    <compileflags>-w34100
    <compileflags>-w34189
    <cxxflags>/QRarch4
    <cxxflags>/GL
    <linkflags>/INCREMENTAL:NO
    <linkflags>/NOLOGO
    <linkflags>/MANIFEST:NO
    <linkflags>/NODEFAULTLIB:"OLDNAMES.LIB"
    <linkflags>/DELAY:UNLOAD
    <linkflags>/SUBSYSTEM:WINDOWSCE,5.02
    <linkflags>/MACHINE:THUMB
    <linkflags>/ENTRY:mainACRTStartup
    <linkflags>/STACK:262144,4096 
    <linkflags>coredll.lib 
    <linkflags>corelibc.lib 
    <linkflags>ole32.lib 
    <linkflags>oleaut32.lib 
    <linkflags>uuid.lib 
    <linkflags>commctrl.lib 
    <architecture>arm
    <interface>wince
    <setup>"C:/some/path/here/cesetup.bat" 
;

using stlport : 5.2.1~wm6 :
    C:/some/path/here/stlport_5_2_1/stlport : 
    C:/some/path/here/stlport_5_2_1/lib/evc9-wm6
;

Environment setup cesetup.sh:

@echo off
echo Environment Selection:Windows Mobile 6 Professional SDK (ARMV4I)
set PATH=C:\Program Files\Microsoft Visual Studio 9.0\VC\ce\bin\x86_arm;C:\Program Files\Microsoft Visual Studio 9.0\VC\bin;$(WindowsSdkDir)\bin;\Common7\Tools;\Common7\IDE;\Common\Tools;\Common\IDE;\;$(FrameworkSDKDir)Bin;%PATH%
set INCLUDE=C:\Program Files\Microsoft Visual Studio 9.0\VC\ce\include;C:\Program Files\Windows Mobile 6 SDK\PocketPC\include\ARMV4I;C:\Program Files\Windows Mobile 6 SDK\PocketPC\include;C:\Program Files\Microsoft Visual Studio 9.0\VC\ce\atlmfc\include;\SmartDevices\SDK\SQL Server\Mobile\v3.0
set LIB=C:\Program Files\Windows Mobile 6 SDK\PocketPC\lib\ARMV4I;C:\Program Files\Microsoft Visual Studio 9.0\VC\ce\atlmfc\lib\ARMV4I;C:\Program Files\Microsoft Visual Studio 9.0\VC\ce\lib\ARMV4I

Command line:

C:\some\path\boost_1_47_0>
b2 --debug--configuration --debug-building -d+2 \
variant=release toolset=msvc-9.0~wm6 \
stdlib=stlport-5.2.1~wm6 
--with-system \
--with-thread \
--with-date_time \
--with-regex \
 stage

Hope this can help some people out there.
Greets,
Benjamin