1 2 INSTALLATION FOR THE WINDOWS CE PLATFORM 3 ---------------------------------------- 4 5 Building OpenSSL for Windows CE requires the following external tools: 6 7 * Microsoft eMbedded Visual C++ 3.0 or later 8 * Appropriate SDK might be required 9 * Perl for Win32 [commonly recommended ActiveState Perl is available 10 from http://www.activestate.com/Products/ActivePerl/] 11 12 * wcecompat compatibility library available at 13 http://www.essemer.com.au/windowsce/ 14 * Optionally ceutils for running automated tests (same location) 15 16 _or_ 17 18 * PocketConsole driver and PortSDK available at 19 http://www.symbolictools.de/public/pocketconsole/ 20 * CMD command interpreter (same location) 21 22 As Windows CE support in OpenSSL relies on 3rd party compatibility 23 library, it's appropriate to check corresponding URL for updates. For 24 example if you choose wcecompat, note that as for the moment of this 25 writing version 1.2 is available and actually required for WCE 4.2 26 and newer platforms. All wcecompat issues should be directed to 27 www.essemer.com.au. 28 29 Why compatibility library at all? The C Runtime Library implementation 30 for Windows CE that is included with Microsoft eMbedded Visual C++ is 31 incomplete and in some places incorrect. Compatibility library plugs 32 the holes and tries to bring the Windows CE CRT to [more] usable level. 33 Most gaping hole in CRT is support for stdin/stdout/stderr IO, which 34 proposed compatibility libraries solve in two different ways: wcecompat 35 redirects IO to active sync link, while PortSDK - to NT-like console 36 driver on the handheld itself. 37 38 Building 39 -------- 40 41 Setup the eMbedded Visual C++ environment. There are batch files for doing 42 this installed with eVC++. For an ARM processor, for example, execute: 43 44 > "C:\Program Files\Microsoft eMbedded Tools\EVC\WCE300\BIN\WCEARM.BAT" 45 46 Next pick compatibility library according to your preferences. 47 48 1. To choose wcecompat set up WCECOMPAT environment variable pointing 49 at the location of wcecompat tree "root": 50 51 > set WCECOMPAT=C:\wcecompat 52 > set PORTSDK_LIBPATH= 53 54 2. To choose PortSDK set up PORTSDK_LIBPATH to point at hardware- 55 specific location where your portlib.lib is installed: 56 57 > set PORTSDK_LIBPATH=C:\PortSDK\lib\ARM 58 > set WCECOMPAT= 59 60 Note that you may not set both variables. 61 62 Next you should run Configure: 63 64 > perl Configure VC-CE 65 66 Next you need to build the Makefiles: 67 68 > ms\do_ms 69 70 If you get errors about things not having numbers assigned then check the 71 troubleshooting section in INSTALL.W32: you probably won't be able to compile 72 it as it stands. 73 74 Then from the VC++ environment at a prompt do: 75 76 > nmake -f ms\cedll.mak 77 78 [note that static builds are not supported under CE] 79 80 If all is well it should compile and you will have some DLLs and executables 81 in out32dll*. 82 83 <<< everyting below needs revision in respect to wcecompat vs. PortSDK >>> 84 85 If you want 86 to try the tests then make sure the ceutils are in the path and do: 87 88 > cd out32 89 > ..\ms\testce 90 91 This will copy each of the test programs to the Windows CE device and execute 92 them, displaying the output of the tests on this computer. The output should 93 look similar to the output produced by running the tests for a regular Windows 94 build. 95 96