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>