cvs commit: src/usr.sbin/config main.c

Warner Losh imp at bsdimp.com
Fri Apr 22 14:16:30 PDT 2005


From: Ruslan Ermilov <ru at freebsd.org>
Subject: Re: cvs commit: src/usr.sbin/config main.c
Date: Fri, 22 Apr 2005 23:16:15 +0300

> 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 personally fail to see how this can be solved...  :-(

If make depend rebuilds the .depend file, then make depend && make
will work.

Warner


More information about the cvs-src mailing list