This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Failing matches don't reset numbered variables.
[perl5.git] / README.win32
index 11e990d..b9ab612 100644 (file)
@@ -43,11 +43,10 @@ following compilers on the Intel x86 architecture:
 
       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:
 
@@ -138,24 +137,19 @@ The nmake that comes with the Platform SDK will suffice for building
 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.
 
@@ -212,6 +206,13 @@ Edit the makefile.mk (or Makefile, if you're using nmake) and change
 the values of INST_DRV and INST_TOP.   You can also enable various
 build flags.  These are explained in the makefiles.
 
+Note that it is generally not a good idea to try to build a perl with
+INST_DRV and INST_TOP set to a path that already exists from a previous
+build.  In particular, this may cause problems with the
+lib/ExtUtils/t/Embed.t test, which attempts to build a test program and
+may end up building against the installed perl's lib/CORE directory rather
+than the one being tested.
+
 You will have to make sure that CCTYPE is set correctly and that 
 CCHOME points to wherever you installed your compiler.
 
@@ -220,27 +221,12 @@ may not be correct for some versions.  Make sure the default exists
 and is valid.
 
 If you have either the source or a library that contains des_fcrypt(),
-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 Eric Young) which is widely
-available worldwide, usually along with SSLeay ( for example, 
-ftp://ftp.funet.fi/pub/crypt/mirrors/dsi/libdes/ ).  Set CRYPT_SRC to the
-name of the file that implements des_fcrypt().  Alternatively, if
-you have built a library that contains des_fcrypt(), you can set
-CRYPT_LIB to point to the library name.  The location above contains
-many versions of the "libdes" library, all with slightly different
-implementations of des_fcrypt().  Older versions have a single,
-self-contained file (fcrypt.c) that implements crypt(), so they may be
-easier to use.  A patch against the fcrypt.c found in libdes-3.06 is
-in des_fcrypt.patch.
-
-An easier alternative may be to get the pre-patched and ready-to-use
-fcrypt.c that can be found here:
-
-    http://downloads.ActiveState.com/pub/staff/gsar/fcrypt.c
-    ftp://ftp.ActiveState.com/pub/staff/gsar/fcrypt.c
-
+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.
+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
 fail at run time.
 
@@ -480,7 +466,7 @@ ensure Config.pm knows about it.  If you don't have nmake, you can
 either get dmake from the location mentioned earlier or get an
 old version of nmake reportedly available from:
 
   ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe
http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/nmake15.exe
 
 Another option is to use the make written in Perl, available from
 CPAN.
@@ -706,6 +692,14 @@ have to set the PAGER environment variable to use a specific pager.
 "perldoc -f foo" will print information about the perl operator
 "foo".
 
+One common mistake when using this port with a GUI library like C<Tk>
+is assuming that Perl's normal behavior of opening a command-line
+window will go away.  This isn't the case.  If you want to start a copy
+of C<perl> without opening a command-line window, use the C<wperl>
+executable built during the installation process.  Usage is exactly
+the same as normal C<perl> on Win32, except that options like C<-h>
+don't work (since they need a command-line window to print to).
+
 If you find bugs in perl, you can run C<perlbug> to create a
 bug report (you may have to send it manually if C<perlbug> cannot
 find a mailer on your system).
@@ -753,6 +747,11 @@ 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>.
 
+=head1 ACKNOWLEDGEMENTS
+
+The use of a camel with the topic of Perl is a trademark
+of O'Reilly and Associates, Inc. Used with permission.
+
 =head1 AUTHORS
 
 =over 4