PR# 14134 Difference in usage of INCLUDE between Freezing and nmake from prompt

Problem Report Summary
Submitter: randyjohn
Category: C Compilation
Priority: Medium
Date: 2008/03/25
Class: Bug
Severity: Serious
Number: 14134
Confidential: No
Status: Analyzed
Environment: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)
Synopsis: Difference in usage of INCLUDE between Freezing and nmake from prompt

The environment variable INCLUDE is not used (or perhaps modified) when you select Project/Freeze... from the menu.  However, it is used (or not modified) if you press the W_Code button and run nmake from there.  Now I don't really care which method you choose, I just want you to choose one of them.  And if you choose to ignore or modify my definition of INCLUDE then I would like to know how I am supposed to setup a custom include folder (please, not one project at a time).
To Reproduce

Problem Report Interactions
From:randyjohn    Date:2008/03/27    Download   
Yes, `smart_checking' to False worked.  But I'm not clear on what 'smart_checking' actually is.

From:randyjohn    Date:2008/03/26    Download   
I would suggest that the behavior of the W_Code button should be EXACTLY the same as finish_freezing.  Anything else is just asking for trouble.

From:manus_eiffel    Date:2008/03/25    Status: Analyzed    Download   
Just an explanation on how it works.

When launching a DOS with the button, we simply use the inherited environment and launch the default DOS application. When launching the C compilation, we launch `finish_freezing' which modifies the environment so that it can find the C compiler. For that we have to use a Microsoft batch scripts which is supposed to extend the value of INCLUDE, not to replace it. So in theory the only bad thing that may happen is that the Microsoft headers are put before yours.

I know that in your case, the launcher sets the environment for C compilation, so you can edit $ISE_EIFFEL/studio/config/windows/msc/config.eif and set `smart_checking' to False, which would simply launch the DOS shell.

Let us know if this addresses the problem.