]> asedeno.scripts.mit.edu Git - git.git/commitdiff
Merge branch 'yl/build'
authorJunio C Hamano <junkio@cox.net>
Mon, 19 Jun 2006 04:18:49 +0000 (21:18 -0700)
committerJunio C Hamano <junkio@cox.net>
Mon, 19 Jun 2006 04:18:49 +0000 (21:18 -0700)
* yl/build:
  auto-detect changed prefix and/or changed build flags

1  2 
Makefile

diff --combined Makefile
index 5598f48ba39e415b44d703f3d7422d21efe82cf7,ec91181c090eaaa8f2cbbccdb6f0c280b8bc2ee9..ea8cd283e2407cc0f16b2e7a3fa1421f3193e142
+++ 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
  #