|
Packit Service |
993e16 |
{ use 5.006; }
|
|
Packit Service |
993e16 |
use warnings;
|
|
Packit Service |
993e16 |
use strict;
|
|
Packit Service |
993e16 |
|
|
Packit Service |
993e16 |
use Module::Build;
|
|
Packit Service |
993e16 |
|
|
Packit Service |
993e16 |
Module::Build->subclass(code => q{
|
|
Packit Service |
993e16 |
unless(__PACKAGE__->can("cbuilder")) {
|
|
Packit Service |
993e16 |
*cbuilder = sub { $_[0]->_cbuilder or die "no C support" };
|
|
Packit Service |
993e16 |
}
|
|
Packit Service |
993e16 |
sub link_c {
|
|
Packit Service |
993e16 |
no strict "refs";
|
|
Packit Service |
993e16 |
my($self, $spec) = @_;
|
|
Packit Service |
993e16 |
my $cb = $self->cbuilder;
|
|
Packit Service |
993e16 |
my $cbclass = ref($cb);
|
|
Packit Service |
993e16 |
my $orig_cb_prelink = $cb->can("prelink");
|
|
Packit Service |
993e16 |
local *{"${cbclass}::prelink"} = sub {
|
|
Packit Service |
993e16 |
use strict "refs";
|
|
Packit Service |
993e16 |
my($self, %args) = @_;
|
|
Packit Service |
993e16 |
if($args{dl_name} eq "Devel::CallChecker") {
|
|
Packit Service |
993e16 |
$args{dl_func_list} = [
|
|
Packit Service |
993e16 |
@{$args{dl_func_list}||[]},
|
|
Packit Service |
993e16 |
("$]" >= 5.013006 ? () : qw(
|
|
Packit Service |
993e16 |
xAd8NP3gxZglovQRL5Hn_roc0
|
|
Packit Service |
993e16 |
xAd8NP3gxZglovQRL5Hn_eal0
|
|
Packit Service |
993e16 |
xAd8NP3gxZglovQRL5Hn_eap0
|
|
Packit Service |
993e16 |
xAd8NP3gxZglovQRL5Hn_ean0
|
|
Packit Service |
993e16 |
xAd8NP3gxZglovQRL5Hn_gcc0
|
|
Packit Service |
993e16 |
xAd8NP3gxZglovQRL5Hn_scc0
|
|
Packit Service |
993e16 |
)),
|
|
Packit Service |
993e16 |
];
|
|
Packit Service |
993e16 |
$args{dl_funcs} ||= {};
|
|
Packit Service |
993e16 |
my $pname = $args{dl_name};
|
|
Packit Service |
993e16 |
unless(exists $args{dl_funcs}->{$pname}) {
|
|
Packit Service |
993e16 |
$args{dl_funcs} = {
|
|
Packit Service |
993e16 |
%{$args{dl_funcs}},
|
|
Packit Service |
993e16 |
$pname => [],
|
|
Packit Service |
993e16 |
};
|
|
Packit Service |
993e16 |
}
|
|
Packit Service |
993e16 |
}
|
|
Packit Service |
993e16 |
@_ = ($self, %args);
|
|
Packit Service |
993e16 |
goto &$orig_cb_prelink;
|
|
Packit Service |
993e16 |
};
|
|
Packit Service |
993e16 |
my($libfile, $impfile);
|
|
Packit Service |
993e16 |
if($^O eq "MSWin32") {
|
|
Packit Service |
993e16 |
my $dlext = $cb->{config}->{dlext};
|
|
Packit Service |
993e16 |
my $libext = $cb->{config}->{lib_ext};
|
|
Packit Service |
993e16 |
$libfile = $spec->{lib_file};
|
|
Packit Service |
993e16 |
($impfile = $libfile) =~ s/\.\Q$dlext\E\z/$libext/
|
|
Packit Service |
993e16 |
or die "can't generate import library name";
|
|
Packit Service |
993e16 |
unlink $libfile, $impfile
|
|
Packit Service |
993e16 |
unless $self->up_to_date($libfile, $impfile);
|
|
Packit Service |
993e16 |
}
|
|
Packit Service |
993e16 |
my $orig_cb_flk = $cb->can("format_linker_cmd");
|
|
Packit Service |
993e16 |
local *{"${cbclass}::format_linker_cmd"} = sub {
|
|
Packit Service |
993e16 |
use strict "refs";
|
|
Packit Service |
993e16 |
my($self, %spec) = @_;
|
|
Packit Service |
993e16 |
my @cmds = &$orig_cb_flk;
|
|
Packit Service |
993e16 |
my $cf = $self->{config};
|
|
Packit Service |
993e16 |
my $norm_libfile = $libfile;
|
|
Packit Service |
993e16 |
my $norm_impfile = $impfile;
|
|
Packit Service |
993e16 |
$self->normalize_filespecs(
|
|
Packit Service |
993e16 |
\$norm_libfile, \$norm_impfile);
|
|
Packit Service |
993e16 |
push @cmds, [
|
|
Packit Service |
993e16 |
$cf->{dlltool} || "dlltool",
|
|
Packit Service |
993e16 |
"--def", $spec{def_file},
|
|
Packit Service |
993e16 |
"--output-lib", $norm_impfile,
|
|
Packit Service |
993e16 |
"--dllname", $spec{basename}.".".$cf->{dlext},
|
|
Packit Service |
993e16 |
$spec{output},
|
|
Packit Service |
993e16 |
] if $spec{output} eq $norm_libfile;
|
|
Packit Service |
993e16 |
return @cmds;
|
|
Packit Service |
993e16 |
} if $cb->isa("ExtUtils::CBuilder::Platform::Windows::GCC");
|
|
Packit Service |
993e16 |
$self->SUPER::link_c($spec);
|
|
Packit Service |
993e16 |
if($^O eq "MSWin32") {
|
|
Packit Service |
993e16 |
die "failed to generate import library"
|
|
Packit Service |
993e16 |
unless -e $impfile;
|
|
Packit Service |
993e16 |
$self->add_to_cleanup($impfile);
|
|
Packit Service |
993e16 |
}
|
|
Packit Service |
993e16 |
}
|
|
Packit Service |
993e16 |
})->new(
|
|
Packit Service |
993e16 |
module_name => "Devel::CallChecker",
|
|
Packit Service |
993e16 |
license => "perl",
|
|
Packit Service |
993e16 |
configure_requires => {
|
|
Packit Service |
993e16 |
"Module::Build" => 0,
|
|
Packit Service |
993e16 |
"perl" => "5.006",
|
|
Packit Service |
993e16 |
"strict" => 0,
|
|
Packit Service |
993e16 |
"warnings" => 0,
|
|
Packit Service |
993e16 |
},
|
|
Packit Service |
993e16 |
build_requires => {
|
|
Packit Service |
993e16 |
"DynaLoader" => 0,
|
|
Packit Service |
993e16 |
"ExtUtils::CBuilder" => "0.15",
|
|
Packit Service |
993e16 |
"ExtUtils::ParseXS" => 0,
|
|
Packit Service |
993e16 |
"File::Spec" => 0,
|
|
Packit Service |
993e16 |
"IO::File" => "1.03",
|
|
Packit Service |
993e16 |
"Module::Build" => 0,
|
|
Packit Service |
993e16 |
"Test::More" => 0,
|
|
Packit Service |
993e16 |
"perl" => "5.006",
|
|
Packit Service |
993e16 |
"strict" => 0,
|
|
Packit Service |
993e16 |
"warnings" => 0,
|
|
Packit Service |
993e16 |
},
|
|
Packit Service |
993e16 |
requires => {
|
|
Packit Service |
993e16 |
"DynaLoader" => 0,
|
|
Packit Service |
993e16 |
"DynaLoader::Functions" => "0.001",
|
|
Packit Service |
993e16 |
"Exporter" => 0,
|
|
Packit Service |
993e16 |
"parent" => 0,
|
|
Packit Service |
993e16 |
"perl" => "5.006",
|
|
Packit Service |
993e16 |
"strict" => 0,
|
|
Packit Service |
993e16 |
"warnings" => 0,
|
|
Packit Service |
993e16 |
},
|
|
Packit Service |
993e16 |
conflicts => {
|
|
Packit Service |
993e16 |
"B::Hooks::OP::Check" => "< 0.19",
|
|
Packit Service |
993e16 |
},
|
|
Packit Service |
993e16 |
dynamic_config => 0,
|
|
Packit Service |
993e16 |
meta_add => { distribution_type => "module" },
|
|
Packit Service |
993e16 |
meta_merge => {
|
|
Packit Service |
993e16 |
"meta-spec" => { version => "2" },
|
|
Packit Service |
993e16 |
resources => {
|
|
Packit Service |
993e16 |
bugtracker => {
|
|
Packit Service |
993e16 |
mailto => "bug-Devel-CallChecker\@rt.cpan.org",
|
|
Packit Service |
993e16 |
web => "https://rt.cpan.org/Public/Dist/".
|
|
Packit Service |
993e16 |
"Display.html?Name=Devel-CallChecker",
|
|
Packit Service |
993e16 |
},
|
|
Packit Service |
993e16 |
},
|
|
Packit Service |
993e16 |
},
|
|
Packit Service |
993e16 |
sign => 1,
|
|
Packit Service |
993e16 |
)->create_build_script;
|
|
Packit Service |
993e16 |
|
|
Packit Service |
993e16 |
1;
|