bug-gnu-emacs
[Top][All Lists]
Advanced

[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



reply via email to

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