From e8752c66e923056fb5e61798a164cf1ae9627975 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Thu, 20 May 2010 17:28:47 -0700 Subject: [PATCH] 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. --- ChangeLog | 4 ++++ configure.in | 10 ++++++++++ msdos/ChangeLog | 4 ++++ msdos/sed1v2.inp | 1 + src/ChangeLog | 5 +++++ src/Makefile.in | 37 ++++++++++++++++++++----------------- 6 files changed, 44 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1615145c4f..7ec751044e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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 --git a/configure.in b/configure.in index 3d11ef584f..29f8c8ef60 100644 --- a/configure.in +++ b/configure.in @@ -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 diff --git a/msdos/ChangeLog b/msdos/ChangeLog index 46730bff69..3afea1696e 100644 --- a/msdos/ChangeLog +++ b/msdos/ChangeLog @@ -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 --git a/msdos/sed1v2.inp b/msdos/sed1v2.inp index 37002a5dbd..ba6846b964 100644 --- a/msdos/sed1v2.inp +++ b/msdos/sed1v2.inp @@ -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]*@// diff --git a/src/ChangeLog b/src/ChangeLog index 13ab4682df..5c99ed9143 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -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 --git a/src/Makefile.in b/src/Makefile.in index 1af812d6e1..dd1eec73c1 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -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} -- 2.20.1