Borland C++ version 5.02 or later
Microsoft Visual C++ version 4.2 or later
- Mingw32 with EGCS versions 1.0.2, 1.1
- Mingw32 with GCC version 2.8.1
+ Mingw32 with GCC version 2.95.2 or better
-The last two of these are high quality freeware compilers. Support
-for them is still experimental.
+The last of these is a high quality freeware compiler. Support
+for it is still experimental. (Older versions of GCC are known
+not to work.)
This port currently supports MakeMaker (the set of modules that
is used to build extensions to perl). Therefore, you should be
A port of dmake for win32 platforms is available from:
- ftp://ftp.linux.activestate.com/pub/staff/gsar/dmake-4.1-win32.zip
+ http://cpan.perl.org/authors/id/GSAR/dmake-4.1pl1-win32.zip
+
+(This is a fixed version of original dmake sources obtained from
+http://www.wticorp.com/dmake/. As of version 4.1PL1, the original
+sources did not build as shipped, and had various other problems.
+A patch is included in the above fixed version.)
Fetch and install dmake somewhere on your path (follow the instructions
in the README.NOW file).
latter step is only essential if you want to use dmake as your default
make for building extensions using MakeMaker.
-=item Mingw32 with EGCS or GCC
+=item Mingw32 with GCC
-ECGS binaries can be downloaded from:
+GCC-2.95.2 binaries can be downloaded from:
ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/
-GCC-2.8.1 binaries are available from:
-
- http://agnes.dida.physik.uni-essen.de/~janjaap/mingw32/
-
-You only need either one of those, not both. Both bundles come with
-Mingw32 libraries and headers. While both of them work to build perl,
-the EGCS binaries are currently favored by the maintainers, since they
-come with more up-to-date Mingw32 libraries.
+The GCC-2.95.2 bundle comes with Mingw32 libraries and headers.
-Make sure you install the binaries as indicated in the web sites
-above. You will need to set up a few environment variables (usually
-run from a batch file).
+Make sure you install the binaries that work with MSVCRT.DLL as indicated
+in the README for the GCC bundle. You may need to set up a few environment
+variables (usually run from a batch file).
You also need dmake. See L</"Borland C++"> above on how to get it.
perl Makefile.PL CAPI=TRUE
PERL_OBJECT requires VC++ 5.0 (Service Pack 3 recommended) or later. It
-is not yet supported under GCC or EGCS. WARNING: Binaries built with
+is not yet supported under GCC. WARNING: Binaries built with
PERL_OBJECT enabled are B<not> compatible with binaries built without.
Perl installs PERL_OBJECT binaries under a distinct architecture name,
so they B<can> coexist, though.
enable the appropriate option in the makefile. des_fcrypt() is not
bundled with the distribution due to US Government restrictions
on the export of cryptographic software. Nevertheless, this routine
-is part of the "libdes" library (written by Ed Young) which is widely
+is part of the "libdes" library (written by Eric Young) which is widely
available worldwide, usually along with SSLeay (for example:
"ftp://fractal.mta.ca/pub/crypto/SSLeay/DES/"). Set CRYPT_SRC to the
name of the file that implements des_fcrypt(). Alternatively, if
less copiously, depending on how picky your compiler gets). The
maintainers are aware of these warnings, thankyouverymuch. :)
-When building using Visual C++, a perl95.exe will also get built. This
-executable is only needed on Windows95, and should be used instead of
-perl.exe, and then only if you want sockets to work properly on Windows95.
-This is necessitated by a bug in the Microsoft C Runtime that cannot be
-worked around in the "normal" perl.exe. perl95.exe gets built with its
-own private copy of the C Runtime that is not accessible to extensions
-(which see the DLL version of the CRT). Be aware, therefore, that this
-perl95.exe will have esoteric problems with extensions like perl/Tk that
-themselves use the C Runtime heavily, or want to free() pointers
-malloc()-ed by perl.
-
-You can avoid the perl95.exe problems completely if you either enable
-USE_PERLCRT with Visual C++, or use Borland C++ for building perl. In
-those cases, perl95.exe is not needed and will not be built.
-
=back
=head2 Testing
from where Borland chose to install it, into the Windows system directory
(usually somewhere like C:\WINNT\SYSTEM32), and rerun the test.
-The Visual C runtime apparently has a bug that causes posix.t to fail
-test#2. This usually happens only if you extracted the files in text
-mode. Enable the USE_PERLCRT option in the Makefile to fix this bug.
-
Please report any other failures as described under L<BUGS AND CAVEATS>.
=head2 Installation
Entries in the former override entries in the latter. One or more of the
following entries (of type REG_SZ or REG_EXPAND_SZ) may be set:
- lib-$] version-specific path to add to @INC
- lib path to add to @INC
- sitelib-$] version-specific path to add to @INC
- sitelib path to add to @INC
+ lib-$] version-specific standard library path to add to @INC
+ lib standard library path to add to @INC
+ sitelib-$] version-specific site library path to add to @INC
+ sitelib site library path to add to @INC
+ vendorlib-$] version-specific vendor library path to add to @INC
+ vendorlib vendor library path to add to @INC
PERL* fallback for all %ENV lookups that begin with "PERL"
Note the C<$]> in the above is not literal. Substitute whatever version
-of perl you want to honor that entry, e.g. C<5.00502>. Paths must be
+of perl you want to honor that entry, e.g. C<5.6.0>. Paths must be
separated with semicolons, as usual on win32.
=item File Globbing
http://www.perl.com/CPAN/authors/id/NI-S/Make-0.03.tar.gz
+You may also use dmake. See L</"Borland C++"> above on how to get it.
+
Note that MakeMaker actually emits makefiles with different syntax
depending on what 'make' it thinks you are using. Therefore, it is
important that one of the following values appears in Config.pm:
C<raise()>, i.e. it doesn't send a signal to the identified process
like it does on Unix platforms. Instead it immediately calls
C<TerminateProcess(process,signal)>. Thus the signal argument is
-used to set the exit-status of the terminated process. In particular,
-C<kill(0,$pid)> will kill the process identified by C<$pid> (unlike
-on Unix). This behavior may change in future.
+used to set the exit-status of the terminated process. However,
+a signal of 0 can be used to safely check if the specified process
+exists, as on Unix.
=item *
This port was originally contributed by Gary Ng around 5.003_24,
and borrowed from the Hip Communications port that was available
-at the time.
-
-Nick Ing-Simmons and Gurusamy Sarathy have made numerous and
-sundry hacks since then.
+at the time. Various people have made numerous and sundry hacks
+since then.
Borland support was added in 5.004_01 (Gurusamy Sarathy).
Support for PERL_OBJECT was added in 5.005 (ActiveState Tool Corp).
-Last updated: 18 January 1999
+Support for fork() emulation was added in 5.6 (ActiveState Tool Corp).
-=cut
+Win9x support was added in 5.6 (Benjamin Stuhl).
+Last updated: 28 December 1999
+
+=cut