This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Upgrade to Archive::Tar 1.26
[perl5.git] / README.ce
1 If you read this file _as_is_, just ignore the funny characters you
2 see.  It is written in the POD format (see pod/perlpod.pod) which is
3 specifically designed to be readable as is.
4
5 =head1 NAME
6
7 perlce - Perl for WinCE
8
9 =head1 DESCRIPTION
10
11 This file gives the instructions for building Perl5.8 and above for
12 WinCE.  Please read and understand the terms under which this
13 software is distributed.
14
15 =head1 BUILD
16
17 This section describes the steps to be performed to build PerlCE.
18 You may find additional and newer information about building perl
19 for WinCE using following URL:
20
21   http://perlce.sourceforge.net
22
23 There should also be pre-built binaries there.
24
25 Don't be confused by large size of downloaded distribution or constructed
26 binaries: entire distribution could be large for WinCE ideology, but
27 you may strip it at your wish and use only required parts.
28
29 =head2 Tools & SDK
30
31 For compiling, you need following:
32
33 =over 4
34
35 =item * Microsoft Embedded Visual Tools
36
37 =item * Microsoft Visual C++
38
39 =item * Rainer Keuchel's celib-sources
40
41 =item * Rainer Keuchel's console-sources
42
43 =back
44
45 Needed source files can be downloaded via:
46 www.rainer-keuchel.de/wince/dirlist.html
47
48 =head2 Make
49
50 Please pay attention that starting from 5.8.0 miniperl *is* built
51 and it facilitates in further building process. This means that
52 in addition to compiler installation for mobile device you also need
53 to have Microsoft Visual C++ installed as well.
54
55 On the bright side, you do not need to edit any files from ./win32
56 subdirectory. Normally you only need to edit ./wince/compile.bat
57 to reflect your system and run it.
58
59 File ./wince/compile.bat is actually a wrapper to call
60 nmake -f makefile.ce with appropriate parameters and it accepts extra
61 parameters and forwards them to "nmake" command as additional
62 arguments. You should pass target this way.
63
64 To prepare distribution you need to do following:
65
66 =over 4
67
68 =item * go to ./wince subdirectory
69
70 =item * edit file compile.bat
71
72 =item * run 
73   compile.bat
74
75 =item * run 
76   compile.bat dist
77
78 =back
79
80 makefile.ce has CROSS_NAME macro, and it is used further to refer to
81 your cross-compilation scheme. You could assign a name to it, but this
82 is not necessary, because by default it is assigned after your machine
83 configuration name, such as "wince-sh3-hpc-wce211", and this is enough
84 to distinguish different builds at the same time. This option could be
85 handy for several different builds on same platform to perform, say,
86 threaded build. In a following example we assume that all required
87 environment variables are set properly for C cross-compiler (a special
88 *.bat file could fit perfectly to this purpose) and your compile.bat
89 has proper "MACHINE" parameter set, to, say, "wince-mips-pocket-wce300".
90
91   compile.bat
92   compile.bat dist
93   compile.bat CROSS_NAME=mips-wce300-thr "USE_ITHREADS=define" "USE_IMP_SYS=define" "USE_MULTI=define"
94   compile.bat CROSS_NAME=mips-wce300-thr "USE_ITHREADS=define" "USE_IMP_SYS=define" "USE_MULTI=define" dist
95
96 If all goes okay and no errors during a build, you'll get two independent
97 distributions: "wince-mips-pocket-wce300" and "mips-wce300-thr".
98
99 Target 'dist' prepares distribution file set. Target 'zipdist' performs
100 same as 'dist' but additionally compresses distribution files into zip
101 archive.
102
103 NOTE: during a build there could be created a number (or one) of Config.pm
104 for cross-compilation ("foreign" Config.pm) and those are hidden inside
105 ../xlib/$(CROSS_NAME) with other auxilary files, but, and this is important to
106 note, there should be *no* Config.pm for host miniperl.
107 If you'll get an error that perl could not find Config.pm somewhere in building
108 process this means something went wrong. Most probably you forgot to
109 specify a cross-compilation when invoking miniperl.exe to Makefile.PL
110 When building an extension for cross-compilation your command line should
111 look like
112
113   ..\miniperl.exe -I..\lib -MCross=mips-wce300-thr Makefile.PL
114
115 or just
116
117   ..\miniperl.exe -I..\lib -MCross Makefile.PL
118
119 to refer a cross-compilation that was created last time.
120
121
122 If you decided to build with fcrypt.c file, please refer to README.win32
123 file, as long as all legal considerations and steps to do are exactly same 
124 in this case.
125
126 All questions related to building for WinCE devices could be asked in
127 perlce-users@lists.sourceforge.net mailing list.
128
129 =head1 ACKNOWLEDGEMENTS
130
131 The port for Win32 was used as a reference.
132
133 =head1 AUTHORS
134
135 Rainer Keuchel (keuchel@netwave.de)
136 Vadim Konovalov (vkonovalov@spb.lucent.com)
137