Most build's "clean" don't clean completely.

Like the maid that doesn't do windows, clean targets get rid of most files you built from source. The get rid of most of them. The reason is most build scripts don't force us to put the resulting artifacts out side of the source-related folders.

A true clean should delete itself as it deletes the folder and re-create the source-related folders with the need to rely on "magic" lines like "rm *.o"

http://www.cmcrossroads.com/content/view/10378/120/ is what made me think of that.