digitalmars.D - dmd.exe - curious behavior (bug?)
- Garett Bass (26/26) Nov 14 2004 I'm using dmake as follows:
- Helmut Leitner (16/50) Nov 14 2004 If you look into the rsp file, you'll see
- news.digitalmars.com (5/5) Nov 15 2004 Helmut,
I'm using dmake as follows: dmake main -ID:\Code\Compilers\D\dmd\src\phobos -od"bin" -of".\bin\main" -gui which basically creates a text file, "main.rsp": -ID:\Code\Compilers\D\dmd\src\phobos -odbin -of.\bin\main -op -L/exet:nt/su:windows D:\Code\Projects\D\winsamp\main.d D:\Code\Projects\D\winsamp\windows.d D:\Code\Projects\D\winsamp\graphics.d gdi32.lib then calls "dmd main.rsp". Now, I'm expecting this to behave the same as calling dmd directly: dmd main graphics gdi32.lib -od"bin" -of".\bin\main" -L/exet:nt/su:windows Instead, the "dmd main.rsp" call seems to ignore the -od flag, and all of my object files are dropped in the source directory. This is inconvenient, as I'd rather avoid diluting the source directory with all the additional object files. I've tried editing the main.rsp file manually, placing quotes around the flag arguments, and manually calling "dmd main.rsp" from the command line, but the result is the same. Anyone know how to remedy this? Is this a bug? Regards, Garett
Nov 14 2004
Garett Bass wrote:I'm using dmake as follows: dmake main -ID:\Code\Compilers\D\dmd\src\phobos -od"bin" -of".\bin\main" -gui which basically creates a text file, "main.rsp": -ID:\Code\Compilers\D\dmd\src\phobos -odbin -of.\bin\main -op -L/exet:nt/su:windows D:\Code\Projects\D\winsamp\main.d D:\Code\Projects\D\winsamp\windows.d D:\Code\Projects\D\winsamp\graphics.d gdi32.lib then calls "dmd main.rsp". Now, I'm expecting this to behave the same as calling dmd directly: dmd main graphics gdi32.lib -od"bin" -of".\bin\main" -L/exet:nt/su:windows Instead, the "dmd main.rsp" call seems to ignore the -od flag, and all of my object files are dropped in the source directory. This is inconvenient, as I'd rather avoid diluting the source directory with all the additional object files. I've tried editing the main.rsp file manually, placing quotes around the flag arguments, and manually calling "dmd main.rsp" from the command line, but the result is the same. Anyone know how to remedy this? Is this a bug? Regards, GarettIf you look into the rsp file, you'll see - the option -op which comes after your -odbin and so superseedes it. So the behaviour of dmd is correct. The reason I chose to use an automatic -op was to make sharing of object creation work among different projects as easy as possible. In your setting you will not share objects and you will get problems with identical module names in different branches of your source tree. But that's your problem and I think dmake can be made more flexible by ommiting -op when an -od is given. Of course it would then have to look in different places for current objects. Maybe warn and stop in case of a name collision. Things often look easy at first sight and then start getting nasty...
Nov 14 2004
Helmut, Thanks for the information, I think I will drop the -od and use -op as you have suggested. Best Regards, Garett Bass
Nov 15 2004