'ExtUtils::CBuilder' =>
{
'MAINTAINER' => 'kwilliams',
- 'DISTRIBUTION' => 'KWILLIAMS/ExtUtils-CBuilder-0.24.tar.gz',
+ 'DISTRIBUTION' => 'DAGOLDEN/ExtUtils-CBuilder-0.25.tar.gz',
'FILES' => q[lib/ExtUtils/CBuilder.pm lib/ExtUtils/CBuilder],
'EXCLUDED' => [ qw{bleadcheck.pl}, ],
'CPAN' => 1,
use File::Basename ();
use vars qw($VERSION @ISA);
-$VERSION = '0.24_01';
+$VERSION = '0.25';
$VERSION = eval $VERSION;
# Okay, this is the brute-force method of finding out what kind of
use IO::File;
use vars qw($VERSION);
-$VERSION = '0.24';
+$VERSION = '0.25';
sub new {
my $class = shift;
Revision history for Perl extension ExtUtils::CBuilder.
+0.25 - Fri Jun 26 16:18:13 EDT 2009
+
+ - Slight diagnostic improvements in link.t
+
+0.24_01 - Sun Mar 8 14:50:10 2009
+
+ - On Windows, don't generate "mt" command when CRT is statically
+ linked. [Jan Dubois]
+
+ - On Cygwin, examine $Config{useshrplib} to see whether we're
+ supposed to be linking with a shared perl library or not. [Reini
+ Urban]
+
+ - In link_executable() on Cygwin, trust $Config{ld} rather than using
+ $Config{cc} for linking. [Reini Urban]
+
+ - Add 'haiku' as a Unix-like platform. [Ingo Weinhold]
+
+0.24 - Fri Aug 15 22:01:48 2008
+
- Added 'gnu' and 'gnukfreebsd' as Unix variants. [Niko Tyni]
- Brought in some VMS fixes from bleadperl: "Correct and complete
use ExtUtils::CBuilder::Base;
use vars qw($VERSION @ISA);
-$VERSION = '0.24';
+$VERSION = '0.25';
@ISA = qw(ExtUtils::CBuilder::Base);
sub link_executable {
my $self = shift;
- # $Config{cc} is usually a better bet for linking executables than $Config{ld}
+
+ # On some platforms (which ones??) $Config{cc} seems to be a better
+ # bet for linking executables than $Config{ld}. Cygwin is a notable
+ # exception.
local $self->{config}{ld} =
$self->{config}{cc} . " " . $self->{config}{ldflags};
return $self->SUPER::link_executable(@_);
use ExtUtils::CBuilder::Base;
use vars qw($VERSION @ISA);
-$VERSION = '0.24';
+$VERSION = '0.25';
@ISA = qw(ExtUtils::CBuilder::Base);
use File::Spec::Functions qw(catfile catdir);
use IO::File;
use vars qw($VERSION @ISA);
-$VERSION = '0.24';
+$VERSION = '0.25';
@ISA = qw(ExtUtils::CBuilder::Base);
sub new {
$spec{output} ,
) ];
- # Embed the manifest file if it exists
- push @cmds, [
- 'if', 'exist', $spec{manifest}, 'mt', '-nologo', $spec{manifest}, '-outputresource:' . "$output;2"
- ];
+ # Embed the manifest file for VC 2005 (aka VC 8) or higher, but not for the 64-bit Platform SDK compiler
+ if ($cf->{ivsize} == 4 && $cf->{cc} eq 'cl' and $cf->{ccversion} =~ /^(\d+)/ and $1 >= 14) {
+ push @cmds, [
+ 'if', 'exist', $spec{manifest}, 'mt', '-nologo', $spec{manifest}, '-outputresource:' . "$output;2"
+ ];
+ }
return @cmds;
}
use File::Spec;
use vars qw($VERSION @ISA);
-$VERSION = '0.24';
+$VERSION = '0.25';
@ISA = qw(ExtUtils::CBuilder::Platform::Unix);
sub need_prelink { 1 }
use ExtUtils::CBuilder::Platform::Unix;
use vars qw($VERSION @ISA);
-$VERSION = '0.24_01'; # Change 34200
+$VERSION = '0.25';
@ISA = qw(ExtUtils::CBuilder::Platform::Unix);
sub link_executable {
my $self = shift;
- # $Config{ld} is okay. revert the stupid Unix cc=ld override
+ # $Config{ld} is okay. Circumvent the Unix ld=cc override in the superclass.
local $self->{config}{cc} = $self->{config}{ld};
return $self->SUPER::link_executable(@_);
}
sub link {
my ($self, %args) = @_;
+
+ my $lib = $self->{config}{useshrplib} ? 'libperl.dll.a' : 'libperl.a';
$args{extra_linker_flags} = [
- $self->perl_inc().'/'.($self->{config}{useshrplib} ? 'libperl.dll.a' : 'libperl.a'),
+ File::Spec->catfile($self->perl_inc(), $lib),
$self->split_like_shell($args{extra_linker_flags})
];
use ExtUtils::CBuilder::Platform::Unix;
use vars qw($VERSION @ISA);
-$VERSION = '0.24';
+$VERSION = '0.25';
@ISA = qw(ExtUtils::CBuilder::Platform::Unix);
sub compile {
use vars qw($VERSION @ISA);
@ISA = qw(ExtUtils::CBuilder::Platform::Unix);
-$VERSION = '0.24';
+$VERSION = '0.25';
sub link_executable {
my $self = shift;
use ExtUtils::CBuilder::Platform::Unix;
use vars qw($VERSION @ISA);
-$VERSION = '0.24';
+$VERSION = '0.25';
@ISA = qw(ExtUtils::CBuilder::Platform::Unix);
sub need_prelink { 1 }
# Link
my ($exe_file, @temps);
($exe_file, @temps) = $b->link_executable(objects => $object_file);
-ok $exe_file;
+ok -e $exe_file;
if ($^O eq 'os2') { # Analogue of LDLOADPATH...
# Actually, not needed now, since we do not link with the generated DLL
}
# Try the executable
-ok my_system($exe_file), 11;
+my $ec = my_system($exe_file);
+ok $ec, 11
+ or print( $? == -1 ? "# Could not run '$exe_file'\n"
+ : "# Unexpected exit code '$ec'\n");
# Clean up
for ($source_file, $object_file, $exe_file) {