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

[perl #120365] WinCE build instructions

Thread Previous | Thread Next
From:
Steve Hay via RT
Date:
November 3, 2013 21:56
Subject:
[perl #120365] WinCE build instructions
Message ID:
rt-4.0.18-12358-1383515754-1040.120365-14-0@perl.org
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.

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.

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.

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".

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

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.

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".

5. In step 6, the batch file is under "C:\Program Files (x86)\...", not "C:\Program Files\..." since I'm on the 64-bit edition of Windows 7.

The default %SDKROOT% is indeed "C:\Windows CE Tools", but that folder only contains an "eVC4" folder, no "wce400" folder. So I changed the default %SDKROOT% to "C:\Program Files (x86)\Windows CE Tools" (not "C:\Program Files\Windows CE Tools"). I confirmed that "C:\Program Files (x86)\Windows CE Tools\wce400\STANDARDSDK\Include\Armv4" exists.

6. In step 7, I ran "C:\Program Files (x86)\Microsoft eMbedded C++ 4.0\EVC\WCE400\BIN\WCEARMV4.BAT".

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 : ')'


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