develooper Front page | perl.perl5.porters | Postings from November 2013

[perl #120365] WinCE build instructions

Thread Previous | Thread Next
From:
bulk88 via RT
Date:
November 3, 2013 22:57
Subject:
[perl #120365] WinCE build instructions
Message ID:
rt-4.0.18-12348-1383519466-1366.120365-15-0@perl.org
On Sun Nov 03 13:55:54 2013, shay wrote:
> I have now made my first attempt at doing a WinCE build using these
> instructions. (Sorry I've taken so long to get round to it.) My
> comments so far are as follows:
> 
> 1. Where did the EVC4 download link in step 1 come from? I couldn't
> find it by Googling and/or searching the Microsoft Download website
> myself.

Alot of Googling. I tried to find the gateway page for that URL of evc4 but I couldn't find one.

> Wikipedia has a link on their VC++ page at
> http://en.wikipedia.org/wiki/Visual_C++ going to
> http://www.microsoft.com/en-us/download/details.aspx?id=24809 but the
> Microsoft website responds saying that the download is no longer
> available.
> 

Yes. MS has been on a campaign to purge all pre-Windows Phone 7 (DRMed OS) content/support off its website.

> Is this a current product? It seems not (the Wikipedia page speaks of
> it being replaced in VS2005), so people won't find it easy to locate
> without your link, and I wonder how much longer that link will stay
> live for given that the other page (linked to by Wikipedia) has been
> taken down already... I think we also need instructions on how to
> build with something that is current and more readily available.
> 

Paid VS rarer at P5P. I've used Smart Devices for VS 2008 more than EVC4, Smart Device is an install option with VS 2008. I used EVC4 for the instructions because it is free and some other P5Per wanted to try to build it but doesn't have a paid VS.

> 2. The EVC4.exe installer had an error while installing "Microsoft
> Windows CE Platform Manager 4.0": "Setup encountered problems
> installing some critical emulation components. You may continue the
> install, but the emulator may not work. Would you like to continue
> setup? Yes / No", to which I said "Yes".
> 

The emulator doesn't work on x64 OSes I think because of drivers.

> 3. In step 2 you refer to "wince-arm-pocket-wce300". I think you meant
> "wince-arm-pocket-wce300-release"?

Correct. My mistake.

> 
> I'm not keen on the use of such "unofficial" tools to build perl. How
> will the build be possible if your Github page disappears? I would
> much prefer a build using (current) commercial tools or well-
> established open source tools such as MinGW/MinGW-w64.

It already disappeared once when Rainer Keuchel deleted his site. WinCE has no console, or C Standard Library, just a subset of Desktop Win32 API. No Native API either. 3rd party code is required to do disk IO and UI. 

> 
> 4. In step 3, there is no "w32console" download at the sourceforge
> address given, only a single source code download called "console-1.3-
> src.tar.gz". I assume this is what you mean since the path within the
> zip file is "win32console".

Yes, I meant console-1.3-src.tar.gz. NOT "Looking for the latest version? Download perl-wince-arm-pocket-wce300.zip (4.6 MB)"

> 
> 7. In step 8, errors do indeed occur! The build fails on the first C
> source file compilation:
> 
> clarm.exe -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE
> -DN
> O_STRICT  -D_WINDOWS -D_WIN32_WCE=400 -DUNDER_CE=400  -D ARM -D arm -D
> _ARM_ -D
> _arm_ -DPROCESSOR_ARM  -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE  -I
> C:\Dev\Softw
> are\celib\inc -D PERL -Zi -O1 -DPERLDLL -DPERL_CORE     -D_WINDOWS
> -D_WIN32_WCE=
> 400 -DUNDER_CE=400  -D ARM -D arm -D _ARM_ -D _arm_ -DPROCESSOR_ARM
> -D _MT -D _
> DLL -DPALM_SIZE -DPOCKET_SIZE  -I C:\Dev\Software\celib\inc -D PERL
> -Zi -O1 -DUS
> E_CROSS_COMPILE -DUSE_PERLIO -DPERL_EXTERNAL_GLOB -Fowince-arm-pocket-
> wce400\dll
> \ ..\av.c
> av.c
> c:\dev\git\perl\perl.h(628) : fatal error C1083: Cannot open include
> file: 'stda
> rg.h': No such file or directory
> NMAKE : fatal error U1077: 'clarm.exe' : return code '0x2'
> Stop.
> 
> The file stdarg.h does exist in "C:\Dev\Git\perl\win32>dir "C:\Program
> Files (x86)\Windows CE Tools\wce400\STANDARDSDK\Include\Armv4" so I
> appended that path to the INCLUDE environment variable and ran "nmake
> -f Makefile.ce" again.
> 
> This time there was no complaint about the stdarg.h header file being
> missing, but the compilation of av.c still failed, now with syntax
> errors in c:\dev\software\celib\inc\cewin32.h (c:\dev\software\celib
> is where I extracted your celib zip file):
> 
> clarm.exe -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE
> -DN
> O_STRICT  -D_WINDOWS -D_WIN32_WCE=400 -DUNDER_CE=400  -D ARM -D arm -D
> _ARM_ -D
> _arm_ -DPROCESSOR_ARM  -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE  -I
> C:\Dev\Softw
> are\celib\inc -D PERL -Zi -O1 -DPERLDLL -DPERL_CORE     -D_WINDOWS
> -D_WIN32_WCE=
> 400 -DUNDER_CE=400  -D ARM -D arm -D _ARM_ -D _arm_ -DPROCESSOR_ARM
> -D _MT -D _
> DLL -DPALM_SIZE -DPOCKET_SIZE  -I C:\Dev\Software\celib\inc -D PERL
> -Zi -O1 -DUS
> E_CROSS_COMPILE -DUSE_PERLIO -DPERL_EXTERNAL_GLOB -Fowince-arm-pocket-
> wce400\dll
> \ ..\av.c
> av.c
> c:\dev\software\celib\inc\cewin32.h(184) : error C2146: syntax error :
> missing '
> )' before identifier 'lpABC'
> c:\dev\software\celib\inc\cewin32.h(184) : error C2081: 'LPABC' : name
> in formal
> parameter list illegal
> c:\dev\software\celib\inc\cewin32.h(184) : error C2061: syntax error :
> identifie
> r 'lpABC'
> c:\dev\software\celib\inc\cewin32.h(184) : error C2059: syntax error :
> ';'
> c:\dev\software\celib\inc\cewin32.h(184) : error C2059: syntax error :
> ')'
> c:\dev\software\celib\inc\cewin32.h(185) : error C2146: syntax error :
> missing '
> )' before identifier 'lpABC'
> c:\dev\software\celib\inc\cewin32.h(185) : error C2081: 'LPABC' : name
> in formal
> parameter list illegal
> c:\dev\software\celib\inc\cewin32.h(185) : error C2061: syntax error :
> identifie
> r 'lpABC'
> c:\dev\software\celib\inc\cewin32.h(185) : error C2059: syntax error :
> ';'
> c:\dev\software\celib\inc\cewin32.h(185) : error C2059: syntax error :
> ')'

Ive seen that before. I'll try to build with EVC4 later today, but I think I know what happened. 

If you have spare time, goto celib-palm-3.0\inc\cewin32.h, grep for "typedef struct _ABC {" and uncomment the struct and try again. My hypothesis is it was defined on the newer Smart Devices SDK and I commented it out. I'll probably have to think up a name of macro to create to say which MS SDK (EVC4/smart devices/newer) celib is being being #included with, since _MSC_VER won't do it.

-- 
bulk88 ~ bulk88 at hotmail.com

---
via perlbug:  queue: perl5 status: open
https://rt.perl.org/Ticket/Display.html?id=120365

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About