Merge branch 'js/maint-no-ln-across-libexec-and-bin'
authorJunio C Hamano <gitster@pobox.com>
Sat, 23 May 2009 08:43:08 +0000 (01:43 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sat, 23 May 2009 08:43:08 +0000 (01:43 -0700)
* js/maint-no-ln-across-libexec-and-bin:
Add NO_CROSS_DIRECTORY_HARDLINKS support to the Makefile

Conflicts:
Makefile

Makefile
index 3ef9230f776f6605fb8db31e3d8a90be4ee94572..fdb39fa439e0759a74bcb11b35995812849b2886 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -175,6 +175,9 @@ all::
 # Define OBJECT_CREATION_USES_RENAMES if your operating systems has problems
 # when hardlinking a file to another name and unlinking the original file right
 # away (some NTFS drivers seem to zero the contents in that scenario).
+#
+# Define NO_CROSS_DIRECTORY_HARDLINKS if you plan to distribute the installed
+# programs as a tar, where bin/ and libexec/ might be on different file systems.
 
 GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
        @$(SHELL_PATH) ./GIT-VERSION-GEN
@@ -1549,6 +1552,7 @@ endif
        bindir=$$(cd '$(DESTDIR_SQ)$(bindir_SQ)' && pwd) && \
        execdir=$$(cd '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' && pwd) && \
        { $(RM) "$$execdir/git-add$X" && \
+               test -z "$(NO_CROSS_DIRECTORY_HARDLINKS)" && \
                ln "$$bindir/git$X" "$$execdir/git-add$X" 2>/dev/null || \
                cp "$$bindir/git$X" "$$execdir/git-add$X"; } && \
        { for p in $(filter-out git-add$X,$(BUILT_INS)); do \