Handle CANNOT_DUMP (partially) with configure.
authorGlenn Morris <rgm@gnu.org>
Fri, 21 May 2010 00:28:47 +0000 (17:28 -0700)
committerGlenn Morris <rgm@gnu.org>
Fri, 21 May 2010 00:28:47 +0000 (17:28 -0700)
* configure.in (cannot_dump): New output variable.

* src/Makefile.in (CANNOT_DUMP): New, set by configure.
(emacs${EXEEXT}, bootstrap-emacs${EXEEXT}): Use $CANNOT_DUMP.

* msdos/sed1v2.inp (CANNOT_DUMP): Edit to no.

ChangeLog
configure.in
msdos/ChangeLog
msdos/sed1v2.inp
src/ChangeLog
src/Makefile.in

index 1615145..7ec7510 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-05-21  Glenn Morris  <rgm@gnu.org>
+
+       * configure.in (cannot_dump): New output variable.
+
 2010-05-20  enami tsugutomo  <tsugutomo.enami@jp.sony.com>
 
        * configure.in: On NetBSD, if terminfo is found, use it in
index 3d11ef5..29f8c8e 100644 (file)
@@ -857,6 +857,12 @@ configure___ LIBX=-lX11
 
 configure___ unexec=UNEXEC
 
+#ifdef CANNOT_DUMP
+configure___ cannot_dump=yes
+#else
+configure___ cannot_dump=no
+#endif
+
 #ifdef SYSTEM_MALLOC
 configure___ system_malloc=yes
 #else
@@ -918,6 +924,9 @@ fi]
 rm ${tempcname}
 
 
+AC_SUBST(cannot_dump)
+
+
 LD_SWITCH_SYSTEM=
 case "$opsys" in
   freebsd)
@@ -1483,6 +1492,7 @@ if test "${with_ns}" != no; then
      GNUSTEP_SYSTEM_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_HEADERS)"
      GNUSTEP_SYSTEM_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_LIBRARIES)"
      ## Pull in stuff from GNUstep-make.
+     ## FIXME? Cleaner to use AC_SUBST_FILE for this?
      NS_IMPL_GNUSTEP_INC="FOUNDATION_LIB=gnu
 GUI_LIB=gnu
 include $GNUSTEP_MAKEFILES/Additional/base.make
index 46730bf..3afea16 100644 (file)
@@ -1,3 +1,7 @@
+2010-05-21  Glenn Morris  <rgm@gnu.org>
+
+       * sed1v2.inp (CANNOT_DUMP): Edit to no.
+
 2010-05-20  Glenn Morris  <rgm@gnu.org>
 
        * sed1v2.inp (DEPFLAGS, deps_frag): Edit to empty.
index 37002a5..ba6846b 100644 (file)
@@ -123,6 +123,7 @@ s/\.h\.in/.h-in/
 /^PRE_ALLOC_OBJ *=/s/@PRE_ALLOC_OBJ@/lastfile.o/
 /^POST_ALLOC_OBJ *=/s/@POST_ALLOC_OBJ@/$(vmlimitobj)/
 /^UNEXEC_OBJ *=/s/@unexec@/unexec.o/
+/^CANNOT_DUMP *=/s/@cannot_dump@/no/
 /^DEPFLAGS *=/s/@DEPFLAGS@//
 /^MKDEPDIR *=/s/@MKDEPDIR@/:/
 /^version *=/s/@[^@\n]*@//
index 13ab468..5c99ed9 100644 (file)
@@ -1,3 +1,8 @@
+2010-05-21  Glenn Morris  <rgm@gnu.org>
+
+       * Makefile.in (CANNOT_DUMP): New, set by configure.
+       (emacs${EXEEXT}, bootstrap-emacs${EXEEXT}): Use $CANNOT_DUMP.
+
 2010-05-20  Juri Linkov  <juri@jurta.org>
 
        * fileio.c (Fdelete_file): Change interative spec to use
index 1af812d..dd1eec7 100644 (file)
@@ -284,6 +284,8 @@ START_FILES = @START_FILES@
 
 UNEXEC_OBJ = @unexec@
 
+CANNOT_DUMP=@cannot_dump@
+
 DEPDIR=deps
 ## -MMD -MF ${DEPDIR}/$*.d if AUTO_DEPEND; else empty.
 DEPFLAGS=@DEPFLAGS@
@@ -599,18 +601,19 @@ LIBES = $(LOADLIBES) $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \
 all: emacs${EXEEXT} $(OTHER_FILES)
 
 /* Does anyone ever pay attention to the load-path-shadows output here?  */
+/* FIXME Add EXEEXT for load-path-shadows?  */
+/* The dumped Emacs is as functional and more efficient than
+   bootstrap-emacs, so we replace the latter with the former.  */
 emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp}
-#ifdef CANNOT_DUMP
-       rm -f emacs${EXEEXT}
-       ln temacs${EXEEXT} emacs${EXEEXT}
-       -EMACSLOADPATH=${lispsource} ./emacs -q -batch -f list-load-path-shadows
-#else
-       LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
-       @: This new Emacs is as functional and more efficient then
-       @: bootstrap-emacs, so let us replace it.
-       -ln -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
-       -./emacs -q -batch -f list-load-path-shadows
-#endif /* ! defined (CANNOT_DUMP) */
+       if test "${CANNOT_DUMP}" = "yes"; then \
+         ln -f temacs${EXEEXT} emacs${EXEEXT}; \
+         EMACSLOADPATH=${lispsource} ./emacs -q -batch \
+           -f list-load-path-shadows || true; \
+       else \
+         LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump || exit 1; \
+         ln -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}; \
+         ./emacs -q -batch -f list-load-path-shadows || true; \
+       fi
 
 /* We run make-docfile twice because the command line may get too long
    on some systems.  */
@@ -807,12 +810,12 @@ ${lispsource}loaddefs.el: $(BOOTSTRAPEMACS) $(VCSWITNESS)
 
 bootstrap-emacs${EXEEXT}: temacs${EXEEXT}
        cd ../lisp; $(MAKE) $(MFLAGS) update-subdirs
-#ifdef CANNOT_DUMP
-       ln -f temacs${EXEEXT} bootstrap-emacs${EXEEXT}
-#else
-       $(RUN_TEMACS) --batch --load loadup bootstrap
-       mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
-#endif /* ! defined (CANNOT_DUMP) */
+       if test "${CANNOT_DUMP}" = "yes"; then \
+         ln -f temacs${EXEEXT} bootstrap-emacs${EXEEXT}; \
+       else \
+         $(RUN_TEMACS) --batch --load loadup bootstrap || exit 1; \
+         mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}; \
+       fi
        @: Compile some files earlier to speed up further compilation.
        cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS=${bootstrap_exe}