On Fri, Jun 21, 2013 at 04:02:59PM +0200, bj�rn wrote:
> On Fri, Jun 21, 2013 at 7:46 AM, <
dv1...@wayne.edu> 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,
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