internal-all::because of the double colons (that is, because it is internal-all:: rather than internal-all:) this target can have multiple totally separated rules. Each rule must be a double colon rule, and is processed separately from the other rules (even if they refer to the same target).
The real rules for internal-all are included by the specific makefiles; in our example, tool.make includes
internal-all:: $(TOOL_NAME:=.all.tool.variables)now - in our case - because TOOL_NAME is decrypt, then this rule actually means
internal-all:: decrypt.all.tool.variablesThis means that to build internal-all, make has to build (at least) the decrypt.all.tool.variables target. library.make includes the completely analogous rule
internal-all:: $(LIBRARY_NAME:=.all.library.variables)which in our case means
internal-all:: libDvd.all.library.variablesThis rule is completely separated from the other one; to build internal-all, make has to build the two different targets:
decrypt.all.tool.variables libDvd.all.library.variables