Hi, 2018/8/7 Tue 21:55:46 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. ;-) 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)) 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.
