WITHOUT_NLS precedence over {UNIQUENAME}_SET or OPTIONS_FILE_SET?
Panagiotis Christias
p.christias at noc.ntua.gr
Thu Jul 25 16:16:27 UTC 2013
On 25/7/2013 4:33 μμ, Tijl Coosemans wrote:
> On Thu, 25 Jul 2013 00:58:12 +0300 Panagiotis Christias wrote:
>> in my servers I add all global and per port build options in the
>> /etc/make.conf file, like this:
>>
>> # Global options
>> WITHOUT_NLS=yes
>> [etc..]
>>
>> # Per port options
>> .if $(.CURDIR:M*/mail/mailman)
>> mailman_SET+=MTA SENDMAIL NLS
>> .endif
>>
>> .if $(.CURDIR:M*/sysutils/coreutils)
>> coreutils_SET+=NLS
>> .endif
>>
>> [etc..]
>>
>> In the above example, I was under the impression that
>> "mailman_SET+=NLS" or "coreutils_SET+=NLS" options would override
>> the global WITHOUT_NLS=yes definition but according to "make
>> showconfig" I was wrong.
>>
>> Is this the correct behavior? To me at least it doesn't seem right.
>>
>> To make things even more weird the following configuration works as
>> expected:
>>
>> # Global options
>> WITHOUT_NLS=yes
>>
>> # Per port options
>> .if $(.CURDIR:M*/mail/mailman)
>> mailman_SET+=MTA SENDMAIL
>> OPTIONS_FILE_SET+=NLS
>> .endif
>>
>> .if $(.CURDIR:M*/sysutils/coreutils)
>> OPTIONS_FILE_SET+=NLS
>> .endif
>>
>> That is, OPTIONS_FILE_SET+=NLS takes precedence over WITHOUT_NLS=yes
>> but {UNIQUENAME}_SET+=NLS doesn't.
>
> WITH_* and WITHOUT_* style variables are still supported for backward
> compatibility but they are deprecated. There's some documentation in
> Mk/bsd.options.mk on how to set options in make.conf and in what order
> all option lists are processed. In your case you can do something like
> this:
>
> # Global options
> OPTIONS_UNSET=NLS
>
> # Per port options
> mail_mailman_SET=MTA SENDMAIL NLS
> sysutils_coreutils_SET=NLS
Great info! Everything looks clearer now.
Thank you,
Panagiotis
--
Panagiotis J. Christias Network Management Center
p.christias at noc.ntua.gr National Technical Univ. of Athens, GREECE
More information about the freebsd-ports
mailing list