A makefile
foo: bar
baz
Where bar and baz are a list of things. When "foo" is invoked, all of bar and baz will have to be satisfied. Some of bar might already be satisifed, in which case only parts might be run. The run order is also not defined (although largely predictable).
baz on the other hand will be executed not only always but in sequence.
Recently I have been building small software projects (prboom, my own game, freedoom, chocolate-doom, etc.) using "make -j". It appears (NOTE: confirm) that when doing this, often a lot of time is taken up with the "baz" stuff, and in debian packaging this is often a list of "dh_"-style commands.