perl / Makefile.PLon commit Quiet warning if Makefile.PL is run with -w and no --localedir (4c8e5c5)
   1use strict;
   2use warnings;
   3use ExtUtils::MakeMaker;
   4use Getopt::Long;
   5
   6# Sanity: die at first unknown option
   7Getopt::Long::Configure qw/ pass_through /;
   8
   9my $localedir = '';
  10GetOptions("localedir=s" => \$localedir);
  11
  12sub MY::postamble {
  13        return <<'MAKE_FRAG';
  14instlibdir:
  15        @echo '$(INSTALLSITELIB)'
  16
  17ifneq (,$(DESTDIR))
  18ifeq (0,$(shell expr '$(MM_VERSION)' '>' 6.10))
  19$(error ExtUtils::MakeMaker version "$(MM_VERSION)" is older than 6.11 and so \
  20        is likely incompatible with the DESTDIR mechanism.  Try setting \
  21        NO_PERL_MAKEMAKER=1 instead)
  22endif
  23endif
  24
  25MAKE_FRAG
  26}
  27
  28# XXX. When editing this list:
  29#
  30# * Please update perl/Makefile, too.
  31# * Don't forget to test with NO_PERL_MAKEMAKER=YesPlease
  32my %pm = (
  33        'Git.pm' => '$(INST_LIBDIR)/Git.pm',
  34        'Git/I18N.pm' => '$(INST_LIBDIR)/Git/I18N.pm',
  35        'Git/SVN/Memoize/YAML.pm' => '$(INST_LIBDIR)/Git/SVN/Memoize/YAML.pm',
  36        'Git/SVN/Fetcher.pm' => '$(INST_LIBDIR)/Git/SVN/Fetcher.pm',
  37        'Git/SVN/Editor.pm' => '$(INST_LIBDIR)/Git/SVN/Editor.pm',
  38        'Git/SVN/Prompt.pm' => '$(INST_LIBDIR)/Git/SVN/Prompt.pm',
  39        'Git/SVN/Ra.pm' => '$(INST_LIBDIR)/Git/SVN/Ra.pm',
  40);
  41
  42# We come with our own bundled Error.pm. It's not in the set of default
  43# Perl modules so install it if it's not available on the system yet.
  44eval { require Error };
  45if ($@ || $Error::VERSION < 0.15009) {
  46        $pm{'private-Error.pm'} = '$(INST_LIBDIR)/Error.pm';
  47}
  48
  49# redirect stdout, otherwise the message "Writing perl.mak for Git"
  50# disrupts the output for the target 'instlibdir'
  51open STDOUT, ">&STDERR";
  52
  53WriteMakefile(
  54        NAME            => 'Git',
  55        VERSION_FROM    => 'Git.pm',
  56        PM              => \%pm,
  57        PM_FILTER       => qq[\$(PERL) -pe "s<\\Q++LOCALEDIR++\\E><$localedir>"],
  58        MAKEFILE        => 'perl.mak',
  59        INSTALLSITEMAN3DIR => '$(SITEPREFIX)/share/man/man3'
  60);