[CFT+BRAINSTORM] One USE_ to rule them all
Baptiste Daroussin
bapt at FreeBSD.org
Mon Feb 4 18:19:59 UTC 2013
Hi,
I have some improvements to the ports tree to propose, and I'm looking for
testers/opinions
First let me explain:
I want to introduce a new USE_FEATURES macro into the ports tree
The goal of this macros is to be able to standardize how we call all the USE_*
things as well as creating some "load on demand" code for a corresponding
feature.
What I expect in long term is to get a more readable bsd.port.mk & friends,
meaning easier to maintain
I except some performance improvements given that make will have to parse less
things.
I also expect less complexity if bsd.*.mk code.
What will have is all/most of the code corresponding to a USE_SOMETHING right
now will endup in a Mk/features/something.mk which will be loaded only if the
ports defines:
USE_FEATURES= something
the loading is done at the very early stage of bsd.port.post.mk to allow one to
load modify USE_FEATURES depending on some options etc.
each features/*.mk is itself protected by a variable to avoid multi loading of
the same file
if a feature depends on another one the feature itself just have to ".include"
the other one.
As a proof of concept I made the following:
USE_FEATURES= gmake (with a compatibility for USE_GMAKE to allow migration)
USE_FEATURES= iconv (with a compatibility for USE_ICONV to allow migration)
USE_FEATURES= motif (with no compatibility as I have switched all the USE_MOTIF
ports to use it)
USE_FEATURES= fise (with no compatibility as I have switched all the USE_FUSE
to use it)
USE_FEATURES= display (with no compatibilify as I have switched all the
USE_DISPLAY to use it)
USE_FEATURES= pathfix (which is the equivalent of USE_GNOME= gnomehack without
the need to loading the whole bsd.gnome.mk)
The very long term goal will be to switch as much code as possible to be turn
into a feature (when it makes sens of course)
The USE_FEATURES itself:
http://people.freebsd.org/~bapt/features.diff
The modified ports for the PoC:
http://people.freebsd.org/~bapt/features-chase.diff
regards,
Bapt
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20130204/5ed0ff0e/attachment.sig>
More information about the freebsd-ports
mailing list