Alien-pkgconf
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
my $install_type = 'share';
rmtree '_alien', 0, 0 if -d '_alien';
eval {
die "ALIEN_FORCE" if $ENV{ALIEN_FORCE};
die "ALIEN_INSTALL_TYPE" if defined $ENV{ALIEN_INSTALL_TYPE}
&& $ENV{ALIEN_INSTALL_TYPE} eq 'share';
system 'pkgconf', '--atleast-version=1.5.2', '--max-version=1.8.0', 'libpkgconf';
die "no pkgconf" if $?;
my $cflags = `pkgconf --cflags libpkgconf`;
die "getting cflags" if $?;
chomp $cflags;
my $libs = `pkgconf --libs libpkgconf`;
die "getting libs" if $?;
chomp $libs;
my $version = `pkgconf --modversion libpkgconf`;
die "getting version" if $?;
chomp $version;
require File::Spec;
require JSON::PP;
my $status_filename = File::Spec->catfile('_alien', '05stage.json');
mkdir '_alien' unless -d '_alien';
open my $fh, '>', $status_filename;
print $fh JSON::PP->new->utf8->canonical->encode({
cflags => $cflags,
libs => $libs,
install_type => 'system',
version => $version,
($dll ? (dll => $dll ) : ()),
});
close $fh;
$install_type = 'system';
};
my $error = $@;
if(defined $ENV{ALIEN_INSTALL_TYPE})
{
if($ENV{ALIEN_INSTALL_TYPE} ne $install_type)
{
warn $error if $error;
die "requested install type $ENV{ALIEN_INSTALL_TYPE}, but could not be accomidated";
}
}
print "install type: $install_type\n";
if($install_type eq 'system')
{
delete $args{BUILD_REQUIRES}->{$_} for qw( HTTP::Tiny Archive::Tar Alien::xz );
}
elsif($install_type eq 'share')
{
$args{BUILD_REQUIRES}->{'IO::Socket::SSL'} = 1.56;
$args{BUILD_REQUIRES}->{'Net::SSLeay'} = 1.49;
}
if($^O eq 'MSWin32' && $install_type eq 'share')
{
$args{BUILD_REQUIRES}->{'Alien::MSYS'} = '0.07';
}
my %fallback = (
%{ $args{TEST_REQUIRES} },
%{ $args{BUILD_REQUIRES} },
%{ $args{PREREQ_PM} },
);
unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
$args{PREREQ_PM} = \%fallback;
delete $args{TEST_REQUIRES};
delete $args{BUILD_REQUIRES};
}
delete $args{CONFIGURE_REQUIRES}
unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
WriteMakefile(%args);
sub MY::postamble {
$install_type eq 'share'
? <<'SHARE_INSTALL'
alien_probe _alien/01probe.json:
$(FULLPERL) script/probe.pl $(INSTALLDIRS) $(INSTALLARCHLIB) $(INSTALLSITEARCH) $(INSTALLVENDORARCH)
alien_fetch _alien/02fetch.json:
$(FULLPERL) script/fetch.pl
alien_extract _alien/03extract.json: _alien/02fetch.json
$(FULLPERL) script/extract.pl
alien_build: _alien/04build_dll.json _alien/04build_static.json
alien_build_dll _alien/04build_dll.json : _alien/03extract.json _alien/01probe.json
$(FULLPERL) script/build.pl dll
alien_build_static _alien/04build_static.json : _alien/03extract.json _alien/01probe.json
$(FULLPERL) script/build.pl static
alien_stage _alien/05stage.json: _alien/04build_dll.json _alien/04build_static.json
$(FULLPERL) script/stage.pl
alien_clean:
$(FULLPERL) script/clean.pl
pure_all :: _alien/05stage.json
realclean purge :: alien_clean
SHARE_INSTALL
( run in 1.838 second using v1.01-cache-2.11-cpan-2398b32b56e )