ports include /etc/src.conf? i.e. graphics/libfpx

Yamaya Takashi yamayan at kbh.biglobe.ne.jp
Sun Feb 17 11:24:30 UTC 2013

On 2013/02/15 05:57, O. Hartmann wrote:
> Am 02/14/13 14:19, schrieb Yamaya Takashi:
>> On 2013/02/13 22:33, Tom Evans wrote:
>>> On Wed, Feb 13, 2013 at 12:30 PM, Yamaya Takashi
>>> <yamayan at kbh.biglobe.ne.jp> wrote:
>>>> On 2013/02/13 19:08, O. Hartmann wrote:
>>>>> Setting only base system source compiler optins in /etc/src.conf, for
>>>>> instance
>>>>> #
>>>>> CXXFLAGS+=              -stdlib=libc++
>>>>> CXXFLAGS+=              -std=c++11
>>>>> which do NOT appear in /etc/make.conf, make building port
>>>>> grahpics/libfpx complaining about unrecognized compiler options.
>>>>> As far a sI know, /etc/src.conf is ONLY for building the source tree of
>>>>> the operating system and make.conf is supposed to contain all stuff
>>>>> necessary for compiling both world and ports, but /etc/src.conf is world
>>>>> only.
>>>>> Am I wrong?
>>>>> Oliver
>>>> Yes.
>>>> Because files/Makefile.bsd includes <bsd.lib.mk>,
>>>> /etc/src.conf is included.
>>> src.conf(5) says:
>>>   The only purpose of src.conf is to control the compilation of the FreeBSD
>>>   source code, which is usually located in /usr/src.
>>> Cheers
>>> Tom
>> src.conf(5) says:
>>      The values of variables are ignored regardless of their setting;
>> even if
>>      they would be set to ``FALSE'' or ``NO''.  Just the existence of an
>>      option will cause it to be honoured by make(1).
>>      The following list provides a name and short description for variables
>>      that can be used for source builds.
>> Does it mean ONLY WITH_* and WITHOUT_* variables are allowed in
>> /etc/src.conf?
> Shortly, there was a discussion about a fully installed LLVM/CLANG and
> the portion of LLVM/CLANG, that is only needed to compile the system's
> source. In this case, a strict separartion was intended.
Not about llvm/clang.

Including /etc/src.conf has problem of conflicting world knob and
port knob.
Skipping to include /etc/src.conf by <bsd.own.mk> is needed.
It's difficult for base system.
Then <bsd.port.mk> define _WITHOUT_SRCCONF and skip
including /etc/src.conf.

But some ports include <bsd.*.mk> (exclude <bsd.port*.mk>)
has bug, because they don't define _WITHOUT_SRCCONF.

> If the manpage of /etc/src.conf says that only bool knobs are allowed
> like WITH_XXX or WITHOUT_XXX, then: where to put the options?
NOT bool, the variable is defined or not.
The options are written in /etc/make.conf

More information about the freebsd-current mailing list