aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorBrandon Casey <casey@nrlssc.navy.mil>2009-01-19 19:44:03 -0600
committerJunio C Hamano <gitster@pobox.com>2009-01-19 22:39:38 -0800
commitb56c79ccea73fe53af3f3a3cc5ab7f5417fc898d (patch)
treef339d78a2d70a27c45fd06e433b2d354de242a5a /Makefile
parent35641310afa04aaa0ba5f31be6bdb2cf23ec100f (diff)
downloadgit-b56c79ccea73fe53af3f3a3cc5ab7f5417fc898d.tar.gz
git-b56c79ccea73fe53af3f3a3cc5ab7f5417fc898d.tar.xz
Makefile: use shell for-loop rather than Make's foreach loop during install
The install target uses a foreach loop to generate a single long shell command line to handle installation of the built-in git commands. The maximum length of the argument list varies by platform, and this use of foreach quickly grows the length of the argument list. Current git can exceed the default maximum argument list length on IRIX 6.5 of 20480 depending on the installation path. Rather than using make's foreach loop to pre-generate the shell command line, use a shell for-loop and allow the shell to iterate through each of the built-in commands. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile10
1 files changed, 6 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index 2b873fa99..fa6c51c0e 100644
--- a/Makefile
+++ b/Makefile
@@ -1441,10 +1441,12 @@ endif
{ $(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;) } && \
+ { for p in $(filter-out git-add$X,$(BUILT_INS)); do \
+ $(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; \
+ done } && \
./check_bindir "z$$bindir" "z$$execdir" "$$bindir/git-add$X"
install-doc: