This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
installperl wasn't putting extensions with two or more
[perl5.git] / README.dos
CommitLineData
b1be52e8
LM
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
LM
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
LM
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
LM
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
LM
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
LM
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
LM
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
LM
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
LM
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
b1be52e8 103to use long file names under w95, don't forget to use
39e571d4 104
b1be52e8 105 set LFN=y
0498d68d 106
b1be52e8 107before unpacking the archive.
39e571d4 108
b1be52e8 109=item *
39e571d4 110
b1be52e8
LM
111Create a "symlink" or copy your bash.exe to sh.exe in your C<($DJDIR)/bin>
112directory.
39e571d4 113
b1be52e8 114 ln -s bash.exe sh.exe
39e571d4 115
b1be52e8 116And make the C<SHELL> environment variable point to this F<sh.exe>:
39e571d4 117
b1be52e8 118 set SHELL=c:/djgpp/bin/sh.exe (use full path name!)
39e571d4 119
b1be52e8
LM
120You can do this in F<djgpp.env> too. Add this line BEFORE any section
121definition:
39e571d4 122
b1be52e8 123 +SHELL=%DJDIR%/bin/sh.exe
39e571d4 124
b1be52e8 125=item *
39e571d4 126
b1be52e8
LM
127If you have F<split.exe> and F<gsplit.exe> in your path, then rename
128F<split.exe> to F<djsplit.exe>, and F<gsplit.exe> to F<split.exe>.
129Copy or link F<gecho.exe> to F<echo.exe> if you don't have F<echo.exe>.
130Copy or link F<gawk.exe> to F<awk.exe> if you don't have F<awk.exe>.
39e571d4 131
b1be52e8 132=item *
39e571d4 133
b1be52e8
LM
134Chdir to the djgpp subdirectory of perl toplevel and type the following
135command:
39e571d4 136
b1be52e8
LM
137 configure.bat
138
139This will do some preprocessing then run the Configure script for you.
140The Configure script is interactive, but in most cases you
141just need to press ENTER.
142
143If the script says that your package is incomplete, and asks whether
144to continue, just answer with Y (this can only happen if you don't use
145long filenames).
146
147When Configure asks about the extensions, I suggest IO and Fcntl,
148and if you want database handling then SDBM_File or GDBM_File
149(you need to install gdbm for this one). If you want to use the
150POSIX extension (this is the default), make sure that the stack
151size of your F<cc1.exe> is at least 512kbyte (you can check this
152with: C<stubedit cc1.exe>).
153
154You can use the Configure script in non-interactive mode too.
155When I built my F<perl.exe>, I used something like this:
156
706de38c 157 configure.bat -des
b1be52e8
LM
158
159You can find more info about Configure's command line switches in
160the F<INSTALL> file.
161
162When the script ends, and you want to change some values in the
163generated F<config.sh> file, then run
164
165 sh Configure -S
166
167after you made your modifications.
168
169IMPORTANT: if you use this C<-S> switch, be sure to delete the CONFIG
170environment variable before running the script:
171
172 set CONFIG=
173
174=item *
175
176Now you can compile Perl. Type:
177
178 make
179
180=back
181
182=head2 Testing
183
184Type:
185
186 make test
187
706de38c
GS
188If you're lucky you should see "All tests successful". But there can be
189a few failed subtests (less than 5 hopefully) depending on some external
190conditions (e.g. some subtests fail under linux/dosemu or plain dos
191with short filenames only).
b1be52e8
LM
192
193=head2 Installation
194
195Type:
196
197 make install
198
199This will copy the newly compiled perl and libraries into your DJGPP
200directory structure. Perl.exe and the utilities go into C<($DJDIR)/bin>,
201and the library goes under C<($DJDIR)/lib/perl5>. The pod documentation
202goes under C<($DJDIR)/lib/perl5/pod>.
203
b1be52e8
LM
204=head1 AUTHOR
205
933fea7f 206Laszlo Molnar, F<laszlo.molnar@eth.ericsson.se>
b1be52e8
LM
207
208=head1 SEE ALSO
209
210perl(1).
211
212=cut
39e571d4 213