Date: Fri, 9 Sep 2016 17:37:27 -0700 From: "Simon J. Gerraty" <sjg@juniper.net> To: Bryan Drewery <bdrewery@freebsd.org> Cc: <src-committers@freebsd.org>, <svn-src-all@freebsd.org>, <svn-src-head@freebsd.org>, <sjg@juniper.net> Subject: Re: svn commit: r305634 - head/share/mk Message-ID: <76524.1473467847@kaos.jnpr.net> In-Reply-To: <bf4c21cd-cbf3-55b9-d0f0-c0cbd01e5428@FreeBSD.org> References: <201609090121.u891LZOO023156@repo.freebsd.org> <bf4c21cd-cbf3-55b9-d0f0-c0cbd01e5428@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Bryan Drewery <bdrewery@freebsd.org> wrote: > > +# some targets involve old pre-built targets > > +# ignore mtime of shell > > +# and mtime of makefiles does not matter in meta mode > > +.MAKE.META.IGNORE_PATHS += \ > > + ${MAKEFILE} \ > > + ${SHELL} \ > > + ${SYS_MK_DIR} > > I think it could be problematic to ignore *.mk changes. The build If you're not concerned with build optimization, this can be disabled - but pretty much any sub-make for which there is a .meta file will be out-of-date by any changed to *.mk > commands may stay the same, but targets could grow new dependencies. If > those dependencies are already "met" then meta mode won't reconsider them. I'm not sure how easy it is to accomplish that situation. > Consider: > Build 1: > bar: > touch dep > touch bar > > foo: > touch foo > > all: bar foo > > In the first build, all generates dep, bar and foo. > > Then the code is changed to: > > bar: > touch bar > > dep: > touch notmade > touch dep > > foo: dep > touch foo > > all: foo bar > > Now in the second build, all finds bar command changes and rebuilds, > finds foo command is the same and that dep is already satisfied from the > last build. So 'notmade' is never made. Actually given you have missing-meta=yes target dep would be remade, either because there is no .meta file, or because its commands changed. Thus notmade should be.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?76524.1473467847>