[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Building Emacs from a new MinGW environment

From: Dani Moncayo
Subject: Re: Building Emacs from a new MinGW environment
Date: Mon, 16 Sep 2013 21:25:29 +0200

>> Mmm, but I don't see what wrong with a path like
>> "/home/dani/whatever".  It is a perfectly legitimate MSYS path (like
>> "/c/msys/home/dani/whatever" or "c:/msys/home/dani/whatever"), isn't
>> it?
> It is, as long as it is used by MSYS programs.  But it is not
> legitimate when it is passed to MinGW Emacs, because Emacs will not
> find this directory.  Which is exactly what happens in your case.

I see.  But then, why doesn't the configure/build process make the
translation when needed?  That would remove this limitation.

I think I'm not doing anything extraordinary: just move to the build
directory with "cd emacs/build" (which is the easier way to specify
that path) and then invoking to the MSYS configure script with a
relative path (which again is the easier way of doing that).

If that "automatic translation" is difficult to implement, then I
think that Emacs at least should document the limitation (in
"nt/INSTALL") and also add some check to the configure script in order
to catch this use-case and stop the process with a helpful message.

>> Why that should be the culprit of the lack of expansion of "%emacs_dir%"?
> Expansion of %emacs_dir% is not the issue here, contrary to what I
> originally thought and wrote.  The issue is that temacs does not find
> the etc directory where it should, because temacs is a MinGW program,
> and doesn't know about the MSYS '/' magic.  That is why MSYS file
> names such as /home/dani/whatever should never end up in src/epaths.h.

Ok, but see below: the nicer solution would be IMO to automate this
translation of paths when necessary.

>> If you look at that code, you'll see that the "srcdir" variable can be
>> updated with either (a) the output of the "pwd" or (b) the contents of
>> the PWD variable.  But if I try those options in my MSYS bash, both
>> give me the same MSYS path "/home/dani/emacs/emacs.git".
> In my case, pwd gives an absolute /d/foo/bar file name.  It does that
> even if I chdir to a directory below the MSYS root, _provided_ that I
> use an absolute file name when I chdir (/usr is mounted on D:/usr/MSYS
> in my case):
>  $ cd /d/usr/MSYS && pwd
>  /d/usr/MSYS
>  $ cd /usr && pwd
>  /usr

Of course.  These are two _different_ paths which happen to refer to
the same directory.

>> Perhaps the key factor here is the fact that, in my case, the
>> directory holding the source code is inside the MSYS tree (under my
>> MSYS "home" directory).
> Are you saying that the previous builds, which worked, were not under
> the MSYS home directory?  If they were, then why the builds started
> failing?

No, in the previous build, both the source and build directories were
outside from the MSYS tree (under "c:\emacs").  That's why I didn't
experience this problem then.

>> I guess that in your case that directory is outside the MSYS tree,
>> so that its absolute path in MSYS has necessarily the form
>> "/X/some/dir" (where X is the letter of some windows drive).
> Yes, I build outside of the MSYS hierarchy.  But does this explain why
> your builds stopped working after whatever happened to your MinGW
> installation?

Yes.  As we have seen, the "%emacs_dir%" problem is related to the way
you reference the MSYS configure script: If you use a "long" path
("/c/msys/home/...) then the problem doesn't crop up, but if you
either (a) use a "short" path ("/home/...") or (b) use a relative path
_and_ the current directory is "short", then the problem does arise.

Dani Moncayo

reply via email to

[Prev in Thread] Current Thread [Next in Thread]