On 6/10/09, Stephan Beal <[email protected]> wrote: > Also my opinion. On a related note, my major gripe with Alpha builds: > i come from the school of thought which (strongly) believes that a > change to a Makefile requires a rebuild of all targets controlled by > the Makefile, for the simple reason that the Makefile controls all > options sent to the compiler. If the Makefile changes, compile > flags/options might have changed, and not doing a full rebuild can > lead to difficult-to-find bugs which mysteriously disappear when "make > clean; make all" is run (because a -DFOO=3 was changed to -DFOO=4). In > an Alpha build this school of thought suffers considerably unless the > whole project builds in a trivial amount of time (say, less than 10 > seconds).
I definitely agree that changing command lines need to be taken into account. Though, I also think it is important to support renaming or removing files and targets. In my experience, I've not come across a make setup that can handle these cases properly. > While RMCH makes some interesting points, i'm of the opinion that a > properly constructed recursive make is still the best general-purpose > way to structure most trees. (Let's not forget that "general purpose" > anything will always outperform specialized solutions for particular > cases.) Once a top-level build is done, subdirs can be built very > quickly, and trees can (in my experience) be structured so that the > build makes it impossible to have circular references between modules > in the source tree (as they are as problematic to the build process as > they are philosophically troubling). i'll spare you all my long-winded > evangelism, but this topic is one i can certainly go on about for a > while. The issue I always run into these setups is I never know which subdirs I need to cd to in order to run make (and still get a correctly running program). Although I may be able to do that for projects I write, I'm lost if I try to do that with another project, like if I want to test a patch against wine or firefox. If you have a good solution for that, I'd like to know! -Mike _______________________________________________ Help-make mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-make
