Prepare for 1.0.2v-dev
[openssl.git] / INSTALL.WCE
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  CAVEAT LECTOR
39  -------------
40
41  ### Default install and config paths
42
43  ./Configure defaults to '/usr/local/ssl' as installation top.  This is
44  suitable for Unix, but not for Windows, where this usually is a world
45  writable directory and therefore accessible for change by untrusted users.
46  It is therefore recommended to set your own --prefix or --openssldir to
47  some location that is not world writeable (see the example above)
48
49  Building
50  --------
51
52  Setup the eMbedded Visual C++ environment.  There are batch files for doing
53  this installed with eVC++.  For an ARM processor, for example, execute:
54
55  > "C:\Program Files\Microsoft eMbedded Tools\EVC\WCE300\BIN\WCEARM.BAT"
56
57  Next pick compatibility library according to your preferences.
58
59  1. To choose wcecompat set up WCECOMPAT environment variable pointing
60     at the location of wcecompat tree "root":
61
62     > set WCECOMPAT=C:\wcecompat
63     > set PORTSDK_LIBPATH=
64
65  2. To choose PortSDK set up PORTSDK_LIBPATH to point at hardware-
66     specific location where your portlib.lib is installed:
67
68     > set PORTSDK_LIBPATH=C:\PortSDK\lib\ARM
69     > set WCECOMPAT=
70
71  Note that you may not set both variables.
72
73  Next you should run Configure:
74
75  > perl Configure VC-CE --prefix=c:\some\openssl\dir
76
77  Next you need to build the Makefiles:
78
79  > ms\do_ms
80
81  If you get errors about things not having numbers assigned then check the
82  troubleshooting section in INSTALL.W32: you probably won't be able to compile
83  it as it stands.
84
85  Then from the VC++ environment at a prompt do:
86
87    > nmake -f ms\cedll.mak
88
89  [note that static builds are not supported under CE]
90
91  If all is well it should compile and you will have some DLLs and executables
92  in out32dll*. 
93
94  <<< everyting below needs revision in respect to wcecompat vs. PortSDK >>>
95
96  If you want
97  to try the tests then make sure the ceutils are in the path and do:
98  
99  > cd out32
100  > ..\ms\testce
101
102  This will copy each of the test programs to the Windows CE device and execute
103  them, displaying the output of the tests on this computer.  The output should
104  look similar to the output produced by running the tests for a regular Windows
105  build.
106