On 6/13/16 8:18 PM, Simon J. Gerraty wrote:
> Bryan Drewery <bdrew...@freebsd.org> wrote:
>>>> ${_FIRM}: ${.CURDIR}/../../../../contrib/dev/drm2/radeonkmsfw/${_FIRM}.uu
>>>>         uudecode -p $? > ${.TARGET}
> Targets like this that use $? or ${.OODATE} are a bad fit with META mode.
> If the normal make rules think the target is up to date, .OODATE will be
> empty, thus if meta_oodate says the target is out-of-date, the script
> will run with no args - because $? expands to nothing.
> So either the use of $? should be replaced with ${.ALLSRC} or something
> else that will be consistent, or the target should be marked .NOMETA
> FYI we can [ab]use ${.OODATE} as a token to prevent a line of a script
> from being compared - meta mode knows that the value of .OODATE is
> inconsistent so should not be compared... thus putting
> ${.OODATE:MNO_META_CMP} on a line expands to nothing - no impact on the
> command but still tells meta_oodate to ignore that line for comparison
> purposes. 

The problem is missing-meta requiring a .meta file here.  The $?/.OODATE
comparison exception is only used meta_oodate() if there is already a
.meta file, not for the new missing .meta logic.

Bryan Drewery
freebsd-current@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to