Merge branch 'af/maint-install-no-handlink' into maint
authorJunio C Hamano <gitster@pobox.com>
Sat, 30 Aug 2008 05:39:25 +0000 (22:39 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sat, 30 Aug 2008 05:39:25 +0000 (22:39 -0700)
* af/maint-install-no-handlink:
Fix use of hardlinks in "make install"
Makefile: always provide a fallback when hardlinks fail

1  2 
Makefile
diff --combined Makefile
index a65679ab15ce7ac5ddc862e33d871f611e7a94bb,b6df1e9d8b75e7f182ba67c9f9e4a41897598a34..00991b7c12ab7d9b74efbb67ee407b5788b79984
+++ b/Makefile
@@@ -333,6 -333,7 +333,6 @@@ endi
  export PERL_PATH
  
  LIB_FILE=libgit.a
 -COMPAT_LIB = compat/lib.a
  XDIFF_LIB=xdiff/lib.a
  
  LIB_H += archive.h
@@@ -1098,7 -1099,10 +1098,10 @@@ help.o: help.c common-cmds.h GIT-CFLAG
                '-DGIT_INFO_PATH="$(infodir_SQ)"' $<
  
  $(BUILT_INS): git$X
-       $(QUIET_BUILT_IN)$(RM) $@ && ln git$X $@
+       $(QUIET_BUILT_IN)$(RM) $@ && \
+       ln git$X $@ 2>/dev/null || \
+       ln -s git$X $@ 2>/dev/null || \
+       cp git$X $@
  
  common-cmds.h: ./generate-cmdlist.sh command-list.txt
  
@@@ -1223,6 -1227,12 +1226,6 @@@ git-http-push$X: revision.o http.o http
        $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
                $(LIBS) $(CURL_LIBCURL) $(EXPAT_LIBEXPAT)
  
 -$(COMPAT_LIB): $(COMPAT_OBJS)
 -      $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(COMPAT_OBJS)
 -
 -git-shell$X: abspath.o ctype.o exec_cmd.o quote.o strbuf.o usage.o wrapper.o shell.o $(COMPAT_LIB)
 -      $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(COMPAT_LIB)
 -
  $(LIB_OBJS) $(BUILTIN_OBJS): $(LIB_H)
  $(patsubst git-%$X,%.o,$(PROGRAMS)): $(LIB_H) $(wildcard */*.h)
  builtin-revert.o wt-status.o: wt-status.h
@@@ -1357,16 -1367,13 +1360,13 @@@ ifneq (,$X
  endif
        bindir=$$(cd '$(DESTDIR_SQ)$(bindir_SQ)' && pwd) && \
        execdir=$$(cd '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' && pwd) && \
-       if test "z$$bindir" != "z$$execdir"; \
-       then \
-               ln -f "$$bindir/git$X" "$$execdir/git$X" || \
-               cp "$$bindir/git$X" "$$execdir/git$X"; \
-       fi && \
-       { $(foreach p,$(BUILT_INS), $(RM) "$$execdir/$p" && ln "$$execdir/git$X" "$$execdir/$p" ;) } && \
-       if test "z$$bindir" != "z$$execdir"; \
-       then \
-               $(RM) "$$execdir/git$X"; \
-       fi && \
+       { $(RM) "$$execdir/git-add$X" && \
+               ln git-add$X "$$execdir/git-add$X" 2>/dev/null || \
+               cp git-add$X "$$execdir/git-add$X"; } && \
+       { $(foreach p,$(filter-out git-add$X,$(BUILT_INS)), $(RM) "$$execdir/$p" && \
+               ln "$$execdir/git-add$X" "$$execdir/$p" 2>/dev/null || \
+               ln -s "git-add$X" "$$execdir/$p" 2>/dev/null || \
+               cp "$$execdir/git-add$X" "$$execdir/$p" || exit;) } && \
        ./check_bindir "z$$bindir" "z$$execdir" "$$bindir/git-add$X"
  
  install-doc:
@@@ -1435,7 -1442,7 +1435,7 @@@ distclean: clea
  
  clean:
        $(RM) *.o mozilla-sha1/*.o arm/*.o ppc/*.o compat/*.o xdiff/*.o \
 -              $(LIB_FILE) $(XDIFF_LIB) $(COMPAT_LIB)
 +              $(LIB_FILE) $(XDIFF_LIB)
        $(RM) $(ALL_PROGRAMS) $(BUILT_INS) git$X
        $(RM) $(TEST_PROGRAMS)
        $(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo common-cmds.h TAGS tags cscope*