From 05eda0c97fb56983da9d98db98e30e762f9bdfdd Mon Sep 17 00:00:00 2001
From: Peter Reilly
depends
attribute, you
might think that first target C, then B and then A is executed.
Wrong! C depends on B, and B depends on A, so first A is executed, then B, then C, and finally D.
-A target gets executed only once, even when more than one target -depends on it (see the previous example).
+In a chain of dependencies stretching back from a given target such +as D above, each target gets executed only once, even when more than +one target depends on it. Thus, executing the D target will first +result in C being called, which in turn will first call B, which in +turn will first call A. After A, then B, then C have executed, +execution returns to the dependency list of D, which will not +call B and A, since they were already called in process of dependency +resolution for C and B respectively as dependencies of D. Had no such +dependencies been discovered in processing C and B, B and A would +have been executed after C in processing D's dependency list.
A target also has the ability to perform its execution if (or unless) a property has been set. This allows, for example, better control on the building process depending on the state of the system