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

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

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


From: Eli Zaretskii
Subject: bug#2151: 23.0.90; Building the 23.0.90 pretest recompiles Lisp files
Date: Sat, 28 Feb 2009 00:18:37 +0200

> Date: Fri, 27 Feb 2009 17:02:38 +0200
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: 
> 
> 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 reason that recursing into `lisp' causes more recompilation is
that `make-dist' does this:

  echo "Recompiling Lisp files"
  $EMACS -batch -f batch-byte-recompile-directory lisp leim

while the top-level Makefile.in does this:

  ${SUBDIR}: Makefile FRC
          boot=bootstrap-emacs$(EXEEXT);                         \
          if [ -x "src/$$boot" ]; then boot=""; fi;                   \
          cd $@; $(MAKE) all $(MFLAGS)                           \
            CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
            LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' BOOTSTRAPEMACS="$$boot"

IOW, Makefile.in runs "make all" in `lisp'.  Recompilation happens
because "make all" observes dependencies between some *.elc files,
while batch-byte-recompile-directory does not.  So among the *.elc
files generated by make-dist it could well happen that a .elc file
that is prerequisite for some other .elc file ends up being newer,
which will cause "make all" to want to recompile that particular
dependency.

I think we should replace batch-byte-recompile-directory in make-dist
with a call to "make -C lisp all".  Any objections?







reply via email to

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