Boost logo

Boost-Build :

Subject: [Boost-build] [wince] Boost on wince for dumm
From: Andy Schweitzer (a.schweitzer.grps_at_[hidden])
Date: 2009-05-17 17:23:47


Hi, I'm trying to build boost for windows ce, and I'm having some
issues. Any suggestions on what specifically I'm doing wrong, or advice
on documentation/examples I should look at appreciated.

I modified user-config.jam (attached) based on this:
http://www.boost.org/development/tests/trunk/VeecoFTC.html

That references setup batch files I haven't been to find, but the
attached batch file seems about right.

This command:
bjam system toolset=msvc-8.0~wm5~stlport5.2 stdlib=stlport > bjam.txt

gets:
libs\system\src\error_code.cpp(85) : error C2039: 'strerror' : is not a
member of 'stlp_std'

stlport cstring says:
# if !defined (_STLP_WCE)
// these functions just don't exist on Windows CE
using _STLP_VENDOR_CSTD::strcoll;
using _STLP_VENDOR_CSTD::strerror;
using _STLP_VENDOR_CSTD::strxfrm;
# endif

and in fact if the using statement for strerror is moved outside the
#if, strerror can't be found in global namespace.

A stub inline definition of strerror returning NULL makes the compiler
go away...

I can think of three obvious problems:
1) env setup in evc8.bat is wrong.
2) user-config.jam is wrong
3) I'm missing some other obvious config necessary to build for windows ce.

Even with my hack, filesystem has many more errors, looking for
GetCurrentDirectoryW, GetFullPathNameW, CreateHardLinkW and some others.
  Current directory doesn't exist in CE, which makes me think that I
somehow haven't really told the boost build system I'm building for CE.

Any ideas?

thanks

Andy

set OSVERSION=WCE500
set PLATFORM=STANDARDSDK_500
set SDKROOT=C:\Program Files\Windows CE Tools
call "C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat"

set PATH="C:\Program Files\Microsoft Visual Studio 8\VC\ce\bin";%PATH%
set PATH="C:\Program Files\Microsoft Visual Studio 8\VC\ce\bin\x86_arm";%PATH%
set PATH="C:\Program Files\Microsoft Visual Studio 8\VC\bin";%PATH%
set PATH="C:\Program Files\Microsoft Visual Studio 8\Common7\IDE";%PATH%

set INCLUDE="C:\Program Files\Windows CE Tools\WCE500\STANDARDSDK_500\include\ARMV4I";%INCLUDE%
set INCLUDE="C:\Program Files\Windows CE Tools\WCE500\STANDARDSDK_500\MFC\include";%INCLUDE%
set INCLUDE="C:\Program Files\Windows CE Tools\WCE500\STANDARDSDK_500\ATL\include";%INCLUDE%

set LIB="C:\Program Files\Windows CE Tools\WCE500\STANDARDSDK_500\lib\ARMV4I";%LIB%
set LIB="C:\Program Files\Windows CE Tools\WCE500\STANDARDSDK_500\\MFC\lib\ARMV4I";%LIB%
set LIB="C:\Program Files\Windows CE Tools\WCE500\STANDARDSDK_500\\ATL\lib\ARMV4I";%LIB%
set LIB="C:\Program Files\Microsoft Visual Studio 8\VC\ce\lib\armv4i";%LIB%

set CC=cl.exe
set TARGETCPU=ARMV4I
set CFG=none


# Copyright 2003, 2005 Douglas Gregor
# Copyright 2004 John Maddock
# Copyright 2002, 2003, 2004, 2007 Vladimir Prus
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)

# This file is used to configure your Boost.Build installation. You can modify
# this file in place, or you can place it in a permanent location so that it
# does not get overwritten should you get a new version of Boost.Build. See:
#
# http://boost.org/boost-build2/doc/html/bbv2/reference.html#bbv2.reference.init
#
# for documentation about possible permanent locations.

# This file specifies which toolsets (C++ compilers), libraries, and other
# tools are available. Often, you should be able to just uncomment existing
# example lines and adjust them to taste. The complete list of supported tools,
# and configuration instructions can be found at:
#
# http://boost.org/boost-build2/doc/html/bbv2/reference/tools.html
#

