Fixing extra -I's with PERL_CORE
[p5sagit/p5-mst-13.2.git] / lib / ExtUtils / MakeMaker.pm
index 78175f9..4e258ce 100644 (file)
@@ -2,7 +2,7 @@ BEGIN {require 5.002;} # MakeMaker 5.17 was the last MakeMaker that was compatib
 
 package ExtUtils::MakeMaker;
 
-$VERSION = "5.45";
+$VERSION = "5.46";
 $Version_OK = "5.17";  # Makefiles older than $Version_OK will die
                        # (Will be checked from MakeMaker version 4.13 onwards)
 ($Revision = substr(q$Revision: 1.222 $, 10)) =~ s/\s+$//;
@@ -71,6 +71,7 @@ $Is_OS2   = $^O eq 'os2';
 $Is_Mac   = $^O eq 'MacOS';
 $Is_Win32 = $^O eq 'MSWin32';
 $Is_Cygwin= $^O eq 'cygwin';
+$Is_NetWare = $Config{'osname'} eq 'NetWare';
 
 require ExtUtils::MM_Unix;
 
@@ -84,6 +85,11 @@ if ($Is_OS2) {
 if ($Is_Mac) {
     require ExtUtils::MM_MacOS;
 }
+if ($Is_NetWare) {
+       $^O = 'NetWare';
+       require ExtUtils::MM_NW5;
+       $Is_Win32=0;
+}
 if ($Is_Win32) {
     require ExtUtils::MM_Win32;
 }
@@ -200,10 +206,14 @@ sub full_setup {
     PERL_MALLOC_OK
     NAME NEEDS_LINKING NOECHO NORECURS NO_VC OBJECT OPTIMIZE PERL PERLMAINCC
     PERL_ARCHLIB PERL_LIB PERL_SRC PERM_RW PERM_RWX
-    PL_FILES PM PMLIBDIRS POLLUTE PPM_INSTALL_EXEC PPM_INSTALL_SCRIPT PREFIX
+    PL_FILES PM PM_FILTER PMLIBDIRS POLLUTE PPM_INSTALL_EXEC
+       PPM_INSTALL_SCRIPT PREFIX
     PREREQ_PM SKIP TYPEMAPS VERSION VERSION_FROM XS XSOPT XSPROTOARG
     XS_VERSION clean depend dist dynamic_lib linkext macro realclean
     tool_autosplit
+
+    MACPERL_SRC MACPERL_LIB MACLIBS_68K MACLIBS_PPC MACLIBS_SC MACLIBS_MRC
+    MACLIBS_ALL_68K MACLIBS_ALL_PPC MACLIBS_SHARED
        /;
 
     # IMPORTS is used under OS/2 and Win32
@@ -239,7 +249,6 @@ sub full_setup {
 
  dir_target libscan makeaperl needs_linking perm_rw perm_rwx
  subdir_x test_via_harness test_via_script
-
                         ];
 
     push @MM_Sections, qw[
@@ -1673,6 +1682,29 @@ Defining PM in the Makefile.PL will override PMLIBDIRS.
 
 (Where BASEEXT is the last component of NAME.)
 
+=item PM_FILTER
+
+A filter program, in the traditional Unix sense (input from stdin, output
+to stdout) that is passed on each .pm file during the build (in the
+pm_to_blib() phase).  It is empty by default, meaning no filtering is done.
+
+Great care is necessary when defining the command if quoting needs to be
+done.  For instance, you would need to say:
+
+  {'PM_FILTER' => 'grep -v \\"^\\#\\"'}
+
+to remove all the leading coments on the fly during the build.  The
+extra \\ are necessary, unfortunately, because this variable is interpolated
+within the context of a Perl program built on the command line, and double
+quotes are what is used with the -e switch to build that command line.  The
+# is escaped for the Makefile, since what is going to be generated will then
+be:
+
+  PM_FILTER = grep -v \"^\#\"
+
+Without the \\ before the #, we'd have the start of a Makefile comment,
+and the macro would be incorrectly defined.
+
 =item POLLUTE
 
 Release 5.005 grandfathered old global symbol names by providing preprocessor