On Fri, Jun 21, 2013 at 04:02:59PM +0200, björn wrote:
> On Fri, Jun 21, 2013 at 7:46 AM,  <[email protected]> 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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to