Date: Fri, 22 Apr 2005 13:24:47 -0700 From: Marcel Moolenaar <marcel@xcllnt.net> To: Ruslan Ermilov <ru@freebsd.org> Cc: cvs-all@freebsd.org Subject: Re: cvs commit: src/usr.sbin/config main.c Message-ID: <b01a40ad14d2fadd7fa857af2495dfdd@xcllnt.net> In-Reply-To: <20050422201615.GD23926@ip.net.ua> References: <20050422.114615.71130404.imp@bsdimp.com> <20050422175324.GA32739@ip.net.ua> <20050422184922.GA41457@ns1.xcllnt.net> <20050422.125712.78748765.imp@bsdimp.com> <20050422200341.GA23926@ip.net.ua> <1b042838f6396ae9665fcb2f41f1c9a7@xcllnt.net> <20050422201615.GD23926@ip.net.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
On Apr 22, 2005, at 1:16 PM, Ruslan Ermilov wrote:
> On Fri, Apr 22, 2005 at 01:08:14PM -0700, Marcel Moolenaar wrote:
>> On Apr 22, 2005, at 1:03 PM, Ruslan Ermilov wrote:
>>
>>>>> What exactly is broken? I don't see a breakage, even when source
>>>>> files disappeared. I assume I must be forgetting something or not
>>>>> doing everything right.
>>>>
>>>> when an include file is removed, make depend can fail to recreate
>>>> .depend in the modules.
>>>>
>>> This is only a problem with NO_CLEAN builds, and it's not limited
>>> to just modules -- I often saw this problem with the world builds.
>>
>> Ok. Does it help if there's an option to make that supresses the
>> automatic loading on .depend or more generically, allows one to
>> name the depend file and it merely defaults to .depend (suppression
>> is then accomplished by specifying /dev/null as the depend file)?
>> If such option would be used for "make depend", would that resolve
>> the problems in a generic way?
>>
> Nope. We only regenerate .depend when its dependencies are
> changed. For bsd.prog.mk, this means that .depend is only
> regenerated when some of ${SRCS} are changed (but this does
> NOT cover headers these ${SRCS} include, and some of these
> headers may disappear).
>
> To put it differently: when a header disappears, the breakage
> is not at the "make depend" stage (which doesn't do anything),
> but at a later "make all" stage.
I see. I'm probably not understanding the problem completely,
but this definitely gets me in the right state of mind.
> I personally fail to see how this can be solved... :-(
Ok, what about this:
mkdep(1) creates lines of the form
foo.o: foo.c inc1.h inc2.h
Would this problem be solved if mkdep(1) created lines like:
foo.o .depend: foo.c inc1.h inc2.h
or equivalent?
Would something else break if we do that?
--
Marcel Moolenaar USPA: A-39004 marcel@xcllnt.net
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b01a40ad14d2fadd7fa857af2495dfdd>
