* Makefile.in (${lispsource}loaddefs.el): Update loaddefs.el after a pull.
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 17 May 2010 21:02:06 +0000 (17:02 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 17 May 2010 21:02:06 +0000 (17:02 -0400)
* Makefile.in (src): Provide the name of the VCS file that witnesses a pull.
($(srcdir)/src/config.in): Handle accidental removal of src/config.in.

ChangeLog
Makefile.in
src/Makefile.in

index 733fb8d..88ddf00 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-05-17  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * Makefile.in (src): Provide the name of the VCS file that witnesses
+       a pull.
+       ($(srcdir)/src/config.in): Handle accidental removal of src/config.in.
+
 2010-05-17  Glenn Morris  <rgm@gnu.org>
 
        * configure.in (OLDXMENU_DEPS): New output variable.
index 775c591..cd677d3 100644 (file)
@@ -335,9 +335,13 @@ src: Makefile FRC
              CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}'         \
              LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' BOOTSTRAPEMACS="$$boot"; \
        fi;
+       if [ -r .bzr/checkout/dirstate ]; then                  \
+           vcswitness="$$(pwd)/.bzr/checkout/dirstate";        \
+       fi;                                                     \
        cd $@; $(MAKE) all $(MFLAGS)                           \
          CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
-         LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' BOOTSTRAPEMACS=""
+         LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' BOOTSTRAPEMACS="" \
+         VCSWITNESS="$$vcswitness"
 
 blessmail: Makefile src FRC
        cd lib-src; $(MAKE) maybe-blessmail $(MFLAGS) \
@@ -369,7 +373,11 @@ $(srcdir)/configure: $(AUTOCONF_INPUTS)
        cd ${srcdir} && autoconf
 
 $(srcdir)/src/config.in: $(srcdir)/src/stamp-h.in
-       @true
+       @ # Usually, there's no need to rebuild src/config.in just
+       @ # because stamp-h.in has changed (since building stamp-h.in
+       @ # refreshes config.in as well), but if config.in is missing
+       @ # then we really need to do something more.
+       [ -r "$@" ] || ( cd ${srcdir} && autoheader )
 $(srcdir)/src/stamp-h.in: $(AUTOCONF_INPUTS)
        cd ${srcdir} && autoheader
        rm -f $(srcdir)/src/stamp-h.in
index c99c7ae..571fbf5 100644 (file)
@@ -1098,7 +1098,9 @@ tags: TAGS TAGS-LISP $(lwlibdir)TAGS
 /* Since the .el.elc rule cannot specify an extra dependency, we do it here.  */
 ${lisp} ${SOME_MACHINE_LISP}: $(BOOTSTRAPEMACS)
 
-${lispsource}loaddefs.el: $(BOOTSTRAPEMACS)
+/* 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.  */
+${lispsource}loaddefs.el: $(BOOTSTRAPEMACS) $(VCSWITNESS)
        cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=${bootstrap_exe}
 
 /* Dump an Emacs executable named bootstrap-emacs containing the