[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: incremental make install

From: Warren Young
Subject: Re: incremental make install
Date: Thu, 22 Jan 2009 09:34:52 -0700
User-agent: Thunderbird (Windows/20081209)

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.

- 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.

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.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]