[PATCH 2/2] Makefile: work around ksh's failure to handle missing list argument to for loop
- From
Brandon Casey <casey@nrlssc.navy.mil>
- Date
- Jul 2, 2010, 18:50 UTC
- Message-ID
- <8YdP-GcDDflOVZnykNVIGceOm01bqeg9PDvdgIfgqUnh29RKC-6Qi8_KBVoqLIt5iyt7g1TX5l96M5KyLrfOqg@cipher.nrlssc.navy.mil>
- In-Reply-To
- <80typu1ozt.fsf@tiny.isode.net>
From: Brandon Casey <drafnel@gmail.com>
ksh does not like it when the list argument is missing in a for loop. This can happen when NO_CURL is set which causes REMOTE_CURL_ALIASES to be unset. In this case, the for loop in the Makefile expands to look like this:
for p in ; do
and ksh complains like this:
/bin/ksh: syntax error at line 15 : `;' unexpected
The existing attempt to work around this issue, introduced by 70b89f87, tried to protect the for loop by first testing whether REMOTE_CURL_ALIASES was empty, but it does not seem to work. So adopt Bruce Stephens's suggestion (which comes from OpenSSL) for working around this issue.
Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> --- Makefile | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile index 527d872..bc3c570 100644 --- a/Makefile +++ b/Makefile @@ -2085,13 +2085,13 @@ endif ln -s "git$X" "$$execdir/$$p" 2>/dev/null || \ cp "$$execdir/git$X" "$$execdir/$$p" || exit; \ done && \ - { test x"$(REMOTE_CURL_ALIASES)" = x || \ - for p in $(REMOTE_CURL_ALIASES); do \ + remote_curl_aliases="$(REMOTE_CURL_ALIASES)" && \ + for p in $$remote_curl_aliases; do \ $(RM) "$$execdir/$$p" && \ ln "$$execdir/git-remote-http$X" "$$execdir/$$p" 2>/dev/null || \ ln -s "git-remote-http$X" "$$execdir/$$p" 2>/dev/null || \ cp "$$execdir/git-remote-http$X" "$$execdir/$$p" || exit; \ - done; } && \ + done && \ ./check_bindir "z$$bindir" "z$$execdir" "$$bindir/git-add$X" install-gitweb:
-- 1.7.2.rc1