Alien-Autotools
view release on metacpan or search on metacpan
$tool => join "", ( splitpath($bin_path) )[0, 1] }
else {
say "Downloading $tool source archive from ftp.gnu.org...";
my $ftp = Net::FTP->new("ftp.gnu.org")
or die "Unable to connect to FTP server";
$ftp->login or die "Unable to anonymously login to FTP server";
$ftp->binary;
$ftp->get($ftp_path) or die "Failed to download $ftp_path";
$ftp->quit;
my ($archive) = glob("*.tar.gz");
Archive::Tar->new($archive)->extract;
unlink $archive;
my ($tool_dir) = glob "$tool-*";
chdir $tool_dir;
run( command => ["./configure", "--prefix=$share_dir"] )
or die "Failed to configure $tool";
print "Compiling $tool...\n";
run( command => [qw(make -j9)]) or die "Failed to make $tool";
print "Installing...\n";
run( command => [qw(make install)] )
or die "Failed to install $tool";
chdir $base_dir;
remove_tree($tool_dir);
local $/;
my $lib = <$LIB>;
close $LIB;
$lib =~ s/##/$autotools{autoconf}/;
$lib =~ s/##/$autotools{automake}/;
$lib =~ s/##/$autotools{libtool}/;
open $LIB, ">", "lib/Alien/Autotools.pm";
print $LIB $lib };
# Update manifest:
my @share_files = map { glob catdir qw(share $_ *) } qw(bin share);
@share_files > 0 and do {
open my $MANIFEST, ">>", "MANIFEST";
print $MANIFEST map {
catfile($builder->dist_dir, $_) . "\n" } @share_files };
$builder->create_build_script;
v0.0.5 2012-04-04 11:48:10 America/Chicago
- Handled single smoke test failure on a BSD box where a version regexp
match failed.
- Promoted to full release.
v0.0.4 2012-04-04 00:58:51 America/Chicago
- Changed *_path() functions to *_dir().
v0.0.3 2012-04-03 22:06:19 America/Chicago
- Forced glob call into list context
- Added "share/bin" directory to $ENV{PATH} during build process so
automake can use the newly made autoconf.
v0.0.2 2012-04-02 12:36:50 America/Chicago
- Fixed configure dependencies
v0.0.1 2012-04-02 00:40:01 America/Chicago
- First trial version, released on an unsuspecting world.
( run in 0.743 second using v1.01-cache-2.11-cpan-49f99fa48dc )