From: Junio C Hamano Date: Mon, 19 Jun 2006 04:18:49 +0000 (-0700) Subject: Merge branch 'yl/build' X-Git-Tag: v1.4.1-rc1~13^2~5 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/64e86c57867593ba0ee77a7b0ff0eb8e9d4d8ed5?ds=inline;hp=-c Merge branch 'yl/build' * yl/build: auto-detect changed prefix and/or changed build flags --- 64e86c57867593ba0ee77a7b0ff0eb8e9d4d8ed5 diff --combined Makefile index 5598f48ba3,ec91181c09..ea8cd283e2 --- a/Makefile +++ b/Makefile @@@ -212,7 -212,7 +212,7 @@@ LIB_OBJS = blob.o commit.o connect.o csum-file.o cache-tree.o base85.o \ date.o diff-delta.o entry.o exec_cmd.o ident.o lockfile.o \ object.o pack-check.o patch-delta.o path.o pkt-line.o \ - quote.o read-cache.o refs.o run-command.o dir.o \ + quote.o read-cache.o refs.o run-command.o dir.o object-refs.o \ server-info.o setup.o sha1_file.o sha1_name.o strbuf.o \ tag.o tree.o usage.o config.o environment.o ctype.o copy.o \ fetch-clone.o revision.o pager.o tree-walk.o xdiff-interface.o \ @@@ -464,6 -464,7 +464,7 @@@ DESTDIR_SQ = $(subst ','\'',$(DESTDIR) bindir_SQ = $(subst ','\'',$(bindir)) gitexecdir_SQ = $(subst ','\'',$(gitexecdir)) template_dir_SQ = $(subst ','\'',$(template_dir)) + prefix_SQ = $(subst ','\'',$(prefix)) SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH)) PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH)) @@@ -484,7 -485,7 +485,7 @@@ all strip: $(PROGRAMS) git$X $(STRIP) $(STRIP_OPTS) $(PROGRAMS) git$X - git$X: git.c common-cmds.h $(BUILTIN_OBJS) $(GITLIBS) + git$X: git.c common-cmds.h $(BUILTIN_OBJS) $(GITLIBS) GIT-CFLAGS $(CC) -DGIT_VERSION='"$(GIT_VERSION)"' \ $(ALL_CFLAGS) -o $@ $(filter %.c,$^) \ $(BUILTIN_OBJS) $(ALL_LDFLAGS) $(LIBS) @@@ -516,7 -517,7 +517,7 @@@ $(patsubst %.perl,%,$(SCRIPT_PERL)) : chmod +x $@+ mv $@+ $@ - $(patsubst %.py,%,$(SCRIPT_PYTHON)) : % : %.py + $(patsubst %.py,%,$(SCRIPT_PYTHON)) : % : %.py GIT-CFLAGS rm -f $@ $@+ sed -e '1s|#!.*python|#!$(PYTHON_PATH_SQ)|' \ -e 's|@@GIT_PYTHON_PATH@@|$(GIT_PYTHON_DIR_SQ)|g' \ @@@ -540,19 -541,19 +541,19 @@@ git$X git.spec $(patsubst %.py,%,$(SCRIPT_PYTHON)) \ : GIT-VERSION-FILE - %.o: %.c + %.o: %.c GIT-CFLAGS $(CC) -o $*.o -c $(ALL_CFLAGS) $< %.o: %.S $(CC) -o $*.o -c $(ALL_CFLAGS) $< - exec_cmd.o: exec_cmd.c + exec_cmd.o: exec_cmd.c GIT-CFLAGS $(CC) -o $*.o -c $(ALL_CFLAGS) '-DGIT_EXEC_PATH="$(gitexecdir_SQ)"' $< - http.o: http.c + http.o: http.c GIT-CFLAGS $(CC) -o $*.o -c $(ALL_CFLAGS) -DGIT_USER_AGENT='"git/$(GIT_VERSION)"' $< ifdef NO_EXPAT - http-fetch.o: http-fetch.c http.h + http-fetch.o: http-fetch.c http.h GIT-CFLAGS $(CC) -o $*.o -c $(ALL_CFLAGS) -DNO_EXPAT $< endif @@@ -609,6 -610,17 +610,17 @@@ tags rm -f tags find . -name '*.[hcS]' -print | xargs ctags -a + ### Detect prefix changes + TRACK_CFLAGS = $(subst ','\'',$(ALL_CFLAGS)):$(GIT_VERSION):\ + $(bindir_SQ):$(gitexecdir_SQ):$(template_dir_SQ):$(prefix_SQ) + + GIT-CFLAGS: .FORCE-GIT-CFLAGS + @FLAGS='$(TRACK_CFLAGS)'; \ + if test x"$$FLAGS" != x"`cat GIT-CFLAGS 2>/dev/null`" ; then \ + echo 1>&2 " * new build flags or prefix"; \ + echo "$$FLAGS" >GIT-CFLAGS; \ + fi + ### Testing rules # GNU make supports exporting all variables by "export" without parameters. @@@ -667,7 -679,7 +679,7 @@@ git.spec: git.spec.i GIT_TARNAME=git-$(GIT_VERSION) dist: git.spec git-tar-tree - ./git-tar-tree HEAD $(GIT_TARNAME) > $(GIT_TARNAME).tar + ./git-tar-tree HEAD^{tree} $(GIT_TARNAME) > $(GIT_TARNAME).tar @mkdir -p $(GIT_TARNAME) @cp git.spec $(GIT_TARNAME) @echo $(GIT_VERSION) > $(GIT_TARNAME)/version @@@ -711,10 -723,10 +723,10 @@@ clean $(MAKE) -C Documentation/ clean $(MAKE) -C templates clean $(MAKE) -C t/ clean - rm -f GIT-VERSION-FILE + rm -f GIT-VERSION-FILE GIT-CFLAGS .PHONY: all install clean strip - .PHONY: .FORCE-GIT-VERSION-FILE TAGS tags + .PHONY: .FORCE-GIT-VERSION-FILE TAGS tags .FORCE-GIT-CFLAGS ### Check documentation #