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

[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




reply via email to

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