tech-pkg archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: IS_BUILTIN vs USE_BUILTIN
On Fri, Aug 14, 2026 at 07:52:09AM +0100, Greg Troxel wrote:
> I'm finding confusion in the builtin scheme, specifically looking at
> expat.
>
> There is
>
> IS_BUILTIN.expat
> USE_BUILTIN.expat
>
> As I understand from mk/, IS_BUILTIN is about whether there is some
> implementation of expat in the base system, *regardless of whether it is
> good enough*.
>
> Then, USE_BUILTIN should be set to yes if expat's builtin.mk decides
> that the base version is good enough.
I think that's correct.
> However textproc/expat/builtin.mk seems to check if IS_BUILTIN is not
> set, and then set it conditionally.
It sets it to 'yes' or 'no' to avoid having to look for the relevant
header each time this file is parsed.
> My question is:
>
> Is IS_BUILTIN supposed to include "good enough" and USE_BUILTIN
> supposed to include "PREFER machinery says use it"?
>
> or is the good enough check supposed to be in IS_BUILTIN?
I think you misunderstood the IS_BUILTIN code in expat/builtin.mk (or
I misunderstood your question).
BUILTIN_FIND_HEADERS_VAR:= H_EXPAT
BUILTIN_FIND_HEADERS.H_EXPAT= expat.h
.include "../../mk/buildlink3/bsd.builtin.mk"
...
.if !defined(IS_BUILTIN.expat)
. if empty(H_EXPAT:M__nonexistent__)
IS_BUILTIN.expat= yes
. else
IS_BUILTIN.expat= no
. endif
.endif
The H_EXPAT variable contains a path to expat.h when
../../mk/buildlink3/bsd.builtin.mk is done, and IS_BUILTIN.expat is
just a yes-no variable saying if such a header was found or not.
Thomas
Home |
Main Index |
Thread Index |
Old Index