Subject: Re: install-if-change?
To: Jason Thorpe <thorpej@nas.nasa.gov>
From: Michael L. VanLoon -- HeadCandy.com <michaelv@HeadCandy.com>
List: current-users
Date: 07/06/1996 23:13:38
>On Sun, 7 Jul 1996 00:31:52 GMT
> christos@deshaw.com (Christos Zoulas) wrote:
>
> > I'd like to see is make rules that check if the target is newer.
>
>To me, this isn't nearly as important as checking that the target is
>_different_. One thing I'd like, is to be able to avoid a re-link of
>_everything_ when building the world, even if the C library doesn't
>change (though make install in lib/libc will update the timestamp on the
>library...)
>
>Checking that the target is newer will break if one, for example, touches
>libc after building it ... distaster strikes if libc actually needs to be
>reinstalled...
I really had a problem with this, once upon a time, when I was running
a 386 with 5MB of RAM. It literally took three days to do a complete
clean make world.
One problem I faced was that install may install a library that is
actually *the* *same* library that is in /usr/lib/, but the
modification time changes to the install time, so everything
referencing that library relinks anyway.
The change I made was to add a flag that made install keep the
time/date on the file it was installing (like cp -p). This saved me a
*lot* of time on that slow machine, since if the lib hadn't changed,
but had only been installed again from the previous build, the
time/datestamp wouldn't change, and the build system wouldn't try to
relink every program.
Someone, who shall remain nameless, thought it was a useless
cluttering of install. So it never got any serious attention by
anyone but me. Since then I had gotten a much faster machine, so
didn't need this optimization so much. Since it was a hastle to
repatch install every time sup brought down new sources, I lost the
patch.
However, if someone thought this was at all interesting, the extra
code should be pretty simple to recreate. It wasn't terribly complex.
-----------------------------------------------------------------------------
Michael L. VanLoon michaelv@HeadCandy.com
--< Free your mind and your machine -- NetBSD free un*x >--
NetBSD working ports: 386+PC, Mac 68k, Amiga, Atari 68k, HP300, Sun3,
Sun4/4c/4m, DEC MIPS, DEC Alpha, PC532, VAX, MVME68k, arm32...
NetBSD ports in progress: PICA, others...
Roll your own Internet access -- Seattle People's Internet cooperative.
If you're in the Seattle area, ask me how.
-----------------------------------------------------------------------------