source: trunk/essentials/dev-lang/perl/README.cygwin@ 3210

Last change on this file since 3210 was 3181, checked in by bird, 19 years ago

perl 5.8.8

File size: 20.9 KB
Line 
1If you read this file _as_is_, just ignore the funny characters you
2see. It is written in the POD format (see pod/perlpod.pod) which is
3specially designed to be readable as is.
4
5=head1 NAME
6
7README.cygwin - Perl for Cygwin
8
9=head1 SYNOPSIS
10
11This document will help you configure, make, test and install Perl
12on Cygwin. This document also describes features of Cygwin that will
13affect how Perl behaves at runtime.
14
15B<NOTE:> There are pre-built Perl packages available for Cygwin and a
16version of Perl is provided in the normal Cygwin install. If you do
17not need to customize the configuration, consider using one of those
18packages.
19
20
21=head1 PREREQUISITES FOR COMPILING PERL ON CYGWIN
22
23=head2 Cygwin = GNU+Cygnus+Windows (Don't leave UNIX without it)
24
25The Cygwin tools are ports of the popular GNU development tools for Win32
26platforms. They run thanks to the Cygwin library which provides the UNIX
27system calls and environment these programs expect. More information
28about this project can be found at:
29
30 http://www.cygwin.com/
31
32A recent net or commercial release of Cygwin is required.
33
34At the time this document was last updated, Cygwin 1.5.2 was current.
35
36
37=head2 Cygwin Configuration
38
39While building Perl some changes may be necessary to your Cygwin setup so
40that Perl builds cleanly. These changes are B<not> required for normal
41Perl usage.
42
43B<NOTE:> The binaries that are built will run on all Win32 versions.
44They do not depend on your host system (Win9x/WinME, WinNT/Win2K)
45or your Cygwin configuration (I<ntea>, I<ntsec>, binary/text mounts).
46The only dependencies come from hard-coded pathnames like C</usr/local>.
47However, your host system and Cygwin configuration will affect Perl's
48runtime behavior (see L</"TEST">).
49
50=over 4
51
52=item * C<PATH>
53
54Set the C<PATH> environment variable so that Configure finds the Cygwin
55versions of programs. Any Windows directories should be removed or
56moved to the end of your C<PATH>.
57
58=item * I<nroff>
59
60If you do not have I<nroff> (which is part of the I<groff> package),
61Configure will B<not> prompt you to install I<man> pages.
62
63=item * Permissions
64
65On WinNT with either the I<ntea> or I<ntsec> C<CYGWIN> settings, directory
66and file permissions may not be set correctly. Since the build process
67creates directories and files, to be safe you may want to run a
68C<chmod -R +w *> on the entire Perl source tree.
69
70Also, it is a well known WinNT "feature" that files created by a login
71that is a member of the I<Administrators> group will be owned by the
72I<Administrators> group. Depending on your umask, you may find that you
73can not write to files that you just created (because you are no longer
74the owner). When using the I<ntsec> C<CYGWIN> setting, this is not an
75issue because it "corrects" the ownership to what you would expect on
76a UNIX system.
77
78=back
79
80=head1 CONFIGURE PERL ON CYGWIN
81
82The default options gathered by Configure with the assistance of
83F<hints/cygwin.sh> will build a Perl that supports dynamic loading
84(which requires a shared F<libperl.dll>).
85
86This will run Configure and keep a record:
87
88 ./Configure 2>&1 | tee log.configure
89
90If you are willing to accept all the defaults run Configure with B<-de>.
91However, several useful customizations are available.
92
93=head2 Stripping Perl Binaries on Cygwin
94
95It is possible to strip the EXEs and DLLs created by the build process.
96The resulting binaries will be significantly smaller. If you want the
97binaries to be stripped, you can either add a B<-s> option when Configure
98prompts you,
99
100 Any additional ld flags (NOT including libraries)? [none] -s
101 Any special flags to pass to gcc to use dynamic linking? [none] -s
102 Any special flags to pass to ld2 to create a dynamically loaded library?
103 [none] -s
104
105or you can edit F<hints/cygwin.sh> and uncomment the relevant variables
106near the end of the file.
107
108=head2 Optional Libraries for Perl on Cygwin
109
110Several Perl functions and modules depend on the existence of
111some optional libraries. Configure will find them if they are
112installed in one of the directories listed as being used for library
113searches. Pre-built packages for most of these are available from
114the Cygwin installer.
115
116=over 4
117
118=item * C<-lcrypt>
119
120The crypt package distributed with Cygwin is a Linux compatible 56-bit
121DES crypt port by Corinna Vinschen.
122