This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
Kiwi consists of a set of classes and wrappers for PyGTK that were developed
to provide a sort of framework for applications. Fully object-oriented, and
roughly Smalltalk's MVC, Kiwi provides a simple, practical way to build forms,
windows and widgets that transparently access and display your object data.
Kiwi was primarily designed to make implementing the UI for Stoq easier, and
it is released under the LGPL. Kiwi is inspired by Allen Holub's Visual Proxy.
Kiwi is a framework and a set of enhanced PyGTK widgets designed to make
building programs with graphical interfaces both easy to write and easy to
maintain. Kiwi is pure Python and should work cross-platform, but is developed
on Python 2.4, Linux ix86.