Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
tree: 7d4f224d08
Fetching contributors…

Cannot retrieve contributors at this time

82 lines (72 sloc) 3.136 kb
require 5.006;
use strict;
use Config qw( %Config );
use ExtUtils::MakeMaker qw( WriteMakefile );
use File::Basename qw( basename );
use File::Find qw( find );
use File::Spec::Functions qw( catfile );
use Getopt::Long qw( GetOptions );
use constant RAW_COMPS => map(join('.', basename($_, '.m'), 'pm'),
glob(catfile qw(components *.m)));
use constant COMPONENTS =>
+{map {catfile('components', join('.',basename($_,'.pm'),'m')) =>
catfile(qw(MethodMaker), $_)} RAW_COMPS};
use constant OPTEXT => catfile qw( lib Class MethodMaker OptExt.pm );
use constant MACOSX_INST => +{
INSTALLDIRS => "vendor",
INSTALLVENDORBIN => $Config{installbin} || $Config{installvendorbin} || $Config{installsitebin},
INSTALLVENDORARCH => $Config{installarchlib} || $Config{installvendorarch} || $Config{installsitearch},
INSTALLVENDORLIB => $Config{installprivlib} || $Config{installvendorlib} || $Config{installsitelib},
INSTALLVENDORMAN1DIR => $Config{installman1dir},
INSTALLVENDORMAN3DIR => $Config{installman3dir},
};
my $macosx;
# my OS X installation only works if given some wacky paths :-(
GetOptions( 'macosx' => \$macosx )
or die "options parsing failed\n";
my %pm;
find (sub {
$File::Find::prune = 1, return
if -d $_ and $_ eq 'CVS';
return unless /\.pm$/;
(my $target = $File::Find::name) =~
s!^$File::Find::topdir/Class!\$(INST_LIBDIR)!;
$pm{$File::Find::name} = $target;
},
'lib');
$pm{catfile qw( lib Class ), $_} = catfile '$(INST_LIBDIR)', $_
#$pm{catfile 'lib', $_} = $_
for values %{COMPONENTS()};
my %MakefileArgs = (
NAME => 'Class::MethodMaker',
DISTNAME => 'Class-MethodMaker',
VERSION => '2.11',
AUTHOR => 'Martyn J. Pearce ',
ABSTRACT => 'a module for creating generic methods',
PREREQ_PM => +{ },
EXE_FILES => [ ],
# Need this to stop Makefile treating Build.PL as a producer of Build as a
# target for 'all'.
PL_FILES => +{},
PM => \%pm,
clean => +{ FILES => join(' ', qw( Build _build ),
map(catfile(qw(lib Class MethodMaker), $_),
RAW_COMPS),
catfile(qw(lib Class MethodMaker.bs)),
)
},
depend => +{
map({;catfile(qw( lib Class ), COMPONENTS->{$_}) =>
join(' ', 'cmmg.pl', %_, OPTEXT) . "\n\t" .
join(' ', '$(PERL)', 'cmmg.pl', $_, '>', '$@')
}
keys %{COMPONENTS()}
)
},
);
if ( $macosx ) {
while ( my($k,$v) = each %{MACOSX_INST()} ) {
$MakefileArgs{$k} = $v;
}
}
WriteMakefile( %MakefileArgs );
Jump to Line
Something went wrong with that request. Please try again.