Alien-PNG
view release on metacpan or search on metacpan
};
if(($rv=check_src_build($build->os_type)) && $build->can_build_binaries_from_sources()) {
push @candidates, @{$rv};
};
push @candidates, { title => 'Quit installation' };
#### ask user what way to go
my $i = 1;
my $prompt_string = "\nYou have the following options:\n";
foreach my $c (@candidates) {
$prompt_string .= "[" . $i++ . "] " . $c->{title} . "\n"
}
$prompt_string .= "\nWhat way do you wanna go?";
my $ans = $build->prompt($prompt_string, 1);
#### store build params into 'notes'
if(($ans>0) && ($ans<scalar(@candidates))) {
$build->notes('build_params', $candidates[$ans-1]);
}
else {
$build->notes('build_params', undef); # just to be sure
}
inc/My/Builder.pm view on Meta::CPAN
my ($version, $prefix, $incdir, $libdir) = find_PNG_dir(rel2abs($build_out));
sed_inplace("$prefix/bin/libpng-config", 's/^prefix=.*/prefix=\''.quotemeta($prefix).'\'/');
}
sub extract_sources {
my ($self, $download, $patches, $build_src) = @_;
my $bp = $self->notes('build_params');
foreach my $pack (@{$bp->{members}}) {
my $srcdir = catfile($build_src, $pack->{dirname});
my $unpack = 'y';
$unpack = $self->prompt("Dir '$srcdir' exists, wanna replace with clean sources?", "n") if (-d $srcdir);
if (lc($unpack) eq 'y') {
my $archive = catfile($download, File::Fetch->new(uri => $pack->{url})->file);
print "Extracting $pack->{pack}...\n";
my $ae = Archive::Extract->new( archive => $archive );
die "###ERROR###: cannot extract $pack ", $ae->error unless $ae->extract(to => $build_src);
foreach my $i (@{$pack->{patches}}) {
chdir $srcdir;
print "Checking affected files for patch '$i'\n";
foreach my $k ($self->patch_get_affected_files($srcdir, catfile($patches, $i))) {
# doing the same like -p1 for 'patch'
inc/My/Builder/Unix.pm view on Meta::CPAN
foreach my $pack (@{$bp->{members}}) {
print "BUILDING package '" . $pack->{dirname} . "'...\n";
my $srcdir = catfile($build_src, $pack->{dirname});
my $prefixdir = rel2abs($build_out);
$self->config_data('build_prefix', $prefixdir); # save it for future Alien::PNG::ConfigData
chdir $srcdir;
# do './configure ...'
my $run_configure = 'y';
$run_configure = $self->prompt("Run ./configure for '$pack->{pack}' again?", "n") if (-f "config.status");
if (lc($run_configure) eq 'y') {
my $cmd = $self->_get_configure_cmd($pack->{pack}, $prefixdir);
print "Configuring $pack->{pack}...\n";
print "(cmd: $cmd)\n";
$self->do_system($cmd) or die "###ERROR### [$?] during ./configure ... ";
}
# do 'make install'
my @cmd = ($self->_get_make, 'install');
print "Running make install $pack->{pack}...\n";
( run in 1.038 second using v1.01-cache-2.11-cpan-0b5f733616e )