Commit | Line | Data |
---|---|---|
8736538c AS |
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 | specially designed to be readable as is. | |
5aabfad6 | 4 | |
8736538c | 5 | =head1 NAME |
5aabfad6 | 6 | |
8736538c | 7 | README.cygwin32 - notes about porting Perl to Cygwin32 |
5aabfad6 | 8 | |
8736538c | 9 | =head1 SYNOPSIS |
5aabfad6 | 10 | |
8736538c | 11 | =over |
5aabfad6 | 12 | |
8736538c | 13 | =item Cygwin32 |
5aabfad6 | 14 | |
8736538c AS |
15 | The Cygwin tools are ports of the popular GNU development tools for |
16 | Windows NT, 95, and 98. They run thanks to the Cygwin library which | |
17 | provides the UNIX system calls and environment these programs expect. | |
18 | More info about this project can be found at it's home page | |
19 | http://sourceware.cygnus.com/cygwin/ | |
5aabfad6 | 20 | |
f89d6eaa | 21 | =item libperl.dll |
8736538c | 22 | |
f89d6eaa EF |
23 | These instructions and the default cygwin32 hints build a a shared |
24 | libperl.dll Perl library and enables dynamically loaded extensions. | |
8736538c | 25 | |
8736538c AS |
26 | |
27 | =back | |
28 | ||
29 | =head1 BUILDING | |
30 | ||
31 | =head2 Prerequisites | |
32 | ||
33 | =over | |
34 | ||
35 | =item Cygwin b20.1 | |
36 | ||
f89d6eaa | 37 | The latest stable Cygwin suite is beta20.1. It may be |
8736538c AS |
38 | downloaded from ftp://go.cygnus.com/pub/sourceware.cygnus.com/cygwin/latest/ |
39 | or many mirror sites around the world. | |
40 | ||
41 | =item egcs-1.1.2 | |
42 | ||
f89d6eaa | 43 | This port was built with egcs-1.1.2 downloaded from |
8736538c AS |
44 | ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/cygwin/egcs-1.1.2/ |
45 | ||
f89d6eaa | 46 | =item install executable |
8736538c | 47 | |
f89d6eaa EF |
48 | To make life easier, you should download |
49 | ftp://ftp.franken.de/pub/win32/develop/gnuwin32/cygwin/porters/Humblet_Pierre_A/install-cygwin-b20.sh, | |
50 | and use it as your install "executable." Just follow the instructions | |
51 | that are embedding as comments in the .sh file. | |
8736538c AS |
52 | |
53 | =item crypt library | |
54 | ||
f89d6eaa EF |
55 | http://miracle.geol.msu.ru/sos/ points to two different crypt |
56 | libraries ported to cygwin. This has been tested with the libcrypt.tgz | |
57 | by Andy Piper. His home page can be found at | |
58 | http://www.xemacs.freeserve.co.uk/ | |
8736538c AS |
59 | |
60 | =back | |
61 | ||
62 | =head2 Configure | |
63 | ||
f89d6eaa EF |
64 | Check hints/cygwin32.sh for any system specific settings. In |
65 | particular change libpth if Cygwin is installed somewhere other | |
66 | than /cygnus. | |
67 | ||
8736538c AS |
68 | run "sh Configure". |
69 | ||
70 | When confronted with this prompt: | |
71 | ||
72 | =begin text | |
5aabfad6 | 73 | |
74 | First time through, eh? I have some defaults handy for the | |
75 | following systems: | |
76 | . | |
77 | . | |
78 | . | |
79 | Which of these apply, if any? | |
80 | ||
8736538c AS |
81 | =end text |
82 | ||
f89d6eaa | 83 | select "cygwin32". |
8736538c | 84 | |
f89d6eaa EF |
85 | Do not use the malloc that comes with perl--using the perl malloc |
86 | collides with some cygwin startup routines. | |
8736538c AS |
87 | |
88 | =head2 make | |
89 | ||
f89d6eaa EF |
90 | Run "make". After that, run "make test" to see how stable your system is. |
91 | For me, at io/taint.t you may see several Win32 "Unable To Locate DLL" | |
92 | messages (just click Ok) that requires cygwin1.dll to be present in the | |
93 | build directory or somewhere in system path (/WINNT, /WINNT/System, | |
94 | /WINNT/System32). And, at lib/io_sock.t you may see several Win32 | |
95 | "Application Error" messages (just click Ok) and the test waits for a | |
96 | died child that has to be killed manually. Other test scripts seem to | |
97 | be more or less harmless. The result of ./perl harness reads: | |
8736538c AS |
98 | |
99 | =begin text | |
100 | ||
101 | Failed Test Status Wstat Total Fail Failed List of failed | |
102 | ------------------------------------------------------------------------------- | |
103 | lib/anydbm.t 2 512 12 8 66.67% 5-12 | |
104 | lib/findbin.t 1 1 100.00% 1 | |
f89d6eaa | 105 | lib/io_sock.t 9 2304 5 4 80.00% 2-5 |
8736538c | 106 | lib/sdbm.t 2 512 18 15 83.33% 2, 5-18 |
f89d6eaa EF |
107 | op/magic.t 35 2 5.71% 23, 29 |
108 | op/split.t 25 1 4.00% 11 | |
109 | op/stat.t 58 2 3.45% 9, 26 | |
110 | op/taint.t 149 3 2.01% 1, 3, 31 | |
8736538c | 111 | pragma/locale.t 11 2816 102 4 3.92% 99-102 |
f89d6eaa EF |
112 | 9 tests skipped, plus 35 subtests skipped. |
113 | Failed 9/190 test scripts, 95.26% okay. 40/6452 subtests failed, 99.38% okay. | |
8736538c AS |
114 | |
115 | =end text | |
116 | ||
117 | =head1 BUGS | |
118 | ||
f89d6eaa EF |
119 | A lot of warnings about incompatible pointer types and comparison |
120 | lacking a cast. This is because of __declspec(dllimport). | |
8736538c | 121 | |
f89d6eaa EF |
122 | Upon each start, make warns that a rule for perlmain.o is overrided. |
123 | Yes, it is. In order to use libperl.dll, perlmain needs to import | |
124 | symbols from there. I saw no better solution than adding an explicit | |
8736538c AS |
125 | define to the rule. |
126 | ||
f89d6eaa EF |
127 | The lib/io_sock.t failure seems to be a problem with a forked child |
128 | not having its DLLs remapped. | |
8736538c | 129 | |
f89d6eaa | 130 | make clean does not remove library .def and .exe.core files. |
8736538c | 131 | |
f89d6eaa | 132 | ld2 script is installed with reference to source directory. You should |
8736538c AS |
133 | change this to /usr/local/bin (or whatever) after install. |
134 | ||
135 | .bat wrappers for installed utility scripts are not made during installation. | |
5aabfad6 | 136 | |
8736538c | 137 | =head1 AUTHOR |
5aabfad6 | 138 | |
8736538c | 139 | alexander smishlajev <als@turnhere.com> |
5aabfad6 | 140 | |
8736538c | 141 | =head1 DISCLAIMER |
5aabfad6 | 142 | |
f89d6eaa EF |
143 | I am not going to maintain this document or this port. I only wanted |
144 | to make perl porting a bit easier. If failed, I can't be helpful for you. | |
5aabfad6 | 145 | |
8736538c | 146 | =head1 HISTORY |
5aabfad6 | 147 | |
8736538c AS |
148 | 17..25-apr-1999. perl 5.005_03. cygwin b20.1 egcs 1.1.2. |
149 | far 1.60. nescafe classic. | |
5aabfad6 | 150 | |
f89d6eaa EF |
151 | efifer@sanwaint.com - Wed May 12 17:22:42 BST 1999 |
152 | ||
153 | Removed all references to the impure_ptr hack since it is no longer | |
154 | needed. Some minor cleanup of Alexander's work and a few bug fixes. | |
155 | ||
8736538c | 156 | =cut |