On Thu, 14 Feb 2002, David D. Hagood wrote:
Due to circumstances beyond my control, I have an embedded system that I am developing that uses Windows based compilers. Unfortunately, WinNT bluescreens too much for me to be able to work, so I have ported the project to using Gnu Make, with the compilers being executed via Wine.
The problem is that the compilers search the path for their sub-components (just like GCC does - the driver calls the preprocessor, compiler, assembler, etc.).
Now, the location of the project within the filesystem is not fixed - it depends upon where the developer checks it out. The project has the compilers stored along with the code, so the project is "self-contained". The project has a shell script that sets several environment variables describing the location of the project, and adds the needed directories to the Unix path. However, Wine (wisely) does not make that path available to the Windows program, so when the compiler driver looks for the preprocessor, it bombs.
Pity you couldn't use some other environment variable. The entire unix environment is available in the windows app's environment, but PATH is significant to windows apps, I guess, so wine takes the windified version of it from the config file to replace the *NIX value. If your compiler would look in, say MYPATH, a shell script could easily set that how it liked.
*nix current directory is another possibility you should consider. If it happens that it can be accessed somewhere on a Wine drive, Wine will use it as the windows current directory, which is on the windows path, I think, implicitly. If not it will use the windows directory and write a mesage to that effect.
As a work-around, I've stated the the developers must install the tools into a fixed directory, and add that directory to the Windows path as defined in ~/.wine/config. However, it would be nice if the setup shell script could add the tools directory within the project automatically to the Wine path.
Has any thought been given to honoring a WINEPATH (or similar) environment variable, which would be added to the Wine path at runtime?
On a related note: would it be possible to have a means to tell the wineserver process to "hang around" for a few seconds after the last wine process using it has terminated? Again, in this make process you get lots of "start wine, start compiler, compile, exit. Start wine, start compiler, compile, exit" operations - if the wineserver stuck around for 2 seconds after the last wine process terminated, this would aviod starting and stopping the wineserver process.
start
wineserver -p
before starting any compiles, it will serve until it is killed. kill it with -INT or -TERM, please, not -KILL. -KILL will force it to leave a stale socket you will have to remove by hand.
Lawson
________________________________________________________________ GET INTERNET ACCESS FROM JUNO! Juno offers FREE or PREMIUM Internet access for less! Join Juno today! For your FREE software, visit: http://dl.www.juno.com/get/web/.