Borland C++ version 5.02 or later
Microsoft Visual C++ version 4.2 or later
- Mingw32 with GCC version 2.95.2 or better
+ MinGW with gcc gcc version 2.95.2 or later
-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.)
+The last of these is a high quality freeware compiler. Use version
+3.2.x or later for the best results with this compiler.
This port can also be built on the Intel IA64 using:
The nmake that comes with Visual C++ will suffice for building.
You will need to run the VCVARS32.BAT file, usually found somewhere
-like C:\MSDEV4.2\BIN. This will set your build environment.
+like C:\MSDEV4.2\BIN or C:\Program Files\Microsoft Visual Studio\VC98\Bin.
+This will set your build environment.
You can also use dmake to build using Visual C++; provided, however,
you set OSRELEASE to "microsft" (or whatever the directory name
Perl. Make sure you are building within one of the "Build Environment"
shells available after you install the Platform SDK from the Start Menu.
-=item MinGW32 with gcc
+=item MinGW release 3 with gcc
-The latest release of MinGW (at the time of writing) is 2.0.0, which comes
-with gcc-3.2, and can be downloaded here:
+The latest release of MinGW at the time of writing is 3.1.0, which comes
+with gcc-3.2.3, and can be downloaded here:
- http://sourceforge.net/projects/mingw
+ http://www.mingw.org/
-Perl compiles with earlier releases of gcc (2.95 and up) that can be
-downloaded from the same place. If you use gcc-3.2, comment out the
-line:
-
- USE_GCC_V3_2 *= define
-
-in win32\makefile.mk
+Perl also compiles with earlier releases of gcc (2.95.2 and up). See below
+for notes about using earlier versions of MinGW/gcc.
You also need dmake. See L</"Make"> above on how to get it.
-=item MinGW release 1
+=item MinGW release 1 with gcc
The MinGW-1.1 bundle comes with gcc-2.95.3.
This directory contains a "Makefile" that will work with
versions of nmake that come with Visual C++ or the Platform SDK, and
a dmake "makefile.mk" that will work for all supported compilers. The
-defaults in the dmake makefile are setup to build using Microsoft Visual
-C++ 6.0 or newer.
+defaults in the dmake makefile are setup to build using MinGW/gcc.
=item *
enable the appropriate option in the makefile. A ready-to-use version
of fcrypt.c, based on the version originally written by Eric Young at
ftp://ftp.funet.fi/pub/crypt/mirrors/dsi/libdes/, is bundled with the
-distribution. Set CRYPT_SRC to fcrypt.c to use this version.
+distribution and CRYPT_SRC is set to use it.
Alternatively, if you have built a library that contains des_fcrypt(),
you can set CRYPT_LIB to point to the library name.
Perl will also build without des_fcrypt(), but the crypt() builtin will
Type "dmake install" (or "nmake install"). This will put the newly
built perl and the libraries under whatever C<INST_TOP> points to in the
Makefile. It will also install the pod documentation under
-C<$INST_TOP\$VERSION\lib\pod> and HTML versions of the same under
-C<$INST_TOP\$VERSION\lib\pod\html>. To use the Perl you just installed,
-you will need to add two components to your PATH environment variable,
-C<$INST_TOP\$VERSION\bin> and C<$INST_TOP\$VERSION\bin\$ARCHNAME>.
-For example:
+C<$INST_TOP\$INST_VER\lib\pod> and HTML versions of the same under
+C<$INST_TOP\$INST_VER\lib\pod\html>.
- set PATH c:\perl\5.6.0\bin;c:\perl\5.6.0\bin\MSWin32-x86;%PATH%
+To use the Perl you just installed you will need to add a new entry to
+your PATH environment variable: C<$INST_TOP\bin>, e.g.
-If you opt to comment out INST_VER and INST_ARCH in the makefiles, the
-installation structure is much simpler. In that case, it will be
-sufficient to add a single entry to the path, for instance:
+ set PATH=c:\perl\bin;%PATH%
- set PATH c:\perl\bin;%PATH%
+If you opted to uncomment C<INST_VER> and C<INST_ARCH> in the makefile
+then the installation structure is a little more complicated and you will
+need to add two new PATH components instead: C<$INST_TOP\$INST_VER\bin> and
+C<$INST_TOP\$INST_VER\bin\$ARCHNAME>, e.g.
+
+ set PATH=c:\perl\5.6.0\bin;c:\perl\5.6.0\bin\MSWin32-x86;%PATH%
=head2 Usage Hints for Perl on Win32
the pair of double quotes surrounding the argument will be stripped by
the C runtime.
-The file redirection characters "<", ">", and "|" can be quoted by
+The file redirection characters "E<lt>", "E<gt>", and "|" can be quoted by
double quotes (although there are suggestions that this may not always
be true). Single quotes are not treated as quotes by the shell or
the C runtime, they don't get stripped by the shell (just to make
To ensure smooth transitioning of existing code that uses the
ActiveState port, there is a bundle of Win32 extensions that contains
-all of the ActiveState extensions and most other Win32 extensions from
+all of the ActiveState extensions and several other Win32 extensions from
CPAN in source form, along with many added bugfixes, and with MakeMaker
support. This bundle is available at:
- http://www.cpan.org/authors/id/GSAR/libwin32-0.18.zip
+ http://www.cpan.org/modules/by-module/Win32/libwin32-0.191.zip
See the README in that distribution for building and installation
instructions. Look for later versions that may be available at the
of Perl on a 64-bit system. Given this, why would one want to build
a 64-bit build of Perl? Here are some reasons why you would bother:
+=over
+
=item *
A 64-bit native application will run much more efficiently on
=back
+=back
+
=head2 Running Perl Scripts
Perl scripts on UNIX use the "#!" (a.k.a "shebang") line to
"runperl". Explain the observed behavior, or lack thereof. :)
Hint: .gnidnats llits er'uoy fi ,"lrepnur" eteled :tniH
-=item Miscellaneous Things
+=back
+
+=head2 Miscellaneous Things
A full set of HTML documentation is installed, so you should be
able to use it if you have a web browser installed on your
bug report (you may have to send it manually if C<perlbug> cannot
find a mailer on your system).
-=back
-
=head1 BUGS AND CAVEATS
Norton AntiVirus interferes with the build process, particularly if
L<perlfunc>, and a few are not implemented at all. To avoid
surprises, particularly if you have had prior exposure to Perl
in other operating environments or if you intend to write code
-that will be portable to other environments. See L<perlport>
+that will be portable to other environments, see L<perlport>
for a reasonably definitive list of these differences.
Not all extensions available from CPAN may build or work properly
Most C<socket()> related calls are supported, but they may not
behave as on Unix platforms. See L<perlport> for the full list.
+Perl requires Winsock2 to be installed on the system. If you're
+running Win95, you can download Winsock upgrade from here:
+
+http://www.microsoft.com/windows95/downloads/contents/WUAdminTools/S_WUNetworkingTools/W95Sockets2/Default.asp
+
+Later OS versions already include Winsock2 support.
Signal handling may not behave as on Unix platforms (where it
doesn't exactly "behave", either :). For instance, calling C<die()>
currently be considered unsupported.
Please send detailed descriptions of any problems and solutions that
-you may find to <F<perlbug@perl.com>>, along with the output produced
-by C<perl -V>.
+you may find to E<lt>F<perlbug@perl.org>E<gt>, along with the output
+produced by C<perl -V>.
=head1 ACKNOWLEDGEMENTS
Support for 64-bit Windows added in 5.8 (ActiveState Corp).
-Last updated: 20 April 2002
+Last updated: 30 July 2004
=cut