git/perl/Makefile.PL

63 строки
1.6 KiB
Perl

use strict;
use warnings;
use ExtUtils::MakeMaker;
use Getopt::Long;
use File::Find;
# Don't forget to update the perl/Makefile, too.
# Don't forget to test with NO_PERL_MAKEMAKER=YesPlease
# Sanity: die at first unknown option
Getopt::Long::Configure qw/ pass_through /;
my $localedir = '';
GetOptions("localedir=s" => \$localedir);
sub MY::postamble {
return <<'MAKE_FRAG';
instlibdir:
@echo '$(INSTALLSITELIB)'
ifneq (,$(DESTDIR))
ifeq (0,$(shell expr '$(MM_VERSION)' '>' 6.10))
$(error ExtUtils::MakeMaker version "$(MM_VERSION)" is older than 6.11 and so \
is likely incompatible with the DESTDIR mechanism. Try setting \
NO_PERL_MAKEMAKER=1 instead)
endif
endif
MAKE_FRAG
}
# Find all the .pm files in "Git/" and Git.pm
my %pm;
find sub {
return unless /\.pm$/;
# sometimes File::Find prepends a ./ Strip it.
my $pm_path = $File::Find::name;
$pm_path =~ s{^\./}{};
$pm{$pm_path} = '$(INST_LIBDIR)/'.$pm_path;
}, "Git", "Git.pm";
# We come with our own bundled Error.pm. It's not in the set of default
# Perl modules so install it if it's not available on the system yet.
if ( !eval { require Error } || $Error::VERSION < 0.15009) {
$pm{'private-Error.pm'} = '$(INST_LIBDIR)/Error.pm';
}
# redirect stdout, otherwise the message "Writing perl.mak for Git"
# disrupts the output for the target 'instlibdir'
open STDOUT, ">&STDERR";
WriteMakefile(
NAME => 'Git',
VERSION_FROM => 'Git.pm',
PM => \%pm,
PM_FILTER => qq[\$(PERL) -pe "s<\\Q++LOCALEDIR++\\E><$localedir>"],
MAKEFILE => 'perl.mak',
INSTALLSITEMAN3DIR => '$(SITEPREFIX)/share/man/man3'
);