Q: DSSS: Library name being prefixed with S

Kirk McDonald kirklin.mcdonald at gmail.com
Wed Jun 13 22:10:09 PDT 2007


Derek Parnell wrote:
> On Thu, 14 Jun 2007 00:39:19 +1000, Daniel Keep wrote:
> 
>>> Just out of interest, do you have any pointers, on hand, as to why
>>> rebuild is better than bud? It does look like bud is not being developed
>>> but I have not had much experience with the tools yet.
>>>
>>> Thanks ahead,
>>>
>>> Myron.
>> One reason why I've started moving over to rebuild is -oqPATH.  This
>> tells rebuild to put the intermediate object files into the PATH
>> directory with fully qualified names (aka: Gregorian Notation).
>>
>> The problem with bud is that, if I remember correctly, you either put
>> the object files with the source files (which sticks them all over the
>> bloody place), or all in one directory where you can get name clashes.
> 
> A side effect of doing the -oqPATH is that is causes multiple runs of DMD,
> because DMD only knows how to write object files out to either the source
> file location or the location named on the -od switch. To have object files
> each placed in a separate location other than the source location means one
> has to run DMD separately for each source file (or at least for each unique
> source location).
> 

This is not strictly true. If there aren't actually any name collisions, 
you can just run DMD once and then rename/move the resulting object 
files to whatever scheme you want. If there is a name collision, then 
you can just compile all of the modules which don't collide first, 
rename them, and then compile the colliding ones. If I'm not mistaken, 
this is how rebuild works. Therefore, rebuild usually just calls DMD 
once, or sometimes twice.

> I have yet to workout why placement of object files is of such a critical
> issue. An object file is an intermediate file. It is used to either create
> an executable or a library, and then discarded. On rare occasions is can be
> retained to inspect the output machine code of the compiler, but why worry
> about where it lives. It will be discarded eventually.
> 

It is highly desirable to be able to jam all of these temporary files 
into a specific, off-to-the-side place. I do not like cluttering my 
source tree with temporary files.

> In Bud, I've chosen to reduce the number of calls to DMD instead of
> concerning myself about where to place temporary files. However, if this is
> really an issue I can have Bud call DMD multiple times for you to place
> temporary files in the folder of your choice.
> 

-- 
Kirk McDonald
http://kirkmcdonald.blogspot.com
Pyd: Connecting D and Python
http://pyd.dsource.org


More information about the Digitalmars-d-learn mailing list