aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-06-05 18:36:15 -0500
committerJunio C Hamano <gitster@pobox.com>2009-06-06 13:21:51 -0700
commit0e0aea5a47b675ab2dca9c77180b8fe9bc6bdeec (patch)
tree4e7b4f83d76f60542269a63334549276348ba17a
parentb213019c00740289997f12e5f53b1baae588ac8a (diff)
downloadgit-0e0aea5a47b675ab2dca9c77180b8fe9bc6bdeec.tar.gz
git-0e0aea5a47b675ab2dca9c77180b8fe9bc6bdeec.tar.xz
Makefile: introduce SANE_TOOL_PATH for prepending required elements to PATH
Some platforms (like SunOS and family) have kept their common binaries at some historical moment in time, and introduced new binaries with modern features in a special location like /usr/xpg4/bin or /usr/ucb. Some of the features provided by these modern binaries are expected and required by git. If the featureful binaries are not in the users path, then git could end up using the less featureful binary and fail. So provide a mechanism to prepend elements to the users PATH at runtime so the modern binaries will be found. Signed-off-by: Brandon Casey <drafnel@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--Makefile14
-rwxr-xr-xgit-sh-setup.sh2
2 files changed, 16 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 4f838b2c0..50002edda 100644
--- a/Makefile
+++ b/Makefile
@@ -3,6 +3,11 @@ all::
# Define V=1 to have a more verbose compile.
#
+# Define SHELL_PATH to a POSIX shell if your /bin/sh is broken.
+#
+# Define SANE_TOOL_PATH to a colon-separated list of paths to prepend
+# to PATH if your tools in /usr/bin are broken.
+#
# Define SNPRINTF_RETURNS_BOGUS if your are on a system which snprintf()
# or vsnprintf() return -1 instead of number of characters which would
# have been written to the final string if enough space had been available.
@@ -702,6 +707,7 @@ ifeq ($(uname_S),SunOS)
NEEDS_SOCKET = YesPlease
NEEDS_NSL = YesPlease
SHELL_PATH = /bin/bash
+ SANE_TOOL_PATH = /usr/xpg6/bin:/usr/xpg4/bin
NO_STRCASESTR = YesPlease
NO_MEMMEM = YesPlease
NO_MKDTEMP = YesPlease
@@ -864,6 +870,13 @@ endif
-include config.mak.autogen
-include config.mak
+ifdef SANE_TOOL_PATH
+BROKEN_PATH_FIX = s|^. @@PATH@@|PATH=$(SANE_TOOL_PATH)|
+PATH := $(SANE_TOOL_PATH):${PATH}
+else
+BROKEN_PATH_FIX = d
+endif
+
ifeq ($(uname_S),Darwin)
ifndef NO_FINK
ifeq ($(shell test -d /sw/lib && echo y),y)
@@ -1265,6 +1278,7 @@ $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
-e 's|@SHELL_PATH@|$(SHELL_PATH_SQ)|' \
-e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
-e 's/@@NO_CURL@@/$(NO_CURL)/g' \
+ -e '/^# @@PATH@@/$(BROKEN_PATH_FIX)' \
$@.sh >$@+ && \
chmod +x $@+ && \
mv $@+ $@
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index 838233926..780258135 100755
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -11,6 +11,8 @@
# exporting it.
unset CDPATH
+# @@PATH@@:$PATH
+
die() {
echo >&2 "$@"
exit 1