efe47f8f2c
It appears that ExtUtils::MakeMaker versions older than 6.11 do not implement the DESTDIR mechanism. So add a test to the generated perl.mak to detect when DESTDIR is used along with a too old ExtUtils::MakeMaker and abort with a message suggesting the use of NO_PERL_MAKEMAKER. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
39 lines
1003 B
Perl
39 lines
1003 B
Perl
use ExtUtils::MakeMaker;
|
|
|
|
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');
|
|
|
|
# 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,
|
|
MAKEFILE => 'perl.mak',
|
|
INSTALLSITEMAN3DIR => '$(SITEPREFIX)/share/man/man3'
|
|
);
|