changeset 108727:d8f404311eaf

Handle CANNOT_DUMP (partially) with configure. * 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.
author Glenn Morris <rgm@gnu.org>
date Thu, 20 May 2010 17:28:47 -0700
parents 66c9aef964cc
children d0ebe5586d94
files ChangeLog configure.in msdos/ChangeLog msdos/sed1v2.inp src/ChangeLog src/Makefile.in
diffstat 6 files changed, 44 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu May 20 17:22:58 2010 -0700
+++ b/ChangeLog	Thu May 20 17:28:47 2010 -0700
@@ -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
--- a/configure.in	Thu May 20 17:22:58 2010 -0700
+++ b/configure.in	Thu May 20 17:28:47 2010 -0700
@@ -857,6 +857,12 @@
 
 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 @@
 rm ${tempcname}
 
 
+AC_SUBST(cannot_dump)
+
+
 LD_SWITCH_SYSTEM=
 case "$opsys" in
   freebsd)
@@ -1483,6 +1492,7 @@
      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
--- a/msdos/ChangeLog	Thu May 20 17:22:58 2010 -0700
+++ b/msdos/ChangeLog	Thu May 20 17:28:47 2010 -0700
@@ -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.
--- a/msdos/sed1v2.inp	Thu May 20 17:22:58 2010 -0700
+++ b/msdos/sed1v2.inp	Thu May 20 17:28:47 2010 -0700
@@ -123,6 +123,7 @@
 /^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]*@//
--- a/src/ChangeLog	Thu May 20 17:22:58 2010 -0700
+++ b/src/ChangeLog	Thu May 20 17:28:47 2010 -0700
@@ -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
--- a/src/Makefile.in	Thu May 20 17:22:58 2010 -0700
+++ b/src/Makefile.in	Thu May 20 17:28:47 2010 -0700
@@ -284,6 +284,8 @@
 
 UNEXEC_OBJ = @unexec@
 
+CANNOT_DUMP=@cannot_dump@
+
 DEPDIR=deps
 ## -MMD -MF ${DEPDIR}/$*.d if AUTO_DEPEND; else empty.
 DEPFLAGS=@DEPFLAGS@
@@ -599,18 +601,19 @@
 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 @@
 
 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}