[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: incremental make install
From: |
Bob Rossi |
Subject: |
Re: incremental make install |
Date: |
Thu, 22 Jan 2009 11:41:59 -0500 |
User-agent: |
Mutt/1.5.17+20080114 (2008-01-14) |
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