emacs-devel
[Top][All Lists]
Advanced

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

Re: NT mingw/msys build problem


From: Lennart Borgman
Subject: Re: NT mingw/msys build problem
Date: Wed, 27 Oct 2004 11:50:42 +0200

----- Original Message ----- 
From: "Jason Rumney" <address@hidden>
To: "Guy Gascoigne-Piggford" <address@hidden>
Cc: "Emacs Devel" <address@hidden>
Sent: Tuesday, October 26, 2004 1:09 AM
Subject: Re: NT mingw/msys build problem


: Guy Gascoigne-Piggford <address@hidden> writes:
:
: > Hmm, when I try doing a "make SHELL=cmd.exe" all I get is make hanging
: > indefinately.  If I try to rename the msys /bin/sh.exe and just run
: > make then I get a slew of errors about /bin/sh not existing and then
: > make exits.
:
: I seem to recall that when I installed msys, it installed its own
: version of make and renamed the previous copy as mingw-make. I renamed
: it back, since it seems to be more reliable (but still requires the
: SHELL=cmd.exe argument).

I do not know how make works, but I can't avoid the hang when MSYS sh.exe is
in the path. The hang is caused by $(shell echo) in the make file. This does
not return since it runs "cmd echo" and that starts a new shell without
doing "echo". Actually it is bad syntax. The syntax for cmd is

  CMD [/X | /Y] [/A | /U] [/Q] [[/C | /K] string]

You have to supply /C or /K for the string command to be carried out. (At
least this is the syntax on NT4 and I believe it has not changed.)

I do not understand why the test is made. It seems like make has found sh
already but it still wonders something about "shell". Why does make do that?
It still makes the test even if SHELL=cmd.exe is given as a parameter.

I do not believe that everything can be done from with cmd.exe as the shell.
The problem that Guy found with

  "./../bin/emacs.exe" -batch --no-init-file --no-site-file --multibyte -l
  autoload \
    --eval '(setq find-file-hooks nil \
        find-file-suppress-same-file-warnings t \
        generated-autoload-file \
          "c:/dev/emacs-src/emacs/lisp/loaddefs.el")'  ...

can not be resolved unless this is rewritten in some way. cmd.exe can't
handle the parameters. The eval must be put in some temporary file that is
loaded with " -load temporary-file" to solve this. Can this be done? Does
make support doing this?

So at the moment there is actually no other way to build Emacs on ms windows
than using Cygwin as far as I can see. (And that might not be an option for
all since it is a rather big download if I remember correctly.) Both MSYS
and CMD.EXE fails because of parameter problems. (There might be some other
shell for ms windows available that solves this problem but I am not aware
of it. Someone knows?)

- Lennart





reply via email to

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