[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
MinGW compatibility issues and solutions
From: |
Christian Gudrian |
Subject: |
MinGW compatibility issues and solutions |
Date: |
Fri, 27 May 2005 18:03:04 +0200 |
User-agent: |
Hamster-Pg/1.22.2.0 |
Symptoms:
I've encountered (and resolved) some problems building Emacs in an
MinGW environment under Windows XP. Since I don't know if Emacs is
supposed to compile in such an environment at all this might not
actually a bug. :)
However this information might be useful for one or the other.
1. loaddefs.el does not get updated during the bootstrap process.
Cause: GNU make's $(CURDIR) variable contains a path in MinGW
format (e.g. /d/emacs/src/lisp). Emacs expects a path in DOS
format with backslashes replaced by slashes
(e.g. d:/emacs/src/lisp).
Resolution: when creating loaddefs.el only the filename is given.
Since Emacs is called from within the destination directory,
loaddefs.el is created in the proper location anyway.
2. Bootstrapping fails.
Cause: byte compilation of lisp/url/vc-dav.el requires the
documentation file DOC which is not present at that time of the
build process.
Resolution: before byte compiling the lisp files a preliminary DOC
file is created by executing "make DOC" in the lib-src
subdirectory. The file is then copied to a location in which it is
found during further compilation.
3. Calls to DOS style batch files fail.
Cause: The MSYS shell is not capable of running DOS style batch
files.
Resolution: call the batch files via the command line interpreter
cmd.
These are the changes I have made. After these modifications Emacs
can be built from an MSYS shell prompt like this:
cmd /c configure.bat <options as required>
make bootstrap
make
make install
######################################################################
Index: lib-src/makefile.w32-in
===================================================================
RCS file: /cvsroot/emacs/emacs/lib-src/makefile.w32-in,v
retrieving revision 2.32
diff -u -r2.32 makefile.w32-in
--- lib-src/makefile.w32-in 9 Nov 2004 08:18:58 -0000 2.32
+++ lib-src/makefile.w32-in 27 May 2005 08:59:38 -0000
@@ -254,6 +254,7 @@
"$(THISDIR)/$(BLD)/make-docfile" -a $(DOC) -d ../src $(lisp1)
"$(THISDIR)/$(BLD)/make-docfile" -a $(DOC) -d ../src $(lisp2)
$(CP) $(DOC) ../etc/DOC-X
+ $(CP) $(DOC) ../etc/DOC
- mkdir "../src/$(OBJDIR)"
- mkdir "../src/$(OBJDIR)/etc"
$(CP) $(DOC) ../src/$(OBJDIR)/etc/DOC-X
Index: lisp/makefile.w32-in
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/makefile.w32-in,v
retrieving revision 1.41
diff -u -r1.41 makefile.w32-in
--- lisp/makefile.w32-in 13 Apr 2005 09:44:52 -0000 1.41
+++ lisp/makefile.w32-in 27 May 2005 08:59:38 -0000
@@ -152,7 +152,7 @@
--eval $(ARGQUOTE)(setq find-file-hook nil \
find-file-suppress-same-file-warnings t \
generated-autoload-file \
- $(DQUOTE)$(lisp)/loaddefs.el$(DQUOTE))$(ARGQUOTE) \
+ $(DQUOTE)loaddefs.el$(DQUOTE))$(ARGQUOTE) \
-f batch-update-autoloads $(lisp) $(WINS)
subdirs.el:
Index: man/makefile.w32-in
===================================================================
RCS file: /cvsroot/emacs/emacs/man/makefile.w32-in,v
retrieving revision 1.17
diff -u -r1.17 makefile.w32-in
--- man/makefile.w32-in 9 Dec 2004 01:54:47 -0000 1.17
+++ man/makefile.w32-in 27 May 2005 08:59:38 -0000
@@ -30,7 +30,7 @@
# The makeinfo program is part of the Texinfo distribution.
MAKEINFO = makeinfo
-MULTI_INSTALL_INFO = $(srcdir)\..\nt\multi-install-info.bat
+MULTI_INSTALL_INFO = $(srcdir)\\..\\nt\\multi-install-info.bat
INFO_TARGETS = $(infodir)/emacs $(infodir)/ccmode \
$(infodir)/cl $(infodir)/dired-x \
$(infodir)/ediff $(infodir)/forms \
@@ -114,7 +114,7 @@
$(srcdir)/kmacro.texi
info: $(INFO_TARGETS)
- $(MULTI_INSTALL_INFO) --info-dir=$(infodir) $(INFO_TARGETS)
+ cmd /c "$(MULTI_INSTALL_INFO) --info-dir=$(infodir) $(INFO_TARGETS)"
dvi: $(DVI_TARGETS)
Index: nt/makefile.w32-in
===================================================================
RCS file: /cvsroot/emacs/emacs/nt/makefile.w32-in,v
retrieving revision 1.25
diff -u -r1.25 makefile.w32-in
--- nt/makefile.w32-in 24 Jul 2004 04:52:27 -0000 1.25
+++ nt/makefile.w32-in 27 May 2005 09:43:18 -0000
@@ -135,6 +135,7 @@
$(MAKE) $(MFLAGS) clean
cd ..\lib-src
$(MAKE) $(MFLAGS) clean
+ $(MAKE) $(MFLAGS) DOC
cd ..\src
$(MAKE) $(MFLAGS) bootstrap
$(MAKE) $(MFLAGS) bootstrap-clean
@@ -148,6 +149,7 @@
$(MAKE) $(MFLAGS) -C ../lisp bootstrap-clean
$(MAKE) $(MFLAGS) -C ../src clean
$(MAKE) $(MFLAGS) -C ../lib-src clean
+ $(MAKE) $(MFLAGS) -C ../lib-src DOC
$(MAKE) $(MFLAGS) -C ../src bootstrap
$(MAKE) $(MFLAGS) -C ../src bootstrap-clean
$(MAKE) $(MFLAGS) -C ../lisp bootstrap
@@ -179,7 +181,7 @@
- $(CP) $(BLD)/ddeclient.exe $(INSTALL_DIR)/bin
- $(CP) $(BLD)/cmdproxy.exe $(INSTALL_DIR)/bin
- $(CP) $(BLD)/runemacs.exe $(INSTALL_DIR)/bin
- - "$(INSTALL_DIR)/bin/addpm" /q
+ - cmd /c '"$(INSTALL_DIR)/bin/addpm" /q'
- $(DEL) ../same-dir.tst
- $(DEL) $(INSTALL_DIR)/same-dir.tst
echo SameDirTest > "$(INSTALL_DIR)/same-dir.tst"
######################################################################
In GNU Emacs 22.0.50.1 (i386-mingw-nt5.0.2195)
of 2005-05-27 on UNDECIMUS
Distributor `Microsoft Corp.', version 5.0.2195
configured using `configure --with-gcc (3.4)'
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: DEU
locale-coding-system: cp1252
default-enable-multibyte-characters: t
Major mode: Lisp Interaction
Minor modes in effect:
TeX-PDF-mode: t
TeX-source-specials-mode: t
recentf-mode: t
show-paren-mode: t
tool-bar-mode: t
encoded-kbd-mode: t
mouse-wheel-mode: t
tooltip-mode: t
auto-compression-mode: t
menu-bar-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
unify-8859-on-encoding-mode: t
utf-translate-cjk-mode: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
next-error-follow-minor-mode: Fol
Recent input:
M-x r e ΓΌ <backspace> p <tab> o r <tab> <return>
Recent messages:
Loading advice...done
Loading ~/.emacs-custom...done
Loading regexp-opt...done
Loading edmacro...done
Loading easy-mmode...done
Loading font-lock...done
Loading jit-lock...done
For information about the GNU Project and its goals, type C-h C-p.
Making completion list...
Loading emacsbug...done
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- MinGW compatibility issues and solutions,
Christian Gudrian <=