Make perl/ build procedure ActiveState friendly.
On Cygwin + ActivateState Perl, Makefile generated with MakeMaker is not usable because of line-endings and back-slashes. This teaches perl/Makefile to write a handcrafted equivalent perl.mak file with 'make NO_PERL_MAKEMAKER=NoThanks'. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>maint
							parent
							
								
									396db813f2
								
							
						
					
					
						commit
						f848718a69
					
				
							
								
								
									
										22
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										22
									
								
								Makefile
								
								
								
								
							|  | @ -91,6 +91,10 @@ all: | |||
| # | ||||
| # Define USE_STDEV below if you want git to care about the underlying device | ||||
| # change being considered an inode change from the update-cache perspective. | ||||
| # | ||||
| # Define NO_PERL_MAKEMAKER if you cannot use Makefiles generated by perl's | ||||
| # MakeMaker (e.g. using ActiveState under Cygwin). | ||||
| # | ||||
|  | ||||
| GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE | ||||
| 	@$(SHELL_PATH) ./GIT-VERSION-GEN | ||||
|  | @ -539,6 +543,9 @@ endif | |||
| ifdef NO_ACCURATE_DIFF | ||||
| 	BASIC_CFLAGS += -DNO_ACCURATE_DIFF | ||||
| endif | ||||
| ifdef NO_PERL_MAKEMAKER | ||||
| 	export NO_PERL_MAKEMAKER | ||||
| endif | ||||
|  | ||||
| # Shell quote (do not use $(call) to accommodate ancient setups); | ||||
|  | ||||
|  | @ -568,8 +575,8 @@ export prefix TAR INSTALL DESTDIR SHELL_PATH template_dir | |||
|  | ||||
| all: $(ALL_PROGRAMS) $(BUILT_INS) git$X gitk gitweb/gitweb.cgi | ||||
|  | ||||
| all: perl/Makefile | ||||
| 	$(MAKE) -C perl | ||||
| all: | ||||
| 	$(MAKE) -C perl PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' all | ||||
| 	$(MAKE) -C templates | ||||
|  | ||||
| strip: $(PROGRAMS) git$X | ||||
|  | @ -602,7 +609,11 @@ $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh | |||
| 	chmod +x $@+ | ||||
| 	mv $@+ $@ | ||||
|  | ||||
| $(patsubst %.perl,%,$(SCRIPT_PERL)): perl/Makefile | ||||
| $(patsubst %.perl,%,$(SCRIPT_PERL)): perl/perl.mak | ||||
|  | ||||
| perl/perl.mak: GIT-CFLAGS | ||||
| 	$(MAKE) -C perl PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' $(@F) | ||||
|  | ||||
| $(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl | ||||
| 	rm -f $@ $@+ | ||||
| 	INSTLIBDIR=`$(MAKE) -C perl -s --no-print-directory instlibdir` && \ | ||||
|  | @ -796,7 +807,7 @@ install: all | |||
| 	$(INSTALL) $(ALL_PROGRAMS) '$(DESTDIR_SQ)$(gitexecdir_SQ)' | ||||
| 	$(INSTALL) git$X gitk '$(DESTDIR_SQ)$(bindir_SQ)' | ||||
| 	$(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' install | ||||
| 	$(MAKE) -C perl install | ||||
| 	$(MAKE) -C perl prefix='$(prefix_SQ)' install | ||||
| 	if test 'z$(bindir_SQ)' != 'z$(gitexecdir_SQ)'; \ | ||||
| 	then \ | ||||
| 		ln -f '$(DESTDIR_SQ)$(bindir_SQ)/git$X' \ | ||||
|  | @ -866,8 +877,7 @@ clean: | |||
| 	rm -f $(htmldocs).tar.gz $(manpages).tar.gz | ||||
| 	rm -f gitweb/gitweb.cgi | ||||
| 	$(MAKE) -C Documentation/ clean | ||||
| 	[ ! -f perl/Makefile ] || $(MAKE) -C perl/ clean || $(MAKE) -C perl/ clean | ||||
| 	rm -f perl/ppport.h perl/Makefile.old | ||||
| 	$(MAKE) -C perl clean | ||||
| 	$(MAKE) -C templates/ clean | ||||
| 	$(MAKE) -C t/ clean | ||||
| 	rm -f GIT-VERSION-FILE GIT-CFLAGS | ||||
|  |  | |||
|  | @ -1,4 +1,5 @@ | |||
| Makefile | ||||
| perl.mak | ||||
| perl.mak.old | ||||
| blib | ||||
| blibdirs | ||||
| pm_to_blib | ||||
|  |  | |||
|  | @ -0,0 +1,39 @@ | |||
| # | ||||
| # Makefile for perl support modules and routine | ||||
| # | ||||
| makfile:=perl.mak | ||||
|  | ||||
| PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH)) | ||||
| prefix_SQ = $(subst ','\'',$(prefix)) | ||||
|  | ||||
| all install instlibdir: $(makfile) | ||||
| 	$(MAKE) -f $(makfile) $@ | ||||
|  | ||||
| clean: | ||||
| 	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: > $@ | ||||
| 	echo '	:' >> $@ | ||||
| 	echo install: >> $@ | ||||
| 	echo '	mkdir -p $(instdir_SQ)' >> $@ | ||||
| 	echo '	$(RM) $(instdir_SQ)/Git.pm; cp Git.pm $(instdir_SQ)' >> $@ | ||||
| 	echo '	$(RM) $(instdir_SQ)/Error.pm; \ | ||||
| 	cp private-Error.pm $(instdir_SQ)/Error.pm' >> $@ | ||||
| 	echo instlibdir: >> $@ | ||||
| 	echo '	echo $(instdir_SQ)' >> $@ | ||||
| else | ||||
| $(makfile): Makefile.PL ../GIT-CFLAGS | ||||
| 	'$(PERL_PATH_SQ)' $< FIRST_MAKEFILE='$@' PREFIX='$(prefix_SQ)' | ||||
| 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 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	 Alex Riesen
						Alex Riesen