The makefile testdir/Make_ming.mak contains statements of the form:

  if exist test.ok $(DEL) test.ok

which can only be executed by one of the DOS/Windows command shells such as command.com or cmd.exe

My version of make, gnu 3.82.90, sets the SHELL make variable to the value "C:/MinGW/msys/1.0/sh.exe", a unix shell, and so all such if-statements fail.

This can be sidestepped by setting SHELL=cmd.exe on the make command line but then unix utilities such as "rm" are used instead of "del" and DIRSLASH is set to "/" instead of "\" and so vim.exe cannot be launched to run the test (cmd.exe does not accept forward slashes in paths). This new problem is caused by an incorrectly constructed if-test in the makefile:

  ifneq(sh.exe,$(SHELL))

followed by unix-style definitions. I think that the author had intended this

  ifeq(sh.exe, $(SHELL))

but this won't work either because the value of SHELL will include a full path, if make is allowed to define it.

The correct construct is this:

  ifeq(sh.exe, $(notdir $(SHELL)))

which strips the path information from SHELL before the comparison.

This is all interesting but mostly irrelevant. The bottom line is that a DOS shell must be used and so my suggestion is:

1. remove the if-block that defines the unix utilities and retain the else-block, and

  2.  define SHELL=cmd.exe in the makefile.


-mike

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