Globbing can inadvertently lead to unwanted files being compiled/distributed/deleted/whatever. If you accidentally delete a source file, make won't complain because it won't know.
I've played around a bit with an approach to globbing that solves (in some sense) both problems you've cited. Builds work by globbing. Thus, while I'm engaged in heavy program editting (e.g. directory restructuring, code factoring), I just use a nice directory editor and change the source tree freely, not having to worry about updating makefiles. At the same time, I can periodically take an "inventory" of the tree and compare that to a "canonical inventory" -- which tells me what renames have taken place and what files have been added and deleted. With that approach, I'm _stil_ maintaining an explicit list of files, but with a few advantages: 1) It's a separate task from Makefile maintenance: it doesn't slow down the edit/compile/debug cycle. 2) There is automation to assist building and checking the inventory list. -t