Ken Takata wrote:

> 2018/8/7 Tue 10:48:19 UTC+9 Michael Soyka wrote:
> > On 8/6/2018 8:45 PM, Ken Takata wrote:
[...]
> > >> It appears src/Make_cyg_ming.mak also does this:
> > >>
> > >>  ifneq (sh.exe, $(SHELL))
> > >>  DEL = rm
> > >>  MKDIR = mkdir -p
> > >>  DIRSLASH = /
> > >>  else
> > >>  DEL = del
> > >>  MKDIR = mkdir
> > >>  DIRSLASH = \\
> > >>  endif
> > >>
> > >> And src/GvimExt/Make_ming.mak
> > >>
> > >>  ifneq (sh.exe, $(SHELL))
> > >>  DEL = rm
> > >>  else
> > >>  DEL = del
> > >>  endif
> > >>
> > >> Is this really wrong?
> > > No. This is really confusing, but this is correct.
> > >
> > > If the makefile is executed by the "mingw32-make" command from cmd.exe,
> > > $SHELL is set to "sh.exe" (without any path). In this case, unix-like 
> > > commands
> > > might not work and dos-style path is needed.
> > I run mingw32-make from a command window and, as I've stated, the value 
> > of SHELL includes a path specification.
> 
> Ah, running from cmd.exe or bash was not the cause of the difference.
> The difference is caused by the $PATH.
> 
> If sh.exe is found in the $PATH, $SHELL is set to the full path of the sh.exe.
> If it isn't found, $SHELL is set to "sh.exe" without the path specification.
> 
> So the conclusion is still not changed. The makefiles are correct. If $SHELL
> is exactly same as "sh.exe", unix-like commands are not available and paths
> must be dos-style, otherwise unix-like commands and unix-style paths can be
> used.

Since this is confusing, it would be good to add an explanation.  How
about this:

        # About the "sh.exe" condition, as explained by Ken Takata:
        #
        # If the makefile is executed and sh.exe is not found in $PATH, then 
$SHELL is
        # set to "sh.exe" (without any path). In this case, unix-like commands 
might
        # not work and a dos-style path is needed.
        # 
        # If the makefile is executed and sh.exe IS found in $PATH, then $SHELL 
is set
        # with the actual path of sh.exe (e.g.  "C:/msys64/usr/bin/sh.exe").  
In this
        # case, unix-like commands can be used.
        # 
        # If it is executed by the "make" command from cmd.exe, $SHELL is set to
        # "/bin/sh". If the "make" command is in the $PATH, other unix-like 
commands
        # might also work.
        # 
        # If it is executed by the "make" command from a unix-like shell,
        # $SHELL is set with the unix-style path (e.g. "/bin/bash").
        # In this case, unix-like commands can be used.
        #
        ifneq (sh.exe, $(SHELL))


-- 
Mental Floss prevents moral decay!

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui