svn commit: r305634 - head/share/mk
Bryan Drewery
bdrewery at FreeBSD.org
Wed Sep 14 18:14:18 UTC 2016
On 9/9/16 5:37 PM, Simon J. Gerraty wrote:
> Bryan Drewery <bdrewery at 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.
Can you at least wrap it in something like .if
!defined(META_CONSIDER_MK_FILES) ?
>
>> 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.
>
Good point.
--
Regards,
Bryan Drewery
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 496 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/svn-src-all/attachments/20160914/aa75db10/attachment.sig>
More information about the svn-src-all
mailing list