lib/ExtUtils/t/INST.t Check MakeMaker INST_* macros
lib/ExtUtils/t/Liblist.t See if ExtUtils::Liblist works
lib/ExtUtils/t/make.t See if make detection works
+lib/ExtUtils/t/maketext_filter.t See if maketext_filter works
lib/ExtUtils/t/Manifest.t See if ExtUtils::Manifest works
lib/ExtUtils/t/Mkbootstrap.t See if ExtUtils::Mkbootstrap works
lib/ExtUtils/t/MM_Any.t See if ExtUtils::MM_Any works
+6.42 Fri Dec 7 17:00:14 PST 2007
+ Bug Fixes
+ - 6.33 moved PREREQ_FATAL to happen after CONFIGURE. This meant if
+ your CONFIGURE use a prereq it would fail and no PREREQ_FATAL
+ message would be displayed.
+ - Put the "nicetext" functionality back, VMS needs it to deal with
+ other people's custom make. But rename it to the more
+ accurate maketext_filter(), test it and fix a bug where it would
+ stop processing if it saw a macro declaration.
+
6.40 Thu Dec 6 03:00:47 PST 2007
Bug Fixes
- Remove the dubious nicetext() Makefile formatting hack to account for
@EXPORT = qw(test_harness pod2man perllocal_install uninstall
warn_if_old_packlist);
-$VERSION = '6.40';
+$VERSION = '6.42';
my $Is_VMS = $^O eq 'VMS';
use strict;
use vars qw($VERSION @ISA);
-$VERSION = '6.40';
+$VERSION = '6.42';
use File::Spec;
require ExtUtils::Liblist::Kid;
use strict;
use vars qw($VERSION);
-$VERSION = 6.40;
+$VERSION = 6.42;
use Config;
use Cwd 'cwd';
use strict;
use ExtUtils::MakeMaker::Config;
use vars qw(@ISA $VERSION);
-$VERSION = '6.40';
+$VERSION = '6.42';
require ExtUtils::Liblist;
require ExtUtils::MakeMaker;
use strict;
use vars qw($VERSION @ISA);
-$VERSION = '6.40';
+$VERSION = '6.42';
require ExtUtils::MM_Unix;
@ISA = qw(ExtUtils::MM_Unix);
use strict;
use vars qw($VERSION @ISA);
-$VERSION = '6.40';
+$VERSION = '6.42';
use Carp;
use File::Spec;
}
+=head3 maketext_filter
+
+ my $filter_make_text = $mm->maketext_filter($make_text);
+
+The text of the Makefile is run through this method before writing to
+disk. It allows systems a chance to make portability fixes to the
+Makefile.
+
+By default it does nothing.
+
+This method is protected and not intended to be called outside of
+MakeMaker.
+
+=cut
+
+sub maketext_filter { return $_[1] }
+
+
=head3 cd I<Abstract>
my $subdir_cmd = $MM->cd($subdir, @cmds);
use vars qw(@ISA $VERSION);
@ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-$VERSION = '6.40';
+$VERSION = '6.42';
=item os_flavor
require ExtUtils::MM_Unix;
@ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-$VERSION = '6.40';
+$VERSION = '6.42';
=head1 NAME
use strict;
use vars qw($VERSION @ISA);
-$VERSION = 6.40;
+$VERSION = 6.42;
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
use strict;
use vars qw($VERSION);
-$VERSION = 6.40;
+$VERSION = 6.42;
sub new {
die <<'UNSUPPORTED';
use File::Basename;
use vars qw(@ISA $VERSION);
-$VERSION = '6.40';
+$VERSION = '6.42';
require ExtUtils::MM_Win32;
@ISA = qw(ExtUtils::MM_Win32);
use ExtUtils::MakeMaker qw(neatvalue);
use File::Spec;
-$VERSION = '6.40';
+$VERSION = '6.42';
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
use strict;
use vars qw($VERSION @ISA);
-$VERSION = '6.40';
+$VERSION = '6.42';
require ExtUtils::MM_Unix;
@ISA = qw(ExtUtils::MM_Unix);
use strict;
use vars qw($VERSION @ISA);
-$VERSION = 6.40;
+$VERSION = 6.42;
require ExtUtils::MM_Unix;
@ISA = qw(ExtUtils::MM_Unix);
use ExtUtils::MakeMaker qw($Verbose neatvalue);
-$VERSION = '6.40';
+$VERSION = '6.42';
require ExtUtils::MM_Any;
@ISA = qw(ExtUtils::MM_Any);
# $Revision can't be on the same line or SVN/K gets confused
use vars qw($Revision
$VERSION @ISA);
-$VERSION = '6.40';
+$VERSION = '6.42';
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
join '', @m;
}
+# --- Output postprocessing section ---
+
+=item maketext_filter (override)
+
+Insure that colons marking targets are preceded by space, in order
+to distinguish the target delimiter from a colon appearing as
+part of a filespec.
+
+=cut
+
+sub maketext_filter {
+ my($self, $text) = @_;
+
+ $text =~ s/^([^\s:=]+)(:+\s)/$1 $2/mg;
+ return $text;
+}
=item prefixify (override)
use strict;
use vars qw($VERSION @ISA);
-$VERSION = '6.40';
+$VERSION = '6.42';
require ExtUtils::MM_Unix;
@ISA = qw(ExtUtils::MM_Unix);
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
@ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-$VERSION = '6.40';
+$VERSION = '6.42';
$ENV{EMXSHELL} = 'sh'; # to run `commands`
use strict;
use vars qw($VERSION @ISA);
-$VERSION = '6.40';
+$VERSION = '6.42';
require ExtUtils::MM_Win32;
@ISA = qw(ExtUtils::MM_Win32);
require ExtUtils::MM;
use vars qw(@ISA $VERSION);
-$VERSION = 6.40;
+$VERSION = 6.42;
@ISA = qw(ExtUtils::MM);
{
-# $Id: /local/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm 41130 2007-12-06T11:04:43.533533Z schwern $
+# $Id: /mirror/svn.schwern.org/CPAN/ExtUtils-MakeMaker/trunk/lib/ExtUtils/MakeMaker.pm 41145 2007-12-08T01:01:11.051959Z schwern $
package ExtUtils::MakeMaker;
BEGIN {require 5.005_03;}
use vars qw($Revision);
use strict;
-$VERSION = '6.40';
-($Revision) = q$Revision: 41130 $ =~ /Revision:\s+(\S+)/;
+$VERSION = '6.42';
+($Revision) = q$Revision: 41145 $ =~ /Revision:\s+(\S+)/;
@ISA = qw(Exporter);
@EXPORT = qw(&WriteMakefile &writeMakefile $Verbose &prompt);
$self->{PREREQ_PM}->{$prereq} : 'unknown version' ;
}
}
+
+ if (%unsatisfied && $self->{PREREQ_FATAL}){
+ my $failedprereqs = join "\n", map {" $_ $unsatisfied{$_}"}
+ sort { $a cmp $b } keys %unsatisfied;
+ die <<"END";
+MakeMaker FATAL: prerequisites not found.
+$failedprereqs
+
+Please install these modules first and rerun 'perl Makefile.PL'.
+END
+ }
+
if (defined $self->{CONFIGURE}) {
if (ref $self->{CONFIGURE} eq 'CODE') {
%configure_att = %{&{$self->{CONFIGURE}}};
} else {
parse_args($self,split(' ', $ENV{PERL_MM_OPT} || ''),@ARGV);
}
- if (%unsatisfied && $self->{PREREQ_FATAL}){
- my $failedprereqs = join "\n", map {" $_ $unsatisfied{$_}"}
- sort { $a cmp $b } keys %unsatisfied;
- die <<"END";
-MakeMaker FATAL: prerequisites not found.
-$failedprereqs
-
-Please install these modules first and rerun 'perl Makefile.PL'.
-END
- }
$self->{NAME} ||= $self->guess_name;
my(%a) = %{$self->{$section} || {}};
push @{$self->{RESULT}}, "\n# --- MakeMaker $section section:";
push @{$self->{RESULT}}, "# " . join ", ", %a if $Verbose && %a;
- push @{$self->{RESULT}}, $self->$method( %a );
+ push @{$self->{RESULT}}, $self->maketext_filter(
+ $self->$method( %a )
+ );
}
}
$VERSION = '1.00';
*VERSION = \'1.01';
- ($VERSION) = q$Revision: 41130 $ =~ /(\d+)/g;
+ ($VERSION) = q$Revision: 41145 $ =~ /(\d+)/g;
$FOO::VERSION = '1.10';
*FOO::VERSION = \'1.11';
our $VERSION = 1.2.3; # new for perl5.6.0
package ExtUtils::MakeMaker::Config;
-$VERSION = '6.40';
+$VERSION = '6.42';
use strict;
use Config ();
use strict;
use vars qw($VERSION);
-$VERSION = 6.40;
+$VERSION = 6.42;
my $Have_Bytes = eval q{require bytes; 1;};
use strict;
use vars qw($VERSION);
-$VERSION = 6.40;
+$VERSION = 6.42;
my $IsVMS = $^O eq 'VMS';
use strict 'refs';
use vars qw($VERSION @ISA @EXPORT);
-$VERSION = '6.40';
+$VERSION = '6.42';
require Exporter;
@ISA = ('Exporter');
use vars qw(@ISA @EXPORT $VERSION);
@ISA = 'Exporter';
@EXPORT = '&Mksymlists';
-$VERSION = '6.40';
+$VERSION = '6.42';
sub Mksymlists {
my(%spec) = @_;
--- /dev/null
+#!/usr/bin/perl -w
+
+BEGIN {
+ if( $ENV{PERL_CORE} ) {
+ chdir 't' if -d 't';
+ @INC = '../lib';
+ }
+ else {
+ unshift @INC, 't/lib';
+ }
+}
+chdir 't';
+
+use Test::More tests => 6;
+
+use ExtUtils::MakeMaker;
+use ExtUtils::MM_VMS;
+
+sub test_filter {
+ my($text, $vms_text) = @_;
+
+ local $Test::Builder::Level = $Test::Builder::Level + 1;
+ is( ExtUtils::MM_Any->maketext_filter($text), $text, 'default filter' );
+ is( ExtUtils::MM_VMS->maketext_filter($text), $vms_text, 'VMS filter' );
+}
+
+
+# VMS filter puts a space after the target
+test_filter(<<'END', <<'VMS');
+foo: bar
+ thing: splat
+END
+foo : bar
+ thing: splat
+VMS
+
+
+# And it does it for all targets
+test_filter(<<'END', <<'VMS');
+foo: bar
+ thing: splat
+
+up: down
+ yes
+END
+foo : bar
+ thing: splat
+
+up : down
+ yes
+VMS
+
+
+# And it doesn't mess with macros
+test_filter(<<'END', <<'VMS');
+CLASS=Foo: Bar
+
+target: stuff
+ $(PROGRAM) And::Stuff
+END
+CLASS=Foo: Bar
+
+target : stuff
+ $(PROGRAM) And::Stuff
+VMS
}
use strict;
-use Test::More tests => 11;
+use Test::More tests => 13;
use TieOut;
use MakeMaker::Test::Utils;
Please install these modules first and rerun 'perl Makefile.PL'.
END
+
+ $warnings = '';
+ eval {
+ WriteMakefile(
+ NAME => 'Big::Dummy',
+ PREREQ_PM => {
+ "I::Do::Not::Exist" => 0,
+ },
+ CONFIGURE => sub {
+ require I::Do::Not::Exist;
+ },
+ PREREQ_FATAL => 1,
+ );
+ };
+
+ is $warnings, '';
+ is $@, <<'END', "PREREQ_FATAL happens before CONFIGURE";
+MakeMaker FATAL: prerequisites not found.
+ I::Do::Not::Exist not installed
+
+Please install these modules first and rerun 'perl Makefile.PL'.
+END
+
}
use strict;
use vars qw($VERSION);
-$VERSION = 6.40;
+$VERSION = 6.42;
use Cwd;
use File::Spec;