bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Build macro not to search for sh.exe or bash.exe


From: David Baird
Subject: RE: Build macro not to search for sh.exe or bash.exe
Date: Thu, 10 Jun 2004 16:24:27 +0300

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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]