[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Advanced Auto-Dependency Generation

From: Noel Yap
Subject: Re: Advanced Auto-Dependency Generation
Date: Tue, 12 Apr 2005 13:50:45 -0400
User-agent: Mozilla Thunderbird 0.5 (Windows/20040212)

IMHO, dependency files, as with other generated files, ought to be built in a directory structure separate from the source directories. If this were done, one /would/ protect against _accidental_ erasure of the dependency files (no mortal should be meddling in the build directories).


Greg Kilfoyle wrote:


I have implemented dependency generation based on the information from
this web page:

It works great, but my implementation has one serious drawback that I
don't see covered ... maybe I just missed something.

Let's say I have just done a complete build and everything is up-to-
date. I then manually remove a dependency file for a particular .c file
and update a header file that the .c file is dependent on. If I then run
make, the .c file is not rebuilt.

I had a depclean target in our environment, which I removed because of
this problem. But I can't protect against someone 'accidently' removing
a dependency file.

The following is a brief version of our .c->.o rule:

$(objs): $(objdir)/%.o: $(srcdir)/%.c
        gcc -c -MP -MD,$(basename $@).d -MT,'$@ $(basename $@).d'
            -o $@ $<

...after this rule there is an include of the dependency file(s) using
'-' so it can silently fail.

Is this something I've failed to account for in my implementation or
something that is missing from the proposed implementation method?

Cheers, Greg.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]