[PythonCE] How tobuild PythonCE 2.5

Luke Dunstan coder_infidel at hotmail.com
Wed Jan 3 14:23:47 CET 2007


----- Original Message ----- 
From: "Naiqian Lu" <nlu54 at yahoo.com>
To: "Luke Dunstan" <coder_infidel at hotmail.com>; <pythonce at python.org>
Sent: Wednesday, January 03, 2007 5:29 AM
Subject: Re: [PythonCE] How tobuild PythonCE 2.5


> Hi,
>
> Here is my builing env:
>
> New desktop PC with WinXP sp2
> EVC 4.0 with sp4
> Pocket PC 2003 SDK

OK, that is what I have too, so we will have to debug the script by 
inspecting your registry using regedit and perhaps by adding "print" 
statements in a few places.

Firstly though, please be aware that I wrote this code to find the EVC/SDK 
directories by digging through the registry on my PC so it is possible that 
I could have made some incorrect assumptions about how it works. Anyway, 
near the top of SConstruct you will see:

env = Environment(
        MSEVC_PLATFORM = 'POCKET PC 2003',
        MSEVC_SUBPLATFORM = 'Win32 (WCE ARMV4)',
        tools = ['mslink', 'msevc', 'zip'],
        toolpath = '.'
        )

The setting MSEVC_PLATFORM tells msevc.py to call 
find_platform_by_name('POCKET PC 2003'). This function enumerates the 
subkeys of the following registry key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Tools\Platform 
Manager\{F384D888-F9AA-11D1-BB9E-00A0C9C9CCEE}

First check whether this exists on your PC. On mine it contains three 
subkeys:

{3BD0FD9A-A1F3-4C83-AD6E-649C3BD5C479}
    (Default) = "Windows CE Default Platform"

{8786CEC0-7256-413A-BAA3-39B5F435A826}
    (Default) = "POCKET PC 2003"

{DB9D1DD0-D249-4BE1-83FF-4AB58F2FBA09}
    (Default) = "STANDARDSDK"

Please check whether you have the Pocket PC 2003 one. If this is all OK then 
the next step is where it calls find_subplatform_by_name(hkey, 
platform_guid, 'Win32 (WCE ARMV4)'). In the case of the Pocket PC 2003 SDK, 
this function enumerates the subkeys of the following key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Tools\Platform 
Manager\{F384D888-F9AA-11D1-BB9E-00A0C9C9CCEE}\{8786CEC0-7256-413A-BAA3-39B5F435A826}\{F384D894-F9AA-11D1-BB9E-00A0C9C9CCEE}\{8786CEC0-7256-413A-BAA3-39B5F435A826}

Notice that the fourth GUID in this path is the same as the second GUID (the 
platform GUID). On my PC it contains two subkeys:

{32E52003-403E-442D-BE48-DE10F8C6131D}
{D6518FFB-710F-11D3-99F2-00105A0DF099}

In regedit it may not be obvious but each of these contains a "Display Name" 
value with the name of the "subplatform" (or architecture if you like), 
stored as the binary representation of the Unicode string. We are interested 
in the second subkey {D6518FFB-710F-11D3-99F2-00105A0DF099} which has a 
display name 'Win32 (WCE ARMV4)' on my PC.

This subkey contains three other values "Include Dirs", "Lib Dirs", "Path 
Dirs" and "Src Dirs", and these are the ones it apparently failed to find on 
your PC. If you got this far then hopefully you can tell me where the 
algorithm went wrong :-)

Luke


>
> I also has other softwares installed, but it should
> not affect EVC build.
>
> Thanks,
>
> Naiqian Lu
>
> --- Luke Dunstan <coder_infidel at hotmail.com> wrote:
>
>>
>> ----- Original Message ----- 
>> From: "Naiqian Lu" <nlu54 at yahoo.com>
>> To: <pythonce at python.org>
>> Sent: Friday, December 29, 2006 10:02 AM
>> Subject: [PythonCE] How tobuild PythonCE 2.5
>>
>>
>> > Hi,
>> >
>> > I have download pythonce source, and try to build
>> it
>> > to generate CAB file, just for familiar with
>> python
>> > code.
>> >
>> > What I found out is that Scons will not build. It
>> > shows:
>> >
>> > C:\Source\python-wince\PCbuild\WinCE>scons
>> > scons: Reading SConscript files ...
>> > <type 'exceptions.NameError'>: global name
>> 'defpaths'
>> > is not defined:
>> >
>> > the defpaths was used in msevc to get include,
>> lib,
>> > and exe path. But I could not find where it gets
>> > defined (and set).
>> >
>> > The old version (2.4.3) use nmake, and set the
>> path in
>> > batch file.
>> >
>> > Does the source package for 2.5 missing something?
>> And
>> > where should I set the defpaths?
>>
>> It is a bug in msevc.py, but I didn't notice it
>> before so there must be
>> something different on your PC. Do you have
>> Microsoft eMbedded Visual C++
>> 4.0 installed? Do you have the Pocket PC 2003 SDK
>> installed? If you really
>> need to use a different SDK then changes to the
>> build system and/or source
>> code may be necessary. If you have both of these
>> then what directories are
>> they installed in?
>>
>> Luke
>>
>> >
>> > Thanks in advance!
>> >
>> > Happy New Year!
>> >
>> > Naiqian Lu



More information about the PythonCE mailing list