[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
CVS Emacs cygwin build problem.
From: |
Steven Wu |
Subject: |
CVS Emacs cygwin build problem. |
Date: |
Thu, 18 May 2006 23:47:37 -0700 |
If building CVS Emacs on cygwin platform, a problem may occur, and
the message looks like:
===
make[1]: Entering directory `/cygdrive/c/dev/emacs-src/emacs/lisp'
/cygdrive/c/dev/emacs-src/emacs/lisp/../update-subdirs /cygdrive/c/
dev/emacs-src/emacs/lisp; \
for file in calc calendar emacs-lisp emulation eshell gnus
international language mail mh-e net obsolete play progmodes term
textmodes toolbar url; do \
/cygdrive/c/dev/emacs-src/emacs/lisp/../update-subdirs $file; \
done;
Directories: calc calendar emacs-lisp emulation eshell gnus
international language mail mh-e net obsolete play progmodes
term textmodes toolbar url
"./../bin/emacs.exe" -batch --no-init-file --no-site-file --multibyte
-l autoload \
--eval '(setq find-file-hook nil \
find-file-suppress-same-file-warnings t \
generated-autoload-file \
"/cygdrive/c/dev/emacs-src/emacs/lisp/loaddefs.el")' \
-f batch-update-autoloads /cygdrive/c/dev/emacs-src/emacs/lisp calc
calendar emacs-lisp emulation eshell gnus in
ternational language mail mh-e net obsolete play progmodes term
textmodes toolbar url
Cannot open load file: encoded-kb
Signal 127
make[1]: *** [autoloads] Error 255
make[1]: Leaving directory `/cygdrive/c/dev/emacs-src/emacs/lisp'
===
This only happens to cygwin, but not MinGW or Visual Studio build.
The problem is that the default make mode for make 3.80, which comes
with the std cygwin distribution, is Unix mode. Hence, the paths of
directories and files known to make are in Unix form. During the
compilation of c code, there is no problem because cygwin gcc
understand cygwin path. However when bootstrapping the elisp files,
things are different.
In the emacs/lisp/makefile.w32-in, line 30
lisp = $(CURDIR)
here lisp is set to the current directory. For nmake, or minGW make,
this $(CURDIR) is window path. For cygwin, this is cygwin unix-like
path. Because Emacs isn't compiled with cygwin libraries, Emacs
doesn't understand cygwin path, and hence it cannot load the encoded-kb.
The fix for this is to change lisp=$(shell cygpath -m $(CURDIR)).
Condition like the cygwin test can be added to guard this.
Similar changes is also needed for leim directory.
steve
- CVS Emacs cygwin build problem.,
Steven Wu <=
- Re: CVS Emacs cygwin build problem., Jason Rumney, 2006/05/19
- Re: CVS Emacs cygwin build problem., Eli Zaretskii, 2006/05/19
- Re: CVS Emacs cygwin build problem., Steven Wu, 2006/05/19
- Re: CVS Emacs cygwin build problem., Eli Zaretskii, 2006/05/19
- Re: CVS Emacs cygwin build problem., Steven Wu, 2006/05/19
- Re: CVS Emacs cygwin build problem., Jason Rumney, 2006/05/20
- Re: CVS Emacs cygwin build problem., Steven Wu, 2006/05/20
- Re: CVS Emacs cygwin build problem., Jason Rumney, 2006/05/20
- Re: CVS Emacs cygwin build problem., Eli Zaretskii, 2006/05/20