Subject: bug#2151: 23.0.90; Building the 23.0.90 pretest recompiles Lisp files

From: Eli Zaretskii <[email-masked]>
Date: Fri, 27 Feb 2009 17:02:38 +0200

> Date: Sun, 22 Feb 2009 06:07:58 +0200
> From: Eli Zaretskii <[email-masked]>
> Cc: [email-masked]
> 
> > From: Stefan Monnier <[email-masked]>
> > Cc: [email-masked]
> > Date: Sat, 21 Feb 2009 17:49:16 -0500
> > 
> > >> I'd rather not if the patch I suggested works.  Does it?
> > 
> > > Maybe it does, but it isn't meant to solve the problem at hand, as it
> > > builds bootstrap-emacs unconditionally.
> > 
> > Not sure what you mean.  It solves the title problem "pretest recompiles
> > Lisp files".  AFAIK the only thing it does unnecessarily is to dump
> > Emacs twice.
> 
> Yes.  And the Right Solution (IMO) is to invoke src/Makefile with
> `boot' argument empty, which would only dump once and not recompile
> anything.

A new idea: can we avoid the `boot=bootstrap-emacs$(EXEEXT)' thing in
top-level Makefile.in by testing for some file that is only present
when Emacs is built out of CVS?  For example, the `admin' directory is
not in the pretest/release tarballs; can we test for its existence and
invoke sub-Make's with `boot=""' if `admin' is not there?

There's one other reason for compiling Lisp files during the build, it
is this fragment from the top-level Makefile.in:

    # Subdirectories to make recursively.  `lisp' is not included
    # because the compiled lisp files are part of the distribution.
    # leim is not included because it needs special handling.
    # 
    # Actually, we now include `lisp' as well, since the compiled files
    # are not included any more in case of bootstrap or in case Emacs was
    # checked out from a VCS.
    SUBDIR = lib-src src lisp

The second part gives the rationale for adding `lisp' to the list, but
that rationale is not valid for when Emacs is built from a pretest or
release tarball.  Is it okay to avoid recursing into `lisp' in that
case, again by testing the existence of `admin' or some such?