Hi,

2018/8/8 Wed 0:39:08 UTC+9 Bram Moolenaar wrote:
> 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:
> > 
> > Well, my name is not important here. ;-)
> 
> So we have someone to blame^Wask when it turns out wrong :-).
> 
> > I didn't know how to detect if unix-like commands can be used from a
> > makefile before seeing these makefiles.
> > 
> > 
> > >   #
> > >   # If the makefile is executed and sh.exe is not found in $PATH, then 
> > > $SHELL is
> > 
> > Isn't it better to mention the "mingw32-make" command?
> > 
> > 
> > >   # 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
> > 
> > This is the same.
> > 
> > 
> > >   # 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))
> 
> Do you mean like this:
> 
>       # About the "sh.exe" condition, as explained by Ken Takata:
>       #
>       # If the makefile is executed with mingw32-make 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 with mingw32-make 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.

Yeah, it's okay.

Regards,
Ken Takata

-- 
-- 
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