After several months on my TODO-list, I finally pulled myself together and rewrote some of the ideas for the ports infrastructure in a bit more readable english, instead “only I need to read and understand this”, and SGMLify it for the webpage with some help from joel@. See the result here.
Nothing better than to take some of my own medicine, so I started working on one of the items on the list immediately. The use of USE_* and WITH(OUT)_* is quite a mess throughout the tree and could do with a bit of a cleanup. USE_* macros can only be defined internally to the ports infrastructure, not by ports themselves where WITH_* should be used. Looking through the tree, I found several cases of misspelling, which were easy to fix (USE_GNAKE, PREFIY, etc.) There were also a number of cases where macros were called that never existed (USE_PERL=USE_PERL5(_BUILD|_RUN), USE_GZIP) and some experimental macros that never made it into the tree (USE_GPG). The list of suspicious entries already is a lot lower than when I started, and next in line will be fixing the abuse of WITH_* in the ports themselves.