Subject: Re: how to deal with USE_INET6 and BUILD_DEFS?
To: Lubomir Sedlacik <salo@Xtrmntr.org>
From: Georg Schwarz <georg.schwarz@freenet.de>
List: tech-pkg
Date: 03/04/2005 16:41:49
> > What would be the proer way of handling this?  Should it be checked
> > whether the system could at all use IPv6, and only in that case add
> > USE_INET6 to BUILD_DEFS, or add it unconditionally?
> 
> you seem to have it backwards.
> 
> system, which couldn't at all use IPv6 should not set USE_INET6.

well, they do use it, it is just that on such systems is has to be NO;
and in fact this is what mk/bsd.prefs.mk makes sure:

# if the system is IPv6-ready, compile with IPv6 support turned on.
.if defined(USE_INET6)
.  if empty(USE_INET6:M[Yy][Ee][Ss]) || defined(USE_SOCKS)
USE_INET6=              NO
.  else
PKG_DEFAULT_OPTIONS+=   inet6
USE_INET6=              YES
.  endif
.elif empty(_OPSYS_HAS_INET6:M[nN][oO]) && !defined(USE_SOCKS)
PKG_DEFAULT_OPTIONS+=   inet6
USE_INET6=              YES
.else
USE_INET6=              NO
.endif


> BUILD_DEFS should contain USE_INET6 only when it's set, BUILD_DEFS is a
> list of options the package was built with.

OK, then maybe I need to ask again to make we have the same undertanding of
BUILD_DEFS:

USE_INET6 can be either YES or NO (so for clarity I here will refer to it as
"switch").
If the way a package gets compiled depends on the setting of a switch,
should that switch (not its setting!) then be listed in BUILD_DEFS?
My understanding is yes, and it is to added independently of the setting
of that respective switch.

This is exactly what is being done for USE_INET6; c.f. e.g.
net/zebra/Makefile. However, with chat/eggdrop/Makefile things are
handled differently (and incorrectly, to my undestanding).

Now I would agree that things are different with options such as inet6
(see above), but to my knowledge these are not listed in BUILD_DEFS.

Please, if I have gotten things wrong, anyone correct me. Thanks.

Georg

-- 
Georg Schwarz    http://home.pages.de/~schwarz/
 georg.schwarz@freenet.de  +49 178 8545053