Add dependency calculations
Blueprints should enumerate their dependencies, either for the blueprint as a whole or by phase. When the user declares that (s)he wants something, litbuild should figure out everything that is needed and generate scripts to build everything necessary in an order that works... or weave together documentation for the entire build, if litbuild is producing documentation.
Ideally, each package description file should provide commands that can be used to determine whether the package (or a phase within the package) has already been made available. That would be a follow-on feature, probably. Then litbuild would be able to check and see what dependencies are satisfied, and remove them from the dependency tree.
Alternatively, the generated scripts could be smart enough to detect whether or not they need to run at runtime, and just return immediately if they do not. (Like the source preparation step currently does.) I'm not sure whether I like that idea better.
In some cases (e.g. the standard c library) more than one package can serve a particular purpose. How to address that?