9f7ad1479d
This slices off another 600 or so lines from the frighteningly long
git-svn.perl script.
The Git::SVN::Ra interface is similar enough to SVN::Ra that it is
probably safe to ignore most of its implementation on first reading.
(Documenting or moving functions that do not fit that pattern is left
as an exercise to the interested reader.)
[ew: rebased and fixed conflict against
commit c26ddce86d
(git-svn: platform auth providers are working only on 1.6.15 or newer)]
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
55 lines
1.5 KiB
Perl
55 lines
1.5 KiB
Perl
use strict;
|
|
use warnings;
|
|
use ExtUtils::MakeMaker;
|
|
use Getopt::Long;
|
|
|
|
# Sanity: die at first unknown option
|
|
Getopt::Long::Configure qw/ pass_through /;
|
|
|
|
GetOptions("localedir=s" => \my $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
|
|
}
|
|
|
|
my %pm = (
|
|
'Git.pm' => '$(INST_LIBDIR)/Git.pm',
|
|
'Git/I18N.pm' => '$(INST_LIBDIR)/Git/I18N.pm',
|
|
'Git/SVN/Fetcher.pm' => '$(INST_LIBDIR)/Git/SVN/Fetcher.pm',
|
|
'Git/SVN/Editor.pm' => '$(INST_LIBDIR)/Git/SVN/Editor.pm',
|
|
'Git/SVN/Prompt.pm' => '$(INST_LIBDIR)/Git/SVN/Prompt.pm',
|
|
'Git/SVN/Ra.pm' => '$(INST_LIBDIR)/Git/SVN/Ra.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.
|
|
eval { require Error };
|
|
if ($@ || $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'
|
|
);
|