Hi Thierry,
You’re absolutely right,
OPSYS and OSREL aren’t available before bsd.options.mk (or bsd.port.pre.mk), so the .if logic I mentioned can’t influence OPTIONS_DEFAULT early enough.In that case, maybe the cleanest current workaround would indeed be to rely on
OPTIONS_EXCLUDE_FreeBSD_16= PREVASSET and let the other option (GCC) become the implicit default in the RADIO group. That at least ensures the correct behavior on 16+.Otherwise, this seems like a real framework gap — maybe worth extending
bsd.options.mk with support for OPTIONS_DEFAULT_${OPSYS}_${OSREL:R}, mirroring how the OPTIONS_EXCLUDE_* macros work today. That would make conditional defaults possible in a clean, declarative way.Best regards,
Rikka
Rikka
P.S.: Resending to list — my earlier reply went off-list by mistake.
Am 07.10.2025 00:17 schrieb Rikka Göring <[email protected]>:
Hi Thierry,You’re absolutely right,OPSYSandOSRELaren’t available beforebsd.options.mk(orbsd.port.pre.mk), so the.iflogic I mentioned can’t influenceOPTIONS_DEFAULTearly enough.In that case, maybe the cleanest current workaround would indeed be to rely onOPTIONS_EXCLUDE_FreeBSD_16= PREVASSETand let the other option (GCC) become the implicit default in theRADIOgroup. That at least ensures the correct behavior on 16+.Otherwise, this seems like a real framework gap — maybe worth extendingbsd.options.mkwith support forOPTIONS_DEFAULT_${OPSYS}_${OSREL:R}, mirroring how theOPTIONS_EXCLUDE_*macros work today. That would make conditional defaults possible in a clean, declarative way.Best regards,
Rikka
Von: Thierry Thomas
Gesendet: Montag, 06. Oktober 2025 10:03
Bis: Rikka Göring
Betreff: Re: A question about options
Le lun. 6 oct. 25 à 3:39:56 +0200, Rikka Göring <[email protected]>
écrivait :
> Hi Thierry,
Hello Rikka,
> I think there isn't currently a macro like
> OPTIONS_DEFAULT_${OPSYS}_${OSREL:R}, only the OPTIONS_EXCLUDE_*
> variants, so defaults can't be dynamically adjusted per release using
> existing helpers.
> A possible workaround might be to set defaults programmatically in a
> .if block, e.g.:
> .if ${OPSYS} == FreeBSD && ${OSREL:R} >= 16
> OPTIONS_DEFAULT= GCC
> .else
> OPTIONS_DEFAULT= PREVASSET
> .endif
> That would avoid having to globally change the default while still
> staying within the framework.
> (Unless I missed a more elegant way, but I don't think the framework
> currently exposes one.)
Thanks for your answer, but actually you cannot check OPSYS and OSREL
before bsd.options.mk (or bsd.port.pre.mk), and it’s impossible to set
an option after them…
Best regards,
--
Th. Thomas.
