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
 |