[Top][All Lists]

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

Re: Path Problem When Emacs21 Built with Cygwin

From: Yong LU
Subject: Re: Path Problem When Emacs21 Built with Cygwin
Date: Sat, 10 Nov 2001 18:04:47 +0800
User-agent: Mutt/1.2i

On Sat, Nov 10, 2001 at 10:16:18AM +0200, Eli Zaretskii wrote:
> > From: Yong LU <address@hidden>
> > 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 
    -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?


reply via email to

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