Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) Standard preamble: ========================================================================
NAMEperldos - Perl under DOS, W31, W95.
SYNOPSISThese are instructions for building Perl under
DESCRIPTIONBefore you start, you should glance through the
This port currently supports MakeMaker (the set of modules that is used to build extensions to perl). Therefore, you should be able to build and install most extensions found in the
Detailed instructions on how to build and install perl extension modules, including XS-type modules, is included. See '
Prerequisites for Compiling Perl on DOS
DJGPPis a port ofGNU C/Ccompiler and development tools to 32-bit, protected-mode environment on Intel 32-bit CPUs running MS-DOS and compatible operating systems, by++DJDelorie <firstname.lastname@example.org> and friends.
For more details (FAQ), check out the home ofDJGPPat:
If you have questions aboutDJGPP,try posting to theDJGPPnewsgroup: comp.os.msdos.djgpp, or use the email gateway email@example.com.
You can find the fullDJGPPdistribution on any of the mirrors listed here:
You need the following files to build perl (or add new modules):
v2/djdev203.zip v2gnu/bnu2112b.zip v2gnu/gcc2953b.zip v2gnu/bsh204b.zip v2gnu/mak3791b.zip v2gnu/fil40b.zip v2gnu/sed3028b.zip v2gnu/txt20b.zip v2gnu/dif272b.zip v2gnu/grep24b.zip v2gnu/shl20jb.zip v2gnu/gwk306b.zip v2misc/csdpmi5b.zip
or possibly any newer version.
- Thread support is not tested in this version of the djgpp perl.
Shortcomings of Perl under DOS
- fork() and pipe()
some features of the UNIXfilesystem regarding link count and file dates
- in-place operation is a little bit broken with short filenames
Building Perl on DOS
Unpack the source package perl5.8*.tar.gz with djtarx. If you want
to use long file names under w95 and also to get Perl to pass all its
tests, don't forget to use
set LFN=y set FNCASE=y
before unpacking the archive.
Create a ``symlink'' or copy your bash.exe to sh.exe in your "($DJDIR)/bin"
ln -s bash.exe sh.exe
[If you have the recommended version of bash forDJGPP,this is already done for you.]
And make the "SHELL" environment variable point to this sh.exe:
set SHELL=c:/djgpp/bin/sh.exe (use full path name!)
You can do this in djgpp.env too. Add this lineBEFOREany section definition:
If you have split.exe and gsplit.exe in your path, then rename
split.exe to djsplit.exe, and gsplit.exe to split.exe.
Copy or link gecho.exe to echo.exe if you don't have echo.exe.
Copy or link gawk.exe to awk.exe if you don't have awk.exe.
[If you have the recommended versions of djdev, shell utilities and gawk, all these are already done for you, and you will not need to do anything.]
Chdir to the djgpp subdirectory of perl toplevel and type the following
set FNCASE=y configure.bat
This will do some preprocessing then run the Configure script for you. The Configure script is interactive, but in most cases you just need to pressENTER.The ``set'' command ensures thatDJGPPpreserves the letter case of file names when reading directories. If you already issued this set command when unpacking the archive, and you are in the sameDOSsession as when you unpacked the archive, you don't have to issue the set command again. This command is necessary *before* you start to (re)configure or (re)build perl in order to ensure both that perl builds correctly and that building XS-type modules can succeed. See theDJGPPinfo entry for ``_preserve_fncase'' for more information:
info libc alphabetical _preserve_fncase
If the script says that your package is incomplete, and asks whether to continue, just answer with Y (this can only happen if you don't use long filenames or forget to issue ``set FNCASE=y'' first).
When Configure asks about the extensions, I suggestIOand Fcntl, and if you want database handling then SDBM_File or GDBM_File (you need to install gdbm for this one). If you want to use thePOSIXextension (this is the default), make sure that the stack size of your cc1.exe is at least 512kbyte (you can check this with: "stubedit cc1.exe").
You can use the Configure script in non-interactive mode too. When I built my perl.exe, I used something like this:
You can find more info about Configure's command line switches in theINSTALLfile.
When the script ends, and you want to change some values in the generated config.sh file, then run
sh Configure -S
after you made your modifications.IMPORTANT:if you use this "-S" switch, be sure to delete theCONFIGenvironment variable before running the script:
Now you can compile Perl. Type:
Testing Perl on DOS
If you're lucky you should see ``All tests successful''. But there can be a few failed subtests (less than 5 hopefully) depending on some external conditions (e.g. some subtests fail under linux/dosemu or plain dos with short filenames only).
Installation of Perl on DOS
This will copy the newly compiled perl and libraries into your
BUILDING AND INSTALLING MODULES ON DOS
Building Prerequisites for Perl on DOS
For building and installing non-XS modules, all you need is a working
XS-type modules do require re-linking the perl binary, because part of an
Unpacking CPAN Modules on DOS
First, download the module package from
From the command line, you can use the djtar utility provided with
C:\djgpp>djtarx -v Text-CSV-0.01.tar.gz
This will create the new directory "($DJDIR)/Text-CSV-0.01", filling it with the source for this module.
Building Non-XS Modules on DOS
To build a non-XS module, you can use the standard module-building
instructions distributed with perl modules.
perl Makefile.PL make make test make install
This is sufficient because non-XS modules install only ``.pm'' files and (sometimes) pod and/or man documentation. No re-linking of the perl binary is needed to build, install or use non-XS modules.
Building XS Modules on DOS
To build an
set FNCASE=y perl Makefile.PL make make perl make test make -f Makefile.aperl inst_perl MAP_TARGET=perl.exe make install
The first extra instruction sets
Note that the
When you are done, the XS-module install process will have added information to your ``perllocal'' information telling that the perl binary has been replaced, and what module was installed. You can view this information at any time by using the command:
perl -S perldoc perllocal
AUTHORLaszlo Molnar, firstname.lastname@example.org [Installing/building perl]
Peter J. Farley