Add NO_CROSS_DIRECTORY_HARDLINKS support to the Makefile
When the installed programs are tar'ed up and installed on a system where bin/ and libexec/git-core/ live on different file systems, we do not want libexec/git-core/git-* to be hardlinks to bin/git. Noticed by Cedric Staniewski. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin committed
May 11, 2009 at 13:02 UTC
3426e34feddf97085615e619d39f8173ff3f9fb4
1 file changed
+4
Makefile
+4
@@ -159,6 +159,9 @@ all::
159
# Define NO_EXTERNAL_GREP if you don't want "git grep" to ever call
160
# your external grep (e.g., if your system lacks grep, if its grep is
161
# broken, or spawning external process is slower than built-in grep git has).
162
+#
163
+# Define NO_CROSS_DIRECTORY_HARDLINKS if you plan to distribute the installed
164
+# programs as a tar, where bin/ and libexec/ might be on different file systems.
165
166
GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
167
@$(SHELL_PATH) ./GIT-VERSION-GEN
@@ -1468,6 +1471,7 @@ endif
1471
bindir=$$(cd '$(DESTDIR_SQ)$(bindir_SQ)' && pwd) && \
1472
execdir=$$(cd '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' && pwd) && \
1473
{ $(RM) "$$execdir/git-add$X" && \
1474
+ test -z "$(NO_CROSS_DIRECTORY_HARDLINKS)" && \
1475
ln "$$bindir/git$X" "$$execdir/git-add$X" 2>/dev/null || \
1476
cp "$$bindir/git$X" "$$execdir/git-add$X"; } && \
1477
{ for p in $(filter-out git-add$X,$(BUILT_INS)); do \