Describe how to define a buildsystem of binary targets, how to express dependencies between them, how to add build specifications, how to specify usage requirements, transitive and compatible propagation and the various pseudo targets.