Alien-Build
view release on metacpan or search on metacpan
lib/Alien/Build/Interpolate/Default.pm view on Meta::CPAN
$self->add_helper( cp => sub { _config 'cp' }, 'Config' );
$self->add_helper( devnull => sub { $^O eq 'MSWin32' ? 'NUL' : '/dev/null' });
$self->add_helper( flex => undef, sub {
my $helper = shift;
if(which 'flex')
{
$helper->code(sub { 'flex' });
return ();
}
else
{
return 'Alien::flex' => '0.08';
}
});
$self->add_helper( gmake => undef, 'Alien::gmake' => '0.11' );
$self->add_helper( install => sub { 'install' });
$self->add_helper( ld => sub { _config 'ld' }, 'Config' );
$self->add_helper( m4 => undef, 'Alien::m4' => '0.08' );
if($^O eq 'MSWin32')
{
# TL;DR: dmake is bad, and shouldn't be used to build anything but older
# versions of Windows Perl that don't support gmake.
my $perl_make = _config 'make';
my $my_make;
$self->add_helper( make => sub {
return $my_make if defined $my_make;
if( $perl_make ne 'dmake' && which $perl_make )
{
# assume if it is called nmake or gmake that it really is what it
# says it is.
if( $perl_make eq 'nmake' || $perl_make eq 'gmake' )
{
return $my_make = $perl_make;
}
my $out = capture { system $perl_make, '--version' };
if( $out =~ /GNU make/i || $out =~ /Microsoft \(R\) Program Maintenance/ )
{
return $my_make = $perl_make;
}
}
# if we see something that looks like it might be gmake, use that.
foreach my $try (qw( gmake mingw32-make ))
{
return $my_make = $try if which $try;
}
if( which 'make' )
{
my $out = capture { system 'make', '--version' };
if( $out =~ /GNU make/i || $out =~ /Microsoft \(R\) Program Maintenance/ )
{
return $my_make = 'make';
}
}
# if we see something that looks like it might be nmake, use that.
foreach my $try (qw( nmake ))
{
return $my_make = $try if which $try;
}
$my_make = $perl_make;
});
}
else
{
$self->add_helper( make => sub { _config 'make' }, 'Config' );
}
$self->add_helper( mkdir_deep => sub { $^O eq 'MSWin32' ? 'md' : 'mkdir -p'}, 'Alien::Build' => '1.04' );
$self->add_helper( make_path => sub { $^O eq 'MSWin32' ? 'md' : 'mkdir -p'}, 'Alien::Build' => '1.05' );
$self->add_helper( nasm => undef, sub {
my $helper = shift;
if(which 'nasm')
{
$helper->code(sub { 'nasm' });
return ();
}
else
{
return 'Alien::nasm' => '0.11';
}
});
$self->add_helper( patch => undef, sub {
my $helper = shift;
if(which 'patch')
{
if($^O eq 'MSWin32')
{
$helper->code(sub { 'patch --binary' });
}
else
{
$helper->code(sub { 'patch' });
}
return ();
}
else
{
return 'Alien::patch' => '0.09';
}
});
$self->add_helper( perl => sub {
my $perl = Devel::FindPerl::find_perl_interpreter();
$perl =~ s{\\}{/}g if $^O eq 'MSWin32';
$perl;
}, 'Devel::FindPerl' );
( run in 0.420 second using v1.01-cache-2.11-cpan-ed4147ee29a )