This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
update fix to Shell.pm in change #22254: make /dev/null portable
[perl5.git] / README.win32
index bb76bfc..55b104b 100644 (file)
@@ -138,15 +138,26 @@ 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 MinGW32 with gcc
 
-GCC-2.95.2 binaries can be downloaded from:
+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:
 
-    ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/
+    http://sourceforge.net/projects/mingw
+
+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
 
 You also need dmake.  See L</"Make"> above on how to get it.
 
-The GCC-2.95.2 bundle comes with Mingw32 libraries and headers.
+=item MinGW release 1
+
+The MinGW-1.1 bundle comes with gcc-2.95.3.
 
 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
@@ -209,27 +220,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.
 
@@ -240,7 +236,7 @@ Be sure to read the instructions near the top of the makefiles carefully.
 Type "dmake" (or "nmake" if you are using that make).
 
 This should build everything.  Specifically, it will create perl.exe,
-perl58.dll at the perl toplevel, and various other extension dll's
+perl59.dll at the perl toplevel, and various other extension dll's
 under the lib\auto directory.  If the build fails for any reason, make
 sure you have done the previous steps correctly.
 
@@ -275,6 +271,16 @@ contain a header file called "patchlevel.h".  The latest Borland compiler
 option -VI- for backward (bugward) compatibility for using the old Borland
 search algorithm  to locate header files.
 
+If you run the tests on a FAT partition, you may see some failures for
+C<link()> related tests (I<op/write.t>, I<op/stat.t> ...). Testing on
+NTFS avoids these errors.
+
+Furthermore, you should make sure that during C<make test> you do not
+have any GNU tool packages in your path: some toolkits like Unixutils
+include some tools (C<type> for instance) which override the Windows
+ones and makes tests fail. Remove them from your path while testing to
+avoid these errors.
+
 Please report any other failures as described under L<BUGS AND CAVEATS>.
 
 =head2 Installation of Perl on Win32
@@ -685,6 +691,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).
@@ -732,6 +746,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