On 26 Sep 2002, Tom Hughes wrote: > Andy Dougherty <[EMAIL PROTECTED]> wrote: > > > > The problem here is that the rule in the Makefile that causes it to > > > rerun Configure.pl if any of the Configure.pl generated files is out > > > of date clashes with the recently introduced edit to stop Configure.pl > > > updating a file that hasn't actually changed. > > > > I think that the 'recently-introduced-edit' is wrong. Make's dependency > > system requires that the stated commands actually bring something > > up-to-date. > > On the other hand, without that edit it winds up rebuilding everything > every time you run Configure, even if it doesn't have to...
Yes. That is correct expected 'make' behavior (assuming the dependencies are correctly listed). By analogy, a Makefile can also assume that cc -c foo.c will re-run the compiler, not just run it only if the compiler decides the output will change in some significant way. Yes, I know that's often annoying. I often change things where I *know* that not everything needs to be rebuilt. In those cases, I don't rely on 'make' to get it right. I manually get it right -- either by running a shell script to rebuild just what needs to be rebuilt, or by judicious use of 'touch' to pretend I rebuilt everything, or by use of cccache to speed up rebuilds, or by some other trick. These are, of course, obvious tricks, and I sometimes wish I didn't have to do them. However, the alternative is to have incorrect dependencies in the Makefile and rely on manually rebuilding everything that needs to be rebuilt. I don't think that's a good plan. -- Andy Dougherty [EMAIL PROTECTED]