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.
