# HG changeset patch # User Glenn Morris # Date 1274401727 25200 # Node ID d8f404311eaf96691a5004f4dd448289805dfdfa # Parent 66c9aef964ccf8e4b0953a49a399bcbfc9957d03 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. diff -r 66c9aef964cc -r d8f404311eaf ChangeLog --- 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 + + * configure.in (cannot_dump): New output variable. + 2010-05-20 enami tsugutomo * configure.in: On NetBSD, if terminfo is found, use it in diff -r 66c9aef964cc -r d8f404311eaf configure.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 diff -r 66c9aef964cc -r d8f404311eaf msdos/ChangeLog --- 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 + + * sed1v2.inp (CANNOT_DUMP): Edit to no. + 2010-05-20 Glenn Morris * sed1v2.inp (DEPFLAGS, deps_frag): Edit to empty. diff -r 66c9aef964cc -r d8f404311eaf msdos/sed1v2.inp --- 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]*@// diff -r 66c9aef964cc -r d8f404311eaf src/ChangeLog --- 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 + + * Makefile.in (CANNOT_DUMP): New, set by configure. + (emacs${EXEEXT}, bootstrap-emacs${EXEEXT}): Use $CANNOT_DUMP. + 2010-05-20 Juri Linkov * fileio.c (Fdelete_file): Change interative spec to use diff -r 66c9aef964cc -r d8f404311eaf src/Makefile.in --- 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}