[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Path Problem When Emacs21 Built with Cygwin
From: |
David Ponce |
Subject: |
Re: Path Problem When Emacs21 Built with Cygwin |
Date: |
Sat, 10 Nov 2001 12:27:16 +0100 |
Hello,
I ran into this problem too when I built Emacs 21.1.50 from CVS using
the mingw gcc compiler included in cygwin tools.
In this case make (cygwin tool) convert all windows style pathes into
cygwin style ones (c:/emacs -> /cygdrive/c/emacs). But as Emacs is a
native windows application it does not understand such pathes and fails
during phases were make pass such pathes to it. That is during Lisp
compilation activity (EMACSLOADPATH for example).
I found a simple workaround to that :)
I created a windows "c:\opt" directory which I mounted as /opt in
cygwin! And installed Emacs in it as /opt/emacs.
So when Emacs refers to c:/opt and cygwin refers to /opt they are
actually talking about the same directory!
Hope this will help.
David
Yong LU wrote:
>
> On Sat, Nov 10, 2001 at 10:16:18AM +0200, Eli Zaretskii wrote:
> > > From: Yong LU <lyongu@ailab.pku.edu.cn>
> > > Date: Sat, 10 Nov 2001 06:45:12 +0800
> > >
> > > This problem happens when building emacs 21.1.50 and leim with Cygwin.
> > > After Emacs binary has been built, it goes into the leim directory
> > > to compile lisp sources. But since Cygwin maps all drive letters
> > > to things like "/cygdrive/x", where x is the drive, Emacs fail to
> > > load the libraries as the path in makefile is wrong.
> >
> > Sorry, I don't get it: did you build Emacs as a Cygwin application,
> > not as a MinGW application? That is, does Emacs use CYGWIN1.DLL when
> > it runs, rather than the stock Microsoft CRTDLL.DLL?
>
> The emacs binary doesn't use cygwin1.dll.
>
> >
> > If you built a Cygwin app, it won't work: Emacs doesn't yet support
> > such a build.
> >
> > If you built a MinGW application, I don't understand how does the
> > /cygdrive/u/ thingy gets in your way: Emacs should not see such
> > names. And it looks like it indeed doesn't see them:
> >
> > > $ make - --unix -C ../leim all
> > > [Please ignore a syntax error on the next line - it is intentional]
> > > Syntax error: Unterminated quoted string
> > > make: Entering directory `/cygdrive/u/lyongu/emacs21/emacs-21.1.50/leim'
> > > "./../src/oo-spd/i386/emacs.exe" -batch --no-init-file --no-site-file
> > > --multibyte -l
> > > u:/lyongu/emacs21/emacs-21.1.50/lisp/international/titdic-cnv \
> > > --eval '(batch-titdic-convert t)' \
> > > -dir quail ./CXTERM-DIC
> > > Converting u:/lyongu/emacs21/emacs-21.1.50/nt/CXTERM-DIC to
> > > quail-package...
> > > Opening input file: no such file or directory,
> > > u:/lyongu/emacs21/emacs-21.1.50/nt/CXTERM-DIC
> > > Signal 127
> > > make: *** [quail/CCDOSPY.elc] Error 255
> > > make: Leaving directory `/cygdrive/u/lyongu/emacs21/emacs-21.1.50/leim'
> >
> > See? the only part here that mentions /cygdrive/u/lyongu/emacs21/emacs-21
> > is the Cygwin port of Make. Once Emacs is invoked, it is passed the
> > usual u:/lyongu/emacs21/emacs-21 file names. Even the error message
> > mentions the Windows-style file name with a drive letter. So why did
> > you think that /cygdrive/u/ is the problem here?
> >
>
> I should have made it clearer. I have fixed the path name by hand
> and what you see here is the result after the fix. The original
> command issued by make is something like this:
> "./../src/oo-spd/i386/emacs.exe" -batch --no-init-file --no-site-file
> --multibyte
> -l /cygdrive/u/lyongu/emacs21/emacs-21.1.50/lisp/international/titdic-cnv
> \
> --eval '(batch-titdic-convert t)' \
> -dir quail ./CXTERM-DIC
>
> And emacs complains about not finding "/cygdrive/u/lyongu/...".
>
> > I'd rather think that the problem is here:
> >
> > > Converting u:/lyongu/emacs21/emacs-21.1.50/nt/CXTERM-DIC to
> > > quail-package...
> > ^^^^
> > This is a wrong file name: it should have been this:
> >
> > u:/lyongu/emacs21/emacs-21.1.50/leim/CXTERM-DIC
> > ^^^^^^
>
> Yes, that's just what I wanted to say. The file name is wrong. But it
> should not be so, since it's executed by "make - --unix -C ../leim all".
> The -C command line tells make to change directory before executing any
> subsequent commands.
>
> > This seems to indicate that "./CXTERM-DIC" is somehow interpreted
> > relative to u:/lyongu/emacs21/emacs-21.1.50/nt, not to the directory
> > into which Make have just switches, as this line shows:
> >
> > > make: Entering directory `/cygdrive/u/lyongu/emacs21/emacs-21.1.50/leim'
> >
> > Could you please look closer and try to figure out why did Emacs use
> > a wrong file name?
>
> I don't know where to look for possible problems. How can I ask emacs to
> print
> out what it's doing in batch mode?
>
> Yong
- Path Problem When Emacs21 Built with Cygwin, Yong LU, 2001/11/09
- Re: Path Problem When Emacs21 Built with Cygwin, Eli Zaretskii, 2001/11/10
- Re: Path Problem When Emacs21 Built with Cygwin, Yong LU, 2001/11/10
- Re: Path Problem When Emacs21 Built with Cygwin, Eli Zaretskii, 2001/11/10
- Re: Path Problem When Emacs21 Built with Cygwin, Yong LU, 2001/11/10
- Re: Path Problem When Emacs21 Built with Cygwin, Eli Zaretskii, 2001/11/10
- Re: Path Problem When Emacs21 Built with Cygwin, Yong LU, 2001/11/10
- Re: Path Problem When Emacs21 Built with Cygwin, Eli Zaretskii, 2001/11/11
- Re: Path Problem When Emacs21 Built with Cygwin, Yong LU, 2001/11/11
- Re: Path Problem When Emacs21 Built with Cygwin, Jason Rumney, 2001/11/10
Re: Path Problem When Emacs21 Built with Cygwin, Jason Rumney, 2001/11/16