'ExtUtils::MakeMaker' =>
{
'MAINTAINER' => 'mschwern',
- 'DISTRIBUTION' => 'MSTROUT/ExtUtils-MakeMaker-6.59.tar.gz',
+ 'DISTRIBUTION' => 'MSCHWERN/ExtUtils-MakeMaker-6.61_01.tar.gz',
'FILES' => q[cpan/ExtUtils-MakeMaker],
'EXCLUDED' => [ qr{^t/lib/Test/},
qr{^(bundled|my)/},
+6.61_01 Sat Sep 24 22:16:13 PDT 2011
+ Win32
+ * Liblist::Kid now checks the ActiveState MinGW library path environment
+ variable [MITHALDU]
+ * Further fixes to the Win32 quoting rules. Fixes failures on VC8+.
+ [rt.cpan.org #69528] [SHAY]
+
+
6.59 Fri Aug 5 12:09:00 BST
No changes since 6.58_01
+
6.58_01 Wed Aug 3 21:12:00 BST
Doc Fixes
* Corrected the repository location [chorny]
in site_perl shadowing our installation of other bundled modules.
[rt.cpan.org 69465] [rt.cpan.org 69900] [MSTROUT]
+
6.58 Wed Jul 6 14:17:06 PDT 2011
No changes since 6.57_11
TODO
META.yml Module YAML meta-data (added by MakeMaker)
META.json Module JSON meta-data (added by MakeMaker)
+SIGNATURE Public-key signature (added by MakeMaker)
our @EXPORT = qw(test_harness pod2man perllocal_install uninstall
warn_if_old_packlist);
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
my $Is_VMS = $^O eq 'VMS';
use strict;
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
use File::Spec;
require ExtUtils::Liblist::Kid;
use strict;
use warnings;
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
use ExtUtils::MakeMaker::Config;
use Cwd 'cwd';
# TODO: make this use MM_Win32.pm's compiler detection
my %libs_seen;
my @extralibs;
- my $cc = $Config{cc} || '';
- my $VC = $cc =~ /\bcl\b/i;
- my $GC = $cc =~ /\bgcc\b/i;
+ my $cc = $Config{cc} || '';
+ my $VC = $cc =~ /\bcl\b/i;
+ my $GC = $cc =~ /\bgcc\b/i;
+
my $libext = _win32_lib_extensions();
- my @searchpath = ( '' ); # from "-L/path" entries in $potential_libs
- my @libpath = _win32_default_search_paths( $VC );
- my $pwd = cwd(); # from Cwd.pm
+ my @searchpath = ( '' ); # from "-L/path" entries in $potential_libs
+ my @libpath = _win32_default_search_paths( $VC, $GC );
+ my $pwd = cwd(); # from Cwd.pm
my $search = 1;
# compute @extralibs from $potential_libs
}
sub _win32_default_search_paths {
- my ( $VC ) = @_;
+ my ( $VC, $GC ) = @_;
my $libpth = $Config{'libpth'} || '';
$libpth =~ s,\\,/,g; # normalize to forward slashes
my @libpath = Text::ParseWords::quotewords( '\s+', 0, $libpth );
push @libpath, "$Config{installarchlib}/CORE"; # add "$Config{installarchlib}/CORE" to default search path
- if ( $VC and exists $ENV{LIB} and $ENV{LIB} ) {
- push @libpath, split /;/, $ENV{LIB};
- }
+ push @libpath, split /;/, $ENV{LIB} if $VC and $ENV{LIB};
+ push @libpath, split /;/, $ENV{LIBRARY_PATH} if $GC and $ENV{LIBRARY_PATH};
return @libpath;
}
use strict;
use ExtUtils::MakeMaker::Config;
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
require ExtUtils::Liblist;
require ExtUtils::MakeMaker;
package ExtUtils::MM_AIX;
use strict;
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
package ExtUtils::MM_Any;
use strict;
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
use Carp;
use File::Spec;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
=item os_flavor
require ExtUtils::MM_Win32;
our @ISA = qw( ExtUtils::MM_Unix );
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
=head1 NAME
use strict;
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Unix );
}
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
=head1 NAME
use strict;
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
sub new {
die <<'UNSUPPORTED';
use ExtUtils::MakeMaker::Config;
use File::Basename;
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
require ExtUtils::MM_Win32;
our @ISA = qw(ExtUtils::MM_Win32);
use ExtUtils::MakeMaker qw(neatvalue);
use File::Spec;
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
package ExtUtils::MM_QNX;
use strict;
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
package ExtUtils::MM_UWIN;
use strict;
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
# If we make $VERSION an our variable parse_version() breaks
use vars qw($VERSION);
-$VERSION = '6.59';
+$VERSION = '6.61_01';
$VERSION = eval $VERSION;
require ExtUtils::MM_Any;
use File::Basename;
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
package ExtUtils::MM_VOS;
use strict;
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
$ENV{EMXSHELL} = 'sh'; # to run `commands`
sub quote_literal {
my($self, $text) = @_;
- # DOS batch processing is hilarious:
- # Quotes need to be converted into triple quotes.
- # Certain special characters need to be escaped with a caret if an odd
- # number of quotes came before them.
- my @text = split '', $text;
- my $quote_count = 0;
- my %caret_chars = map { $_ => 1 } qw( < > | );
- for my $char ( @text ) {
- if ( $char eq '"' ) {
- $quote_count++;
- $char = '"""';
- }
- elsif ( $caret_chars{$char} and $quote_count % 2 ) {
- $char = "^$char";
- }
- elsif ( $char eq "\\" ) {
- $char = "\\\\";
- }
- }
- $text = join '', @text;
+ # See: http://www.autohotkey.net/~deleyd/parameters/parameters.htm#CPP
+
+ # Apply the Microsoft C/C++ parsing rules
+ $text =~ s{\\\\"}{\\\\\\\\\\"}g; # \\" -> \\\\\"
+ $text =~ s{(?<!\\)\\"}{\\\\\\"}g; # \" -> \\\"
+ $text =~ s{(?<!\\)"}{\\"}g; # " -> \"
+ $text = qq{"$text"} if $text =~ /[ \t]/;
+
+ # Apply the Command Prompt parsing rules (cmd.exe)
+ my @text = split /("[^"]*")/, $text;
+ # We should also escape parentheses, but it breaks one-liners containing
+ # $(MACRO)s in makefiles.
+ s{([<>|&^@!])}{^$1}g foreach grep { !/^"[^"]*"$/ } @text;
+ $text = join('', @text);
- # There is a terribly confusing edge case here, where this will do entirely the wrong thing:
- # perl -e "use Data::Dumper; @ARGV = '%PATH%'; print Dumper( \@ARGV );print qq{@ARGV};" --
- # I have no idea how to fix this manually, much less programmatically.
- # However as it is such a rare edge case i'll just leave this documentation here and hope it never happens.
-
- # dmake eats '{' inside double quotes and leaves alone { outside double
- # quotes; however it transforms {{ into { either inside and outside double
- # quotes. It also translates }} into }. The escaping below is not
- # 100% correct.
+ # dmake expands {{ to { and }} to }.
if( $self->is_make_type('dmake') ) {
$text =~ s/{/{{/g;
- $text =~ s/}}/}}}/g;
+ $text =~ s/}/}}/g;
}
- return qq{"$text"};
+ return $text;
}
use strict;
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
require ExtUtils::MM_Win32;
our @ISA = qw(ExtUtils::MM_Win32);
use strict;
require ExtUtils::MM;
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
our @ISA = qw(ExtUtils::MM);
{
my @Prepend_parent;
my %Recognized_Att_Keys;
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
$VERSION = eval $VERSION;
# Emulate something resembling CVS $Revision$
use strict;
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
use Config ();
package ExtUtils::MakeMaker::FAQ;
-our $VERSION = '6.58';
+our $VERSION = '6.61_01';
1;
__END__
package ExtUtils::MakeMaker::Tutorial;
-our $VERSION = 6.58;
+our $VERSION = 6.61_01;
=head1 NAME
# There's just too much Dynaloader incest here to turn on strict vars.
use strict 'refs';
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
require Exporter;
our @ISA = ('Exporter');
our @ISA = qw(Exporter);
our @EXPORT = qw(&Mksymlists);
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
sub Mksymlists {
my(%spec) = @_;
use strict;
use warnings;
-our $VERSION = '6.59';
+our $VERSION = '6.61_01';
use Cwd;
use File::Spec;
# init_others(): check if all keys are created and set?
# qw( TOUCH CHMOD CP RM_F RM_RF MV NOOP TEST_F LD AR LDLOADLIBS DEV_NUL )
{
- my $mm_w32 = bless( { BASEEXT => 'Foo' }, 'MM' );
+ my $mm_w32 = bless( { BASEEXT => 'Foo', MAKE => $Config{make} }, 'MM' );
$mm_w32->init_others();
my @keys = qw( TOUCH CHMOD CP RM_F RM_RF MV NOOP
TEST_F LD AR LDLOADLIBS DEV_NULL );
NAME => 'TestMM_Win32',
VERSION => '1.00',
PM => { 'MM_Win32.pm' => 1 },
+ MAKE => $Config{make},
}, 'MM';
# XXX Hack until we have a proper init method.
chdir 't';
+use Config;
use MakeMaker::Test::Utils;
-use Test::More tests => 11;
+use Test::More tests => 16;
use File::Spec;
my $TB = Test::More->builder;
BEGIN { use_ok('ExtUtils::MM') }
-my $mm = bless { NAME => "Foo" }, 'MM';
+my $mm = bless { NAME => "Foo", MAKE => $Config{make} }, 'MM';
isa_ok($mm, 'ExtUtils::MakeMaker');
isa_ok($mm, 'ExtUtils::MM_Any');
try_oneliner(q{print " < \"\" < \" < \" < "}, [], q{ < "" < " < " < }, 'quotes and brackets mixed' );
try_oneliner(q{print " < \" | \" < | \" < \" < "}, [], q{ < " | " < | " < " < }, 'brackets, pipes and quotes' );
+# some examples from http://www.autohotkey.net/~deleyd/parameters/parameters.htm#CPP
+try_oneliner(q{print q[ &<>^|()@ ! ]}, [], q{ &<>^|()@ ! }, 'example 8.1' );
+try_oneliner(q{print q[ &<>^|@()!"&<>^|@()! ]}, [], q{ &<>^|@()!"&<>^|@()! }, 'example 8.2' );
+try_oneliner(q{print q[ "&<>^|@() !"&<>^|@() !" ]}, [], q{ "&<>^|@() !"&<>^|@() !" }, 'example 8.3' );
+try_oneliner(q{print q[ "C:\TEST A\" ]}, [], q{ "C:\TEST A\" }, 'example 8.4' );
+try_oneliner(q{print q[ "C:\TEST %&^ A\" ]}, [], q{ "C:\TEST %&^ A\" }, 'example 8.5' );
+
# XXX gotta rethink the newline test. The Makefile does newline
# escaping, then the shell.
chdir 't';
+use Config;
use ExtUtils::MM;
use MakeMaker::Test::Utils;
use Test::More tests => 7;
my $perl = which_perl;
-my $mm = bless { NAME => "Foo" }, "MM";
+my $mm = bless { NAME => "Foo", MAKE => $Config{make} }, "MM";
# I don't expect anything to have a length shorter than 256 chars.
cmp_ok( $mm->max_exec_len, '>=', 256, 'max_exec_len' );