I've made some simple modifications to main.c to resolve the issue I found.
Platform: Windows 32-bit compiled with Visual C++ Problem: Setting SHELL to cmd.exe has no positive effect on running make commands. Solution: Changes to main.c to recognize that SHELL=cmd.exe setting in make file should behave as if no SHELL was set, and no sh.exe was found. All commands should be run in batch file mode with the native Windows command shell. Patch to main.c (differences from latest 3.81 sources in CVS) 711c711,716 < if (!no_default_sh_exe && --- > if (strstr(search_token, "cmd") || strstr(search_token, "CMD")) { > /* user wants the native Windows shell, called cmd.exe */ > batch_mode_shell = 1; > unixy_shell = 0; > sh_found = 0; > } else if (!no_default_sh_exe && 1071c1076 Problem: When running with native Windows command shell, the "Path" variable is the valid variable for defining the path. Make automatically copies the "Path" variable to a "PATH" variable, but never maintains it when "Path" changes in the make file. Solution: The PATH variable should not be set in main.c. It is unexpected. Only the Path variable should be used for the native Windows shell. Patch to main.c (differences from latest 3.81 sources in CVS) < * PATH defaults to Path iff PATH not found and Path is found. --- > * PATH defaults to Path if PATH not found and Path is found. 1073c1078 < if (!unix_path && windows32_path) --- > if (!unix_path && windows32_path && unixy_shell); _______________________________________________ Bug-make mailing list [EMAIL PROTECTED] http://lists.gnu.org/mailman/listinfo/bug-make