# [PATCH] Makefile: use SHELL_PATH when running generate-cmdlist.sh

2 messages from 2015-09-10 to 2015-09-11. Participants: Alejandro R. Sedeño, Eric Sunshine.
Thread: https://gitlist.dev/t/40324

## Alejandro R. Sedeño, 2015-09-10 23:37

Subject: [PATCH] Makefile: use SHELL_PATH when running generate-cmdlist.sh
Message-ID: <1441928227-830-1-git-send-email-asedeno@mit.edu>
URL: https://gitlist.dev/e/1441928227-830-1-git-send-email-asedeno%40mit.edu

```
Some /bin/sh implementations can't deal with $() arithmetic and command
substitution. If we already have a better shell on hand, we should use it.

Fixes the build on SunOS, probably others.

Signed-off-by: Alejandro R. Sedeño <asedeno@mit.edu>
---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index ce0cfe2..6301cc8 100644
--- a/Makefile
+++ b/Makefile
@@ -1699,7 +1699,7 @@ $(BUILT_INS): git$X
 common-cmds.h: generate-cmdlist.sh command-list.txt
 
 common-cmds.h: $(wildcard Documentation/git-*.txt)
-	$(QUIET_GEN)./generate-cmdlist.sh command-list.txt >$@+ && mv $@+ $@
+	$(QUIET_GEN)$(SHELL_PATH) ./generate-cmdlist.sh command-list.txt >$@+ && mv $@+ $@
 
 SCRIPT_DEFINES = $(SHELL_PATH_SQ):$(DIFF_SQ):$(GIT_VERSION):\
 	$(localedir_SQ):$(NO_CURL):$(USE_GETTEXT_SCHEME):$(SANE_TOOL_PATH_SQ):\
-- 
2.5.2

```

## Eric Sunshine, 2015-09-11 00:35

Subject: Re: [PATCH] Makefile: use SHELL_PATH when running generate-cmdlist.sh
Message-ID: <CAPig+cTQqVxo7qmFCu2h98+g2hrXogN785Wv1GRssHBtSm8VLA@mail.gmail.com>
URL: https://gitlist.dev/e/CAPig%2BcTQqVxo7qmFCu2h98%2Bg2hrXogN785Wv1GRssHBtSm8VLA%40mail.gmail.com
In-Reply-To: <1441928227-830-1-git-send-email-asedeno@mit.edu>

```
On Thu, Sep 10, 2015 at 7:37 PM, Alejandro R. Sedeño <asedeno@mit.edu> wrote:
> Some /bin/sh implementations can't deal with $() arithmetic and command
> substitution. If we already have a better shell on hand, we should use it.
>
> Fixes the build on SunOS, probably others.

Makes sense. 527ec39^:generate-cmdlist.sh didn't use either of these
features, whereas 82aec45:generate-cmdlist.sh does, and older
(pre-POSIX) shells lacked these features. Thanks.

I'd probably re-word the commit message slightly to mention $(())
arithmetic expansion, not $(), and to state specifically $(...)
command substitution since saying only "command substitution" is
ambiguous considering that backtick `...` command substitution long
predates POSIX. Perhaps like this:

    Non-POSIX shells, such as /bin/sh on SunOS, do not support
    $((...)) arithmetic expansion or $(...) command substitution
    needed by generate-cmdlist.sh. Therefore, use the POSIX shell
    $(SHELL_PATH) when running generate-cmdlist.sh.

Other than that:

Acked-by: Eric Sunshine <sunshine@sunshineco.com>

> Signed-off-by: Alejandro R. Sedeño <asedeno@mit.edu>
> ---
> diff --git a/Makefile b/Makefile
> index ce0cfe2..6301cc8 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1699,7 +1699,7 @@ $(BUILT_INS): git$X
>  common-cmds.h: generate-cmdlist.sh command-list.txt
>
>  common-cmds.h: $(wildcard Documentation/git-*.txt)
> -       $(QUIET_GEN)./generate-cmdlist.sh command-list.txt >$@+ && mv $@+ $@
> +       $(QUIET_GEN)$(SHELL_PATH) ./generate-cmdlist.sh command-list.txt >$@+ && mv $@+ $@
>
>  SCRIPT_DEFINES = $(SHELL_PATH_SQ):$(DIFF_SQ):$(GIT_VERSION):\
>         $(localedir_SQ):$(NO_CURL):$(USE_GETTEXT_SCHEME):$(SANE_TOOL_PATH_SQ):\
> --
> 2.5.2

```
