Loading ...
Sorry, an error occurred while loading the content.

13784Re: make distclean fails to remove src/config.cache

Expand Messages
  • dv1445@...
    Jun 21, 2013
      On Fri, Jun 21, 2013 at 04:02:59PM +0200, björn wrote:
      > On Fri, Jun 21, 2013 at 7:46 AM, <dv1445@...> wrote:
      > > On Tue, Jun 18, 2013 at 09:27:17PM +0200, björn wrote:
      > >> On Thu, Jun 13, 2013 at 9:55 PM, wrote:
      > >> > On Mon, May 27, 2013 at 01:10:58PM -0400, wrote:
      > >> >> On 05/27/13 at 10:46:11 -0400 gmn wrote:
      > >> >> > In my opinion, whatever scripts in MacVim that control this ought to
      > >> >> > be changed so that the result matches BramVim, and config.cache
      > >> >> > files will go in src/auto rather than just src. That way, "make
      > >> >> > distclean" in a MacVim repo will in fact clean them.
      > >> >>
      > >> >> That is to say, *if* it is easy to do so, then the relevant scripts
      > >> >> ought to be changed so that blah blah.
      > >> >>
      > >> >> (Or perhaps 'make distclean' can be patched to also obliterate any
      > >> >> existing src/config.cache)
      > >> >>
      > >> >> If it isn't an easy thing, just forget it. I can deal with it.
      > >> >
      > >> > Hi Björn,
      > >> >
      > >> > Although I discovered how to trigger the issue, I don't know what causes
      > >> > it. I don't know enough about makefiles or confiure scripts to wade
      > >> > through the difference between those of MacVim and those of BramVim. So
      > >> > I propose modifying, in MacVim, src/Makefile according the the below
      > >> > diff.
      > >> >
      > >> > The line two lines above my added one is doing almost nothing at all,
      > >> > because the files auto/config.{status,log,cache} are never created by
      > >> > MacVim as far as I can see:
      > >> >
      > >> > ** If I call './configure -C', they get put in src/, which is what
      > >> > generated this bug-reporting thread.
      > >> >
      > >> > ** If on the other hand I call plain './configure', then no caches are
      > >> > created, so there's nothing for that line of the Makefile to destroy.
      > >> >
      > >> > ** If I call './configure --cache-file=src/auto/config.cache (which
      > >> > './configure --help tells me is kosher), then no config.cache is put
      > >> > *anywhere*, and config.{log,status} are put straight into src/ where
      > >> > the latter won't get wiped out by 'make distclean'.
      > >> >
      > >> > Therefore I propose leaving that line in place (since it's doing no
      > >> > harm), but adding one that allows 'make distclean' to destroy
      > >> > 'src/config.{cache,log,status}'. I tested this locally and it seems to
      > >> > work. Thus 'make distclean' will destroy the things it's supposed to
      > >> > destroy.
      > >>
      > >> I think it would be better to figure out why there is a difference
      > >> instead of blindly patching. I don't know what causes it though, so I
      > >> can't help.
      > >
      > > Hi Björn,
      > >
      > > I think I've found out why MacVim is putting config.cache (et. al.) in
      > > the "wrong" place (which is itself why 'make distclean' isn't seeking
      > > and destroying those files).
      > >
      > > Could it be because MacVim has TWO 'configure' files of substance, while
      > > BramVim only has one?
      > >
      > > In MacVim repo:
      > > 'configure' is just a tiny wrapper.
      > > 'src/configure' is "meaty".
      > > 'src/auto/configure' is even meatier (by ~175KB!!).
      > >
      > > In BramVim repo:
      > > 'configure' is just a tiny wrapper.
      > > 'src/configure' is a slightly larger wrapper.
      > > 'src/auto/configure' is meaty, about as meaty as 'src/configure' from
      > > MacVim.
      > >
      > > If, in MacVim, the meaty config script that's governing cachefile
      > > placement is the one sitting in /src, then that would explain why it's
      > > dropping config.cache right in /src (look at its line 914, see a
      > > relative path).
      > >
      > > In BramVim, the only meaty config script is in 'src/auto', so the
      > > corresponding line would dump config.cache in src/auto, right?
      > >
      > > Of further interest: BramVim's 'src/configure' appears to be calling
      > > 'src/auto/configure' with an explicit request that config.cache be left
      > > in 'src/auto'.
      > >
      > > If I am right that this is what's causing MacVim to put the files in a
      > > different place from BramVim, it seems to me that either:
      > >
      > > (a) one of MacVim's two meaty configure scripts (or both??) should be
      > > made to drop config.cache (and .log, and .status) in 'src/auto', and to
      > > know that that's where to read cached info from.
      > >
      > > Or,
      > >
      > > (b) the Makefile's 'make distclean' should be tweaked to find those
      > > files in their current location ('src/'). Of course, this needn't be
      > > done in exactly the way I proposed earlier.
      > >
      > > BTW, MacVim's 'src/configure' appears to correspond to BramVim's
      > > 'src/auto/configure'. There are many differences, but they seem to be
      > > almost all tiny differences. Also, MacVim's 'src/auto/configure'
      > > appears to be older than 'src/configure'.
      >
      > I'm sorry, but the speculation doesn't help. All I can say is that I
      > have done nothing to change the way the configure script works for
      > MacVim. There are a few (not many) changes in the configure.in
      > script, but that's it. If you figure it out, please send me a patch,
      > otherwise I can not be of much help.

      The speculation is spot on, though. I have solved this, in the sense
      that I've identified the cause and how to fix it:

      MacVim puts config.{cache,log,status} in src, because src/configure is
      NOT merely a wrapper (as it is in BramVim), so there is no special
      request to src/auto/configure to put the cache in src/auto (as there is
      in BramVim). This alone clinches that the *cache* goes in src/.

      But in addition, note that src/auto/configure TRIES to put config.log in
      explicitly src/auto (line 1496 and three other places), and
      config.status *implicitly* in src/auto (via the relative path
      ./config.status in line 19814). I say "tries", because these are
      totally ignored, and in fact it's src/configure that governs the
      placement of config.{log,status}. In fact, src/auto/configure's
      declarations for where to put *all three* files are ignored, and totally
      governed by src/configure.

      To help confirm my diagnosis and work on a patch, I ran two further
      tests:

      ONE: I moved src/configure into src/auto, overwriting the configure
      script that was there. I then copied from BramVim the wrapper
      src/configure to the same spot in MacVim. Testing revealed that all of
      config.{cache,log,status} went into src/auto. MacVim even built without
      errors. This proves it's the interplay between src/configure and
      src/auto/configure that's causing the issue.

      TWO: I went into src/configure and altered line 914 to use a prefix
      'auto/', then I made the string 'config.log' take a prefix 'auto/' in
      lines 2224, 2234, 13404, and 13996, then gave the string 'config.status'
      a prefix of 'auto/' in line 12831. In other words, I told src/configure
      to put the files into src/auto. And then that's where it in fact put
      them.

      I don't know what else you want to know before a patch of some kind is
      made.

      -gmn

      --
      --
      You received this message from the "vim_mac" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php

      ---
      You received this message because you are subscribed to the Google Groups "vim_mac" group.
      To unsubscribe from this group and stop receiving emails from it, send an email to vim_mac+unsubscribe@....
      For more options, visit https://groups.google.com/groups/opt_out.
    • Show all 18 messages in this topic