>>>>> "Stephan" == Stephan Beal <[email protected]> writes:
Replying to a semi-old thread... Stephan> Also my opinion. On a related note, my major gripe with Alpha builds: Stephan> i come from the school of thought which (strongly) believes that a Stephan> change to a Makefile requires a rebuild of all targets controlled by Stephan> the Makefile, for the simple reason that the Makefile controls all Stephan> options sent to the compiler. If the Makefile changes, compile Stephan> flags/options might have changed, and not doing a full rebuild can Stephan> lead to difficult-to-find bugs which mysteriously disappear when "make Stephan> clean; make all" is run (because a -DFOO=3 was changed to -DFOO=4). In Stephan> an Alpha build this school of thought suffers considerably unless the Stephan> whole project builds in a trivial amount of time (say, less than 10 Stephan> seconds). I don't think this is really an alpha/beta distinction, but instead another axis, which is what is considered a dependency. Checking dependencies on command text is possible, as is checking dependencies using file contents (as opposed to timestamps). I think there is a patch for GNU make to implement this. Also, I think these can be done currently using GNU make, though this requires weird code and is not pleasant. As for turning make into a beta system: it seems like it could be done with a small inotify-based daemon. An initial 'make' could run it and have it track relevant directories (perhaps telling it to add directories in subsequent runs). Then, make would use it as an oracle: ask it about file status and get back answers. Finally, if inotify fails, the daemon could fall back to invoking stat, meaning that make would continue working as it does now. Is there a flaw with this plan? Tom _______________________________________________ Help-make mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-make