# This file uses Jam language syntax to describe available tools. Mostly,
# there are 'using' lines, that contain the name of the used tools, and
# parameters to pass to those tools -- where paremeters are separated by
# semicolons. Important syntax notes:
#
# - Both ':' and ';' must be separated from other tokens by whitespace
# - The '\' symbol is a quote character, so when specifying Windows paths you
# should use '/' or '\\' instead.
#
# More details about the syntax can be found at:
#
# http://boost.org/boost-build2/doc/html/bbv2/advanced.html#bbv2.advanced.jam_language
#

# ------------------
# GCC configuration.
# ------------------

# Configure gcc (default version).
# using gcc ;

# Configure specific gcc version, giving alternative name to use.
# using gcc : 3.2 : g++-3.2 ;

# -------------------
# MSVC configuration.
# -------------------

# Configure msvc (default version, searched for in standard locations and PATH).
# using msvc ;

# Configure specific msvc version (searched for in standard locations and PATH).
# using msvc : 8.0 ;

using stlport : 5.2.1 : "C:/nan/stl/STLport-5.2.1" "C:/nan/stl/STLport-5.2.1/lib/vc9" ;

# ----------------------
# Borland configuration.
# ----------------------
# using borland ;

# ----------------------
# STLPort configuration.
# ----------------------

# Configure specifying location of STLPort headers. Libraries must be either
# not needed or available to the compiler by default.
# using stlport : : /usr/include/stlport ;

# Configure specifying location of both headers and libraries explicitly.
# using stlport : : /usr/include/stlport /usr/lib ;

# -----------------
# QT configuration.
# -----------------

# Configure assuming QTDIR gives the installation prefix.
# using qt ;

# Configure with an explicit installation prefix.
# using qt : /usr/opt/qt ;

using msvc : 8.0~stlport5.2 :
    "C:/Program Files/Microsoft Visual Studio 8/VC/bin/cl.exe" :
    <compileflags>-D_CRT_SECURE_NO_WARNINGS
    <compileflags>-DBOOST_PROTO_MAX_ARITY=10
    <compileflags>-DBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
    <compileflags>-DBOOST_MPL_LIMIT_METAFUNCTION_ARITY=10
    <setup>"C:/nan/stl/STLport-5.2.1/evc9.bat"
;
    
using msvc : 8.0~wm5~stlport5.2 :
    "C:/Program Files/Microsoft Visual Studio 8/VC/bin/cl.exe" :
    <compileflags>-D_CRT_SECURE_NO_WARNINGS
    <compileflags>-DBOOST_PROTO_MAX_ARITY=10
    <compileflags>-DBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
    <compileflags>-DBOOST_MPL_LIMIT_METAFUNCTION_ARITY=10
    <compileflags>-D_WIN32_WCE=0x501
    <compileflags>-DUNDER_CE
    #removed
    #<compileflags>-DWIN32_WCE_PSPC
    <compileflags>-DWINCE
    <compileflags>-DARM
    <compileflags>-D_ARM_
    <compileflags>-D_UNICODE
    <compileflags>-DUNICODE
    <compileflags>-DARMV4I
    #added
    <compileflags>-I"C:/nan/stl/STLPort-5.2.1/stlport"
    <compileflags>-D_LITTLE_ENDIAN
    <linkflags>/subsystem:windowsce,5.01
    <linkflags>/machine:THUMB
    <linkflags>/NODEFAULTLIB:oldnames.lib
    <linkflags>/NODEFAULTLIB:libc.lib
    <linkflags>/STACK:262144,4096
    <linkflags>coredll.lib
    <linkflags>corelibc.lib
    <linkflags>ole32.lib
    <linkflags>oleaut32.lib
    <linkflags>uuid.lib
    <linkflags>commctrl.lib
    <setup>"C:/nan/stl/STLport-5.2.1/evc8.bat"
;

using stlport : 5.2~evc8~arm :
    C:/nan/stl/STLport-5.2.1/stlport
    C:/nan/stl/STLport-5.2.1/lib/evc8-arm C:/nan/stl/STLport-5.2.1/bin/evc8-arm ;

using stlport : 5.2~vc8~arm :
    C:/nan/stl/STLport-5.2.1/stlport
    C:/nan/stl/STLport-5.2.1/lib/evc8-arm C:/nan/stl/STLport-5.2.1/bin/evc8-arm ;


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