fa57f717cd
PREFIX and INSTALL_BASE are mutually exclusive. If both are supplied by INSTALL_BASE being set in PERL_MM_OPT ExtUtils::MakeMaker will produce an error: $ echo $PERL_MM_OPT INSTALL_BASE=/home/avar/perl5 $ make -C perl PERL_PATH='/usr/bin/perl' prefix='/home/avar' perl.mak make: Entering directory `/home/avar/g/git/perl' /usr/bin/perl Makefile.PL PREFIX='/home/avar' Only one of PREFIX or INSTALL_BASE can be given. Not both. make: *** [perl.mak] Error 255 make: Leaving directory `/home/avar/g/git/perl' Change the perl Makefile to work around this by explicitly unsetting INSTALL_BASE. INSTALL_BASE is set in PERL_MM_OPT by e.g. the popular local::lib package, from its documentation: eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib 2>/dev/null) Many other environments might also have set PERL_MM_OPT before building Git. This change enables us to build in these environments. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
48 lines
1.4 KiB
Makefile
48 lines
1.4 KiB
Makefile
#
|
|
# Makefile for perl support modules and routine
|
|
#
|
|
makfile:=perl.mak
|
|
|
|
PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH))
|
|
prefix_SQ = $(subst ','\'',$(prefix))
|
|
|
|
ifndef V
|
|
QUIET = @
|
|
endif
|
|
|
|
all install instlibdir: $(makfile)
|
|
$(QUIET)$(MAKE) -f $(makfile) $@
|
|
|
|
clean:
|
|
$(QUIET)test -f $(makfile) && $(MAKE) -f $(makfile) $@ || exit 0
|
|
$(RM) ppport.h
|
|
$(RM) $(makfile)
|
|
$(RM) $(makfile).old
|
|
|
|
ifdef NO_PERL_MAKEMAKER
|
|
instdir_SQ = $(subst ','\'',$(prefix)/lib)
|
|
$(makfile): ../GIT-CFLAGS Makefile
|
|
echo all: private-Error.pm Git.pm > $@
|
|
echo ' mkdir -p blib/lib' >> $@
|
|
echo ' $(RM) blib/lib/Git.pm; cp Git.pm blib/lib/' >> $@
|
|
echo ' $(RM) blib/lib/Error.pm' >> $@
|
|
'$(PERL_PATH_SQ)' -MError -e 'exit($$Error::VERSION < 0.15009)' || \
|
|
echo ' cp private-Error.pm blib/lib/Error.pm' >> $@
|
|
echo install: >> $@
|
|
echo ' mkdir -p "$$(DESTDIR)$(instdir_SQ)"' >> $@
|
|
echo ' $(RM) "$$(DESTDIR)$(instdir_SQ)/Git.pm"; cp Git.pm "$$(DESTDIR)$(instdir_SQ)"' >> $@
|
|
echo ' $(RM) "$$(DESTDIR)$(instdir_SQ)/Error.pm"' >> $@
|
|
'$(PERL_PATH_SQ)' -MError -e 'exit($$Error::VERSION < 0.15009)' || \
|
|
echo ' cp private-Error.pm "$$(DESTDIR)$(instdir_SQ)/Error.pm"' >> $@
|
|
echo instlibdir: >> $@
|
|
echo ' echo $(instdir_SQ)' >> $@
|
|
else
|
|
$(makfile): Makefile.PL ../GIT-CFLAGS
|
|
$(PERL_PATH) $< PREFIX='$(prefix_SQ)' INSTALL_BASE=''
|
|
endif
|
|
|
|
# this is just added comfort for calling make directly in perl dir
|
|
# (even though GIT-CFLAGS aren't used yet. If ever)
|
|
../GIT-CFLAGS:
|
|
$(MAKE) -C .. GIT-CFLAGS
|