Re: shell compatibility issues with SunOS 5.10
- From
Brandon Casey <casey@nrlssc.navy.mil>
- Date
- May 7, 2009, 02:23 UTC
- Message-ID
- <lY5mDJaMc8ZsUIxG3yg4tkxBAjyuVrPMXYpGwLvsJHPpUgB4geWcOw@cipher.nrlssc.navy.mil>
- In-Reply-To
- <7vab5pu321.fsf@alter.siamese.dyndns.org>
I like it. The PATH would still need to be set up properly for the tests though. Either test-lib should handle SANE_TOOL_PATH or Makefile could export PATH like
ifdef SANE_TOOL_PATH
PATH := $(SANE_TOOL_PATH):${PATH}-brandon
Junio C Hamano wrote:
> I suspect you could do something like this...
Show 64 quoted lines
> Makefile | 13 +++++++++++++
> git-sh-setup.sh | 2 ++
> 2 files changed, 15 insertions(+), 0 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 6e21643..081f06a 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.
> @@ -694,6 +699,7 @@ ifeq ($(uname_S),SunOS)
> NEEDS_SOCKET = YesPlease
> NEEDS_NSL = YesPlease
> SHELL_PATH = /bin/bash
> + SANE_TOOL_PATH = /usr/xpg5/bin:/usr/xpg4/bin
> NO_STRCASESTR = YesPlease
> NO_MEMMEM = YesPlease
> NO_HSTRERROR = YesPlease
> @@ -852,6 +858,12 @@ endif
> -include config.mak.autogen
> -include config.mak
>
> +ifdef SANE_TOOL_PATH
> +BROKEN_PATH_FIX = s|^. @@PATH@@|PATH=$(SANE_TOOL_PATH)|
> +else
> +BROKEN_PATH_FIX = d
> +endif
> +
> ifeq ($(uname_S),Darwin)
> ifndef NO_FINK
> ifeq ($(shell test -d /sw/lib && echo y),y)
> @@ -1251,6 +1263,7 @@ $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
> -e 's|@@PERL@@|$(PERL_PATH_SQ)|g' \
> -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 8382339..7802581 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
>
>