On Thu, Jan 22, 2009 at 09:34:52AM -0700, Warren Young wrote: > Bob Rossi wrote: >> >> I was wondering if there is an incremental make install command? (my >> make install doesn't appear to be incremental, should it be?) > > No, a Makefile's install target normally just contains a series of > commands for installing everything, without checking if it exists first. > If the install target depends on anything, it's usually basic > top-level targets like 'all'. There's no technology limit that prevents > us from making it incremental. All you'd have to do is write a rule for > every file that gets installed, and make the install target depend on > all of them. Tedious to do by hand, but automake is good at doing such > things for you. > > I suspect the reason no one's done this is a combination of inertia, > friction, and lack of enough force to push us in that direction. > > Inertia is that everyone's historically done it that way. > > Friction is that even if automake adds this today, it's going to take > years to percolate through the community, decreasing the feature's > short-term value. > > Lack of force is that there are good reasons not to do it: > > - Install doesn't take very long, in any autoconfiscated package I've > seen. A tiny fraction of the build time, most of the time, so the > effort to make things incremental goes into the build parts. Just > because you *can* do something doesn't mean it makes sense to spend the > time to do it.
It doesn't take very long for you perhaps. On my mingw configuration it takes very long. Perhaps 1-2 minutes. The executables tend to get very very large with debug enabled and the copy is slow. > - Sometimes you re-run an install to fix something you broke. It might > be possible that an incremental re-install wouldn't fix it, where a > traditional one would. Yes, you can come up with all kinds of > technology to ensure that the two are equivalent, but you can't > seriously believe this will all happen on day 1. Until then, we end up > with a Windows-like mess: people saying you have to uninstall and then > reinstall to fix a broken install. I mean, if make can use timestamps to determine if files need to be recompiled, i'm sure that would be good enough to do a reinstall? Maybe not? > You might get the impression from the above that I'm against doing this. > I'm more just listing the reasons it hasn't been done yet, and reasons > that keep people from doing it now. If none of this matters to you, get > coding and provide a patch that does this. I don't have the will or time, but, I very much appreciate your help. You have answered my question very gracefully. Bob Rossi