(Replaced by #7440.)
[p5sagit/p5-mst-13.2.git] / README.dos
CommitLineData
b1be52e8 1If you read this file _as_is_, just ignore the funny characters you
2see. It is written in the POD format (see perlpod manpage) which is
3specially designed to be readable as is.
39e571d4 4
b1be52e8 5=head1 NAME
39e571d4 6
b1be52e8 7perldos - Perl under DOS, W31, W95.
0498d68d 8
b1be52e8 9=head1 SYNOPSIS
39e571d4 10
b1be52e8 11These are instructions for building Perl under DOS (or w??), using
12DJGPP v2.01 or later. Under w95 long filenames are supported.
39e571d4 13
b1be52e8 14=head1 DESCRIPTION
39e571d4 15
b1be52e8 16Before you start, you should glance through the README file
17found in the top-level directory where the Perl distribution
18was extracted. Make sure you read and understand the terms under
19which this software is being distributed.
39e571d4 20
b1be52e8 21This port currently supports MakeMaker (the set of modules that
22is used to build extensions to perl). Therefore, you should be
23able to build and install most extensions found in the CPAN sites.
39e571d4 24
b1be52e8 25=head2 Prerequisites
39e571d4 26
b1be52e8 27=over 4
39e571d4 28
b1be52e8 29=item DJGPP
39e571d4 30
b1be52e8 31DJGPP is a port of GNU C/C++ compiler and development tools to 32-bit,
32protected-mode environment on Intel 32-bit CPUs running MS-DOS and compatible
33operating systems, by DJ Delorie <dj@delorie.com> and friends.
39e571d4 34
b1be52e8 35For more details (FAQ), check out the home of DJGPP at:
39e571d4 36
b1be52e8 37 http://www.delorie.com/djgpp/
39e571d4 38
b1be52e8 39If you have questions about DJGPP, try posting to the DJGPP newsgroup:
40comp.os.msdos.djgpp, or use the email gateway djgpp@delorie.com.
39e571d4 41
b1be52e8 42You can find the full DJGPP distribution on any SimTel.Net mirror all over
43the world. Like:
39e571d4 44
b1be52e8 45 ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2*
39e571d4 46
b1be52e8 47You need the following files to build perl (or add new modules):
39e571d4 48
706de38c 49 v2/djdev202.zip
b1be52e8 50 v2/bnu27b.zip
51 v2gnu/gcc2721b.zip
52 v2gnu/bsh1147b.zip
53 v2gnu/mak3761b.zip
54 v2gnu/fil316b.zip
55 v2gnu/sed118b.zip
56 v2gnu/txt122b.zip
57 v2gnu/dif271b.zip
58 v2gnu/grep21b.zip
59 v2gnu/shl112b.zip
60 v2gnu/gawk303b.zip
61 v2misc/csdpmi4b.zip
39e571d4 62
706de38c 63or possibly any newer version.
39e571d4 64
b1be52e8 65=item Pthreads
39e571d4 66
706de38c 67Thread support is not tested in this version of the djgpp perl.
39e571d4 68
b1be52e8 69=back
39e571d4 70
b1be52e8 71=head2 Shortcomings of Perl under DOS
39e571d4 72
b1be52e8 73Perl under DOS lacks some features of perl under UNIX because of
74deficiencies in the UNIX-emulation, most notably:
39e571d4 75
b1be52e8 76=over 4
39e571d4 77
b1be52e8 78=item *
39e571d4 79
b1be52e8 80fork() and pipe()
39e571d4 81
b1be52e8 82=item *
39e571d4 83
b1be52e8 84some features of the UNIX filesystem regarding link count and file dates
39e571d4 85
b1be52e8 86=item *
39e571d4 87
b1be52e8 88in-place operation is a little bit broken with short filenames
39e571d4 89
b1be52e8 90=item *
39e571d4 91
b1be52e8 92sockets
39e571d4 93
b1be52e8 94=back
39e571d4 95
b1be52e8 96=head2 Building
39e571d4 97
b1be52e8 98=over 4
39e571d4 99
b1be52e8 100=item *
39e571d4 101
706de38c 102Unpack the source package F<perl5.6*.tar.gz> with djtarx. If you want
2a9c8e45 103to use long file names under w95 and also to get Perl to pass all its
104tests, don't forget to use
39e571d4 105
b1be52e8 106 set LFN=y
2a9c8e45 107 set FNCASE=y
0498d68d 108
b1be52e8 109before unpacking the archive.
39e571d4 110
b1be52e8 111=item *
39e571d4 112
b1be52e8 113Create a "symlink" or copy your bash.exe to sh.exe in your C<($DJDIR)/bin>
114directory.
39e571d4 115
b1be52e8 116 ln -s bash.exe sh.exe
39e571d4 117
b1be52e8 118And make the C<SHELL> environment variable point to this F<sh.exe>:
39e571d4 119
b1be52e8 120 set SHELL=c:/djgpp/bin/sh.exe (use full path name!)
39e571d4 121
b1be52e8 122You can do this in F<djgpp.env> too. Add this line BEFORE any section
123definition:
39e571d4 124
b1be52e8 125 +SHELL=%DJDIR%/bin/sh.exe
39e571d4 126
b1be52e8 127=item *
39e571d4 128
b1be52e8 129If you have F<split.exe> and F<gsplit.exe> in your path, then rename
130F<split.exe> to F<djsplit.exe>, and F<gsplit.exe> to F<split.exe>.
131Copy or link F<gecho.exe> to F<echo.exe> if you don't have F<echo.exe>.
132Copy or link F<gawk.exe> to F<awk.exe> if you don't have F<awk.exe>.
39e571d4 133
b1be52e8 134=item *
39e571d4 135
b1be52e8 136Chdir to the djgpp subdirectory of perl toplevel and type the following
137command:
39e571d4 138
b1be52e8 139 configure.bat
140
141This will do some preprocessing then run the Configure script for you.
142The Configure script is interactive, but in most cases you
143just need to press ENTER.
144
145If the script says that your package is incomplete, and asks whether
146to continue, just answer with Y (this can only happen if you don't use
147long filenames).
148
149When Configure asks about the extensions, I suggest IO and Fcntl,
150and if you want database handling then SDBM_File or GDBM_File
151(you need to install gdbm for this one). If you want to use the
152POSIX extension (this is the default), make sure that the stack
153size of your F<cc1.exe> is at least 512kbyte (you can check this
154with: C<stubedit cc1.exe>).
155
156You can use the Configure script in non-interactive mode too.
157When I built my F<perl.exe>, I used something like this:
158
706de38c 159 configure.bat -des
b1be52e8 160
161You can find more info about Configure's command line switches in
162the F<INSTALL> file.
163
164When the script ends, and you want to change some values in the
165generated F<config.sh> file, then run
166
167 sh Configure -S
168
169after you made your modifications.
170
171IMPORTANT: if you use this C<-S> switch, be sure to delete the CONFIG
172environment variable before running the script:
173
174 set CONFIG=
175
176=item *
177
178Now you can compile Perl. Type:
179
180 make
181
182=back
183
184=head2 Testing
185
186Type:
187
188 make test
189
706de38c 190If you're lucky you should see "All tests successful". But there can be
191a few failed subtests (less than 5 hopefully) depending on some external
192conditions (e.g. some subtests fail under linux/dosemu or plain dos
193with short filenames only).
b1be52e8 194
195=head2 Installation
196
197Type:
198
199 make install
200
201This will copy the newly compiled perl and libraries into your DJGPP
202directory structure. Perl.exe and the utilities go into C<($DJDIR)/bin>,
203and the library goes under C<($DJDIR)/lib/perl5>. The pod documentation
204goes under C<($DJDIR)/lib/perl5/pod>.
205
b1be52e8 206=head1 AUTHOR
207
933fea7f 208Laszlo Molnar, F<laszlo.molnar@eth.ericsson.se>
b1be52e8 209
210=head1 SEE ALSO
211
212perl(1).
213
214=cut
39e571d4 215