98d5439dad
It is no longer necessary to manually add new .pm files to the Makefile.PL. This makes it easier to add modules. It is still necessary to add them to the Makefile, but that extra work should be removed at a future date. Signed-off-by: Michael G Schwern <schwern@pobox.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Eric Wong <normalperson@yhbt.net>
63 lines
1.6 KiB
Perl
63 lines
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'
|
|
);
|