From: Dmitry Potapov Date: Fri, 17 Apr 2009 17:24:51 GMT Subject: Re: integrating make and git Message-ID: <37fcd2780904171024v1b65d621q2725858e76358c36@mail.gmail.com> In-Reply-To: <8763h5qazf.fsf@krank.kagedal.org> On Thu, Apr 16, 2009 at 12:05 PM, David Kågedal wrote: > Ben Jackson writes: > >> E R gmail.com> writes: >> >>> Now suppose that making 'lib1' only depends on the source code in a >>> certain directory. The idea is to associate the hash of the source >>> directory for lib1 with its the derived files. Make can check this to >>> determine if the component really needs to be rebuilt. >> >> ClearCase has "wink-ins" which are very much like this.  It knows that a given >> object was produced from a certain set of sources with a particular command. >> When someone wants to recreate that object (not even necessarily the original >> builder) it can "wink in" the result.  Typically a brand new "view" (a ClearCase >> working directory) build will consist of winking in a ton of objects rather than >> building anything.  I'm not sure how much of this is due to cleverness in >> clearmake and how much is due to the view being implemented as a virtual >> filesystem (which can see every repository file being read as part of a build). > > It very much depends on implementing its own file system, since it > otherwise would have no idea what the *real* build dependencies are. Not necessary... You can use LD_PRELOAD to intercept 'open' (and all needed syscalls), but it works only on those platforms where LD_PRELOAD is supported. IIRC, there was some tool that did this, but I have never used it. I am pretty happy with ccache :) Dmitry