Acme-Test-Weather
view release on metacpan or search on metacpan
CPAN/MakeMaker.pm view on Meta::CPAN
package CPAN::MakeMaker;
$VERSION = '0.10';
@EXPORT = qw(WriteMakefile prompt);
use strict;
use ExtUtils::MakeMaker();
use File::Spec;
use Cwd;
use base 'Exporter';
*prompt = \&ExtUtils::MakeMaker::prompt;
sub PRINT;
if (not defined &PRINT) {
*PRINT = sub { my @args = @_; chomp $args[-1]; print @args, "\n"; };
}
sub WriteMakefile {
my %args = @_;
$args{NAME} = determine_NAME()
unless defined $args{NAME};
$args{VERSION} = determine_VERSION()
unless defined $args{VERSION} or defined $args{VERSION_FROM};
update_manifest();
ExtUtils::MakeMaker::WriteMakefile(%args);
append_to_makefile();
}
sub determine_NAME {
my $NAME = '';
my @modules = glob('*.pm'), grep {/\.pm$/} find_files('lib');
if (@modules == 1) {
open MODULE, $modules[0] or die $!;
while (<MODULE>) {
next if /^\s*#/;
if (/^\s*package\s+(\w[\w:]*)\s*;\s*$/) {
$NAME = $1;
}
last;
}
}
die <<END unless length($NAME);
Can't determine a NAME for this distribution.
Please pass a NAME parameter to the WriteMakefile function in Makefile.PL.
END
return $NAME;
}
sub find_files {
my ($file, $path) = @_;
$path = '' if not defined $path;
$file = "$path/$file" if length($path);
if (-f $file) {
return ($file);
}
elsif (-d $file) {
my @files = ();
local *DIR;
opendir(DIR, $file) or die "Can't opendir $file";
while (my $new_file = readdir(DIR)) {
next if $new_file =~ /^(\.|\.\.)$/;
push @files, find_files($new_file, $file);
}
return @files;
}
return ();
}
sub determine_VERSION {
my $VERSION = '';
my @modules = glob('*.pm'), grep {/\.pm$/} find_files('lib');
( run in 1.761 second using v1.01-cache-2.11-cpan-6aa56a78535 )