Makefile.in (src): Fix the computation of $vcswitness.
-2014-01-12 Eric S. Raymond <esr@thyrsus.com>
+2014-01-12 Eli Zaretskii <eliz@gnu.org>
- * Makefile, src/Makefile, etc/PROBLEMS: Remove broken VCSWITNESS
- code, and explain the problem.
+ * Makefile.in (src): Fix the computation of $vcswitness.
2014-01-12 Glenn Morris <rgm@gnu.org>
# all preloaded elisp files, and only then dump the actual src/emacs, which
# is not wrong, but is overkill in 99.99% of the cases.
src: Makefile FRC
+ dirstate='.bzr/checkout/dirstate'; \
+ vcswitness='$(srcdir)/../'$$dirstate; \
+ [ -r "$(srcdir)/$$dirstate" ] || vcswitness=''; \
cd $@ || exit; \
boot=bootstrap-emacs$(EXEEXT); \
[ ! -x "$$boot" ] || boot=''; \
$(MAKE) all $(MFLAGS) \
CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
- LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' BOOTSTRAPEMACS="$$boot"
+ LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' BOOTSTRAPEMACS="$$boot" \
+ VCSWITNESS="$$vcswitness"
blessmail: Makefile src FRC
cd lib-src && $(MAKE) maybe-blessmail $(MFLAGS) \
from source, rather than the Ubuntu version, worked.
See <URL:http://debbugs.gnu.org/327, <URL:http://debbugs.gnu.org/821>.
-*** Rebuild of loaddefs.el is not always done after Lisp changes
-
-The rebuild production should depend on all Lisp files with #autoload
-cookies. It doesn't yet. This needs a configure-time improvement to
-the nuild system.
-
** Dumping
*** Linux: Segfault during `make bootstrap' under certain recent versions of the Linux kernel.
## Since the .el.elc rule cannot specify an extra dependency, we do it here.
$(lisp): $(BOOTSTRAPEMACS)
-## This ought to depend on every Lisp file that contains an autoload cookie.
-## A task for the future...
+## VCSWITNESS points to the file that holds info about the current checkout.
+## We use it as a heuristic to decide when to rebuild loaddefs.el.
+## If empty it is ignored; the parent makefile can set it to some other value.
+VCSWITNESS =
-$(lispsource)/loaddefs.el: $(BOOTSTRAPEMACS)
+$(lispsource)/loaddefs.el: $(BOOTSTRAPEMACS) $(VCSWITNESS)
cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS="$(bootstrap_exe)"
## Dump an Emacs executable named bootstrap-emacs containing the