emacs-devel
[Top][All Lists]
Advanced

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

RE: Two problems of building Emacs on windows


From: Herbert Euler
Subject: RE: Two problems of building Emacs on windows
Date: Fri, 19 Oct 2007 20:04:46 +0800

> > 2. On `buildobj.lst'.
> >
> > Because the different building directories arrangement on Windows,
> > `buildobj.lst' can't be found correctly when the executable emacs.exe
> > is dumped.  It is in the `etc' directory on GNU/Linux for example, but
> > not there on Windows.

> Why do you need this file after Emacs is dumped?

Sure I don't need it after Emacs is dumped.  The problem is that I
can't dump it.  Let me explain it more precisely.

At least in my building, the C parts of Emacs is built in
$(OBJDIR)/$(ARCH), i.e. src/oo-spd/i386.  Then the file DOC-X is put
into $(OBJDIR)/etc, i.e. src/oo-spd/etc.  The file buildobj.lst is in
src/oo-spd/i386.  There is only one file, DOC-X, in src/oo-spd/etc.

Dumping Emacs requires buildobj.lst, and it should be in some
directory named `etc'.  This directory could be the top-level etc
directory in the source code, or where the C parts is actually built
(e.g. src/oo-spd/etc), depends on the value of `doc-directory' (please
see the definition of Snarf-documentation, which does the job of
reading "buildobj.lst").  Unfornately, buildobj.lst is in neither of
these directories.

But just copying it to src/oo-spd/etc is not sufficient.

In the building process, `doc-directory' should be re-computed in
time, but not use the value in nt/paths.h.  The code that computes
this variable is in `init_callproc' in callproc.c.  As we can see, it
will be re-computed only when `installation-directory' is non-nil,
which is changed to a non-nil value in `init_cmdargs' in emacs.c in
some cases.  But there is a prerequisite on that: the building
directory must contains both `lib-src' as well as `etc' in its parent
directory, and the existence of `lib-src' is tested before `etc'.  If
`lib-src' does not exist, then `installation-directory' is nil, no
matter whether `etc' exists in that directory (`init_cmdargs' in
main.c).

In my building, there is only src/oo-spd/etc, so in addition to
copying buildobj.lst from src/oo-spd/i386 to src/oo-spd/etc, I have to
create src/oo-spd/lib-src as well.

Btw, is it because I did not build Emacs in a standard way so I
encounter these errors?

Regards,
Guanpeng Xu

Connect to the next generation of MSN Messenger  Get it now!

reply via email to

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