[inseparable changes from patch from perl5.003_21 to perl5.003_22]
[p5sagit/p5-mst-13.2.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 81b3714..90163b4 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -11,6 +11,11 @@ The basic steps to build and install perl5 on a Unix system are:
        make
        make test
        make install
+       # possibly add these:
+       (cd /usr/include  && h2ph *.h sys/*.h)
+       cd pod; make html && mv *.html <www home dir>  && cd ..
+       cd pod; make tex  && <process the latex files> && cd ..
+
 
 Each of these is explained in further detail below.
 
@@ -120,12 +125,12 @@ you can use the Configure command line option -Uusedl.
 By default, Configure will offer to build every extension which appears
 to be supported.  For example, Configure will offer to build GDBM_File
 only if it is able to find the gdbm library.  (See examples below.)
-DynaLoader, Fcntl, FileHandle and IO are always built by default.
-Configure does not contain code to test for POSIX compliance, so POSIX
-is always built by default as well.  If you wish to skip POSIX, you can
-set the Configure variable useposix=false either in a hint file or from
-the Configure command line.  Similarly, the Opcode extension is always
-built by default, but you can skip it by setting the Configure variable
+DynaLoader, Fcntl, and IO are always built by default.  Configure does
+not contain code to test for POSIX compliance, so POSIX is always built
+by default as well.  If you wish to skip POSIX, you can set the
+Configure variable useposix=false either in a hint file or from the
+Configure command line.  Similarly, the Opcode extension is always built
+by default, but you can skip it by setting the Configure variable
 useopcode=false either in a hint file for from the command line.
 
 Even if you do not have dynamic loading, you must still build the
@@ -138,7 +143,6 @@ to turn off each extension:
     DB_File            i_db
     DynaLoader         (Must always be included as a static extension)
     Fcntl              (Always included by default)
-    FileHandle         (Always included by default)
     GDBM_File          i_gdbm
     IO                 (Always included by default)
     NDBM_File          i_ndbm
@@ -311,11 +315,11 @@ just put their local extensions in with the standard distribution.
 In order to support using things like #!/usr/local/bin/perl5.002 after
 a later version is released, architecture-dependent libraries are
 stored in a version-specific directory, such as
-/usr/local/lib/perl5/archname/5.002/.  In 5.000 and 5.001, these files
-were just stored in /usr/local/lib/perl5/archname/.  If you will not be
-using 5.001 binaries, you can delete the standard extensions from the
-/usr/local/lib/perl5/archname/ directory.  Locally-added extensions can
-be moved to the site_perl and site_perl/archname directories.
+/usr/local/lib/perl5/archname/5.002/.  In Perl 5.000 and 5.001, these
+files were just stored in /usr/local/lib/perl5/archname/.  If you will
+not be using 5.001 binaries, you can delete the standard extensions from
+the /usr/local/lib/perl5/archname/ directory.  Locally-added extensions
+can be moved to the site_perl and site_perl/archname directories.
 
 Again, these are just the defaults, and can be changed as you run
 Configure.
@@ -402,7 +406,7 @@ Your system and typical applications may well give quite different
 results.
 
 The default name for the shared library is typically something like
-libperl.so.3.2 (for perl5.003_02) or libperl.so.302 or simply
+libperl.so.3.2 (for Perl 5.003_02) or libperl.so.302 or simply
 libperl.so.  Configure tries to guess a sensible naming convention
 based on your C library name.  Since the library gets installed in a
 version-specific architecture-dependent directory, the exact name
@@ -432,8 +436,8 @@ LD_LIBRARY_PATH above.
 There is also an potential problem with the shared perl library if you
 want to have more than one "flavor" of the same version of perl (e.g.
 with and without -DDEBUGGING).  For example, suppose you build and
-install a standard perl5.004 with a shared library.  Then, suppose you
-try to build perl5.004 with -DDEBUGGING enabled, but everything else
+install a standard Perl 5.004 with a shared library.  Then, suppose you
+try to build Perl 5.004 with -DDEBUGGING enabled, but everything else
 the same, including all the installation directories.  How can you
 ensure that your newly built perl will link with your newly built
 libperl.so.4 rather with the installed libperl.so.4?  The answer is
@@ -641,6 +645,17 @@ various other operating systems.
 
 =back
 
+=head1 Binary Compatibility With Perl 5.003
+
+Perl 5.003 turned on the EMBED feature by default, which tries to
+avoid possible symbol name conflict by prefixing all global symbols
+with "Perl_".  However, its list of global symbols was incomplete.
+This error has been rectified in Perl 5.004.
+
+However, some sites may need to maintain complete binary compatibility
+with Perl 5.003.  If you are building Perl for such a site, then when
+B<Configure> asks if you want binary compatibility, answer "y".
+
 =head1 make depend
 
 This will look for all the includes.
@@ -863,6 +878,11 @@ If you get syntax errors on '(', try -DCRIPPLED_CC.
 
 Machines with half-implemented dbm routines will need to #undef I_ODBM
 
+db-recno failure on tests 51, 53 and 55:  Old versions of the DB library
+(including the DB library which comes with FreeBSD 2.1) had broken
+handling of recno databases with modified bval settings.  Upgrade your
+DB library or OS.
+
 =back
 
 =head1 make test
@@ -992,14 +1012,14 @@ You can safely install the current version of perl5 and still run scripts
 under the old binaries for versions 5.003 and later ONLY.  Instead of
 starting your script with #!/usr/local/bin/perl, just start it with
 #!/usr/local/bin/perl5.003 (or whatever version you want to run.)
-If you want to retain a version of perl5 prior to perl5.003, you'll
+If you want to retain a version of Perl 5 prior to 5.003, you'll
 need to install the current version in a separate directory tree,
 since some of the architecture-independent library files have changed
 in incompatible ways.
 
 The architecture-dependent files are stored in a version-specific
 directory (such as F</usr/local/lib/perl5/sun4-sunos/5.002>) so that
-they are still accessible.  I<Note:> perl5.000 and perl5.001 did not
+they are still accessible.  I<Note:> Perl 5.000 and 5.001 did not
 put their architecture-dependent libraries in a version-specific
 directory.  They are simply in F</usr/local/lib/perl5/$archname>.  If
 you will not be using 5.000 or 5.001, you may safely remove those
@@ -1012,7 +1032,7 @@ Most extensions will probably not need to be recompiled to use with a newer
 version of perl.  If you do run into problems, and you want to continue
 to use the old version of perl along with your extension, simply move
 those extension files to the appropriate version directory, such as
-F</usr/local/lib/perl/archname/5.002>.  Then perl5.002 will find your
+F</usr/local/lib/perl/archname/5.002>.  Then Perl 5.002 will find your
 files in the 5.002 directory, and newer versions of perl will find your
 newer extension in the site_perl directory.
 
@@ -1026,7 +1046,7 @@ and adding /opt/perl5.002/bin to the shell PATH variable.  Such users
 may also wish to add a symbolic link /usr/local/bin/perl so that
 scripts can still start with #!/usr/local/bin/perl.
 
-B<NOTE>: Starting with 5.002_01, all functions in the perl C source
+B<NOTE>: Starting with Perl 5.002_01, all functions in the perl C source
 code are protected by default by the prefix Perl_ (or perl_) so that
 you may link with third-party libraries without fear of namespace
 collisons.  This breaks compatability with
@@ -1062,6 +1082,19 @@ build process.  Type B<man perl> to get started.  Alternatively, you
 can type B<perldoc perl> to use the supplied B<perldoc> script.  This
 is sometimes useful for finding things in the library modules.
 
+Under UNIX, you can produce a documentation book in postscript form
+along with its I<Table of Contents> by going to the pod/ subdirectory
+and running (either):
+
+       ./roffitall -groff              # If you have GNU groff installed
+       ./roffitall -psroff             # Otherwise
+
+This will leave you with two postscript files ready to be printed.
+
+Note that you must have performed the installation already before
+running the above, since the script collects the installed files to
+generate the documentation.
+
 =head1 AUTHOR
 
 Andy Dougherty <doughera@lafcol.lafayette.edu>, borrowing I<very> heavily
@@ -1069,4 +1102,4 @@ from the original README by Larry Wall.
 
 =head1 LAST MODIFIED
 
-9 October 1996
+16 January 1997