make KNOBS

Chris H. chris# at 1command.com
Tue Feb 26 11:42:06 UTC 2008


Hello Jeremy, and thank you for your /very/ informative reply.
You rock! :)
Quoting Jeremy Chadwick <koitsu at freebsd.org>:

> On Mon, Feb 25, 2008 at 11:35:23PM -0800, Chris H. wrote:
>> But am struggling with finding the port(s) equivalent. If there isn't
>> one, I'd be more that happy to dedicate a domain/ web site solely to
>> providing this resource. Perhaps a wiki that I, and anyone else can
>> add the WITH_/WITHOUT_ options, along with descriptions of exactly
>> /what/ they provide. Seems like a /real/ valuable, and /needed/
>> resource.
>
> There is no equivalent.  Some ports allow "make showconfig" to show you
> what knobs there are, but the majority do not.  And with the OPTIONS
> framework, it deprecates the need for "showconfig" entirely.

Yes, I've noticed there are differences, and /assumed/ that this was
simply a "migration" period that would /eventually/ provide a more
consistent/robust "tuning" mechanism for the config/make process.
Just dreaming? :)

>
> Additionally, the WITH/WITHOUT variables seen in the Makefile are not
> always what they seem.  For ports that use OPTIONS, you cannot define
> these on the command-line (e.g. make WITHOUT_FRUIT=yes);
I believe that /should/ be:
WITHOUT_FRUIT=true - (true/false)
--------------^^^^
> you absolutely
> MUST do 'make config' and then toggle them there.  (This is one piece of
> the OPTIONS framework which I have always disliked, because some of us
> use /etc/make.conf to define WITH/WITHOUT variables, and prefer to do
> "cd /usr/ports/whatever && make clean && make && make install" and not
> have something interactive pop up.

May I insert a "me too" here?

>  That's for another discussion
> though...)

I'll be contributing to /that/ discussion. :)

>
> Also, there are some variables which are generally "global" across most
> ports, such as WITHOUT_IPV6.  You wouldn't want to list those off in
> every single port, because that'd be somewhat redundant.

My approach (for the most part) seems to overcome this. An example
of my final choice(s) related to our earlier Apache2 discussion:
in make.conf

.if ${.CURDIR:M*/www/apache20}
WITH_MPM=worker
WITH_KQUEUE_SUPPORT=true
WITH_AUTH_MODULES=true
WITH_DAV_MODULES=true
WITH_MISC_MODULES=true
WITH_PROXY_MODULES=true
WITH_THREADS_MODULES=true
.endif

This allows for a "per port" WITH_/WITHOUT_, somewhat eliminating the
"redundancy/ies", and let's me circumvent the "global" limitations.

>  There is no
> existing list of these "global"-like variables either, although some are
> listed in the /usr/ports/Mk/bsd.*.mk files.

Yes, I've looked to those, and /did/ find some helpful tuning KNOBS.

>
> Providing a web site listing them all off would not make much sense,
> because ports change very often/quickly (the site would become outdated
> the minute someone changes a port to add/remove a feature), and there's
> no guarantee that the maintainer of the port will go to your site and
> edit the Wiki page.

Yea, I considered this. But even so, many don't change enough to invalidate
the information that might have already been provided. It also allows
for those whom have figured out many/some of the "tuning" variables, even
though they aren't the port Author. So I felt it would/could still be a
valuable resource.

>
> Instead, I would think said effort would be better spent implementing
> the "showconfig" feature apply to all ports, and have it understand
> OPTIONS stuffs.

Agreed. I think that would be the /ultimate/ answer to this situation. :)

Once again, thank you for your informative reply.

--Chris H

>
> --
> | Jeremy Chadwick                                    jdc at parodius.com |
> | Parodius Networking                           http://www.parodius.com/ |
> | UNIX Systems Administrator                      Mountain View, CA, USA |
> | Making life hard for others since 1977.                  PGP: 4BD6C0CB |
>
>



-- 
panic: kernel trap (ignored)





More information about the freebsd-stable mailing list