From: Andreas L. <no...@sb...> - 2003-04-25 11:56:04
|
Hi, is there any way I can convince you to add something like 'c_compiler_options", "c_flags" or "cc_flags" to the gexace options? The idea is that the value of such an option will be passed as parameter to the underlying c compiler. I have researched a little and I think it can be only meaningful defined for SmartEiffel (option 'c_compiler_options"). ISE doesnt support it according to their docs. Hact I don't know (are there docs for this somewhere) and VE cannot by definition (no c compiler :). But there are already some options in gexace that are supported only by one compiler: arguments: ISE only case_insensitive: SE only clean: SE only cls_compliant: SE only create_keyword_extension: HACT only debugger: VE only etc... Now I think we want people to use gexace even when they just use one compiler. That would be an argument in support for options that are only supported by one compiler. Why should they be limited in what they can do? I need this option right now, because the sdl/cl/se examples will only work if I defined the preprocessor symbols '_MT' and '_DLL' (or alternatively define the compiler flag '/MD' and don't use some linker flags). This is necessary because the SDL binaries are compiled linking to the multithreaded dll version of the microsoft visual c runtime (msvcrt). Now, as you sugessted I have checked how to solve that problem with other compilers (except for VE, ewg does not support it yet and HACT, don't have the compiler on windows). They all work, even without the defines. It is really weird, but my thinking is that it has something to do with how an Eiffel compiler uses the standard c libraries (or windows c libraries). For SmartEiffel/lcc I need to do another trick, but that one is not directly related to the problem I face with cl/se. Btw, I have currently solved the problem by describing in the documentation that the user needs to set the env. var 'CL' to '/D_MT#1 /D_DLL#1'. This environment variable will be respected by cl. But it is a inconvenient workaround IMO. best regards, Andreas |