dmd -c behaviour doesn't take account of packages.

H. S. Teoh hsteoh at
Wed Feb 22 16:28:45 PST 2012

On Wed, Feb 22, 2012 at 07:15:37PM -0500, Jonathan M Davis wrote:
> On Wednesday, February 22, 2012 16:08:20 H. S. Teoh wrote:
> > The real solution is that when creating object files, dmd should put
> > the .o files in the modules' respective subdirectories. I.e., it
> > should keep the pathname component of every source file and use that
> > for the object file. Then you have a 1-to-1 mapping between source
> > files and object files.
> Yuck. Yuck. Source should _always_ be separated from object files.
> It's incredibly messy otherwise.

Not really. You just have .d's with their corresponding .o's sitting
side-by-side. It's a 1-to-1 correspondence. No mess.

> > Either that, or duplicate the source tree structure in an object
> > tree (if you like that kind of compile structure -- some projects do
> > that).
> That's definitely the way to organize things.

To each his own. :)

But either way, the point is that the source tree structure *must* be
reflected by the object files. Otherwise you break the 1-to-1
correspondence and all sorts of nasty bugs show up.


It only takes one twig to burn down a forest.

More information about the Digitalmars-d mailing list